ddtrace 0.26.1 → 0.27.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.
- checksums.yaml +4 -4
- data/.circleci/config.yml +153 -77
- data/.circleci/images/primary/{Dockerfile-1.9.3 → Dockerfile-2.5.6} +8 -8
- data/.circleci/images/primary/Dockerfile-2.6.4 +73 -0
- data/.github/CODEOWNERS +1 -0
- data/Appraisals +201 -94
- data/CHANGELOG.md +25 -8
- data/Rakefile +153 -47
- data/ddtrace.gemspec +1 -1
- data/docker-compose.yml +56 -26
- data/docs/GettingStarted.md +117 -14
- data/lib/ddtrace.rb +4 -0
- data/lib/ddtrace/analytics.rb +9 -39
- data/lib/ddtrace/configuration.rb +0 -19
- data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +144 -0
- data/lib/ddtrace/contrib/action_pack/action_controller/patcher.rb +37 -0
- data/lib/ddtrace/contrib/action_pack/configuration/settings.rb +25 -0
- data/lib/ddtrace/contrib/action_pack/ext.rb +16 -0
- data/lib/ddtrace/contrib/action_pack/integration.rb +36 -0
- data/lib/ddtrace/contrib/action_pack/patcher.rb +29 -0
- data/lib/ddtrace/contrib/action_pack/utils.rb +36 -0
- data/lib/ddtrace/contrib/action_view/configuration/settings.rb +24 -0
- data/lib/ddtrace/contrib/action_view/ext.rb +17 -0
- data/lib/ddtrace/contrib/action_view/instrumentation.rb +192 -0
- data/lib/ddtrace/contrib/action_view/integration.rb +43 -0
- data/lib/ddtrace/contrib/action_view/patcher.rb +47 -0
- data/lib/ddtrace/contrib/action_view/utils.rb +32 -0
- data/lib/ddtrace/contrib/active_support/cache/instrumentation.rb +157 -0
- data/lib/ddtrace/contrib/active_support/cache/patcher.rb +62 -0
- data/lib/ddtrace/contrib/active_support/cache/redis.rb +47 -0
- data/lib/ddtrace/contrib/active_support/configuration/settings.rb +23 -0
- data/lib/ddtrace/contrib/active_support/ext.rb +21 -0
- data/lib/ddtrace/contrib/active_support/integration.rb +38 -0
- data/lib/ddtrace/contrib/active_support/patcher.rb +29 -0
- data/lib/ddtrace/contrib/ethon/configuration/settings.rb +24 -0
- data/lib/ddtrace/contrib/ethon/easy_patch.rb +139 -0
- data/lib/ddtrace/contrib/ethon/ext.rb +15 -0
- data/lib/ddtrace/contrib/ethon/integration.rb +35 -0
- data/lib/ddtrace/contrib/ethon/multi_patch.rb +80 -0
- data/lib/ddtrace/contrib/ethon/patcher.rb +27 -0
- data/lib/ddtrace/contrib/patchable.rb +1 -1
- data/lib/ddtrace/contrib/rails/configuration/settings.rb +43 -6
- data/lib/ddtrace/contrib/rails/ext.rb +0 -15
- data/lib/ddtrace/contrib/rails/framework.rb +37 -6
- data/lib/ddtrace/contrib/rails/middlewares.rb +2 -1
- data/lib/ddtrace/contrib/rails/patcher.rb +0 -8
- data/lib/ddtrace/contrib/rails/utils.rb +0 -46
- data/lib/ddtrace/contrib/redis/patcher.rb +12 -19
- data/lib/ddtrace/correlation.rb +8 -12
- data/lib/ddtrace/forced_tracing.rb +10 -38
- data/lib/ddtrace/sampler.rb +20 -74
- data/lib/ddtrace/span.rb +3 -4
- data/lib/ddtrace/tracer.rb +4 -11
- data/lib/ddtrace/version.rb +2 -2
- metadata +32 -9
- data/lib/ddtrace/contrib/rails/action_controller.rb +0 -100
- data/lib/ddtrace/contrib/rails/action_controller_patch.rb +0 -78
- data/lib/ddtrace/contrib/rails/action_view.rb +0 -19
- data/lib/ddtrace/contrib/rails/active_support.rb +0 -67
- 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
|
data/lib/ddtrace/correlation.rb
CHANGED
@@ -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)
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
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
|
-
|
17
|
-
|
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
|
22
|
-
if
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
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
|
-
|
30
|
-
|
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
|
data/lib/ddtrace/sampler.rb
CHANGED
@@ -64,110 +64,56 @@ module Datadog
|
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
67
|
-
#
|
68
|
-
class
|
69
|
-
|
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
|
-
|
76
|
-
@
|
71
|
+
def initialize(rate = 1.0, opts = {})
|
72
|
+
@env = opts.fetch(:env, Datadog.tracer.tags[:env])
|
77
73
|
@mutex = Mutex.new
|
78
|
-
@
|
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 =
|
79
|
+
key = key_for(span)
|
93
80
|
|
94
81
|
@mutex.synchronize do
|
95
|
-
@
|
82
|
+
@sampler.fetch(key, @fallback).sample?(span)
|
96
83
|
end
|
97
84
|
end
|
98
85
|
|
99
86
|
def sample!(span)
|
100
|
-
key =
|
87
|
+
key = key_for(span)
|
101
88
|
|
102
89
|
@mutex.synchronize do
|
103
|
-
@
|
90
|
+
@sampler.fetch(key, @fallback).sample!(span)
|
104
91
|
end
|
105
92
|
end
|
106
93
|
|
107
94
|
def sample_rate(span)
|
108
|
-
key =
|
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
|
-
|
98
|
+
@sampler.fetch(key, @fallback).sample_rate
|
118
99
|
end
|
119
100
|
end
|
120
101
|
|
121
|
-
def
|
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
|
-
@
|
130
|
-
end
|
131
|
-
end
|
104
|
+
@sampler.delete_if { |key, _| key != DEFAULT_KEY && !rate_by_service.key?(key) }
|
132
105
|
|
133
|
-
|
134
|
-
|
135
|
-
|
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
|
-
|
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)
|
data/lib/ddtrace/tracer.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
226
|
+
span_options[:context] = ctx unless ctx.nil?
|
231
227
|
|
232
|
-
span = Span.new(self, name,
|
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
|
|
data/lib/ddtrace/version.rb
CHANGED
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.
|
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
|
+
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:
|
649
|
+
version: 2.0.0
|
627
650
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
628
651
|
requirements:
|
629
652
|
- - ">="
|