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
@@ -18,7 +18,7 @@ module Datadog
18
18
  end
19
19
 
20
20
  def compatible?
21
- Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.0.0') && present?
21
+ Gem::Version.new(RUBY_VERSION) >= Gem::Version.new(VERSION::MINIMUM_RUBY_VERSION) && present?
22
22
  end
23
23
  end
24
24
 
@@ -7,23 +7,17 @@ module Datadog
7
7
  module Configuration
8
8
  # Custom settings for the Racecar 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
- option :tracer, default: Datadog.tracer do |value|
20
- (value || Datadog.tracer).tap do |v|
21
- # Make sure to update tracers of all subscriptions
22
- Events.subscriptions.each do |subscription|
23
- subscription.tracer = v
24
- end
25
- end
26
- end
27
21
  end
28
22
  end
29
23
  end
@@ -26,7 +26,7 @@ module Datadog
26
26
  end
27
27
 
28
28
  def tracer
29
- configuration[:tracer]
29
+ -> { configuration[:tracer] }
30
30
  end
31
31
 
32
32
  def configuration
@@ -14,13 +14,15 @@ module Datadog
14
14
  ]
15
15
  }.freeze
16
16
 
17
- option :analytics_enabled,
18
- default: -> { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, nil) },
19
- lazy: true
17
+ option :analytics_enabled do |o|
18
+ o.default { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, nil) }
19
+ o.lazy
20
+ end
20
21
 
21
- option :analytics_sample_rate,
22
- default: -> { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) },
23
- lazy: true
22
+ option :analytics_sample_rate do |o|
23
+ o.default { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) }
24
+ o.lazy
25
+ end
24
26
 
25
27
  option :application
26
28
  option :distributed_tracing, default: true
@@ -5,6 +5,7 @@ module Datadog
5
5
  module QueueTime
6
6
  REQUEST_START = 'HTTP_X_REQUEST_START'.freeze
7
7
  QUEUE_START = 'HTTP_X_QUEUE_START'.freeze
8
+ MINIMUM_ACCEPTABLE_TIME_VALUE = 1_000_000_000
8
9
 
9
10
  module_function
10
11
 
@@ -12,15 +13,15 @@ module Datadog
12
13
  header = env[REQUEST_START] || env[QUEUE_START]
13
14
  return unless header
14
15
 
15
- # nginx header is in the format "t=1512379167.574"
16
- # TODO: this should be generic enough to work with any
17
- # frontend web server or load balancer
18
- time_string = header.split('t=')[1]
16
+ # nginx header is seconds in the format "t=1512379167.574"
17
+ # apache header is microseconds in the format "t=1570633834463123"
18
+ # heroku header is milliseconds in the format "1570634024294"
19
+ time_string = header.to_s.delete('^0-9')
19
20
  return if time_string.nil?
20
21
 
21
22
  # Return nil if the time is clearly invalid
22
- time_value = time_string.to_f
23
- return if time_value.zero?
23
+ time_value = "#{time_string[0, 10]}.#{time_string[10, 6]}".to_f
24
+ return if time_value.zero? || time_value < MINIMUM_ACCEPTABLE_TIME_VALUE
24
25
 
25
26
  # return the request_start only if it's lesser than
26
27
  # current time, to avoid significant clock skew
@@ -6,58 +6,67 @@ module Datadog
6
6
  module Configuration
7
7
  # Custom settings for the Rails integration
8
8
  class Settings < Contrib::Configuration::Settings
9
- option :analytics_enabled,
10
- default: -> { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, nil) },
11
- lazy: true do |value|
12
- value.tap do
9
+ option :analytics_enabled do |o|
10
+ o.default { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, nil) }
11
+ o.lazy
12
+ o.on_set do |value|
13
13
  # Update ActionPack analytics too
14
14
  Datadog.configuration[:action_pack][:analytics_enabled] = value
15
15
  end
16
16
  end
17
17
 
18
- option :analytics_sample_rate,
19
- default: -> { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) },
20
- lazy: true do |value|
21
- value.tap do
18
+ option :analytics_sample_rate do |o|
19
+ o.default { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) }
20
+ o.lazy
21
+ o.on_set do |value|
22
22
  # Update ActionPack analytics too
23
23
  Datadog.configuration[:action_pack][:analytics_sample_rate] = value
24
24
  end
25
25
  end
26
26
 
27
- option :cache_service do |value|
28
- value.tap do
27
+ option :cache_service do |o|
28
+ o.on_set do |value|
29
29
  # Update ActiveSupport service name too
30
30
  Datadog.configuration[:active_support][:cache_service] = value
31
31
  end
32
32
  end
33
- option :controller_service do |value|
34
- value.tap do
33
+
34
+ option :controller_service do |o|
35
+ o.on_set do |value|
35
36
  # Update ActionPack service name too
36
37
  Datadog.configuration[:action_pack][:controller_service] = value
37
38
  end
38
39
  end
39
- option :database_service, depends_on: [:service_name] do |value|
40
- value.tap do
40
+
41
+ option :database_service do |o|
42
+ o.depends_on :service_name
43
+ o.on_set do |value|
41
44
  # Update ActiveRecord service name too
42
45
  Datadog.configuration[:active_record][:service_name] = value
43
46
  end
44
47
  end
48
+
45
49
  option :distributed_tracing, default: true
46
- option :exception_controller, default: nil do |value|
47
- value.tap do
50
+ option :exception_controller do |o|
51
+ o.on_set do |value|
48
52
  # Update ActionPack exception controller too
49
53
  Datadog.configuration[:action_pack][:exception_controller] = value
50
54
  end
51
55
  end
56
+
52
57
  option :middleware, default: true
53
58
  option :middleware_names, default: false
54
- option :template_base_path, default: 'views/' do |value|
55
- # Update ActionView template base path too
56
- value.tap { Datadog.configuration[:action_view][:template_base_path] = value }
59
+ option :template_base_path do |o|
60
+ o.default 'views/'
61
+ o.on_set do |value|
62
+ # Update ActionView template base path too
63
+ Datadog.configuration[:action_view][:template_base_path] = value
64
+ end
57
65
  end
58
66
 
59
- option :tracer, default: Datadog.tracer do |value|
60
- value.tap do
67
+ option :tracer do |o|
68
+ o.delegate_to { Datadog.tracer }
69
+ o.on_set do |value|
61
70
  Datadog.configuration[:active_record][:tracer] = value
62
71
  Datadog.configuration[:active_support][:tracer] = value
63
72
  Datadog.configuration[:action_pack][:tracer] = value
@@ -7,13 +7,15 @@ module Datadog
7
7
  module Configuration
8
8
  # Custom settings for the Rake 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 :enabled, default: true
19
21
  option :quantize, default: {}
@@ -19,10 +19,6 @@ module Datadog
19
19
  super && defined?(::Rake)
20
20
  end
21
21
 
22
- def self.compatible?
23
- super && RUBY_VERSION >= '2.0.0'
24
- end
25
-
26
22
  def default_configuration
27
23
  Configuration::Settings.new
28
24
  end
@@ -7,13 +7,15 @@ module Datadog
7
7
  module Configuration
8
8
  # Custom settings for the Redis 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 Resque 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
  option :workers, default: []
@@ -7,13 +7,15 @@ module Datadog
7
7
  module Configuration
8
8
  # Custom settings for the RestClient 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?(::RestClient::Request)
19
19
  end
20
20
 
21
- def self.compatible?
22
- super && Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('1.9.3')
23
- end
24
-
25
21
  def default_configuration
26
22
  Configuration::Settings.new
27
23
  end
@@ -9,28 +9,11 @@ module Datadog
9
9
  # RestClient RequestPatch
10
10
  module RequestPatch
11
11
  def self.included(base)
12
- if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.0.0')
13
- base.class_eval do
14
- alias_method :execute_without_datadog, :execute
15
- remove_method :execute
16
- include InstanceMethods
17
- end
18
- else
19
- base.send(:prepend, InstanceMethods)
20
- end
21
- end
22
-
23
- # Compatibility shim for Rubies not supporting `.prepend`
24
- module InstanceMethodsCompatibility
25
- def execute(&block)
26
- execute_without_datadog(&block)
27
- end
12
+ base.send(:prepend, InstanceMethods)
28
13
  end
29
14
 
30
15
  # InstanceMethods - implementing instrumentation
31
16
  module InstanceMethods
32
- include InstanceMethodsCompatibility unless Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.0.0')
33
-
34
17
  def execute(&block)
35
18
  uri = URI.parse(url)
36
19
 
@@ -7,13 +7,15 @@ module Datadog
7
7
  module Configuration
8
8
  # Custom settings for the Sequel 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
  end
18
20
  end
19
21
  end
@@ -19,10 +19,6 @@ module Datadog
19
19
  super && defined?(::Sequel)
20
20
  end
21
21
 
22
- def self.compatible?
23
- super && Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.0.0')
24
- end
25
-
26
22
  def default_configuration
27
23
  Configuration::Settings.new
28
24
  end
@@ -6,13 +6,15 @@ module Datadog
6
6
  module Configuration
7
7
  # Default settings for the Shoryuken integration
8
8
  class Settings < Contrib::Configuration::Settings
9
- option :analytics_enabled,
10
- default: -> { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) },
11
- lazy: true
9
+ option :analytics_enabled do |o|
10
+ o.default { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) }
11
+ o.lazy
12
+ end
12
13
 
13
- option :analytics_sample_rate,
14
- default: -> { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) },
15
- lazy: true
14
+ option :analytics_sample_rate do |o|
15
+ o.default { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) }
16
+ o.lazy
17
+ end
16
18
 
17
19
  option :service_name, default: Ext::SERVICE_NAME
18
20
  end
@@ -7,13 +7,15 @@ module Datadog
7
7
  module Configuration
8
8
  # Custom settings for the Sidekiq 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
  option :client_service_name, default: Ext::CLIENT_SERVICE_NAME
@@ -12,13 +12,15 @@ module Datadog
12
12
  response: %w[Content-Type X-Request-ID]
13
13
  }.freeze
14
14
 
15
- option :analytics_enabled,
16
- default: -> { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, nil) },
17
- lazy: true
15
+ option :analytics_enabled do |o|
16
+ o.default { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, nil) }
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 :headers, default: DEFAULT_HEADERS
@@ -7,13 +7,15 @@ module Datadog
7
7
  module Configuration
8
8
  # Custom settings for the SuckerPunch 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