ddtrace 0.35.2 → 0.40.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 +59 -1
- data/.gitignore +2 -0
- data/.gitlab-ci.yml +27 -0
- data/.rubocop.yml +4 -0
- data/.simplecov +38 -0
- data/Appraisals +139 -12
- data/CHANGELOG.md +185 -1
- data/Rakefile +524 -464
- data/ddtrace.gemspec +6 -0
- data/docker-compose.yml +37 -2
- data/docs/DevelopmentGuide.md +16 -0
- data/docs/GettingStarted.md +192 -111
- data/lib/ddtrace.rb +4 -0
- data/lib/ddtrace/configuration.rb +36 -5
- data/lib/ddtrace/configuration/components.rb +4 -7
- data/lib/ddtrace/configuration/pin_setup.rb +3 -2
- data/lib/ddtrace/configuration/settings.rb +27 -3
- data/lib/ddtrace/contrib/action_cable/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/action_cable/ext.rb +5 -2
- data/lib/ddtrace/contrib/action_pack/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/action_pack/ext.rb +5 -2
- data/lib/ddtrace/contrib/action_view/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/action_view/ext.rb +5 -2
- data/lib/ddtrace/contrib/active_model_serializers/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/active_model_serializers/ext.rb +5 -2
- data/lib/ddtrace/contrib/active_record/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/active_record/ext.rb +5 -2
- data/lib/ddtrace/contrib/active_support/cache/redis.rb +1 -1
- data/lib/ddtrace/contrib/active_support/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/active_support/ext.rb +5 -2
- data/lib/ddtrace/contrib/active_support/notifications/event.rb +3 -1
- data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +1 -1
- data/lib/ddtrace/contrib/aws/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/aws/ext.rb +5 -2
- data/lib/ddtrace/contrib/concurrent_ruby/configuration/settings.rb +5 -0
- data/lib/ddtrace/contrib/concurrent_ruby/context_composite_executor_service.rb +9 -3
- data/lib/ddtrace/contrib/concurrent_ruby/ext.rb +1 -0
- data/lib/ddtrace/contrib/configuration/settings.rb +19 -0
- data/lib/ddtrace/contrib/dalli/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/dalli/ext.rb +5 -2
- data/lib/ddtrace/contrib/dalli/patcher.rb +1 -5
- data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/delayed_job/ext.rb +5 -2
- data/lib/ddtrace/contrib/elasticsearch/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/elasticsearch/ext.rb +5 -2
- data/lib/ddtrace/contrib/elasticsearch/patcher.rb +1 -2
- data/lib/ddtrace/contrib/ethon/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/ethon/ext.rb +5 -2
- data/lib/ddtrace/contrib/excon/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/excon/ext.rb +5 -2
- data/lib/ddtrace/contrib/extensions.rb +39 -5
- data/lib/ddtrace/contrib/faraday/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/faraday/ext.rb +5 -2
- data/lib/ddtrace/contrib/faraday/middleware.rb +5 -3
- data/lib/ddtrace/contrib/faraday/patcher.rb +13 -5
- data/lib/ddtrace/contrib/grape/configuration/settings.rb +7 -3
- data/lib/ddtrace/contrib/grape/ext.rb +5 -2
- data/lib/ddtrace/contrib/grape/patcher.rb +1 -1
- data/lib/ddtrace/contrib/graphql/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/graphql/ext.rb +5 -2
- data/lib/ddtrace/contrib/graphql/patcher.rb +6 -3
- data/lib/ddtrace/contrib/grpc/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +1 -1
- data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +1 -3
- data/lib/ddtrace/contrib/grpc/ext.rb +5 -2
- data/lib/ddtrace/contrib/grpc/patcher.rb +1 -5
- data/lib/ddtrace/contrib/http/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/http/ext.rb +5 -2
- data/lib/ddtrace/contrib/http/instrumentation.rb +12 -7
- data/lib/ddtrace/contrib/httprb/configuration/settings.rb +32 -0
- data/lib/ddtrace/contrib/httprb/ext.rb +17 -0
- data/lib/ddtrace/contrib/httprb/instrumentation.rb +160 -0
- data/lib/ddtrace/contrib/httprb/integration.rb +43 -0
- data/lib/ddtrace/contrib/httprb/patcher.rb +35 -0
- data/lib/ddtrace/contrib/kafka/configuration/settings.rb +30 -0
- data/lib/ddtrace/contrib/kafka/consumer_event.rb +14 -0
- data/lib/ddtrace/contrib/kafka/consumer_group_event.rb +14 -0
- data/lib/ddtrace/contrib/kafka/event.rb +51 -0
- data/lib/ddtrace/contrib/kafka/events.rb +44 -0
- data/lib/ddtrace/contrib/kafka/events/connection/request.rb +34 -0
- data/lib/ddtrace/contrib/kafka/events/consumer/process_batch.rb +41 -0
- data/lib/ddtrace/contrib/kafka/events/consumer/process_message.rb +39 -0
- data/lib/ddtrace/contrib/kafka/events/consumer_group/heartbeat.rb +39 -0
- data/lib/ddtrace/contrib/kafka/events/consumer_group/join_group.rb +29 -0
- data/lib/ddtrace/contrib/kafka/events/consumer_group/leave_group.rb +29 -0
- data/lib/ddtrace/contrib/kafka/events/consumer_group/sync_group.rb +29 -0
- data/lib/ddtrace/contrib/kafka/events/produce_operation/send_messages.rb +32 -0
- data/lib/ddtrace/contrib/kafka/events/producer/deliver_messages.rb +35 -0
- data/lib/ddtrace/contrib/kafka/ext.rb +41 -0
- data/lib/ddtrace/contrib/kafka/integration.rb +39 -0
- data/lib/ddtrace/contrib/kafka/patcher.rb +26 -0
- data/lib/ddtrace/contrib/mongodb/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/mongodb/ext.rb +5 -2
- data/lib/ddtrace/contrib/mongodb/instrumentation.rb +1 -2
- data/lib/ddtrace/contrib/mysql2/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/mysql2/ext.rb +5 -2
- data/lib/ddtrace/contrib/mysql2/instrumentation.rb +1 -1
- data/lib/ddtrace/contrib/patcher.rb +14 -8
- data/lib/ddtrace/contrib/presto/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/presto/ext.rb +5 -2
- data/lib/ddtrace/contrib/que/configuration/settings.rb +42 -0
- data/lib/ddtrace/contrib/que/ext.rb +30 -0
- data/lib/ddtrace/contrib/que/integration.rb +42 -0
- data/lib/ddtrace/contrib/que/patcher.rb +24 -0
- data/lib/ddtrace/contrib/que/tracer.rb +56 -0
- data/lib/ddtrace/contrib/racecar/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/racecar/events.rb +2 -0
- data/lib/ddtrace/contrib/racecar/events/consume.rb +27 -0
- data/lib/ddtrace/contrib/racecar/ext.rb +6 -2
- data/lib/ddtrace/contrib/rack/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/rack/ext.rb +5 -2
- data/lib/ddtrace/contrib/rack/middlewares.rb +17 -12
- data/lib/ddtrace/contrib/rails/configuration/settings.rb +10 -11
- data/lib/ddtrace/contrib/rails/ext.rb +6 -2
- data/lib/ddtrace/contrib/rails/framework.rb +52 -46
- data/lib/ddtrace/contrib/rails/integration.rb +1 -1
- data/lib/ddtrace/contrib/rails/log_injection.rb +81 -0
- data/lib/ddtrace/contrib/rails/middlewares.rb +7 -2
- data/lib/ddtrace/contrib/rails/patcher.rb +15 -0
- data/lib/ddtrace/contrib/rake/configuration/settings.rb +7 -3
- data/lib/ddtrace/contrib/rake/ext.rb +5 -2
- data/lib/ddtrace/contrib/redis/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/redis/ext.rb +5 -2
- data/lib/ddtrace/contrib/redis/patcher.rb +1 -1
- data/lib/ddtrace/contrib/resque/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/resque/ext.rb +5 -2
- data/lib/ddtrace/contrib/rest_client/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/rest_client/ext.rb +5 -2
- data/lib/ddtrace/contrib/rest_client/request_patch.rb +2 -2
- data/lib/ddtrace/contrib/sequel/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/sequel/database.rb +1 -1
- data/lib/ddtrace/contrib/sequel/ext.rb +5 -2
- data/lib/ddtrace/contrib/sequel/utils.rb +19 -1
- data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/shoryuken/ext.rb +5 -2
- data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/sidekiq/ext.rb +6 -2
- data/lib/ddtrace/contrib/sidekiq/patcher.rb +8 -1
- data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +1 -0
- data/lib/ddtrace/contrib/sinatra/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/sinatra/env.rb +5 -4
- data/lib/ddtrace/contrib/sinatra/ext.rb +5 -2
- data/lib/ddtrace/contrib/sinatra/tracer.rb +21 -42
- data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +50 -23
- data/lib/ddtrace/contrib/sneakers/configuration/settings.rb +32 -0
- data/lib/ddtrace/contrib/sneakers/ext.rb +22 -0
- data/lib/ddtrace/contrib/sneakers/integration.rb +41 -0
- data/lib/ddtrace/contrib/sneakers/patcher.rb +24 -0
- data/lib/ddtrace/contrib/sneakers/tracer.rb +58 -0
- data/lib/ddtrace/contrib/sucker_punch/configuration/settings.rb +7 -2
- data/lib/ddtrace/contrib/sucker_punch/ext.rb +5 -2
- data/lib/ddtrace/contrib/sucker_punch/patcher.rb +1 -1
- data/lib/ddtrace/diagnostics/environment_logger.rb +278 -0
- data/lib/ddtrace/environment.rb +17 -3
- data/lib/ddtrace/ext/diagnostics.rb +3 -0
- data/lib/ddtrace/ext/environment.rb +2 -0
- data/lib/ddtrace/ext/transport.rb +1 -0
- data/lib/ddtrace/logger.rb +1 -1
- data/lib/ddtrace/pin.rb +39 -15
- data/lib/ddtrace/pipeline/span_filter.rb +15 -15
- data/lib/ddtrace/runtime/metrics.rb +18 -4
- data/lib/ddtrace/sampler.rb +2 -0
- data/lib/ddtrace/span.rb +10 -0
- data/lib/ddtrace/tracer.rb +15 -8
- data/lib/ddtrace/transport/http.rb +15 -0
- data/lib/ddtrace/transport/http/adapters/net.rb +8 -0
- data/lib/ddtrace/transport/http/adapters/test.rb +6 -0
- data/lib/ddtrace/transport/http/adapters/unix_socket.rb +4 -0
- data/lib/ddtrace/transport/response.rb +11 -0
- data/lib/ddtrace/version.rb +2 -2
- data/lib/ddtrace/workers/async.rb +2 -2
- data/lib/ddtrace/workers/loop.rb +1 -1
- data/lib/ddtrace/workers/polling.rb +1 -1
- data/lib/ddtrace/workers/trace_writer.rb +3 -0
- data/lib/ddtrace/writer.rb +33 -12
- metadata +124 -4
data/lib/ddtrace.rb
CHANGED
|
@@ -55,8 +55,11 @@ require 'ddtrace/contrib/grape/integration'
|
|
|
55
55
|
require 'ddtrace/contrib/graphql/integration'
|
|
56
56
|
require 'ddtrace/contrib/grpc/integration'
|
|
57
57
|
require 'ddtrace/contrib/http/integration'
|
|
58
|
+
require 'ddtrace/contrib/httprb/integration'
|
|
58
59
|
require 'ddtrace/contrib/integration'
|
|
60
|
+
require 'ddtrace/contrib/kafka/integration'
|
|
59
61
|
require 'ddtrace/contrib/presto/integration'
|
|
62
|
+
require 'ddtrace/contrib/que/integration'
|
|
60
63
|
require 'ddtrace/contrib/mysql2/integration'
|
|
61
64
|
require 'ddtrace/contrib/mongodb/integration'
|
|
62
65
|
require 'ddtrace/contrib/racecar/integration'
|
|
@@ -70,5 +73,6 @@ require 'ddtrace/contrib/sequel/integration'
|
|
|
70
73
|
require 'ddtrace/contrib/shoryuken/integration'
|
|
71
74
|
require 'ddtrace/contrib/sidekiq/integration'
|
|
72
75
|
require 'ddtrace/contrib/sinatra/integration'
|
|
76
|
+
require 'ddtrace/contrib/sneakers/integration'
|
|
73
77
|
require 'ddtrace/contrib/sucker_punch/integration'
|
|
74
78
|
require 'ddtrace/monkey'
|
|
@@ -22,9 +22,9 @@ module Datadog
|
|
|
22
22
|
# Build immutable components from settings
|
|
23
23
|
@components ||= nil
|
|
24
24
|
@components = if @components
|
|
25
|
-
|
|
25
|
+
replace_components!(target, @components)
|
|
26
26
|
else
|
|
27
|
-
|
|
27
|
+
build_components(target)
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
target
|
|
@@ -36,18 +36,49 @@ module Datadog
|
|
|
36
36
|
def_delegators \
|
|
37
37
|
:components,
|
|
38
38
|
:health_metrics,
|
|
39
|
-
:logger,
|
|
40
39
|
:runtime_metrics,
|
|
41
40
|
:tracer
|
|
42
41
|
|
|
42
|
+
def logger
|
|
43
|
+
if instance_variable_defined?(:@components) && @components
|
|
44
|
+
@temp_logger = nil
|
|
45
|
+
components.logger
|
|
46
|
+
else
|
|
47
|
+
# Use default logger without initializing components.
|
|
48
|
+
# This prevents recursive loops while initializing.
|
|
49
|
+
# e.g. Get logger --> Build components --> Log message --> Repeat...
|
|
50
|
+
@temp_logger ||= begin
|
|
51
|
+
logger = configuration.logger.instance || Datadog::Logger.new(STDOUT)
|
|
52
|
+
logger.level = configuration.diagnostics.debug ? ::Logger::DEBUG : configuration.logger.level
|
|
53
|
+
logger
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
43
58
|
def shutdown!
|
|
44
|
-
components.
|
|
59
|
+
components.shutdown! if instance_variable_defined?(:@components) && @components
|
|
45
60
|
end
|
|
46
61
|
|
|
47
62
|
protected
|
|
48
63
|
|
|
49
64
|
def components
|
|
50
|
-
@components ||=
|
|
65
|
+
@components ||= build_components(configuration)
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
private
|
|
69
|
+
|
|
70
|
+
def build_components(settings)
|
|
71
|
+
components = Components.new(settings)
|
|
72
|
+
components.startup!(settings)
|
|
73
|
+
components
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def replace_components!(settings, old)
|
|
77
|
+
components = Components.new(settings)
|
|
78
|
+
|
|
79
|
+
old.shutdown!(components)
|
|
80
|
+
components.startup!(settings)
|
|
81
|
+
components
|
|
51
82
|
end
|
|
52
83
|
end
|
|
53
84
|
end
|
|
@@ -10,12 +10,6 @@ module Datadog
|
|
|
10
10
|
# rubocop:disable Metrics/LineLength
|
|
11
11
|
class Components
|
|
12
12
|
class << self
|
|
13
|
-
def replace!(old, settings)
|
|
14
|
-
replacement = new(settings)
|
|
15
|
-
old.teardown!(replacement)
|
|
16
|
-
replacement
|
|
17
|
-
end
|
|
18
|
-
|
|
19
13
|
def build_health_metrics(settings)
|
|
20
14
|
settings = settings.diagnostics.health_metrics
|
|
21
15
|
options = { enabled: settings.enabled }
|
|
@@ -118,10 +112,13 @@ module Datadog
|
|
|
118
112
|
@health_metrics = self.class.build_health_metrics(settings)
|
|
119
113
|
end
|
|
120
114
|
|
|
115
|
+
# Starts up components
|
|
116
|
+
def startup!(settings); end
|
|
117
|
+
|
|
121
118
|
# Shuts down all the components in use.
|
|
122
119
|
# If it has another instance to compare to, it will compare
|
|
123
120
|
# and avoid tearing down parts still in use.
|
|
124
|
-
def
|
|
121
|
+
def shutdown!(replacement = nil)
|
|
125
122
|
# Shutdown the old tracer, unless it's still being used.
|
|
126
123
|
# (e.g. a custom tracer instance passed in.)
|
|
127
124
|
tracer.shutdown! unless replacement && tracer == replacement.tracer
|
|
@@ -13,7 +13,7 @@ module Datadog
|
|
|
13
13
|
|
|
14
14
|
ATTRS.each { |key| pin.public_send("#{key}=", opts[key]) if opts[key] }
|
|
15
15
|
|
|
16
|
-
pin.config = opts.reject { |key, _| ATTRS.include?(key) }
|
|
16
|
+
pin.config = opts.reject { |key, _| ATTRS.include?(key) || DEPRECATED_ATTRS.include?(key) }
|
|
17
17
|
|
|
18
18
|
true
|
|
19
19
|
end
|
|
@@ -22,7 +22,8 @@ module Datadog
|
|
|
22
22
|
|
|
23
23
|
attr_reader :pin, :opts
|
|
24
24
|
|
|
25
|
-
ATTRS = [:app, :tags, :app_type, :name, :
|
|
25
|
+
ATTRS = [:app, :tags, :app_type, :name, :service_name].freeze
|
|
26
|
+
DEPRECATED_ATTRS = [:tracer].freeze
|
|
26
27
|
|
|
27
28
|
private_constant :ATTRS
|
|
28
29
|
end
|
|
@@ -31,8 +31,16 @@ module Datadog
|
|
|
31
31
|
end
|
|
32
32
|
end
|
|
33
33
|
|
|
34
|
+
option :api_key do |o|
|
|
35
|
+
o.default { ENV.fetch(Ext::Environment::ENV_API_KEY, nil) }
|
|
36
|
+
o.lazy
|
|
37
|
+
end
|
|
38
|
+
|
|
34
39
|
settings :diagnostics do
|
|
35
|
-
option :debug
|
|
40
|
+
option :debug do |o|
|
|
41
|
+
o.default { env_to_bool(Datadog::Ext::Diagnostics::DD_TRACE_DEBUG, false) }
|
|
42
|
+
o.lazy
|
|
43
|
+
end
|
|
36
44
|
|
|
37
45
|
settings :health_metrics do
|
|
38
46
|
option :enabled do |o|
|
|
@@ -42,6 +50,14 @@ module Datadog
|
|
|
42
50
|
|
|
43
51
|
option :statsd
|
|
44
52
|
end
|
|
53
|
+
|
|
54
|
+
settings :startup_logs do
|
|
55
|
+
option :enabled do |o|
|
|
56
|
+
# Defaults to nil as we want to know when the default value is being used
|
|
57
|
+
o.default { env_to_bool(Datadog::Ext::Diagnostics::DD_TRACE_STARTUP_LOGS, nil) }
|
|
58
|
+
o.lazy
|
|
59
|
+
end
|
|
60
|
+
end
|
|
45
61
|
end
|
|
46
62
|
|
|
47
63
|
settings :distributed_tracing do
|
|
@@ -79,7 +95,7 @@ module Datadog
|
|
|
79
95
|
o.on_set { |value| set_option(:level, value.level) unless value.nil? }
|
|
80
96
|
end
|
|
81
97
|
|
|
82
|
-
option :level, default: ::Logger::
|
|
98
|
+
option :level, default: ::Logger::INFO
|
|
83
99
|
end
|
|
84
100
|
|
|
85
101
|
def logger=(logger)
|
|
@@ -138,6 +154,11 @@ module Datadog
|
|
|
138
154
|
o.lazy
|
|
139
155
|
end
|
|
140
156
|
|
|
157
|
+
option :site do |o|
|
|
158
|
+
o.default { ENV.fetch(Ext::Environment::ENV_SITE, nil) }
|
|
159
|
+
o.lazy
|
|
160
|
+
end
|
|
161
|
+
|
|
141
162
|
option :tags do |o|
|
|
142
163
|
o.default do
|
|
143
164
|
tags = {}
|
|
@@ -180,7 +201,10 @@ module Datadog
|
|
|
180
201
|
end
|
|
181
202
|
|
|
182
203
|
settings :tracer do
|
|
183
|
-
option :enabled
|
|
204
|
+
option :enabled do |o|
|
|
205
|
+
o.default { env_to_bool(Datadog::Ext::Diagnostics::DD_TRACE_ENABLED, true) }
|
|
206
|
+
o.lazy
|
|
207
|
+
end
|
|
184
208
|
option :hostname # TODO: Deprecate
|
|
185
209
|
option :instance
|
|
186
210
|
|
|
@@ -7,13 +7,18 @@ module Datadog
|
|
|
7
7
|
module Configuration
|
|
8
8
|
# Custom settings for the ActionCable integration
|
|
9
9
|
class Settings < Contrib::Configuration::Settings
|
|
10
|
+
option :enabled do |o|
|
|
11
|
+
o.default { env_to_bool(Ext::ENV_ENABLED, true) }
|
|
12
|
+
o.lazy
|
|
13
|
+
end
|
|
14
|
+
|
|
10
15
|
option :analytics_enabled do |o|
|
|
11
|
-
o.default { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) }
|
|
16
|
+
o.default { env_to_bool([Ext::ENV_ANALYTICS_ENABLED, Ext::ENV_ANALYTICS_ENABLED_OLD], false) }
|
|
12
17
|
o.lazy
|
|
13
18
|
end
|
|
14
19
|
|
|
15
20
|
option :analytics_sample_rate do |o|
|
|
16
|
-
o.default { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) }
|
|
21
|
+
o.default { env_to_float([Ext::ENV_ANALYTICS_SAMPLE_RATE, Ext::ENV_ANALYTICS_SAMPLE_RATE_OLD], 1.0) }
|
|
17
22
|
o.lazy
|
|
18
23
|
end
|
|
19
24
|
|
|
@@ -4,8 +4,11 @@ module Datadog
|
|
|
4
4
|
# ActionCable integration constants
|
|
5
5
|
module Ext
|
|
6
6
|
APP = 'action_cable'.freeze
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
ENV_ENABLED = 'DD_TRACE_ACTION_CABLE_ENABLED'.freeze
|
|
8
|
+
ENV_ANALYTICS_ENABLED = 'DD_TRACE_ACTION_CABLE_ANALYTICS_ENABLED'.freeze
|
|
9
|
+
ENV_ANALYTICS_ENABLED_OLD = 'DD_ACTION_CABLE_ANALYTICS_ENABLED'.freeze
|
|
10
|
+
ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_ACTION_CABLE_ANALYTICS_SAMPLE_RATE'.freeze
|
|
11
|
+
ENV_ANALYTICS_SAMPLE_RATE_OLD = 'DD_ACTION_CABLE_ANALYTICS_SAMPLE_RATE'.freeze
|
|
9
12
|
SERVICE_NAME = 'action_cable'.freeze
|
|
10
13
|
SPAN_ACTION = 'action_cable.action'.freeze
|
|
11
14
|
SPAN_BROADCAST = 'action_cable.broadcast'.freeze
|
|
@@ -7,13 +7,18 @@ module Datadog
|
|
|
7
7
|
module Configuration
|
|
8
8
|
# Custom settings for the ActionPack integration
|
|
9
9
|
class Settings < Contrib::Configuration::Settings
|
|
10
|
+
option :enabled do |o|
|
|
11
|
+
o.default { env_to_bool(Ext::ENV_ENABLED, true) }
|
|
12
|
+
o.lazy
|
|
13
|
+
end
|
|
14
|
+
|
|
10
15
|
option :analytics_enabled do |o|
|
|
11
|
-
o.default { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, nil) }
|
|
16
|
+
o.default { env_to_bool([Ext::ENV_ANALYTICS_ENABLED, Ext::ENV_ANALYTICS_ENABLED_OLD], nil) }
|
|
12
17
|
o.lazy
|
|
13
18
|
end
|
|
14
19
|
|
|
15
20
|
option :analytics_sample_rate do |o|
|
|
16
|
-
o.default { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) }
|
|
21
|
+
o.default { env_to_float([Ext::ENV_ANALYTICS_SAMPLE_RATE, Ext::ENV_ANALYTICS_SAMPLE_RATE_OLD], 1.0) }
|
|
17
22
|
o.lazy
|
|
18
23
|
end
|
|
19
24
|
|
|
@@ -4,8 +4,11 @@ module Datadog
|
|
|
4
4
|
# ActionPack integration constants
|
|
5
5
|
module Ext
|
|
6
6
|
APP = 'action_pack'.freeze
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
ENV_ENABLED = 'DD_TRACE_ACTION_PACK_ENABLED'.freeze
|
|
8
|
+
ENV_ANALYTICS_ENABLED = 'DD_TRACE_ACTION_PACK_ANALYTICS_ENABLED'.freeze
|
|
9
|
+
ENV_ANALYTICS_ENABLED_OLD = 'DD_ACTION_PACK_ANALYTICS_ENABLED'.freeze
|
|
10
|
+
ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_ACTION_PACK_ANALYTICS_SAMPLE_RATE'.freeze
|
|
11
|
+
ENV_ANALYTICS_SAMPLE_RATE_OLD = 'DD_ACTION_PACK_ANALYTICS_SAMPLE_RATE'.freeze
|
|
9
12
|
SERVICE_NAME = 'action_pack'.freeze
|
|
10
13
|
SPAN_ACTION_CONTROLLER = 'rails.action_controller'.freeze
|
|
11
14
|
TAG_ROUTE_ACTION = 'rails.route.action'.freeze
|
|
@@ -7,13 +7,18 @@ module Datadog
|
|
|
7
7
|
module Configuration
|
|
8
8
|
# Custom settings for the ActionView integration
|
|
9
9
|
class Settings < Contrib::Configuration::Settings
|
|
10
|
+
option :enabled do |o|
|
|
11
|
+
o.default { env_to_bool(Ext::ENV_ENABLED, true) }
|
|
12
|
+
o.lazy
|
|
13
|
+
end
|
|
14
|
+
|
|
10
15
|
option :analytics_enabled do |o|
|
|
11
|
-
o.default { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) }
|
|
16
|
+
o.default { env_to_bool([Ext::ENV_ANALYTICS_ENABLED, Ext::ENV_ANALYTICS_ENABLED_OLD], false) }
|
|
12
17
|
o.lazy
|
|
13
18
|
end
|
|
14
19
|
|
|
15
20
|
option :analytics_sample_rate do |o|
|
|
16
|
-
o.default { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) }
|
|
21
|
+
o.default { env_to_float([Ext::ENV_ANALYTICS_SAMPLE_RATE, Ext::ENV_ANALYTICS_SAMPLE_RATE_OLD], 1.0) }
|
|
17
22
|
o.lazy
|
|
18
23
|
end
|
|
19
24
|
|
|
@@ -4,8 +4,11 @@ module Datadog
|
|
|
4
4
|
# ActionView integration constants
|
|
5
5
|
module Ext
|
|
6
6
|
APP = 'action_view'.freeze
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
ENV_ENABLED = 'DD_TRACE_ACTION_VIEW_ENABLED'.freeze
|
|
8
|
+
ENV_ANALYTICS_ENABLED = 'DD_TRACE_ACTION_VIEW_ANALYTICS_ENABLED'.freeze
|
|
9
|
+
ENV_ANALYTICS_ENABLED_OLD = 'DD_ACTION_VIEW_ANALYTICS_ENABLED'.freeze
|
|
10
|
+
ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_ACTION_VIEW_ANALYTICS_SAMPLE_RATE'.freeze
|
|
11
|
+
ENV_ANALYTICS_SAMPLE_RATE_OLD = 'DD_ACTION_VIEW_ANALYTICS_SAMPLE_RATE'.freeze
|
|
9
12
|
SERVICE_NAME = 'action_view'.freeze
|
|
10
13
|
SPAN_RENDER_PARTIAL = 'rails.render_partial'.freeze
|
|
11
14
|
SPAN_RENDER_TEMPLATE = 'rails.render_template'.freeze
|
|
@@ -7,13 +7,18 @@ module Datadog
|
|
|
7
7
|
module Configuration
|
|
8
8
|
# Custom settings for the ActiveModelSerializers integration
|
|
9
9
|
class Settings < Contrib::Configuration::Settings
|
|
10
|
+
option :enabled do |o|
|
|
11
|
+
o.default { env_to_bool(Ext::ENV_ENABLED, true) }
|
|
12
|
+
o.lazy
|
|
13
|
+
end
|
|
14
|
+
|
|
10
15
|
option :analytics_enabled do |o|
|
|
11
|
-
o.default { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) }
|
|
16
|
+
o.default { env_to_bool([Ext::ENV_ANALYTICS_ENABLED, Ext::ENV_ANALYTICS_ENABLED_OLD], false) }
|
|
12
17
|
o.lazy
|
|
13
18
|
end
|
|
14
19
|
|
|
15
20
|
option :analytics_sample_rate do |o|
|
|
16
|
-
o.default { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) }
|
|
21
|
+
o.default { env_to_float([Ext::ENV_ANALYTICS_SAMPLE_RATE, Ext::ENV_ANALYTICS_SAMPLE_RATE_OLD], 1.0) }
|
|
17
22
|
o.lazy
|
|
18
23
|
end
|
|
19
24
|
|
|
@@ -4,8 +4,11 @@ module Datadog
|
|
|
4
4
|
# ActiveModelSerializers integration constants
|
|
5
5
|
module Ext
|
|
6
6
|
APP = 'active_model_serializers'.freeze
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
ENV_ENABLED = 'DD_TRACE_ACTIVE_MODEL_SERIALIZERS_ENABLED'.freeze
|
|
8
|
+
ENV_ANALYTICS_ENABLED = 'DD_TRACE_ACTIVE_MODEL_SERIALIZERS_ANALYTICS_ENABLED'.freeze
|
|
9
|
+
ENV_ANALYTICS_ENABLED_OLD = 'DD_ACTIVE_MODEL_SERIALIZERS_ANALYTICS_ENABLED'.freeze
|
|
10
|
+
ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_ACTIVE_MODEL_SERIALIZERS_ANALYTICS_SAMPLE_RATE'.freeze
|
|
11
|
+
ENV_ANALYTICS_SAMPLE_RATE_OLD = 'DD_ACTIVE_MODEL_SERIALIZERS_ANALYTICS_SAMPLE_RATE'.freeze
|
|
9
12
|
SERVICE_NAME = 'active_model_serializers'.freeze
|
|
10
13
|
SPAN_RENDER = 'active_model_serializers.render'.freeze
|
|
11
14
|
SPAN_SERIALIZE = 'active_model_serializers.serialize'.freeze
|
|
@@ -8,13 +8,18 @@ module Datadog
|
|
|
8
8
|
module Configuration
|
|
9
9
|
# Custom settings for the ActiveRecord integration
|
|
10
10
|
class Settings < Contrib::Configuration::Settings
|
|
11
|
+
option :enabled do |o|
|
|
12
|
+
o.default { env_to_bool(Ext::ENV_ENABLED, true) }
|
|
13
|
+
o.lazy
|
|
14
|
+
end
|
|
15
|
+
|
|
11
16
|
option :analytics_enabled do |o|
|
|
12
|
-
o.default { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) }
|
|
17
|
+
o.default { env_to_bool([Ext::ENV_ANALYTICS_ENABLED, Ext::ENV_ANALYTICS_ENABLED_OLD], false) }
|
|
13
18
|
o.lazy
|
|
14
19
|
end
|
|
15
20
|
|
|
16
21
|
option :analytics_sample_rate do |o|
|
|
17
|
-
o.default { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) }
|
|
22
|
+
o.default { env_to_float([Ext::ENV_ANALYTICS_SAMPLE_RATE, Ext::ENV_ANALYTICS_SAMPLE_RATE_OLD], 1.0) }
|
|
18
23
|
o.lazy
|
|
19
24
|
end
|
|
20
25
|
|
|
@@ -4,8 +4,11 @@ module Datadog
|
|
|
4
4
|
# ActiveRecord integration constants
|
|
5
5
|
module Ext
|
|
6
6
|
APP = 'active_record'.freeze
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
ENV_ENABLED = 'DD_TRACE_ACTIVE_RECORD_ENABLED'.freeze
|
|
8
|
+
ENV_ANALYTICS_ENABLED = 'DD_TRACE_ACTIVE_RECORD_ANALYTICS_ENABLED'.freeze
|
|
9
|
+
ENV_ANALYTICS_ENABLED_OLD = 'DD_ACTIVE_RECORD_ANALYTICS_ENABLED'.freeze
|
|
10
|
+
ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_ACTIVE_RECORD_ANALYTICS_SAMPLE_RATE'.freeze
|
|
11
|
+
ENV_ANALYTICS_SAMPLE_RATE_OLD = 'DD_ACTIVE_RECORD_ANALYTICS_SAMPLE_RATE'.freeze
|
|
9
12
|
SERVICE_NAME = 'active_record'.freeze
|
|
10
13
|
SPAN_INSTANTIATION = 'active_record.instantiation'.freeze
|
|
11
14
|
SPAN_SQL = 'active_record.sql'.freeze
|
|
@@ -14,7 +14,7 @@ module Datadog
|
|
|
14
14
|
# We need to do a per-method monkey patching as some of them might
|
|
15
15
|
# be redefined, and some of them not. The latest version of redis-activesupport
|
|
16
16
|
# redefines write but leaves untouched read and delete:
|
|
17
|
-
# https://github.com/redis-store/redis-activesupport/blob/
|
|
17
|
+
# https://github.com/redis-store/redis-activesupport/blob/v4.1.5/lib/active_support/cache/redis_store.rb
|
|
18
18
|
#
|
|
19
19
|
# For Rails >= 5.2 w/o redis-activesupport...
|
|
20
20
|
# ActiveSupport includes a Redis cache store internally, and does not require these overrides.
|
|
@@ -7,13 +7,18 @@ module Datadog
|
|
|
7
7
|
module Configuration
|
|
8
8
|
# Custom settings for the ActiveSupport integration
|
|
9
9
|
class Settings < Contrib::Configuration::Settings
|
|
10
|
+
option :enabled do |o|
|
|
11
|
+
o.default { env_to_bool(Ext::ENV_ENABLED, true) }
|
|
12
|
+
o.lazy
|
|
13
|
+
end
|
|
14
|
+
|
|
10
15
|
option :analytics_enabled do |o|
|
|
11
|
-
o.default { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) }
|
|
16
|
+
o.default { env_to_bool([Ext::ENV_ANALYTICS_ENABLED, Ext::ENV_ANALYTICS_ENABLED_OLD], false) }
|
|
12
17
|
o.lazy
|
|
13
18
|
end
|
|
14
19
|
|
|
15
20
|
option :analytics_sample_rate do |o|
|
|
16
|
-
o.default { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) }
|
|
21
|
+
o.default { env_to_float([Ext::ENV_ANALYTICS_SAMPLE_RATE, Ext::ENV_ANALYTICS_SAMPLE_RATE_OLD], 1.0) }
|
|
17
22
|
o.lazy
|
|
18
23
|
end
|
|
19
24
|
|
|
@@ -4,8 +4,11 @@ module Datadog
|
|
|
4
4
|
# ActiveSupport integration constants
|
|
5
5
|
module Ext
|
|
6
6
|
APP = 'active_support'.freeze
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
ENV_ENABLED = 'DD_TRACE_ACTIVE_SUPPORT_ENABLED'.freeze
|
|
8
|
+
ENV_ANALYTICS_ENABLED = 'DD_TRACE_ACTIVE_SUPPORT_ANALYTICS_ENABLED'.freeze
|
|
9
|
+
ENV_ANALYTICS_ENABLED_OLD = 'DD_ACTIVE_SUPPORT_ANALYTICS_ENABLED'.freeze
|
|
10
|
+
ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_ACTIVE_SUPPORT_ANALYTICS_SAMPLE_RATE'.freeze
|
|
11
|
+
ENV_ANALYTICS_SAMPLE_RATE_OLD = 'DD_ACTIVE_SUPPORT_ANALYTICS_SAMPLE_RATE'.freeze
|
|
9
12
|
QUANTIZE_CACHE_MAX_KEY_SIZE = 300
|
|
10
13
|
RESOURCE_CACHE_DELETE = 'DELETE'.freeze
|
|
11
14
|
RESOURCE_CACHE_GET = 'GET'.freeze
|
|
@@ -18,6 +18,8 @@ module Datadog
|
|
|
18
18
|
# Redefines some class behaviors for a Subscriber to make
|
|
19
19
|
# it a bit simpler for an Event.
|
|
20
20
|
module ClassMethods
|
|
21
|
+
DEFAULT_TRACER = -> { Datadog.tracer }
|
|
22
|
+
|
|
21
23
|
def subscribe!
|
|
22
24
|
super
|
|
23
25
|
end
|
|
@@ -52,7 +54,7 @@ module Datadog
|
|
|
52
54
|
end
|
|
53
55
|
|
|
54
56
|
def tracer
|
|
55
|
-
|
|
57
|
+
DEFAULT_TRACER
|
|
56
58
|
end
|
|
57
59
|
end
|
|
58
60
|
end
|
|
@@ -75,7 +75,7 @@ module Datadog
|
|
|
75
75
|
callbacks.run(name, :before_trace, id, payload, start)
|
|
76
76
|
|
|
77
77
|
# Start a trace
|
|
78
|
-
tracer.trace(@span_name, @options).tap do |span|
|
|
78
|
+
tracer.trace(@span_name, @options.dup).tap do |span|
|
|
79
79
|
# Assign start time if provided
|
|
80
80
|
span.start_time = start unless start.nil?
|
|
81
81
|
payload[:datadog_span] = span
|