newrelic-hanami-ageri 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/newrelic-hanami-ageri.rb +56 -0
  3. metadata +129 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 1edbcf3859d5c7a4716778a42fd24d5ec8d6d7a04d09725a3b1be5947afbdedf
4
+ data.tar.gz: 2564df41e49954b427cfcfd7c7b5357e99090cd1f6d1c427866abb43937fb582
5
+ SHA512:
6
+ metadata.gz: 904bc2b16778e4584983c91f1b85b5abbd360e0184d0a1a4c11f8fda74ee64e38466c77de54b10ee356feb9bb701e54b7122a87edac2f3ac773e437a6a02e470
7
+ data.tar.gz: cabd31a370a13f4561988538c93336f65ce1bc6072223ccf6153632df3f0807fdbf887ade26477c484ffa7321c30edc4fa71cac00555a183a73d6c55306c7d5f
@@ -0,0 +1,56 @@
1
+ require 'new_relic/agent/instrumentation'
2
+ require 'new_relic/agent/instrumentation/controller_instrumentation'
3
+ require 'hanami/controller'
4
+ require 'rack'
5
+
6
+ module NewRelic
7
+ module Agent
8
+ module Instrumentation
9
+ module Hanami
10
+ include ControllerInstrumentation
11
+ NAME_REGEX = /Controllers::/.freeze
12
+
13
+ protected
14
+
15
+ def finish
16
+ perform_action_with_newrelic_trace(_trace_options) do
17
+ super
18
+ end
19
+ end
20
+
21
+ private
22
+
23
+ def _trace_options
24
+ {
25
+ category: :controller,
26
+ name: self.class.name.sub(NAME_REGEX, ''),
27
+ request: request,
28
+ params: params.to_h
29
+ }
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+
36
+ DependencyDetection.defer do
37
+ @name = :hanami
38
+
39
+ depends_on do
40
+ defined?(::Hanami) &&
41
+ !::NewRelic::Control.instance['disable_hanami'] &&
42
+ !ENV['DISABLE_NEW_RELIC_HANAMI']
43
+ end
44
+
45
+ executes do
46
+ NewRelic::Agent.logger.info 'Installing Hanami instrumentation'
47
+ end
48
+
49
+ executes do
50
+ ::Hanami::Controller.configure do
51
+ prepare do
52
+ include ::NewRelic::Agent::Instrumentation::Hanami
53
+ end
54
+ end
55
+ end
56
+ end
metadata ADDED
@@ -0,0 +1,129 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: newrelic-hanami-ageri
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Ítallo Rian
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2023-08-22 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.4'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.4'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 13.0.6
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 13.0.6
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 3.12.0
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 3.12.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: rack-test
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: newrelic_rpm
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: hanami-controller
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '2.0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '2.0'
97
+ description: Reports Hanami controller actions to NewRelic.
98
+ email:
99
+ - itallo.rian@ageri.com.br
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - lib/newrelic-hanami-ageri.rb
105
+ homepage: https://github.com/itallorian/newrelic-hanami-ageri
106
+ licenses:
107
+ - MIT
108
+ metadata:
109
+ github_repo: ssh://github.com/itallorian/newrelic-hanami-ageri
110
+ post_install_message:
111
+ rdoc_options: []
112
+ require_paths:
113
+ - lib
114
+ required_ruby_version: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ required_rubygems_version: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ requirements: []
125
+ rubygems_version: 3.4.10
126
+ signing_key:
127
+ specification_version: 4
128
+ summary: NewRelic instrumentation for Hanami!
129
+ test_files: []