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.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +8 -0
  3. data/Appraisals +57 -2
  4. data/CHANGELOG.md +41 -12
  5. data/Rakefile +3 -3
  6. data/ddtrace.gemspec +2 -1
  7. data/docs/DevelopmentGuide.md +1 -1
  8. data/docs/GettingStarted.md +6 -6
  9. data/lib/ddtrace.rb +7 -0
  10. data/lib/ddtrace/buffer.rb +60 -1
  11. data/lib/ddtrace/configuration/base.rb +82 -0
  12. data/lib/ddtrace/configuration/option.rb +28 -5
  13. data/lib/ddtrace/configuration/option_definition.rb +100 -0
  14. data/lib/ddtrace/configuration/options.rb +28 -14
  15. data/lib/ddtrace/configuration/settings.rb +77 -64
  16. data/lib/ddtrace/contrib/action_pack/configuration/settings.rb +9 -7
  17. data/lib/ddtrace/contrib/action_view/configuration/settings.rb +8 -6
  18. data/lib/ddtrace/contrib/active_model_serializers/configuration/settings.rb +8 -14
  19. data/lib/ddtrace/contrib/active_model_serializers/event.rb +1 -1
  20. data/lib/ddtrace/contrib/active_record/configuration/settings.rb +11 -16
  21. data/lib/ddtrace/contrib/active_record/event.rb +1 -1
  22. data/lib/ddtrace/contrib/active_support/configuration/settings.rb +8 -6
  23. data/lib/ddtrace/contrib/active_support/notifications/subscriber.rb +2 -2
  24. data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +4 -1
  25. data/lib/ddtrace/contrib/aws/configuration/settings.rb +8 -6
  26. data/lib/ddtrace/contrib/configuration/settings.rb +5 -11
  27. data/lib/ddtrace/contrib/dalli/configuration/settings.rb +8 -6
  28. data/lib/ddtrace/contrib/dalli/instrumentation.rb +1 -18
  29. data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +8 -6
  30. data/lib/ddtrace/contrib/elasticsearch/configuration/settings.rb +8 -6
  31. data/lib/ddtrace/contrib/ethon/configuration/settings.rb +8 -6
  32. data/lib/ddtrace/contrib/ethon/integration.rb +0 -4
  33. data/lib/ddtrace/contrib/excon/configuration/settings.rb +9 -7
  34. data/lib/ddtrace/contrib/excon/middleware.rb +1 -1
  35. data/lib/ddtrace/contrib/faraday/configuration/settings.rb +8 -6
  36. data/lib/ddtrace/contrib/faraday/middleware.rb +1 -1
  37. data/lib/ddtrace/contrib/faraday/patcher.rb +8 -2
  38. data/lib/ddtrace/contrib/faraday/rack_builder.rb +18 -0
  39. data/lib/ddtrace/contrib/grape/configuration/settings.rb +8 -6
  40. data/lib/ddtrace/contrib/grape/instrumentation.rb +2 -42
  41. data/lib/ddtrace/contrib/graphql/configuration/settings.rb +8 -6
  42. data/lib/ddtrace/contrib/grpc/configuration/settings.rb +8 -6
  43. data/lib/ddtrace/contrib/grpc/integration.rb +1 -3
  44. data/lib/ddtrace/contrib/http/configuration/settings.rb +8 -6
  45. data/lib/ddtrace/contrib/http/instrumentation.rb +1 -23
  46. data/lib/ddtrace/contrib/mongodb/configuration/settings.rb +8 -6
  47. data/lib/ddtrace/contrib/mysql2/configuration/settings.rb +8 -6
  48. data/lib/ddtrace/contrib/mysql2/instrumentation.rb +1 -23
  49. data/lib/ddtrace/contrib/patchable.rb +1 -1
  50. data/lib/ddtrace/contrib/racecar/configuration/settings.rb +8 -14
  51. data/lib/ddtrace/contrib/racecar/event.rb +1 -1
  52. data/lib/ddtrace/contrib/rack/configuration/settings.rb +8 -6
  53. data/lib/ddtrace/contrib/rack/request_queue.rb +7 -6
  54. data/lib/ddtrace/contrib/rails/configuration/settings.rb +30 -21
  55. data/lib/ddtrace/contrib/rake/configuration/settings.rb +8 -6
  56. data/lib/ddtrace/contrib/rake/integration.rb +0 -4
  57. data/lib/ddtrace/contrib/redis/configuration/settings.rb +8 -6
  58. data/lib/ddtrace/contrib/resque/configuration/settings.rb +8 -6
  59. data/lib/ddtrace/contrib/rest_client/configuration/settings.rb +8 -6
  60. data/lib/ddtrace/contrib/rest_client/integration.rb +0 -4
  61. data/lib/ddtrace/contrib/rest_client/request_patch.rb +1 -18
  62. data/lib/ddtrace/contrib/sequel/configuration/settings.rb +8 -6
  63. data/lib/ddtrace/contrib/sequel/integration.rb +0 -4
  64. data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +8 -6
  65. data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +8 -6
  66. data/lib/ddtrace/contrib/sinatra/configuration/settings.rb +8 -6
  67. data/lib/ddtrace/contrib/sucker_punch/configuration/settings.rb +8 -6
  68. data/lib/ddtrace/diagnostics/health.rb +30 -0
  69. data/lib/ddtrace/distributed_tracing/headers/datadog.rb +1 -1
  70. data/lib/ddtrace/distributed_tracing/headers/headers.rb +2 -0
  71. data/lib/ddtrace/ext/diagnostics.rb +25 -0
  72. data/lib/ddtrace/ext/runtime.rb +1 -7
  73. data/lib/ddtrace/metrics.rb +89 -6
  74. data/lib/ddtrace/propagation/http_propagator.rb +2 -2
  75. data/lib/ddtrace/runtime/class_count.rb +3 -3
  76. data/lib/ddtrace/runtime/object_space.rb +19 -0
  77. data/lib/ddtrace/span.rb +1 -1
  78. data/lib/ddtrace/tracer.rb +5 -4
  79. data/lib/ddtrace/transport/http/client.rb +3 -4
  80. data/lib/ddtrace/transport/http/response.rb +4 -0
  81. data/lib/ddtrace/transport/http/statistics.rb +30 -0
  82. data/lib/ddtrace/transport/statistics.rb +28 -0
  83. data/lib/ddtrace/version.rb +3 -1
  84. data/lib/ddtrace/workers.rb +4 -2
  85. data/lib/ddtrace/writer.rb +3 -3
  86. 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 :analytics_enabled,
11
- default: -> { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) },
12
- lazy: true
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 :analytics_sample_rate,
15
- default: -> { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) },
16
- lazy: true
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 :analytics_enabled,
11
- default: -> { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) },
12
- lazy: true
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 :analytics_sample_rate,
15
- default: -> { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) },
16
- lazy: true
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 :analytics_enabled,
11
- default: -> { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) },
12
- lazy: true
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 :analytics_sample_rate,
15
- default: -> { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) },
16
- lazy: true
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
@@ -18,10 +18,6 @@ module Datadog
18
18
  super && defined?(::Ethon::Easy)
19
19
  end
20
20
 
21
- def self.compatible?
22
- super && Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.0.0')
23
- end
24
-
25
21
  def default_configuration
26
22
  Configuration::Settings.new
27
23
  end
@@ -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 :analytics_enabled,
11
- default: -> { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) },
12
- lazy: true
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 :analytics_sample_rate,
15
- default: -> { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) },
16
- lazy: true
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, default: nil
21
+ option :error_handler
20
22
  option :service_name, default: Ext::SERVICE_NAME
21
23
  option :split_by_domain, default: false
22
24
  end
@@ -17,7 +17,7 @@ module Datadog
17
17
 
18
18
  def initialize(stack, options = {})
19
19
  super(stack)
20
- @options = Datadog.configuration[:excon].to_h.merge(options)
20
+ @options = Datadog.configuration[:excon].options_hash.merge(options)
21
21
  end
22
22
 
23
23
  def request_call(datum)
@@ -12,13 +12,15 @@ module Datadog
12
12
  Datadog::Ext::HTTP::ERROR_RANGE.cover?(env[:status])
13
13
  end
14
14
 
15
- option :analytics_enabled,
16
- default: -> { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) },
17
- lazy: true
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 :analytics_sample_rate,
20
- default: -> { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) },
21
- lazy: true
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
@@ -14,7 +14,7 @@ module Datadog
14
14
 
15
15
  def initialize(app, options = {})
16
16
  super(app)
17
- @options = datadog_configuration.to_h.merge(options)
17
+ @options = datadog_configuration.options_hash.merge(options)
18
18
  setup_service!
19
19
  end
20
20
 
@@ -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
- add_middleware!
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 add_middleware!
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 :analytics_enabled,
12
- default: -> { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, nil) },
13
- lazy: true
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 :analytics_sample_rate,
16
- default: -> { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) },
17
- lazy: true
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
- if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.0.0')
8
- base.class_eval do
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 :analytics_enabled,
12
- default: -> { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, nil) },
13
- lazy: true
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 :analytics_sample_rate,
16
- default: -> { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) },
17
- lazy: true
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 :analytics_enabled,
11
- default: -> { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) },
12
- lazy: true
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 :analytics_sample_rate,
15
- default: -> { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) },
16
- lazy: true
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 :analytics_enabled,
11
- default: -> { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) },
12
- lazy: true
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 :analytics_sample_rate,
15
- default: -> { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) },
16
- lazy: true
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
- if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.0.0')
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 :analytics_enabled,
13
- default: -> { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) },
14
- lazy: true
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 :analytics_sample_rate,
17
- default: -> { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) },
18
- lazy: true
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 :analytics_enabled,
11
- default: -> { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) },
12
- lazy: true
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 :analytics_sample_rate,
15
- default: -> { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) },
16
- lazy: true
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
- if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.0.0')
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