ddtrace 0.26.1 → 0.27.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +153 -77
  3. data/.circleci/images/primary/{Dockerfile-1.9.3 → Dockerfile-2.5.6} +8 -8
  4. data/.circleci/images/primary/Dockerfile-2.6.4 +73 -0
  5. data/.github/CODEOWNERS +1 -0
  6. data/Appraisals +201 -94
  7. data/CHANGELOG.md +25 -8
  8. data/Rakefile +153 -47
  9. data/ddtrace.gemspec +1 -1
  10. data/docker-compose.yml +56 -26
  11. data/docs/GettingStarted.md +117 -14
  12. data/lib/ddtrace.rb +4 -0
  13. data/lib/ddtrace/analytics.rb +9 -39
  14. data/lib/ddtrace/configuration.rb +0 -19
  15. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +144 -0
  16. data/lib/ddtrace/contrib/action_pack/action_controller/patcher.rb +37 -0
  17. data/lib/ddtrace/contrib/action_pack/configuration/settings.rb +25 -0
  18. data/lib/ddtrace/contrib/action_pack/ext.rb +16 -0
  19. data/lib/ddtrace/contrib/action_pack/integration.rb +36 -0
  20. data/lib/ddtrace/contrib/action_pack/patcher.rb +29 -0
  21. data/lib/ddtrace/contrib/action_pack/utils.rb +36 -0
  22. data/lib/ddtrace/contrib/action_view/configuration/settings.rb +24 -0
  23. data/lib/ddtrace/contrib/action_view/ext.rb +17 -0
  24. data/lib/ddtrace/contrib/action_view/instrumentation.rb +192 -0
  25. data/lib/ddtrace/contrib/action_view/integration.rb +43 -0
  26. data/lib/ddtrace/contrib/action_view/patcher.rb +47 -0
  27. data/lib/ddtrace/contrib/action_view/utils.rb +32 -0
  28. data/lib/ddtrace/contrib/active_support/cache/instrumentation.rb +157 -0
  29. data/lib/ddtrace/contrib/active_support/cache/patcher.rb +62 -0
  30. data/lib/ddtrace/contrib/active_support/cache/redis.rb +47 -0
  31. data/lib/ddtrace/contrib/active_support/configuration/settings.rb +23 -0
  32. data/lib/ddtrace/contrib/active_support/ext.rb +21 -0
  33. data/lib/ddtrace/contrib/active_support/integration.rb +38 -0
  34. data/lib/ddtrace/contrib/active_support/patcher.rb +29 -0
  35. data/lib/ddtrace/contrib/ethon/configuration/settings.rb +24 -0
  36. data/lib/ddtrace/contrib/ethon/easy_patch.rb +139 -0
  37. data/lib/ddtrace/contrib/ethon/ext.rb +15 -0
  38. data/lib/ddtrace/contrib/ethon/integration.rb +35 -0
  39. data/lib/ddtrace/contrib/ethon/multi_patch.rb +80 -0
  40. data/lib/ddtrace/contrib/ethon/patcher.rb +27 -0
  41. data/lib/ddtrace/contrib/patchable.rb +1 -1
  42. data/lib/ddtrace/contrib/rails/configuration/settings.rb +43 -6
  43. data/lib/ddtrace/contrib/rails/ext.rb +0 -15
  44. data/lib/ddtrace/contrib/rails/framework.rb +37 -6
  45. data/lib/ddtrace/contrib/rails/middlewares.rb +2 -1
  46. data/lib/ddtrace/contrib/rails/patcher.rb +0 -8
  47. data/lib/ddtrace/contrib/rails/utils.rb +0 -46
  48. data/lib/ddtrace/contrib/redis/patcher.rb +12 -19
  49. data/lib/ddtrace/correlation.rb +8 -12
  50. data/lib/ddtrace/forced_tracing.rb +10 -38
  51. data/lib/ddtrace/sampler.rb +20 -74
  52. data/lib/ddtrace/span.rb +3 -4
  53. data/lib/ddtrace/tracer.rb +4 -11
  54. data/lib/ddtrace/version.rb +2 -2
  55. metadata +32 -9
  56. data/lib/ddtrace/contrib/rails/action_controller.rb +0 -100
  57. data/lib/ddtrace/contrib/rails/action_controller_patch.rb +0 -78
  58. data/lib/ddtrace/contrib/rails/action_view.rb +0 -19
  59. data/lib/ddtrace/contrib/rails/active_support.rb +0 -67
  60. data/lib/ddtrace/contrib/rails/core_extensions.rb +0 -353
@@ -1,4 +1,5 @@
1
1
  require 'ddtrace/ext/http'
2
+ require 'ddtrace/contrib/action_pack/utils'
2
3
 
3
4
  module Datadog
4
5
  module Contrib
@@ -27,7 +28,7 @@ module Datadog
27
28
  # Only set error if it's supposed to be flagged as such
28
29
  # e.g. we don't want to flag 404s.
29
30
  # You can add custom errors via `config.action_dispatch.rescue_responses`
30
- span.set_error(e) if Utils.exception_is_error?(e)
31
+ span.set_error(e) if ActionPack::Utils.exception_is_error?(e)
31
32
  end
32
33
  raise e
33
34
  end
@@ -65,7 +65,6 @@ module Datadog
65
65
  # Finish configuring the tracer after the application is initialized.
66
66
  # We need to wait for some things, like application name, middleware stack, etc.
67
67
  setup_tracer
68
- instrument_rails
69
68
  end
70
69
  end
71
70
 
@@ -73,13 +72,6 @@ module Datadog
73
72
  def setup_tracer
74
73
  Datadog::Contrib::Rails::Framework.setup
75
74
  end
76
-
77
- # Add instrumentation to Rails components
78
- def instrument_rails
79
- Datadog::Contrib::Rails::ActionController.instrument
80
- Datadog::Contrib::Rails::ActionView.instrument
81
- Datadog::Contrib::Rails::ActiveSupport.instrument
82
- end
83
75
  end
84
76
  end
85
77
  end
@@ -5,26 +5,6 @@ module Datadog
5
5
  module Rails
6
6
  # common utilities for Rails
7
7
  module Utils
8
- # in Rails the template name includes the template full path
9
- # and it's better to avoid storing such information. This method
10
- # returns the relative path from `views/` or the template name
11
- # if a `views/` folder is not in the template full path. A wrong
12
- # usage ensures that this method will not crash the tracing system.
13
- def self.normalize_template_name(name)
14
- return if name.nil?
15
-
16
- base_path = datadog_configuration[:template_base_path]
17
- sections_view = name.split(base_path)
18
-
19
- if sections_view.length == 1
20
- name.split('/')[-1]
21
- else
22
- sections_view[-1]
23
- end
24
- rescue
25
- return name.to_s
26
- end
27
-
28
8
  def self.app_name
29
9
  if ::Rails::VERSION::MAJOR >= 6
30
10
  ::Rails.application.class.module_parent_name.underscore
@@ -34,32 +14,6 @@ module Datadog
34
14
  ::Rails.application.class.to_s.underscore
35
15
  end
36
16
  end
37
-
38
- def self.exception_is_error?(exception)
39
- if defined?(::ActionDispatch::ExceptionWrapper)
40
- # Gets the equivalent status code for the exception (not all are 5XX)
41
- # You can add custom errors via `config.action_dispatch.rescue_responses`
42
- status = ::ActionDispatch::ExceptionWrapper.status_code_for_exception(exception.class.name)
43
- # Only 5XX exceptions are actually errors (e.g. don't flag 404s)
44
- status.to_s.starts_with?('5')
45
- else
46
- true
47
- end
48
- end
49
-
50
- def self.set_analytics_sample_rate(span)
51
- if Contrib::Analytics.enabled?(datadog_configuration[:analytics_enabled])
52
- Contrib::Analytics.set_sample_rate(span, datadog_configuration[:analytics_sample_rate])
53
- end
54
- end
55
-
56
- class << self
57
- private
58
-
59
- def datadog_configuration
60
- Datadog.configuration[:rails]
61
- end
62
- end
63
17
  end
64
18
  end
65
19
  end
@@ -25,7 +25,6 @@ module Datadog
25
25
  require 'ddtrace/contrib/redis/quantize'
26
26
 
27
27
  patch_redis_client
28
- RailsCachePatcher.reload_cache_store if Datadog.registry[:rails].patcher.patched?
29
28
  rescue StandardError => e
30
29
  Datadog::Tracer.log.error("Unable to apply Redis integration: #{e}")
31
30
  end
@@ -36,24 +35,6 @@ module Datadog
36
35
  # rubocop:disable Metrics/BlockLength
37
36
  def patch_redis_client
38
37
  ::Redis::Client.class_eval do
39
- alias_method :initialize_without_datadog, :initialize
40
- Datadog::Patcher.without_warnings do
41
- remove_method :initialize
42
- end
43
-
44
- def initialize(*args)
45
- service = Datadog.configuration[:redis][:service_name]
46
- tracer = Datadog.configuration[:redis][:tracer]
47
- pin = Datadog::Pin.new(
48
- service,
49
- app: Ext::APP,
50
- app_type: Datadog::Ext::AppTypes::DB,
51
- tracer: tracer
52
- )
53
- pin.onto(self)
54
- initialize_without_datadog(*args)
55
- end
56
-
57
38
  alias_method :call_without_datadog, :call
58
39
  remove_method :call
59
40
  def call(*args, &block)
@@ -93,6 +74,18 @@ module Datadog
93
74
 
94
75
  response
95
76
  end
77
+
78
+ def datadog_pin
79
+ @datadog_pin ||= begin
80
+ pin = Datadog::Pin.new(
81
+ Datadog.configuration[:redis][:service_name],
82
+ app: Ext::APP,
83
+ app_type: Datadog::Ext::AppTypes::DB,
84
+ tracer: Datadog.configuration[:redis][:tracer]
85
+ )
86
+ pin.onto(self)
87
+ end
88
+ end
96
89
  end
97
90
  end
98
91
  end
@@ -3,19 +3,15 @@ module Datadog
3
3
  # e.g. Retrieve a correlation to the current trace for logging, etc.
4
4
  module Correlation
5
5
  # Struct representing correlation
6
- Identifier = Struct.new(:trace_id, :span_id).tap do |struct|
7
- # Do this #class_eval here for Ruby 1.9.3 support.
8
- # Ruby 2.0+ supports passing a block to Struct::new instead.
9
- struct.class_eval do
10
- def initialize(*args)
11
- super
12
- self.trace_id = trace_id || 0
13
- self.span_id = span_id || 0
14
- end
6
+ Identifier = Struct.new(:trace_id, :span_id) do
7
+ def initialize(*args)
8
+ super
9
+ self.trace_id = trace_id || 0
10
+ self.span_id = span_id || 0
11
+ end
15
12
 
16
- def to_s
17
- "dd.trace_id=#{trace_id} dd.span_id=#{span_id}"
18
- end
13
+ def to_s
14
+ "dd.trace_id=#{trace_id} dd.span_id=#{span_id}"
19
15
  end
20
16
  end.freeze
21
17
 
@@ -18,45 +18,17 @@ module Datadog
18
18
 
19
19
  # Extension for Datadog::Span
20
20
  module Span
21
- def self.included(base)
22
- if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.0.0')
23
- base.class_eval do
24
- # Instance methods
25
- include InstanceMethodsCompatibility
26
- include InstanceMethods
27
- end
21
+ def set_tag(key, value)
22
+ # Configure sampling priority if they give us a forced tracing tag
23
+ # DEV: Do not set if the value they give us is explicitly "false"
24
+ case key
25
+ when Ext::ManualTracing::TAG_KEEP
26
+ ForcedTracing.keep(self) unless value == false
27
+ when Ext::ManualTracing::TAG_DROP
28
+ ForcedTracing.drop(self) unless value == false
28
29
  else
29
- base.send(:prepend, InstanceMethods)
30
- end
31
- end
32
-
33
- # Compatibility shim for Rubies not supporting `.prepend`
34
- # NOTE: This patching strategy only works because it has been applied after
35
- # Datadog::Analytics::Span. Any changes will likely break this.
36
- module InstanceMethodsCompatibility
37
- def self.included(base)
38
- base.send(:alias_method, :set_tag_without_forced_tracing, :set_tag)
39
-
40
- define_method :set_tag do |*args, &block|
41
- set_tag_without_forced_tracing(*args, &block)
42
- end
43
- end
44
- end
45
-
46
- # Instance methods
47
- module InstanceMethods
48
- def set_tag(key, value)
49
- # Configure sampling priority if they give us a forced tracing tag
50
- # DEV: Do not set if the value they give us is explicitly "false"
51
- case key
52
- when Ext::ManualTracing::TAG_KEEP
53
- ForcedTracing.keep(self) unless value == false
54
- when Ext::ManualTracing::TAG_DROP
55
- ForcedTracing.drop(self) unless value == false
56
- else
57
- # Otherwise, set the tag normally.
58
- super if defined?(super)
59
- end
30
+ # Otherwise, set the tag normally.
31
+ super if defined?(super)
60
32
  end
61
33
  end
62
34
  end
@@ -64,110 +64,56 @@ module Datadog
64
64
  end
65
65
  end
66
66
 
67
- # Samples at different rates by key.
68
- class RateByKeySampler < Sampler
69
- attr_reader \
70
- :default_key
71
-
72
- def initialize(default_key, default_rate = 1.0, &block)
73
- raise ArgumentError, 'No resolver given!' unless block_given?
67
+ # \RateByServiceSampler samples different services at different rates
68
+ class RateByServiceSampler < Sampler
69
+ DEFAULT_KEY = 'service:,env:'.freeze
74
70
 
75
- @default_key = default_key
76
- @resolver = block
71
+ def initialize(rate = 1.0, opts = {})
72
+ @env = opts.fetch(:env, Datadog.tracer.tags[:env])
77
73
  @mutex = Mutex.new
78
- @samplers = {}
79
-
80
- set_rate(default_key, default_rate)
81
- end
82
-
83
- def resolve(span)
84
- @resolver.call(span)
85
- end
86
-
87
- def default_sampler
88
- @samplers[default_key]
74
+ @fallback = RateSampler.new(rate)
75
+ @sampler = { DEFAULT_KEY => @fallback }
89
76
  end
90
77
 
91
78
  def sample?(span)
92
- key = resolve(span)
79
+ key = key_for(span)
93
80
 
94
81
  @mutex.synchronize do
95
- @samplers.fetch(key, default_sampler).sample?(span)
82
+ @sampler.fetch(key, @fallback).sample?(span)
96
83
  end
97
84
  end
98
85
 
99
86
  def sample!(span)
100
- key = resolve(span)
87
+ key = key_for(span)
101
88
 
102
89
  @mutex.synchronize do
103
- @samplers.fetch(key, default_sampler).sample!(span)
90
+ @sampler.fetch(key, @fallback).sample!(span)
104
91
  end
105
92
  end
106
93
 
107
94
  def sample_rate(span)
108
- key = resolve(span)
109
-
110
- @mutex.synchronize do
111
- @samplers.fetch(key, default_sampler).sample_rate
112
- end
113
- end
95
+ key = key_for(span)
114
96
 
115
- def update(key, rate)
116
97
  @mutex.synchronize do
117
- set_rate(key, rate)
98
+ @sampler.fetch(key, @fallback).sample_rate
118
99
  end
119
100
  end
120
101
 
121
- def update_all(rate_by_key)
122
- @mutex.synchronize do
123
- rate_by_key.each { |key, rate| set_rate(key, rate) }
124
- end
125
- end
126
-
127
- def delete(key)
102
+ def update(rate_by_service)
128
103
  @mutex.synchronize do
129
- @samplers.delete(key)
130
- end
131
- end
104
+ @sampler.delete_if { |key, _| key != DEFAULT_KEY && !rate_by_service.key?(key) }
132
105
 
133
- def delete_if(&block)
134
- @mutex.synchronize do
135
- @samplers.delete_if(&block)
106
+ rate_by_service.each do |key, rate|
107
+ @sampler[key] ||= RateSampler.new(rate)
108
+ @sampler[key].sample_rate = rate
109
+ end
136
110
  end
137
111
  end
138
112
 
139
113
  private
140
114
 
141
- def set_rate(key, rate)
142
- @samplers[key] ||= RateSampler.new(rate)
143
- @samplers[key].sample_rate = rate
144
- end
145
- end
146
-
147
- # \RateByServiceSampler samples different services at different rates
148
- class RateByServiceSampler < RateByKeySampler
149
- DEFAULT_KEY = 'service:,env:'.freeze
150
-
151
- def initialize(default_rate = 1.0, options = {})
152
- super(DEFAULT_KEY, default_rate, &method(:key_for))
153
- @env = options[:env]
154
- end
155
-
156
- def update(rate_by_service)
157
- # Remove any old services
158
- delete_if { |key, _| key != DEFAULT_KEY && !rate_by_service.key?(key) }
159
-
160
- # Update each service rate
161
- update_all(rate_by_service)
162
- end
163
-
164
- private
165
-
166
115
  def key_for(span)
167
- # Resolve env dynamically, if Proc is given.
168
- env = @env.is_a?(Proc) ? @env.call : @env
169
-
170
- "service:#{span.service},env:#{env}"
116
+ "service:#{span.service},env:#{@env}"
171
117
  end
172
118
  end
173
119
 
data/lib/ddtrace/span.rb CHANGED
@@ -16,6 +16,9 @@ module Datadog
16
16
  #
17
17
  # rubocop:disable Metrics/ClassLength
18
18
  class Span
19
+ prepend Analytics::Span
20
+ prepend ForcedTracing::Span
21
+
19
22
  # The max value for a \Span identifier.
20
23
  # Span and trace identifiers should be strictly positive and strictly inferior to this limit.
21
24
  #
@@ -255,7 +258,3 @@ module Datadog
255
258
  end
256
259
  end
257
260
  end
258
-
259
- # Include extensions after Span (for Ruby 1.9 compatibility)
260
- Datadog::Span.send(:include, Datadog::Analytics::Span)
261
- Datadog::Span.send(:include, Datadog::ForcedTracing::Span)
@@ -120,9 +120,6 @@ module Datadog
120
120
 
121
121
  @mutex = Mutex.new
122
122
  @tags = {}
123
-
124
- # Enable priority sampling by default
125
- activate_priority_sampling!(@sampler)
126
123
  end
127
124
 
128
125
  # Updates the current \Tracer instance, so that the tracer can be configured after the
@@ -220,16 +217,15 @@ module Datadog
220
217
 
221
218
  tags = options.fetch(:tags, {})
222
219
 
223
- opts = options.select do |k, _v|
220
+ span_options = options.select do |k, _v|
224
221
  # Filter options, we want no side effects with unexpected args.
225
- # Plus, this documents the code (Ruby 2 named args would be better but we're Ruby 1.9 compatible)
226
222
  ALLOWED_SPAN_OPTIONS.include?(k)
227
223
  end
228
224
 
229
225
  ctx, parent = guess_context_and_parent(options[:child_of])
230
- opts[:context] = ctx unless ctx.nil?
226
+ span_options[:context] = ctx unless ctx.nil?
231
227
 
232
- span = Span.new(self, name, opts)
228
+ span = Span.new(self, name, span_options)
233
229
  if parent.nil?
234
230
  # root span
235
231
  @sampler.sample!(span)
@@ -444,10 +440,7 @@ module Datadog
444
440
  @sampler = if base_sampler.is_a?(PrioritySampler)
445
441
  base_sampler
446
442
  else
447
- PrioritySampler.new(
448
- base_sampler: base_sampler,
449
- post_sampler: Datadog::RateByServiceSampler.new(1.0, env: proc { tags[:env] })
450
- )
443
+ PrioritySampler.new(base_sampler: base_sampler)
451
444
  end
452
445
  end
453
446
 
@@ -1,8 +1,8 @@
1
1
  module Datadog
2
2
  module VERSION
3
3
  MAJOR = 0
4
- MINOR = 26
5
- PATCH = 1
4
+ MINOR = 27
5
+ PATCH = 0
6
6
  PRE = nil
7
7
 
8
8
  STRING = [MAJOR, MINOR, PATCH, PRE].compact.join('.')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ddtrace
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.26.1
4
+ version: 0.27.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Datadog, Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-11-26 00:00:00.000000000 Z
11
+ date: 2019-09-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: msgpack
@@ -287,14 +287,16 @@ extensions: []
287
287
  extra_rdoc_files: []
288
288
  files:
289
289
  - ".circleci/config.yml"
290
- - ".circleci/images/primary/Dockerfile-1.9.3"
291
290
  - ".circleci/images/primary/Dockerfile-2.0.0"
292
291
  - ".circleci/images/primary/Dockerfile-2.1.10"
293
292
  - ".circleci/images/primary/Dockerfile-2.2.10"
294
293
  - ".circleci/images/primary/Dockerfile-2.3.8"
295
294
  - ".circleci/images/primary/Dockerfile-2.4.6"
295
+ - ".circleci/images/primary/Dockerfile-2.5.6"
296
+ - ".circleci/images/primary/Dockerfile-2.6.4"
296
297
  - ".dockerignore"
297
298
  - ".env"
299
+ - ".github/CODEOWNERS"
298
300
  - ".gitignore"
299
301
  - ".rspec"
300
302
  - ".rubocop.yml"
@@ -330,6 +332,19 @@ files:
330
332
  - lib/ddtrace/configuration/settings.rb
331
333
  - lib/ddtrace/context.rb
332
334
  - lib/ddtrace/context_flush.rb
335
+ - lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb
336
+ - lib/ddtrace/contrib/action_pack/action_controller/patcher.rb
337
+ - lib/ddtrace/contrib/action_pack/configuration/settings.rb
338
+ - lib/ddtrace/contrib/action_pack/ext.rb
339
+ - lib/ddtrace/contrib/action_pack/integration.rb
340
+ - lib/ddtrace/contrib/action_pack/patcher.rb
341
+ - lib/ddtrace/contrib/action_pack/utils.rb
342
+ - lib/ddtrace/contrib/action_view/configuration/settings.rb
343
+ - lib/ddtrace/contrib/action_view/ext.rb
344
+ - lib/ddtrace/contrib/action_view/instrumentation.rb
345
+ - lib/ddtrace/contrib/action_view/integration.rb
346
+ - lib/ddtrace/contrib/action_view/patcher.rb
347
+ - lib/ddtrace/contrib/action_view/utils.rb
333
348
  - lib/ddtrace/contrib/active_model_serializers/configuration/settings.rb
334
349
  - lib/ddtrace/contrib/active_model_serializers/event.rb
335
350
  - lib/ddtrace/contrib/active_model_serializers/events.rb
@@ -348,9 +363,16 @@ files:
348
363
  - lib/ddtrace/contrib/active_record/integration.rb
349
364
  - lib/ddtrace/contrib/active_record/patcher.rb
350
365
  - lib/ddtrace/contrib/active_record/utils.rb
366
+ - lib/ddtrace/contrib/active_support/cache/instrumentation.rb
367
+ - lib/ddtrace/contrib/active_support/cache/patcher.rb
368
+ - lib/ddtrace/contrib/active_support/cache/redis.rb
369
+ - lib/ddtrace/contrib/active_support/configuration/settings.rb
370
+ - lib/ddtrace/contrib/active_support/ext.rb
371
+ - lib/ddtrace/contrib/active_support/integration.rb
351
372
  - lib/ddtrace/contrib/active_support/notifications/event.rb
352
373
  - lib/ddtrace/contrib/active_support/notifications/subscriber.rb
353
374
  - lib/ddtrace/contrib/active_support/notifications/subscription.rb
375
+ - lib/ddtrace/contrib/active_support/patcher.rb
354
376
  - lib/ddtrace/contrib/analytics.rb
355
377
  - lib/ddtrace/contrib/aws/configuration/settings.rb
356
378
  - lib/ddtrace/contrib/aws/ext.rb
@@ -384,6 +406,12 @@ files:
384
406
  - lib/ddtrace/contrib/elasticsearch/integration.rb
385
407
  - lib/ddtrace/contrib/elasticsearch/patcher.rb
386
408
  - lib/ddtrace/contrib/elasticsearch/quantize.rb
409
+ - lib/ddtrace/contrib/ethon/configuration/settings.rb
410
+ - lib/ddtrace/contrib/ethon/easy_patch.rb
411
+ - lib/ddtrace/contrib/ethon/ext.rb
412
+ - lib/ddtrace/contrib/ethon/integration.rb
413
+ - lib/ddtrace/contrib/ethon/multi_patch.rb
414
+ - lib/ddtrace/contrib/ethon/patcher.rb
387
415
  - lib/ddtrace/contrib/excon/configuration/settings.rb
388
416
  - lib/ddtrace/contrib/excon/ext.rb
389
417
  - lib/ddtrace/contrib/excon/integration.rb
@@ -448,12 +476,7 @@ files:
448
476
  - lib/ddtrace/contrib/rack/middlewares.rb
449
477
  - lib/ddtrace/contrib/rack/patcher.rb
450
478
  - lib/ddtrace/contrib/rack/request_queue.rb
451
- - lib/ddtrace/contrib/rails/action_controller.rb
452
- - lib/ddtrace/contrib/rails/action_controller_patch.rb
453
- - lib/ddtrace/contrib/rails/action_view.rb
454
- - lib/ddtrace/contrib/rails/active_support.rb
455
479
  - lib/ddtrace/contrib/rails/configuration/settings.rb
456
- - lib/ddtrace/contrib/rails/core_extensions.rb
457
480
  - lib/ddtrace/contrib/rails/ext.rb
458
481
  - lib/ddtrace/contrib/rails/framework.rb
459
482
  - lib/ddtrace/contrib/rails/integration.rb
@@ -623,7 +646,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
623
646
  requirements:
624
647
  - - ">="
625
648
  - !ruby/object:Gem::Version
626
- version: 1.9.1
649
+ version: 2.0.0
627
650
  required_rubygems_version: !ruby/object:Gem::Requirement
628
651
  requirements:
629
652
  - - ">="