signalfx-rails-instrumentation 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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.0
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: 2018-12-14 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: []