signalfx-rails-instrumentation 0.1.4 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +2 -7
  3. data/.rubocop.yml +42 -0
  4. data/Appraisals +16 -13
  5. data/Gemfile +3 -7
  6. data/Gemfile.lock +173 -0
  7. data/LICENSE +2 -2
  8. data/README.md +118 -164
  9. data/Rakefile +6 -6
  10. data/bin/console +1 -1
  11. data/lib/rails/instrumentation.rb +60 -0
  12. data/lib/rails/instrumentation/patch.rb +38 -0
  13. data/lib/rails/instrumentation/subscriber.rb +45 -0
  14. data/lib/rails/instrumentation/subscribers/action_cable_subscriber.rb +69 -0
  15. data/lib/rails/instrumentation/subscribers/action_controller_subscriber.rb +172 -0
  16. data/lib/rails/instrumentation/subscribers/action_mailer_subscriber.rb +63 -0
  17. data/lib/rails/instrumentation/subscribers/action_view_subscriber.rb +48 -0
  18. data/lib/rails/instrumentation/subscribers/active_job_subscriber.rb +58 -0
  19. data/lib/rails/instrumentation/subscribers/active_record_subscriber.rb +45 -0
  20. data/lib/rails/instrumentation/subscribers/active_storage_subscriber.rb +91 -0
  21. data/lib/rails/instrumentation/subscribers/active_support_subscriber.rb +74 -0
  22. data/lib/rails/instrumentation/utils.rb +44 -0
  23. data/lib/rails/instrumentation/version.rb +5 -0
  24. data/rails-instrumentation.gemspec +32 -0
  25. metadata +54 -192
  26. data/.rspec +0 -2
  27. data/.ruby-version +0 -1
  28. data/.travis.yml +0 -25
  29. data/CHANGELOG.md +0 -47
  30. data/docker-compose.yml +0 -4
  31. data/gemfiles/.bundle/config +0 -2
  32. data/gemfiles/rails_32.gemfile +0 -11
  33. data/gemfiles/rails_4.gemfile +0 -10
  34. data/gemfiles/rails_40.gemfile +0 -10
  35. data/gemfiles/rails_41.gemfile +0 -10
  36. data/gemfiles/rails_42.gemfile +0 -10
  37. data/gemfiles/rails_5.gemfile +0 -10
  38. data/gemfiles/rails_50.gemfile +0 -10
  39. data/gemfiles/rails_51.gemfile +0 -10
  40. data/lib/rails-tracer.rb +0 -1
  41. data/lib/rails/action_controller/tracer.rb +0 -100
  42. data/lib/rails/action_view/tracer.rb +0 -105
  43. data/lib/rails/active_record/tracer.rb +0 -89
  44. data/lib/rails/active_support/cache/core_ext.rb +0 -11
  45. data/lib/rails/active_support/cache/dalli_tracer.rb +0 -106
  46. data/lib/rails/active_support/cache/manual_tracer.rb +0 -24
  47. data/lib/rails/active_support/cache/subscriber.rb +0 -62
  48. data/lib/rails/active_support/cache/tracer.rb +0 -55
  49. data/lib/rails/defer_notifications.rb +0 -78
  50. data/lib/rails/rack/tracer.rb +0 -61
  51. data/lib/rails/span_helpers.rb +0 -24
  52. data/lib/rails/tracer.rb +0 -38
  53. data/rails-tracer.gemspec +0 -44
@@ -0,0 +1,48 @@
1
+ module Rails
2
+ module Instrumentation
3
+ module ActionViewSubscriber
4
+ include Subscriber
5
+
6
+ EVENT_NAMESPACE = 'action_view'.freeze
7
+
8
+ EVENTS = %w[
9
+ render_template
10
+ render_partial
11
+ render_collection
12
+ ].freeze
13
+
14
+ # rubocop:disable Style/MutableConstant
15
+ BASE_TAGS = { 'component' => 'ActionView' }
16
+ # rubocop:enable Style/MutableConstant.
17
+
18
+ class << self
19
+ def render_template(event)
20
+ tags = span_tags(
21
+ 'template.identifier' => event.payload[:identifier],
22
+ 'template.layout' => event.payload[:layout]
23
+ )
24
+
25
+ Utils.trace_notification(event: event, tags: tags)
26
+ end
27
+
28
+ def render_partial(event)
29
+ tags = span_tags(
30
+ 'partial.identifier' => event.payload[:identifier]
31
+ )
32
+
33
+ Utils.trace_notification(event: event, tags: tags)
34
+ end
35
+
36
+ def render_collection(event)
37
+ tags = span_tags(
38
+ 'template.identifier' => event.payload[:identifier],
39
+ 'template.count' => event.payload[:count]
40
+ )
41
+ tags['template.cache_hits'] = event.payload[:cache_hits] if event.payload.key? :cache_hits
42
+
43
+ Utils.trace_notification(event: event, tags: tags)
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,58 @@
1
+ module Rails
2
+ module Instrumentation
3
+ module ActiveJobSubscriber
4
+ include Subscriber
5
+
6
+ EVENT_NAMESPACE = 'active_job'.freeze
7
+
8
+ EVENTS = %w[
9
+ enqueue_at
10
+ enqueue
11
+ perform_start
12
+ perform
13
+ ].freeze
14
+
15
+ # rubocop:disable Style/MutableConstant
16
+ BASE_TAGS = { 'component' => 'ActiveJob' }
17
+ # rubocop:enable Style/MutableConstant.
18
+
19
+ class << self
20
+ def enqueue_at(event)
21
+ tags = span_tags(
22
+ 'adapter' => event.payload[:adapter],
23
+ 'job' => event.payload[:job]
24
+ )
25
+
26
+ Utils.trace_notification(event: event, tags: tags)
27
+ end
28
+
29
+ def enqueue(event)
30
+ tags = span_tags(
31
+ 'adapter' => event.payload[:adapter],
32
+ 'job' => event.payload[:job]
33
+ )
34
+
35
+ Utils.trace_notification(event: event, tags: tags)
36
+ end
37
+
38
+ def perform_start(event)
39
+ tags = span_tags(
40
+ 'adapter' => event.payload[:adapter],
41
+ 'job' => event.payload[:job]
42
+ )
43
+
44
+ Utils.trace_notification(event: event, tags: tags)
45
+ end
46
+
47
+ def perform(event)
48
+ tags = span_tags(
49
+ 'adapter' => event.payload[:adapter],
50
+ 'job' => event.payload[:job]
51
+ )
52
+
53
+ Utils.trace_notification(event: event, tags: tags)
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,45 @@
1
+ # require 'active_support'
2
+
3
+ module Rails
4
+ module Instrumentation
5
+ module ActiveRecordSubscriber
6
+ include Subscriber
7
+
8
+ EVENT_NAMESPACE = 'active_record'.freeze
9
+
10
+ EVENTS = %w[
11
+ sql
12
+ instantiation
13
+ ].freeze
14
+
15
+ # rubocop:disable Style/MutableConstant
16
+ BASE_TAGS = { 'component' => 'ActiveRecord' }
17
+ # rubocop:enable Style/MutableConstant.
18
+
19
+ class << self
20
+ def sql(event)
21
+ raw = event.payload[:sql]
22
+ statement = raw.respond_to?(:to_str) ? raw : raw.to_s
23
+ tags = span_tags(
24
+ 'db.statement' => statement[0, 1024],
25
+ 'name' => event.payload[:name],
26
+ 'connection_id' => event.payload[:connection_id],
27
+ 'binds' => event.payload[:binds],
28
+ 'cached' => event.payload[:cached]
29
+ )
30
+
31
+ Utils.trace_notification(event: event, tags: tags)
32
+ end
33
+
34
+ def instantiation(event)
35
+ tags = span_tags(
36
+ 'record.count' => event.payload[:record_count],
37
+ 'record.class' => event.payload[:class_name]
38
+ )
39
+
40
+ Utils.trace_notification(event: event, tags: tags)
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,91 @@
1
+ module Rails
2
+ module Instrumentation
3
+ module ActiveStorageSubscriber
4
+ include Subscriber
5
+
6
+ EVENT_NAMESPACE = 'active_storage'.freeze
7
+
8
+ EVENTS = %w[
9
+ service_upload
10
+ service_streaming_download
11
+ service_download
12
+ service_delete
13
+ service_delete_prefixed
14
+ service_exist
15
+ service_url
16
+ ].freeze
17
+
18
+ # rubocop:disable Style/MutableConstant
19
+ BASE_TAGS = { 'component' => 'ActiveStorage' }
20
+ # rubocop:enable Style/MutableConstant.
21
+
22
+ class << self
23
+ def service_upload(event)
24
+ tags = span_tags(
25
+ 'key' => event.payload[:key],
26
+ 'service' => event.payload[:service],
27
+ 'checksum' => event.payload[:checksum]
28
+ )
29
+
30
+ Utils.trace_notification(event: event, tags: tags)
31
+ end
32
+
33
+ def service_streaming_download(event)
34
+ tags = span_tags(
35
+ 'key' => event.payload[:key],
36
+ 'service' => event.payload[:service]
37
+ )
38
+
39
+ Utils.trace_notification(event: event, tags: tags)
40
+ end
41
+
42
+ def service_download(event)
43
+ tags = span_tags(
44
+ 'key' => event.payload[:key],
45
+ 'service' => event.payload[:service]
46
+ )
47
+
48
+ Utils.trace_notification(event: event, tags: tags)
49
+ end
50
+
51
+ def service_delete(event)
52
+ tags = span_tags(
53
+ 'key' => event.payload[:key],
54
+ 'service' => event.payload[:service]
55
+ )
56
+
57
+ Utils.trace_notification(event: event, tags: tags)
58
+ end
59
+
60
+ def service_delete_prefixed(event)
61
+ tags = span_tags(
62
+ 'key.prefix' => event.payload[:prefix],
63
+ 'service' => event.payload[:service]
64
+ )
65
+
66
+ Utils.trace_notification(event: event, tags: tags)
67
+ end
68
+
69
+ def service_exist(event)
70
+ tags = span_tags(
71
+ 'key' => event.payload[:key],
72
+ 'service' => event.payload[:service],
73
+ 'exist' => event.payload[:exist]
74
+ )
75
+
76
+ Utils.trace_notification(event: event, tags: tags)
77
+ end
78
+
79
+ def service_url(event)
80
+ tags = span_tags(
81
+ 'key' => event.payload[:key],
82
+ 'service' => event.payload[:service],
83
+ 'url' => event.payload[:url] # generated url, not accessed url
84
+ )
85
+
86
+ Utils.trace_notification(event: event, tags: tags)
87
+ end
88
+ end
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,74 @@
1
+ module Rails
2
+ module Instrumentation
3
+ module ActiveSupportSubscriber
4
+ include Subscriber
5
+
6
+ EVENT_NAMESPACE = 'active_support'.freeze
7
+
8
+ EVENTS = %w[
9
+ cache_read
10
+ cache_generate
11
+ cache_fetch_hit
12
+ cache_write
13
+ cache_delete
14
+ cache_exist?
15
+ ].freeze
16
+
17
+ # rubocop:disable Style/MutableConstant
18
+ BASE_TAGS = { 'component' => 'ActiveSupport' }
19
+ # rubocop:enable Style/MutableConstant.
20
+
21
+ class << self
22
+ def cache_read(event)
23
+ tags = span_tags(
24
+ 'key' => event.payload[:key],
25
+ 'hit' => event.payload[:hit],
26
+ 'super_operation' => event.payload[:super_operation]
27
+ )
28
+
29
+ Utils.trace_notification(event: event, tags: tags)
30
+ end
31
+
32
+ def cache_generate(event)
33
+ tags = span_tags(
34
+ 'key' => event.payload[:key]
35
+ )
36
+
37
+ Utils.trace_notification(event: event, tags: tags)
38
+ end
39
+
40
+ def cache_fetch_hit(event)
41
+ tags = span_tags(
42
+ 'key' => event.payload[:key]
43
+ )
44
+
45
+ Utils.trace_notification(event: event, tags: tags)
46
+ end
47
+
48
+ def cache_write(event)
49
+ tags = span_tags(
50
+ 'key' => event.payload[:key]
51
+ )
52
+
53
+ Utils.trace_notification(event: event, tags: tags)
54
+ end
55
+
56
+ def cache_delete(event)
57
+ tags = span_tags(
58
+ 'key' => event.payload[:key]
59
+ )
60
+
61
+ Utils.trace_notification(event: event, tags: tags)
62
+ end
63
+
64
+ def cache_exist?(event)
65
+ tags = span_tags(
66
+ 'key' => event.payload[:key]
67
+ )
68
+
69
+ Utils.trace_notification(event: event, tags: tags)
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,44 @@
1
+ require 'active_support/notifications'
2
+
3
+ module Rails
4
+ module Instrumentation
5
+ module Utils
6
+ class << self
7
+ # calls a handler function with name 'event' on the handler module.
8
+ # For example, if the handler module is ActionViewSubscriber and the
9
+ # event hook is 'render_template.action_controller', full_name is
10
+ # 'render_template.action_controller' and event_name is 'render_template'
11
+ def register_subscriber(full_name: '', event_name: '', handler_module: nil)
12
+ ::ActiveSupport::Notifications.subscribe(full_name) do |*args|
13
+ event = ::ActiveSupport::Notifications::Event.new(*args)
14
+ handler_module.send(event_name, event)
15
+ end
16
+ end
17
+
18
+ # takes and event and some set of tags from a handler, and creates a
19
+ # span with the event's name and the start and finish times.
20
+ def trace_notification(event:, tags: [])
21
+ tags = ::Rails::Instrumentation::TAGS.clone.merge(tags)
22
+
23
+ span = ::Rails::Instrumentation.tracer.start_span(event.name,
24
+ tags: tags,
25
+ start_time: event.time)
26
+
27
+ # tag transaction_id
28
+ span.set_tag('transaction.id', event.transaction_id)
29
+ tag_error(span, event.payload) if event.payload.key? :exception_object
30
+
31
+ span.finish(end_time: event.end)
32
+ end
33
+
34
+ # according to the ActiveSupport::Notifications documentation, exceptions
35
+ # will be indicated with the presence of the :exception and :exception_object
36
+ # keys. These will be tagged and logged according to the OpenTracing
37
+ # specification.
38
+ def tag_error(span, payload)
39
+ span.record_exception(payload[:exception_object])
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,5 @@
1
+ module Rails
2
+ module Instrumentation
3
+ VERSION = '0.2.0'.freeze
4
+ end
5
+ end
@@ -0,0 +1,32 @@
1
+ lib = File.expand_path('lib', __dir__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require 'rails/instrumentation/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'signalfx-rails-instrumentation'
7
+ spec.version = Rails::Instrumentation::VERSION
8
+ spec.authors = ['Ashwin Chandrasekar']
9
+ spec.email = ['achandrasekar@signalfx.com']
10
+
11
+ spec.summary = 'OpenTracing instrumentation for Rails.'
12
+ spec.homepage = 'https://github.com/signalfx/ruby-rails-instrumentation'
13
+
14
+ # Specify which files should be added to the gem when it is released.
15
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
16
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
17
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
+ end
19
+ spec.bindir = 'exe'
20
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
+ spec.require_paths = ['lib']
22
+
23
+ spec.add_dependency 'opentracing', '~> 0.3'
24
+ spec.add_development_dependency 'appraisal', '~> 2.2'
25
+ spec.add_development_dependency 'bundler', '>= 1.17'
26
+ spec.add_development_dependency 'signalfx_test_tracer', '>= 0.1.2'
27
+ spec.add_development_dependency 'rails', '~> 5.2.2'
28
+ spec.add_development_dependency 'rake', '~> 10.0'
29
+ spec.add_development_dependency 'rspec', '~> 3.0'
30
+ spec.add_development_dependency 'rubocop', '~> 0.63.0'
31
+ spec.add_development_dependency 'rubocop-rspec', '~> 1.31'
32
+ end
metadata CHANGED
@@ -1,195 +1,85 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: signalfx-rails-instrumentation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
- - iaintshine
8
- autorequire:
7
+ - Ashwin Chandrasekar
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-01-22 00:00:00.000000000 Z
11
+ date: 2020-12-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: opentracing
15
15
  requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">"
18
- - !ruby/object:Gem::Version
19
- version: 0.3.1
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">"
25
- - !ruby/object:Gem::Version
26
- version: 0.3.1
27
- - !ruby/object:Gem::Dependency
28
- name: rack-tracer
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">"
32
- - !ruby/object:Gem::Version
33
- version: 0.3.0
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">"
39
- - !ruby/object:Gem::Version
40
- version: 0.3.0
41
- - !ruby/object:Gem::Dependency
42
- name: sqlite3
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: puma
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '3.7'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
16
  requirements:
66
17
  - - "~>"
67
18
  - !ruby/object:Gem::Version
68
- version: '3.7'
69
- - !ruby/object:Gem::Dependency
70
- name: rspec-rails
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '3.6'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '3.6'
83
- - !ruby/object:Gem::Dependency
84
- name: database_cleaner
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '1.6'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '1.6'
97
- - !ruby/object:Gem::Dependency
98
- name: dalli
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: 2.7.6
104
- type: :development
19
+ version: '0.3'
20
+ type: :runtime
105
21
  prerelease: false
106
22
  version_requirements: !ruby/object:Gem::Requirement
107
23
  requirements:
108
24
  - - "~>"
109
25
  - !ruby/object:Gem::Version
110
- version: 2.7.6
26
+ version: '0.3'
111
27
  - !ruby/object:Gem::Dependency
112
- name: tracing-logger
28
+ name: appraisal
113
29
  requirement: !ruby/object:Gem::Requirement
114
30
  requirements:
115
31
  - - "~>"
116
32
  - !ruby/object:Gem::Version
117
- version: '1.0'
33
+ version: '2.2'
118
34
  type: :development
119
35
  prerelease: false
120
36
  version_requirements: !ruby/object:Gem::Requirement
121
37
  requirements:
122
38
  - - "~>"
123
39
  - !ruby/object:Gem::Version
124
- version: '1.0'
40
+ version: '2.2'
125
41
  - !ruby/object:Gem::Dependency
126
- name: test-tracer
42
+ name: bundler
127
43
  requirement: !ruby/object:Gem::Requirement
128
44
  requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: '1.0'
132
45
  - - ">="
133
46
  - !ruby/object:Gem::Version
134
- version: 1.2.1
47
+ version: '1.17'
135
48
  type: :development
136
49
  prerelease: false
137
50
  version_requirements: !ruby/object:Gem::Requirement
138
51
  requirements:
139
- - - "~>"
140
- - !ruby/object:Gem::Version
141
- version: '1.0'
142
52
  - - ">="
143
53
  - !ruby/object:Gem::Version
144
- version: 1.2.1
54
+ version: '1.17'
145
55
  - !ruby/object:Gem::Dependency
146
- name: tracing-matchers
56
+ name: signalfx_test_tracer
147
57
  requirement: !ruby/object:Gem::Requirement
148
58
  requirements:
149
- - - "~>"
150
- - !ruby/object:Gem::Version
151
- version: '1.0'
152
59
  - - ">="
153
60
  - !ruby/object:Gem::Version
154
- version: 1.3.0
61
+ version: 0.1.2
155
62
  type: :development
156
63
  prerelease: false
157
64
  version_requirements: !ruby/object:Gem::Requirement
158
65
  requirements:
159
- - - "~>"
160
- - !ruby/object:Gem::Version
161
- version: '1.0'
162
66
  - - ">="
163
67
  - !ruby/object:Gem::Version
164
- version: 1.3.0
68
+ version: 0.1.2
165
69
  - !ruby/object:Gem::Dependency
166
- name: spanmanager
70
+ name: rails
167
71
  requirement: !ruby/object:Gem::Requirement
168
72
  requirements:
169
73
  - - "~>"
170
74
  - !ruby/object:Gem::Version
171
- version: 0.3.0
75
+ version: 5.2.2
172
76
  type: :development
173
77
  prerelease: false
174
78
  version_requirements: !ruby/object:Gem::Requirement
175
79
  requirements:
176
80
  - - "~>"
177
81
  - !ruby/object:Gem::Version
178
- version: 0.3.0
179
- - !ruby/object:Gem::Dependency
180
- name: bundler
181
- requirement: !ruby/object:Gem::Requirement
182
- requirements:
183
- - - "~>"
184
- - !ruby/object:Gem::Version
185
- version: '1.15'
186
- type: :development
187
- prerelease: false
188
- version_requirements: !ruby/object:Gem::Requirement
189
- requirements:
190
- - - "~>"
191
- - !ruby/object:Gem::Version
192
- version: '1.15'
82
+ version: 5.2.2
193
83
  - !ruby/object:Gem::Dependency
194
84
  name: rake
195
85
  requirement: !ruby/object:Gem::Requirement
@@ -219,95 +109,68 @@ dependencies:
219
109
  - !ruby/object:Gem::Version
220
110
  version: '3.0'
221
111
  - !ruby/object:Gem::Dependency
222
- name: simplecov
223
- requirement: !ruby/object:Gem::Requirement
224
- requirements:
225
- - - ">="
226
- - !ruby/object:Gem::Version
227
- version: '0'
228
- type: :development
229
- prerelease: false
230
- version_requirements: !ruby/object:Gem::Requirement
231
- requirements:
232
- - - ">="
233
- - !ruby/object:Gem::Version
234
- version: '0'
235
- - !ruby/object:Gem::Dependency
236
- name: simplecov-console
112
+ name: rubocop
237
113
  requirement: !ruby/object:Gem::Requirement
238
114
  requirements:
239
- - - ">="
115
+ - - "~>"
240
116
  - !ruby/object:Gem::Version
241
- version: '0'
117
+ version: 0.63.0
242
118
  type: :development
243
119
  prerelease: false
244
120
  version_requirements: !ruby/object:Gem::Requirement
245
121
  requirements:
246
- - - ">="
122
+ - - "~>"
247
123
  - !ruby/object:Gem::Version
248
- version: '0'
124
+ version: 0.63.0
249
125
  - !ruby/object:Gem::Dependency
250
- name: appraisal
126
+ name: rubocop-rspec
251
127
  requirement: !ruby/object:Gem::Requirement
252
128
  requirements:
253
- - - ">="
129
+ - - "~>"
254
130
  - !ruby/object:Gem::Version
255
- version: '0'
131
+ version: '1.31'
256
132
  type: :development
257
133
  prerelease: false
258
134
  version_requirements: !ruby/object:Gem::Requirement
259
135
  requirements:
260
- - - ">="
136
+ - - "~>"
261
137
  - !ruby/object:Gem::Version
262
- version: '0'
263
- description: ''
138
+ version: '1.31'
139
+ description:
264
140
  email:
265
- - bodziomista@gmail.com
141
+ - achandrasekar@signalfx.com
266
142
  executables: []
267
143
  extensions: []
268
144
  extra_rdoc_files: []
269
145
  files:
270
146
  - ".gitignore"
271
- - ".rspec"
272
- - ".ruby-version"
273
- - ".travis.yml"
147
+ - ".rubocop.yml"
274
148
  - Appraisals
275
- - CHANGELOG.md
276
149
  - Gemfile
150
+ - Gemfile.lock
277
151
  - LICENSE
278
152
  - README.md
279
153
  - Rakefile
280
154
  - bin/console
281
155
  - bin/setup
282
- - docker-compose.yml
283
- - gemfiles/.bundle/config
284
- - gemfiles/rails_32.gemfile
285
- - gemfiles/rails_4.gemfile
286
- - gemfiles/rails_40.gemfile
287
- - gemfiles/rails_41.gemfile
288
- - gemfiles/rails_42.gemfile
289
- - gemfiles/rails_5.gemfile
290
- - gemfiles/rails_50.gemfile
291
- - gemfiles/rails_51.gemfile
292
- - lib/rails-tracer.rb
293
- - lib/rails/action_controller/tracer.rb
294
- - lib/rails/action_view/tracer.rb
295
- - lib/rails/active_record/tracer.rb
296
- - lib/rails/active_support/cache/core_ext.rb
297
- - lib/rails/active_support/cache/dalli_tracer.rb
298
- - lib/rails/active_support/cache/manual_tracer.rb
299
- - lib/rails/active_support/cache/subscriber.rb
300
- - lib/rails/active_support/cache/tracer.rb
301
- - lib/rails/defer_notifications.rb
302
- - lib/rails/rack/tracer.rb
303
- - lib/rails/span_helpers.rb
304
- - lib/rails/tracer.rb
305
- - rails-tracer.gemspec
306
- homepage: https://github.com/signalfx/ruby-rails-tracer
307
- licenses:
308
- - Apache-2.0
156
+ - lib/rails/instrumentation.rb
157
+ - lib/rails/instrumentation/patch.rb
158
+ - lib/rails/instrumentation/subscriber.rb
159
+ - lib/rails/instrumentation/subscribers/action_cable_subscriber.rb
160
+ - lib/rails/instrumentation/subscribers/action_controller_subscriber.rb
161
+ - lib/rails/instrumentation/subscribers/action_mailer_subscriber.rb
162
+ - lib/rails/instrumentation/subscribers/action_view_subscriber.rb
163
+ - lib/rails/instrumentation/subscribers/active_job_subscriber.rb
164
+ - lib/rails/instrumentation/subscribers/active_record_subscriber.rb
165
+ - lib/rails/instrumentation/subscribers/active_storage_subscriber.rb
166
+ - lib/rails/instrumentation/subscribers/active_support_subscriber.rb
167
+ - lib/rails/instrumentation/utils.rb
168
+ - lib/rails/instrumentation/version.rb
169
+ - rails-instrumentation.gemspec
170
+ homepage: https://github.com/signalfx/ruby-rails-instrumentation
171
+ licenses: []
309
172
  metadata: {}
310
- post_install_message:
173
+ post_install_message:
311
174
  rdoc_options: []
312
175
  require_paths:
313
176
  - lib
@@ -315,16 +178,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
315
178
  requirements:
316
179
  - - ">="
317
180
  - !ruby/object:Gem::Version
318
- version: 2.2.0
181
+ version: '0'
319
182
  required_rubygems_version: !ruby/object:Gem::Requirement
320
183
  requirements:
321
184
  - - ">="
322
185
  - !ruby/object:Gem::Version
323
186
  version: '0'
324
187
  requirements: []
325
- rubyforge_project:
326
- rubygems_version: 2.6.13
327
- signing_key:
188
+ rubygems_version: 3.1.2
189
+ signing_key:
328
190
  specification_version: 4
329
- summary: Fork of ruby-rails-tracer. Rack OpenTracing middleware enhanced for Rails
191
+ summary: OpenTracing instrumentation for Rails.
330
192
  test_files: []