ddtrace 0.28.0 → 0.29.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 +8 -0
- data/Appraisals +57 -2
- data/CHANGELOG.md +41 -12
- data/Rakefile +3 -3
- data/ddtrace.gemspec +2 -1
- data/docs/DevelopmentGuide.md +1 -1
- data/docs/GettingStarted.md +6 -6
- data/lib/ddtrace.rb +7 -0
- data/lib/ddtrace/buffer.rb +60 -1
- data/lib/ddtrace/configuration/base.rb +82 -0
- data/lib/ddtrace/configuration/option.rb +28 -5
- data/lib/ddtrace/configuration/option_definition.rb +100 -0
- data/lib/ddtrace/configuration/options.rb +28 -14
- data/lib/ddtrace/configuration/settings.rb +77 -64
- data/lib/ddtrace/contrib/action_pack/configuration/settings.rb +9 -7
- data/lib/ddtrace/contrib/action_view/configuration/settings.rb +8 -6
- data/lib/ddtrace/contrib/active_model_serializers/configuration/settings.rb +8 -14
- data/lib/ddtrace/contrib/active_model_serializers/event.rb +1 -1
- data/lib/ddtrace/contrib/active_record/configuration/settings.rb +11 -16
- data/lib/ddtrace/contrib/active_record/event.rb +1 -1
- data/lib/ddtrace/contrib/active_support/configuration/settings.rb +8 -6
- data/lib/ddtrace/contrib/active_support/notifications/subscriber.rb +2 -2
- data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +4 -1
- data/lib/ddtrace/contrib/aws/configuration/settings.rb +8 -6
- data/lib/ddtrace/contrib/configuration/settings.rb +5 -11
- data/lib/ddtrace/contrib/dalli/configuration/settings.rb +8 -6
- data/lib/ddtrace/contrib/dalli/instrumentation.rb +1 -18
- data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +8 -6
- data/lib/ddtrace/contrib/elasticsearch/configuration/settings.rb +8 -6
- data/lib/ddtrace/contrib/ethon/configuration/settings.rb +8 -6
- data/lib/ddtrace/contrib/ethon/integration.rb +0 -4
- data/lib/ddtrace/contrib/excon/configuration/settings.rb +9 -7
- data/lib/ddtrace/contrib/excon/middleware.rb +1 -1
- data/lib/ddtrace/contrib/faraday/configuration/settings.rb +8 -6
- data/lib/ddtrace/contrib/faraday/middleware.rb +1 -1
- data/lib/ddtrace/contrib/faraday/patcher.rb +8 -2
- data/lib/ddtrace/contrib/faraday/rack_builder.rb +18 -0
- data/lib/ddtrace/contrib/grape/configuration/settings.rb +8 -6
- data/lib/ddtrace/contrib/grape/instrumentation.rb +2 -42
- data/lib/ddtrace/contrib/graphql/configuration/settings.rb +8 -6
- data/lib/ddtrace/contrib/grpc/configuration/settings.rb +8 -6
- data/lib/ddtrace/contrib/grpc/integration.rb +1 -3
- data/lib/ddtrace/contrib/http/configuration/settings.rb +8 -6
- data/lib/ddtrace/contrib/http/instrumentation.rb +1 -23
- data/lib/ddtrace/contrib/mongodb/configuration/settings.rb +8 -6
- data/lib/ddtrace/contrib/mysql2/configuration/settings.rb +8 -6
- data/lib/ddtrace/contrib/mysql2/instrumentation.rb +1 -23
- data/lib/ddtrace/contrib/patchable.rb +1 -1
- data/lib/ddtrace/contrib/racecar/configuration/settings.rb +8 -14
- data/lib/ddtrace/contrib/racecar/event.rb +1 -1
- data/lib/ddtrace/contrib/rack/configuration/settings.rb +8 -6
- data/lib/ddtrace/contrib/rack/request_queue.rb +7 -6
- data/lib/ddtrace/contrib/rails/configuration/settings.rb +30 -21
- data/lib/ddtrace/contrib/rake/configuration/settings.rb +8 -6
- data/lib/ddtrace/contrib/rake/integration.rb +0 -4
- data/lib/ddtrace/contrib/redis/configuration/settings.rb +8 -6
- data/lib/ddtrace/contrib/resque/configuration/settings.rb +8 -6
- data/lib/ddtrace/contrib/rest_client/configuration/settings.rb +8 -6
- data/lib/ddtrace/contrib/rest_client/integration.rb +0 -4
- data/lib/ddtrace/contrib/rest_client/request_patch.rb +1 -18
- data/lib/ddtrace/contrib/sequel/configuration/settings.rb +8 -6
- data/lib/ddtrace/contrib/sequel/integration.rb +0 -4
- data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +8 -6
- data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +8 -6
- data/lib/ddtrace/contrib/sinatra/configuration/settings.rb +8 -6
- data/lib/ddtrace/contrib/sucker_punch/configuration/settings.rb +8 -6
- data/lib/ddtrace/diagnostics/health.rb +30 -0
- data/lib/ddtrace/distributed_tracing/headers/datadog.rb +1 -1
- data/lib/ddtrace/distributed_tracing/headers/headers.rb +2 -0
- data/lib/ddtrace/ext/diagnostics.rb +25 -0
- data/lib/ddtrace/ext/runtime.rb +1 -7
- data/lib/ddtrace/metrics.rb +89 -6
- data/lib/ddtrace/propagation/http_propagator.rb +2 -2
- data/lib/ddtrace/runtime/class_count.rb +3 -3
- data/lib/ddtrace/runtime/object_space.rb +19 -0
- data/lib/ddtrace/span.rb +1 -1
- data/lib/ddtrace/tracer.rb +5 -4
- data/lib/ddtrace/transport/http/client.rb +3 -4
- data/lib/ddtrace/transport/http/response.rb +4 -0
- data/lib/ddtrace/transport/http/statistics.rb +30 -0
- data/lib/ddtrace/transport/statistics.rb +28 -0
- data/lib/ddtrace/version.rb +3 -1
- data/lib/ddtrace/workers.rb +4 -2
- data/lib/ddtrace/writer.rb +3 -3
- metadata +74 -54
|
@@ -7,13 +7,15 @@ module Datadog
|
|
|
7
7
|
module Configuration
|
|
8
8
|
# Custom settings for the DelayedJob integration
|
|
9
9
|
class Settings < Contrib::Configuration::Settings
|
|
10
|
-
option
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
option :analytics_enabled do |o|
|
|
11
|
+
o.default { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) }
|
|
12
|
+
o.lazy
|
|
13
|
+
end
|
|
13
14
|
|
|
14
|
-
option
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
option :analytics_sample_rate do |o|
|
|
16
|
+
o.default { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) }
|
|
17
|
+
o.lazy
|
|
18
|
+
end
|
|
17
19
|
|
|
18
20
|
option :service_name, default: Ext::SERVICE_NAME
|
|
19
21
|
end
|
|
@@ -7,13 +7,15 @@ module Datadog
|
|
|
7
7
|
module Configuration
|
|
8
8
|
# Custom settings for the Elasticsearch integration
|
|
9
9
|
class Settings < Contrib::Configuration::Settings
|
|
10
|
-
option
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
option :analytics_enabled do |o|
|
|
11
|
+
o.default { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) }
|
|
12
|
+
o.lazy
|
|
13
|
+
end
|
|
13
14
|
|
|
14
|
-
option
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
option :analytics_sample_rate do |o|
|
|
16
|
+
o.default { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) }
|
|
17
|
+
o.lazy
|
|
18
|
+
end
|
|
17
19
|
|
|
18
20
|
option :quantize, default: {}
|
|
19
21
|
option :service_name, default: Ext::SERVICE_NAME
|
|
@@ -7,13 +7,15 @@ module Datadog
|
|
|
7
7
|
module Configuration
|
|
8
8
|
# Custom settings for the Ethon integration
|
|
9
9
|
class Settings < Contrib::Configuration::Settings
|
|
10
|
-
option
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
option :analytics_enabled do |o|
|
|
11
|
+
o.default { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) }
|
|
12
|
+
o.lazy
|
|
13
|
+
end
|
|
13
14
|
|
|
14
|
-
option
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
option :analytics_sample_rate do |o|
|
|
16
|
+
o.default { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) }
|
|
17
|
+
o.lazy
|
|
18
|
+
end
|
|
17
19
|
|
|
18
20
|
option :distributed_tracing, default: true
|
|
19
21
|
option :service_name, default: Ext::SERVICE_NAME
|
|
@@ -7,16 +7,18 @@ module Datadog
|
|
|
7
7
|
module Configuration
|
|
8
8
|
# Custom settings for the Excon integration
|
|
9
9
|
class Settings < Contrib::Configuration::Settings
|
|
10
|
-
option
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
option :analytics_enabled do |o|
|
|
11
|
+
o.default { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) }
|
|
12
|
+
o.lazy
|
|
13
|
+
end
|
|
13
14
|
|
|
14
|
-
option
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
option :analytics_sample_rate do |o|
|
|
16
|
+
o.default { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) }
|
|
17
|
+
o.lazy
|
|
18
|
+
end
|
|
17
19
|
|
|
18
20
|
option :distributed_tracing, default: true
|
|
19
|
-
option :error_handler
|
|
21
|
+
option :error_handler
|
|
20
22
|
option :service_name, default: Ext::SERVICE_NAME
|
|
21
23
|
option :split_by_domain, default: false
|
|
22
24
|
end
|
|
@@ -12,13 +12,15 @@ module Datadog
|
|
|
12
12
|
Datadog::Ext::HTTP::ERROR_RANGE.cover?(env[:status])
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
option
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
option :analytics_enabled do |o|
|
|
16
|
+
o.default { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) }
|
|
17
|
+
o.lazy
|
|
18
|
+
end
|
|
18
19
|
|
|
19
|
-
option
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
option :analytics_sample_rate do |o|
|
|
21
|
+
o.default { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) }
|
|
22
|
+
o.lazy
|
|
23
|
+
end
|
|
22
24
|
|
|
23
25
|
option :distributed_tracing, default: true
|
|
24
26
|
option :error_handler, default: DEFAULT_ERROR_HANDLER
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
require 'ddtrace/contrib/patcher'
|
|
2
2
|
require 'ddtrace/ext/app_types'
|
|
3
3
|
require 'ddtrace/contrib/faraday/ext'
|
|
4
|
+
require 'ddtrace/contrib/faraday/rack_builder'
|
|
4
5
|
|
|
5
6
|
module Datadog
|
|
6
7
|
module Contrib
|
|
@@ -21,7 +22,8 @@ module Datadog
|
|
|
21
22
|
require 'ddtrace/contrib/faraday/middleware'
|
|
22
23
|
|
|
23
24
|
add_pin!
|
|
24
|
-
|
|
25
|
+
register_middleware!
|
|
26
|
+
add_default_middleware!
|
|
25
27
|
rescue StandardError => e
|
|
26
28
|
Datadog::Tracer.log.error("Unable to apply Faraday integration: #{e}")
|
|
27
29
|
end
|
|
@@ -38,10 +40,14 @@ module Datadog
|
|
|
38
40
|
).onto(::Faraday)
|
|
39
41
|
end
|
|
40
42
|
|
|
41
|
-
def
|
|
43
|
+
def register_middleware!
|
|
42
44
|
::Faraday::Middleware.register_middleware(ddtrace: Middleware)
|
|
43
45
|
end
|
|
44
46
|
|
|
47
|
+
def add_default_middleware!
|
|
48
|
+
::Faraday::RackBuilder.send(:prepend, RackBuilder)
|
|
49
|
+
end
|
|
50
|
+
|
|
45
51
|
def get_option(option)
|
|
46
52
|
Datadog.configuration[:faraday].get_option(option)
|
|
47
53
|
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
module Datadog
|
|
2
|
+
module Contrib
|
|
3
|
+
module Faraday
|
|
4
|
+
# Handles installation of our middleware if the user has *not*
|
|
5
|
+
# already explicitly configured it for this correction.
|
|
6
|
+
#
|
|
7
|
+
# RackBuilder class was introduced in faraday 0.9.0:
|
|
8
|
+
# https://github.com/lostisland/faraday/commit/77d7546d6d626b91086f427c56bc2cdd951353b3
|
|
9
|
+
module RackBuilder
|
|
10
|
+
def adapter(*args)
|
|
11
|
+
use(:ddtrace) unless @handlers.any? { |h| h.klass == Middleware }
|
|
12
|
+
|
|
13
|
+
super
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -8,13 +8,15 @@ module Datadog
|
|
|
8
8
|
module Configuration
|
|
9
9
|
# Custom settings for the Grape integration
|
|
10
10
|
class Settings < Contrib::Configuration::Settings
|
|
11
|
-
option
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
option :analytics_enabled do |o|
|
|
12
|
+
o.default { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, nil) }
|
|
13
|
+
o.lazy
|
|
14
|
+
end
|
|
14
15
|
|
|
15
|
-
option
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
option :analytics_sample_rate do |o|
|
|
17
|
+
o.default { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) }
|
|
18
|
+
o.lazy
|
|
19
|
+
end
|
|
18
20
|
|
|
19
21
|
option :enabled, default: true
|
|
20
22
|
option :service_name, default: Ext::SERVICE_NAME
|
|
@@ -4,48 +4,8 @@ module Datadog
|
|
|
4
4
|
# Instrumentation for Grape::Endpoint
|
|
5
5
|
module Instrumentation
|
|
6
6
|
def self.included(base)
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
# Class methods
|
|
10
|
-
singleton_class.send(:include, ClassMethodsCompatibility)
|
|
11
|
-
singleton_class.send(:include, ClassMethods)
|
|
12
|
-
|
|
13
|
-
# Instance methods
|
|
14
|
-
include InstanceMethodsCompatibility
|
|
15
|
-
include InstanceMethods
|
|
16
|
-
end
|
|
17
|
-
else
|
|
18
|
-
base.singleton_class.send(:prepend, ClassMethods)
|
|
19
|
-
base.send(:prepend, InstanceMethods)
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
# Compatibility shim for Rubies not supporting `.prepend`
|
|
24
|
-
module ClassMethodsCompatibility
|
|
25
|
-
def self.included(base)
|
|
26
|
-
base.class_eval do
|
|
27
|
-
alias_method :generate_api_method_without_datadog, :generate_api_method
|
|
28
|
-
remove_method :generate_api_method
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def generate_api_method(*args, &block)
|
|
33
|
-
generate_api_method_without_datadog(*args, &block)
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
# Compatibility shim for Rubies not supporting `.prepend`
|
|
38
|
-
module InstanceMethodsCompatibility
|
|
39
|
-
def self.included(base)
|
|
40
|
-
base.class_eval do
|
|
41
|
-
alias_method :run_without_datadog, :run
|
|
42
|
-
remove_method :run
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def run(*args, &block)
|
|
47
|
-
run_without_datadog(*args, &block)
|
|
48
|
-
end
|
|
7
|
+
base.singleton_class.send(:prepend, ClassMethods)
|
|
8
|
+
base.send(:prepend, InstanceMethods)
|
|
49
9
|
end
|
|
50
10
|
|
|
51
11
|
# ClassMethods - implementing instrumentation
|
|
@@ -8,13 +8,15 @@ module Datadog
|
|
|
8
8
|
module Configuration
|
|
9
9
|
# Custom settings for the GraphQL integration
|
|
10
10
|
class Settings < Contrib::Configuration::Settings
|
|
11
|
-
option
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
option :analytics_enabled do |o|
|
|
12
|
+
o.default { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, nil) }
|
|
13
|
+
o.lazy
|
|
14
|
+
end
|
|
14
15
|
|
|
15
|
-
option
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
option :analytics_sample_rate do |o|
|
|
17
|
+
o.default { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) }
|
|
18
|
+
o.lazy
|
|
19
|
+
end
|
|
18
20
|
|
|
19
21
|
option :schemas
|
|
20
22
|
option :service_name, default: Ext::SERVICE_NAME
|
|
@@ -7,13 +7,15 @@ module Datadog
|
|
|
7
7
|
module Configuration
|
|
8
8
|
# Custom settings for the gRPC integration
|
|
9
9
|
class Settings < Contrib::Configuration::Settings
|
|
10
|
-
option
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
option :analytics_enabled do |o|
|
|
11
|
+
o.default { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) }
|
|
12
|
+
o.lazy
|
|
13
|
+
end
|
|
13
14
|
|
|
14
|
-
option
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
option :analytics_sample_rate do |o|
|
|
16
|
+
o.default { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) }
|
|
17
|
+
o.lazy
|
|
18
|
+
end
|
|
17
19
|
|
|
18
20
|
option :service_name, default: Ext::SERVICE_NAME
|
|
19
21
|
end
|
|
@@ -20,9 +20,7 @@ module Datadog
|
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
def self.compatible?
|
|
23
|
-
super
|
|
24
|
-
&& Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.0') \
|
|
25
|
-
&& version >= Gem::Version.new('0.10.0')
|
|
23
|
+
super && version >= Gem::Version.new('0.10.0')
|
|
26
24
|
end
|
|
27
25
|
|
|
28
26
|
def default_configuration
|
|
@@ -7,13 +7,15 @@ module Datadog
|
|
|
7
7
|
module Configuration
|
|
8
8
|
# Custom settings for the HTTP integration
|
|
9
9
|
class Settings < Contrib::Configuration::Settings
|
|
10
|
-
option
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
option :analytics_enabled do |o|
|
|
11
|
+
o.default { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) }
|
|
12
|
+
o.lazy
|
|
13
|
+
end
|
|
13
14
|
|
|
14
|
-
option
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
option :analytics_sample_rate do |o|
|
|
16
|
+
o.default { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) }
|
|
17
|
+
o.lazy
|
|
18
|
+
end
|
|
17
19
|
|
|
18
20
|
option :distributed_tracing, default: true
|
|
19
21
|
option :service_name, default: Ext::SERVICE_NAME
|
|
@@ -12,15 +12,7 @@ module Datadog
|
|
|
12
12
|
# Instrumentation for Net::HTTP
|
|
13
13
|
module Instrumentation
|
|
14
14
|
def self.included(base)
|
|
15
|
-
|
|
16
|
-
base.class_eval do
|
|
17
|
-
# Instance methods
|
|
18
|
-
include InstanceMethodsCompatibility
|
|
19
|
-
include InstanceMethods
|
|
20
|
-
end
|
|
21
|
-
else
|
|
22
|
-
base.send(:prepend, InstanceMethods)
|
|
23
|
-
end
|
|
15
|
+
base.send(:prepend, InstanceMethods)
|
|
24
16
|
end
|
|
25
17
|
|
|
26
18
|
# Span hook invoked after request is completed.
|
|
@@ -34,20 +26,6 @@ module Datadog
|
|
|
34
26
|
end
|
|
35
27
|
end
|
|
36
28
|
|
|
37
|
-
# Compatibility shim for Rubies not supporting `.prepend`
|
|
38
|
-
module InstanceMethodsCompatibility
|
|
39
|
-
def self.included(base)
|
|
40
|
-
base.class_eval do
|
|
41
|
-
alias_method :request_without_datadog, :request
|
|
42
|
-
remove_method :request
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def request(*args, &block)
|
|
47
|
-
request_without_datadog(*args, &block)
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
|
|
51
29
|
# InstanceMethods - implementing instrumentation
|
|
52
30
|
module InstanceMethods
|
|
53
31
|
def request(req, body = nil, &block) # :yield: +response+
|
|
@@ -9,13 +9,15 @@ module Datadog
|
|
|
9
9
|
class Settings < Contrib::Configuration::Settings
|
|
10
10
|
DEFAULT_QUANTIZE = { show: [:collection, :database, :operation] }.freeze
|
|
11
11
|
|
|
12
|
-
option
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
option :analytics_enabled do |o|
|
|
13
|
+
o.default { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) }
|
|
14
|
+
o.lazy
|
|
15
|
+
end
|
|
15
16
|
|
|
16
|
-
option
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
option :analytics_sample_rate do |o|
|
|
18
|
+
o.default { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) }
|
|
19
|
+
o.lazy
|
|
20
|
+
end
|
|
19
21
|
|
|
20
22
|
option :quantize, default: DEFAULT_QUANTIZE
|
|
21
23
|
option :service_name, default: Ext::SERVICE_NAME
|
|
@@ -7,13 +7,15 @@ module Datadog
|
|
|
7
7
|
module Configuration
|
|
8
8
|
# Custom settings for the Mysql2 integration
|
|
9
9
|
class Settings < Contrib::Configuration::Settings
|
|
10
|
-
option
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
option :analytics_enabled do |o|
|
|
11
|
+
o.default { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) }
|
|
12
|
+
o.lazy
|
|
13
|
+
end
|
|
13
14
|
|
|
14
|
-
option
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
option :analytics_sample_rate do |o|
|
|
16
|
+
o.default { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) }
|
|
17
|
+
o.lazy
|
|
18
|
+
end
|
|
17
19
|
|
|
18
20
|
option :service_name, default: Ext::SERVICE_NAME
|
|
19
21
|
end
|
|
@@ -10,29 +10,7 @@ module Datadog
|
|
|
10
10
|
# Mysql2::Client patch module
|
|
11
11
|
module Instrumentation
|
|
12
12
|
def self.included(base)
|
|
13
|
-
|
|
14
|
-
base.class_eval do
|
|
15
|
-
# Instance methods
|
|
16
|
-
include InstanceMethodsCompatibility
|
|
17
|
-
include InstanceMethods
|
|
18
|
-
end
|
|
19
|
-
else
|
|
20
|
-
base.send(:prepend, InstanceMethods)
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
# Mysql2::Client patch 1.9.3 instance methods
|
|
25
|
-
module InstanceMethodsCompatibility
|
|
26
|
-
def self.included(base)
|
|
27
|
-
base.class_eval do
|
|
28
|
-
alias_method :query_without_datadog, :query
|
|
29
|
-
remove_method :query
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def query(*args, &block)
|
|
34
|
-
query_without_datadog(*args, &block)
|
|
35
|
-
end
|
|
13
|
+
base.send(:prepend, InstanceMethods)
|
|
36
14
|
end
|
|
37
15
|
|
|
38
16
|
# Mysql2::Client patch instance methods
|