ddtrace 1.12.1 → 1.13.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 (264) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +109 -9
  3. data/ext/ddtrace_profiling_native_extension/collectors_thread_context.c +97 -14
  4. data/ext/ddtrace_profiling_native_extension/extconf.rb +6 -0
  5. data/ext/ddtrace_profiling_native_extension/http_transport.c +19 -6
  6. data/ext/ddtrace_profiling_native_extension/native_extension_helpers.rb +1 -1
  7. data/ext/ddtrace_profiling_native_extension/private_vm_api_access.c +41 -2
  8. data/ext/ddtrace_profiling_native_extension/private_vm_api_access.h +6 -0
  9. data/ext/ddtrace_profiling_native_extension/stack_recorder.c +6 -10
  10. data/ext/ddtrace_profiling_native_extension/time_helpers.c +40 -4
  11. data/ext/ddtrace_profiling_native_extension/time_helpers.h +14 -0
  12. data/lib/datadog/appsec/component.rb +9 -0
  13. data/lib/datadog/appsec/configuration/settings.rb +104 -195
  14. data/lib/datadog/appsec/configuration.rb +0 -79
  15. data/lib/datadog/appsec/contrib/auto_instrument.rb +2 -4
  16. data/lib/datadog/appsec/contrib/devise/event.rb +57 -0
  17. data/lib/datadog/appsec/contrib/devise/ext.rb +13 -0
  18. data/lib/datadog/appsec/contrib/devise/integration.rb +42 -0
  19. data/lib/datadog/appsec/contrib/devise/patcher/authenticatable_patch.rb +76 -0
  20. data/lib/datadog/appsec/contrib/devise/patcher/registration_controller_patch.rb +52 -0
  21. data/lib/datadog/appsec/contrib/devise/patcher.rb +45 -0
  22. data/lib/datadog/appsec/contrib/devise/resource.rb +35 -0
  23. data/lib/datadog/appsec/contrib/devise/tracking.rb +49 -0
  24. data/lib/datadog/appsec/contrib/rack/ext.rb +2 -1
  25. data/lib/datadog/appsec/contrib/rack/reactive/request.rb +1 -1
  26. data/lib/datadog/appsec/contrib/rack/reactive/request_body.rb +1 -1
  27. data/lib/datadog/appsec/contrib/rack/reactive/response.rb +1 -1
  28. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +12 -7
  29. data/lib/datadog/appsec/contrib/rails/ext.rb +3 -2
  30. data/lib/datadog/appsec/contrib/rails/framework.rb +1 -3
  31. data/lib/datadog/appsec/contrib/rails/patcher.rb +8 -8
  32. data/lib/datadog/appsec/contrib/rails/reactive/action.rb +1 -1
  33. data/lib/datadog/appsec/contrib/sinatra/ext.rb +2 -1
  34. data/lib/datadog/appsec/contrib/sinatra/framework.rb +1 -3
  35. data/lib/datadog/appsec/contrib/sinatra/reactive/routed.rb +1 -1
  36. data/lib/datadog/appsec/event.rb +1 -1
  37. data/lib/datadog/appsec/extensions.rb +1 -130
  38. data/lib/datadog/appsec/monitor/reactive/set_user.rb +1 -1
  39. data/lib/datadog/appsec/processor.rb +1 -1
  40. data/lib/datadog/appsec/rate_limiter.rb +1 -1
  41. data/lib/datadog/appsec/remote.rb +1 -1
  42. data/lib/datadog/appsec.rb +1 -2
  43. data/lib/datadog/ci/configuration/settings.rb +6 -8
  44. data/lib/datadog/ci/contrib/cucumber/configuration/settings.rb +7 -5
  45. data/lib/datadog/ci/contrib/cucumber/ext.rb +10 -8
  46. data/lib/datadog/ci/contrib/minitest/configuration/settings.rb +35 -0
  47. data/lib/datadog/ci/contrib/minitest/ext.rb +21 -0
  48. data/lib/datadog/ci/contrib/minitest/integration.rb +49 -0
  49. data/lib/datadog/ci/contrib/minitest/patcher.rb +27 -0
  50. data/lib/datadog/ci/contrib/minitest/test_helper.rb +68 -0
  51. data/lib/datadog/ci/contrib/rspec/configuration/settings.rb +7 -5
  52. data/lib/datadog/ci/contrib/rspec/ext.rb +9 -7
  53. data/lib/datadog/ci.rb +1 -0
  54. data/lib/datadog/core/backport.rb +51 -0
  55. data/lib/datadog/core/configuration/base.rb +5 -5
  56. data/lib/datadog/core/configuration/components.rb +6 -1
  57. data/lib/datadog/core/configuration/ext.rb +7 -5
  58. data/lib/datadog/core/configuration/option.rb +269 -19
  59. data/lib/datadog/core/configuration/option_definition.rb +76 -11
  60. data/lib/datadog/core/configuration/options.rb +22 -10
  61. data/lib/datadog/core/configuration/settings.rb +116 -61
  62. data/lib/datadog/core/environment/ext.rb +13 -11
  63. data/lib/datadog/core/environment/yjit.rb +58 -0
  64. data/lib/datadog/core/git/ext.rb +24 -22
  65. data/lib/datadog/core/logging/ext.rb +3 -1
  66. data/lib/datadog/core/metrics/ext.rb +7 -5
  67. data/lib/datadog/core/remote/client/capabilities.rb +5 -0
  68. data/lib/datadog/core/remote/client.rb +3 -0
  69. data/lib/datadog/core/remote/component.rb +25 -34
  70. data/lib/datadog/core/remote/configuration/content.rb +28 -1
  71. data/lib/datadog/core/remote/configuration/repository.rb +3 -1
  72. data/lib/datadog/core/remote/ext.rb +1 -1
  73. data/lib/datadog/core/remote/negotiation.rb +17 -4
  74. data/lib/datadog/core/runtime/ext.rb +22 -12
  75. data/lib/datadog/core/runtime/metrics.rb +43 -0
  76. data/lib/datadog/core/telemetry/client.rb +12 -2
  77. data/lib/datadog/core/telemetry/emitter.rb +4 -2
  78. data/lib/datadog/core/telemetry/event.rb +19 -4
  79. data/lib/datadog/core/telemetry/ext.rb +4 -1
  80. data/lib/datadog/core/telemetry/heartbeat.rb +2 -4
  81. data/lib/datadog/core/telemetry/http/ext.rb +10 -8
  82. data/lib/datadog/core/telemetry/http/transport.rb +1 -0
  83. data/lib/datadog/core/telemetry/v2/app_client_configuration_change.rb +41 -0
  84. data/lib/datadog/core/telemetry/v2/request.rb +29 -0
  85. data/lib/datadog/core/transport/http/client.rb +1 -1
  86. data/lib/datadog/core/transport/http/config.rb +10 -0
  87. data/lib/datadog/core/utils/duration.rb +52 -0
  88. data/lib/datadog/core/utils/hash.rb +47 -0
  89. data/lib/datadog/core/utils/network.rb +1 -1
  90. data/lib/datadog/core/utils/safe_dup.rb +27 -20
  91. data/lib/datadog/core/utils.rb +1 -1
  92. data/lib/datadog/core/workers/async.rb +2 -2
  93. data/lib/datadog/kit/appsec/events.rb +139 -89
  94. data/lib/datadog/kit/identity.rb +80 -65
  95. data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +3 -0
  96. data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +1 -0
  97. data/lib/datadog/profiling/collectors/thread_context.rb +9 -2
  98. data/lib/datadog/profiling/component.rb +41 -9
  99. data/lib/datadog/profiling/exporter.rb +5 -1
  100. data/lib/datadog/profiling/flush.rb +9 -2
  101. data/lib/datadog/profiling/http_transport.rb +4 -1
  102. data/lib/datadog/profiling/load_native_extension.rb +7 -1
  103. data/lib/datadog/profiling.rb +11 -1
  104. data/lib/datadog/tracing/component.rb +58 -6
  105. data/lib/datadog/tracing/configuration/dynamic/option.rb +71 -0
  106. data/lib/datadog/tracing/configuration/dynamic.rb +64 -0
  107. data/lib/datadog/tracing/configuration/ext.rb +35 -32
  108. data/lib/datadog/tracing/configuration/http.rb +74 -0
  109. data/lib/datadog/tracing/configuration/settings.rb +106 -92
  110. data/lib/datadog/tracing/contrib/action_cable/configuration/settings.rb +9 -6
  111. data/lib/datadog/tracing/contrib/action_cable/ext.rb +20 -18
  112. data/lib/datadog/tracing/contrib/action_mailer/configuration/settings.rb +9 -6
  113. data/lib/datadog/tracing/contrib/action_mailer/ext.rb +20 -18
  114. data/lib/datadog/tracing/contrib/action_pack/configuration/settings.rb +8 -6
  115. data/lib/datadog/tracing/contrib/action_pack/ext.rb +10 -8
  116. data/lib/datadog/tracing/contrib/action_view/configuration/settings.rb +9 -6
  117. data/lib/datadog/tracing/contrib/action_view/ext.rb +12 -10
  118. data/lib/datadog/tracing/contrib/active_job/configuration/settings.rb +13 -7
  119. data/lib/datadog/tracing/contrib/active_job/ext.rb +25 -23
  120. data/lib/datadog/tracing/contrib/active_job/log_injection.rb +1 -1
  121. data/lib/datadog/tracing/contrib/active_job/patcher.rb +1 -1
  122. data/lib/datadog/tracing/contrib/active_model_serializers/configuration/settings.rb +9 -6
  123. data/lib/datadog/tracing/contrib/active_model_serializers/ext.rb +12 -10
  124. data/lib/datadog/tracing/contrib/active_record/configuration/settings.rb +9 -7
  125. data/lib/datadog/tracing/contrib/active_record/events/sql.rb +0 -8
  126. data/lib/datadog/tracing/contrib/active_record/ext.rb +17 -15
  127. data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +0 -5
  128. data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +9 -7
  129. data/lib/datadog/tracing/contrib/active_support/ext.rb +18 -16
  130. data/lib/datadog/tracing/contrib/aws/configuration/settings.rb +14 -7
  131. data/lib/datadog/tracing/contrib/aws/ext.rb +37 -24
  132. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +9 -5
  133. data/lib/datadog/tracing/contrib/concurrent_ruby/configuration/settings.rb +3 -2
  134. data/lib/datadog/tracing/contrib/concurrent_ruby/ext.rb +4 -2
  135. data/lib/datadog/tracing/contrib/dalli/configuration/settings.rb +14 -7
  136. data/lib/datadog/tracing/contrib/dalli/ext.rb +19 -11
  137. data/lib/datadog/tracing/contrib/dalli/instrumentation.rb +8 -6
  138. data/lib/datadog/tracing/contrib/delayed_job/configuration/settings.rb +13 -7
  139. data/lib/datadog/tracing/contrib/delayed_job/ext.rb +16 -14
  140. data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +14 -7
  141. data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +21 -15
  142. data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +8 -5
  143. data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +16 -9
  144. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +43 -3
  145. data/lib/datadog/tracing/contrib/ethon/ext.rb +19 -11
  146. data/lib/datadog/tracing/contrib/ethon/multi_patch.rb +0 -5
  147. data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +19 -10
  148. data/lib/datadog/tracing/contrib/excon/ext.rb +16 -8
  149. data/lib/datadog/tracing/contrib/excon/middleware.rb +20 -5
  150. data/lib/datadog/tracing/contrib/ext.rb +23 -1
  151. data/lib/datadog/tracing/contrib/extensions.rb +32 -0
  152. data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +20 -10
  153. data/lib/datadog/tracing/contrib/faraday/ext.rb +16 -8
  154. data/lib/datadog/tracing/contrib/faraday/middleware.rb +16 -5
  155. data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +8 -6
  156. data/lib/datadog/tracing/contrib/grape/ext.rb +16 -14
  157. data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +8 -6
  158. data/lib/datadog/tracing/contrib/graphql/ext.rb +7 -5
  159. data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +19 -9
  160. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +29 -20
  161. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +21 -20
  162. data/lib/datadog/tracing/contrib/grpc/ext.rb +16 -13
  163. data/lib/datadog/tracing/contrib/grpc/formatting.rb +127 -0
  164. data/lib/datadog/tracing/contrib/hanami/configuration/settings.rb +3 -2
  165. data/lib/datadog/tracing/contrib/hanami/ext.rb +10 -8
  166. data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +4 -7
  167. data/lib/datadog/tracing/contrib/http/configuration/settings.rb +33 -11
  168. data/lib/datadog/tracing/contrib/http/ext.rb +16 -9
  169. data/lib/datadog/tracing/contrib/http/instrumentation.rb +17 -5
  170. data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +33 -11
  171. data/lib/datadog/tracing/contrib/httpclient/ext.rb +17 -9
  172. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +17 -5
  173. data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +33 -11
  174. data/lib/datadog/tracing/contrib/httprb/ext.rb +16 -9
  175. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +17 -5
  176. data/lib/datadog/tracing/contrib/kafka/configuration/settings.rb +9 -6
  177. data/lib/datadog/tracing/contrib/kafka/ext.rb +42 -39
  178. data/lib/datadog/tracing/contrib/lograge/configuration/settings.rb +3 -2
  179. data/lib/datadog/tracing/contrib/lograge/ext.rb +3 -1
  180. data/lib/datadog/tracing/contrib/lograge/instrumentation.rb +1 -0
  181. data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +14 -7
  182. data/lib/datadog/tracing/contrib/mongodb/ext.rb +20 -16
  183. data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +9 -5
  184. data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +17 -14
  185. data/lib/datadog/tracing/contrib/mysql2/ext.rb +15 -10
  186. data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +9 -5
  187. data/lib/datadog/tracing/contrib/opensearch/configuration/settings.rb +52 -0
  188. data/lib/datadog/tracing/contrib/opensearch/ext.rb +37 -0
  189. data/lib/datadog/tracing/contrib/opensearch/integration.rb +44 -0
  190. data/lib/datadog/tracing/contrib/opensearch/patcher.rb +128 -0
  191. data/lib/datadog/tracing/contrib/opensearch/quantize.rb +81 -0
  192. data/lib/datadog/tracing/contrib/pg/configuration/settings.rb +17 -14
  193. data/lib/datadog/tracing/contrib/pg/ext.rb +22 -19
  194. data/lib/datadog/tracing/contrib/pg/instrumentation.rb +9 -5
  195. data/lib/datadog/tracing/contrib/presto/configuration/settings.rb +14 -7
  196. data/lib/datadog/tracing/contrib/presto/ext.rb +25 -20
  197. data/lib/datadog/tracing/contrib/presto/instrumentation.rb +9 -5
  198. data/lib/datadog/tracing/contrib/propagation/sql_comment/ext.rb +12 -10
  199. data/lib/datadog/tracing/contrib/qless/configuration/settings.rb +12 -8
  200. data/lib/datadog/tracing/contrib/qless/ext.rb +14 -12
  201. data/lib/datadog/tracing/contrib/que/configuration/settings.rb +21 -12
  202. data/lib/datadog/tracing/contrib/racecar/configuration/settings.rb +9 -7
  203. data/lib/datadog/tracing/contrib/racecar/event.rb +0 -5
  204. data/lib/datadog/tracing/contrib/racecar/ext.rb +20 -18
  205. data/lib/datadog/tracing/contrib/rack/configuration/settings.rb +16 -12
  206. data/lib/datadog/tracing/contrib/rack/ext.rb +18 -16
  207. data/lib/datadog/tracing/contrib/rack/header_collection.rb +3 -0
  208. data/lib/datadog/tracing/contrib/rack/header_tagging.rb +53 -0
  209. data/lib/datadog/tracing/contrib/rack/middlewares.rb +8 -49
  210. data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +15 -11
  211. data/lib/datadog/tracing/contrib/rails/ext.rb +7 -5
  212. data/lib/datadog/tracing/contrib/rails/log_injection.rb +4 -10
  213. data/lib/datadog/tracing/contrib/rails/patcher.rb +10 -41
  214. data/lib/datadog/tracing/contrib/rails/railtie.rb +3 -3
  215. data/lib/datadog/tracing/contrib/rake/configuration/settings.rb +12 -9
  216. data/lib/datadog/tracing/contrib/rake/ext.rb +14 -12
  217. data/lib/datadog/tracing/contrib/redis/configuration/settings.rb +17 -9
  218. data/lib/datadog/tracing/contrib/redis/ext.rb +22 -15
  219. data/lib/datadog/tracing/contrib/redis/tags.rb +9 -5
  220. data/lib/datadog/tracing/contrib/resque/configuration/settings.rb +13 -7
  221. data/lib/datadog/tracing/contrib/resque/ext.rb +9 -7
  222. data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +16 -9
  223. data/lib/datadog/tracing/contrib/rest_client/ext.rb +15 -8
  224. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +20 -5
  225. data/lib/datadog/tracing/contrib/roda/configuration/settings.rb +9 -6
  226. data/lib/datadog/tracing/contrib/semantic_logger/configuration/settings.rb +3 -2
  227. data/lib/datadog/tracing/contrib/semantic_logger/ext.rb +3 -1
  228. data/lib/datadog/tracing/contrib/semantic_logger/instrumentation.rb +1 -0
  229. data/lib/datadog/tracing/contrib/sequel/configuration/settings.rb +9 -6
  230. data/lib/datadog/tracing/contrib/sequel/ext.rb +10 -8
  231. data/lib/datadog/tracing/contrib/sequel/utils.rb +2 -7
  232. data/lib/datadog/tracing/contrib/shoryuken/configuration/settings.rb +14 -8
  233. data/lib/datadog/tracing/contrib/shoryuken/ext.rb +14 -12
  234. data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +18 -11
  235. data/lib/datadog/tracing/contrib/sidekiq/ext.rb +32 -30
  236. data/lib/datadog/tracing/contrib/sinatra/configuration/settings.rb +11 -9
  237. data/lib/datadog/tracing/contrib/sinatra/env.rb +0 -17
  238. data/lib/datadog/tracing/contrib/sinatra/ext.rb +21 -19
  239. data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +3 -14
  240. data/lib/datadog/tracing/contrib/sneakers/configuration/settings.rb +14 -8
  241. data/lib/datadog/tracing/contrib/sneakers/ext.rb +1 -0
  242. data/lib/datadog/tracing/contrib/sneakers/tracer.rb +1 -1
  243. data/lib/datadog/tracing/contrib/span_attribute_schema.rb +74 -10
  244. data/lib/datadog/tracing/contrib/stripe/configuration/settings.rb +9 -6
  245. data/lib/datadog/tracing/contrib/sucker_punch/configuration/settings.rb +9 -6
  246. data/lib/datadog/tracing/contrib/sucker_punch/ext.rb +15 -13
  247. data/lib/datadog/tracing/contrib/utils/database.rb +5 -3
  248. data/lib/datadog/tracing/correlation.rb +9 -12
  249. data/lib/datadog/tracing/diagnostics/ext.rb +21 -19
  250. data/lib/datadog/tracing/distributed/b3_multi.rb +2 -2
  251. data/lib/datadog/tracing/distributed/b3_single.rb +1 -1
  252. data/lib/datadog/tracing/distributed/trace_context.rb +52 -17
  253. data/lib/datadog/tracing/metadata/ext.rb +9 -6
  254. data/lib/datadog/tracing/remote.rb +78 -0
  255. data/lib/datadog/tracing/sampling/rule_sampler.rb +29 -0
  256. data/lib/datadog/tracing/span_operation.rb +3 -15
  257. data/lib/datadog/tracing/trace_operation.rb +16 -3
  258. data/lib/datadog/tracing/trace_segment.rb +5 -2
  259. data/lib/datadog/tracing/tracer.rb +10 -1
  260. data/lib/ddtrace/transport/ext.rb +15 -9
  261. data/lib/ddtrace/transport/trace_formatter.rb +9 -0
  262. data/lib/ddtrace/version.rb +9 -12
  263. metadata +38 -10
  264. data/lib/datadog/tracing/contrib/sinatra/headers.rb +0 -35
@@ -12,23 +12,27 @@ module Datadog
12
12
  # @public_api
13
13
  class Settings < Contrib::Configuration::Settings
14
14
  option :enabled do |o|
15
- o.default { env_to_bool(Ext::ENV_ENABLED, true) }
16
- o.lazy
15
+ o.type :bool
16
+ o.env Ext::ENV_ENABLED
17
+ o.default true
17
18
  end
18
19
 
19
20
  option :analytics_enabled do |o|
20
- o.default { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) }
21
- o.lazy
21
+ o.type :bool
22
+ o.env Ext::ENV_ANALYTICS_ENABLED
23
+ o.default false
22
24
  end
23
25
 
24
26
  option :analytics_sample_rate do |o|
25
- o.default { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) }
26
- o.lazy
27
+ o.type :float
28
+ o.env Ext::ENV_ANALYTICS_SAMPLE_RATE
29
+ o.default 1.0
27
30
  end
28
31
 
29
32
  option :command_args do |o|
30
- o.default { env_to_bool(Ext::ENV_COMMAND_ARGS, true) }
31
- o.lazy
33
+ o.type :bool
34
+ o.env Ext::ENV_COMMAND_ARGS
35
+ o.default true
32
36
  end
33
37
 
34
38
  option :service_name do |o|
@@ -38,7 +42,11 @@ module Datadog
38
42
  Ext::DEFAULT_PEER_SERVICE_NAME
39
43
  )
40
44
  end
41
- o.lazy
45
+ end
46
+
47
+ option :peer_service do |o|
48
+ o.type :string, nilable: true
49
+ o.env Ext::ENV_PEER_SERVICE
42
50
  end
43
51
  end
44
52
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Datadog
2
4
  module Tracing
3
5
  module Contrib
@@ -5,21 +7,26 @@ module Datadog
5
7
  # Redis integration constants
6
8
  # @public_api Changing resource names, tag names, or environment variables creates breaking changes.
7
9
  module Ext
8
- ENV_ENABLED = 'DD_TRACE_REDIS_ENABLED'.freeze
9
- ENV_SERVICE_NAME = 'DD_TRACE_REDIS_SERVICE_NAME'.freeze
10
- ENV_ANALYTICS_ENABLED = 'DD_TRACE_REDIS_ANALYTICS_ENABLED'.freeze
11
- ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_REDIS_ANALYTICS_SAMPLE_RATE'.freeze
12
- ENV_COMMAND_ARGS = 'DD_REDIS_COMMAND_ARGS'.freeze
13
- METRIC_PIPELINE_LEN = 'redis.pipeline_length'.freeze
14
- DEFAULT_PEER_SERVICE_NAME = 'redis'.freeze
15
- SPAN_COMMAND = 'redis.command'.freeze
16
- TAG_DB = 'out.redis_db'.freeze
17
- TAG_RAW_COMMAND = 'redis.raw_command'.freeze
18
- TYPE = 'redis'.freeze
19
- TAG_COMPONENT = 'redis'.freeze
20
- TAG_OPERATION_COMMAND = 'command'.freeze
21
- TAG_SYSTEM = 'redis'.freeze
22
- TAG_DATABASE_INDEX = 'db.redis.database_index'.freeze
10
+ ENV_ENABLED = 'DD_TRACE_REDIS_ENABLED'
11
+ ENV_SERVICE_NAME = 'DD_TRACE_REDIS_SERVICE_NAME'
12
+ ENV_PEER_SERVICE = 'DD_TRACE_REDIS_PEER_SERVICE'
13
+ ENV_ANALYTICS_ENABLED = 'DD_TRACE_REDIS_ANALYTICS_ENABLED'
14
+ ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_REDIS_ANALYTICS_SAMPLE_RATE'
15
+ ENV_COMMAND_ARGS = 'DD_REDIS_COMMAND_ARGS'
16
+ METRIC_PIPELINE_LEN = 'redis.pipeline_length'
17
+ DEFAULT_PEER_SERVICE_NAME = 'redis'
18
+ SPAN_COMMAND = 'redis.command'
19
+ TAG_DB = 'out.redis_db'
20
+ TAG_RAW_COMMAND = 'redis.raw_command'
21
+ TYPE = 'redis'
22
+ TAG_COMPONENT = 'redis'
23
+ TAG_OPERATION_COMMAND = 'command'
24
+ TAG_SYSTEM = 'redis'
25
+ TAG_DATABASE_INDEX = 'db.redis.database_index'
26
+ PEER_SERVICE_SOURCES = Array[
27
+ Tracing::Metadata::Ext::TAG_PEER_HOSTNAME,
28
+ Tracing::Metadata::Ext::NET::TAG_DESTINATION_NAME,
29
+ Tracing::Metadata::Ext::NET::TAG_TARGET_HOST,].freeze
23
30
  end
24
31
  end
25
32
  end
@@ -13,14 +13,16 @@ module Datadog
13
13
  module Tags
14
14
  class << self
15
15
  def set_common_tags(client, span, show_command_args)
16
+ if datadog_configuration[:peer_service]
17
+ span.set_tag(
18
+ Tracing::Metadata::Ext::TAG_PEER_SERVICE,
19
+ datadog_configuration[:peer_service]
20
+ )
21
+ end
22
+
16
23
  span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
17
24
  span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_COMMAND)
18
25
 
19
- # Tag as an external peer service
20
- if Contrib::SpanAttributeSchema.default_span_attribute_schema?
21
- span.set_tag(Tracing::Metadata::Ext::TAG_PEER_SERVICE, span.service)
22
- end
23
-
24
26
  span.set_tag(Tracing::Metadata::Ext::TAG_PEER_HOSTNAME, client.host)
25
27
 
26
28
  span.set_tag(Tracing::Metadata::Ext::TAG_KIND, Tracing::Metadata::Ext::SpanKind::TAG_CLIENT)
@@ -36,6 +38,8 @@ module Datadog
36
38
  span.set_tag Ext::TAG_DATABASE_INDEX, client.db.to_s
37
39
  span.set_tag Ext::TAG_DB, client.db
38
40
  span.set_tag Ext::TAG_RAW_COMMAND, span.resource if show_command_args
41
+
42
+ Contrib::SpanAttributeSchema.set_peer_service!(span, Ext::PEER_SERVICE_SOURCES)
39
43
  end
40
44
 
41
45
  private
@@ -13,22 +13,28 @@ module Datadog
13
13
  # @public_api
14
14
  class Settings < Contrib::Configuration::Settings
15
15
  option :enabled do |o|
16
- o.default { env_to_bool(Ext::ENV_ENABLED, true) }
17
- o.lazy
16
+ o.type :bool
17
+ o.env Ext::ENV_ENABLED
18
+ o.default true
18
19
  end
19
20
 
20
21
  option :analytics_enabled do |o|
21
- o.default { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) }
22
- o.lazy
22
+ o.type :bool
23
+ o.env Ext::ENV_ANALYTICS_ENABLED
24
+ o.default false
23
25
  end
24
26
 
25
27
  option :analytics_sample_rate do |o|
26
- o.default { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) }
27
- o.lazy
28
+ o.type :float
29
+ o.env Ext::ENV_ANALYTICS_SAMPLE_RATE
30
+ o.default 1.0
28
31
  end
29
32
 
30
33
  option :service_name
31
- option :error_handler, default: Tracing::SpanOperation::Events::DEFAULT_ON_ERROR
34
+ option :error_handler do |o|
35
+ o.type :proc
36
+ o.experimental_default_proc(&Tracing::SpanOperation::Events::DEFAULT_ON_ERROR)
37
+ end
32
38
  end
33
39
  end
34
40
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Datadog
2
4
  module Tracing
3
5
  module Contrib
@@ -5,13 +7,13 @@ module Datadog
5
7
  # Resque integration constants
6
8
  # @public_api Changing resource names, tag names, or environment variables creates breaking changes.
7
9
  module Ext
8
- ENV_ENABLED = 'DD_TRACE_RESQUE_ENABLED'.freeze
9
- ENV_ANALYTICS_ENABLED = 'DD_TRACE_RESQUE_ANALYTICS_ENABLED'.freeze
10
- ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_RESQUE_ANALYTICS_SAMPLE_RATE'.freeze
11
- SERVICE_NAME = 'resque'.freeze
12
- SPAN_JOB = 'resque.job'.freeze
13
- TAG_COMPONENT = 'resque'.freeze
14
- TAG_OPERATION_JOB = 'job'.freeze
10
+ ENV_ENABLED = 'DD_TRACE_RESQUE_ENABLED'
11
+ ENV_ANALYTICS_ENABLED = 'DD_TRACE_RESQUE_ANALYTICS_ENABLED'
12
+ ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_RESQUE_ANALYTICS_SAMPLE_RATE'
13
+ SERVICE_NAME = 'resque'
14
+ SPAN_JOB = 'resque.job'
15
+ TAG_COMPONENT = 'resque'
16
+ TAG_OPERATION_JOB = 'job'
15
17
  end
16
18
  end
17
19
  end
@@ -12,21 +12,24 @@ module Datadog
12
12
  # @public_api
13
13
  class Settings < Contrib::Configuration::Settings
14
14
  option :enabled do |o|
15
- o.default { env_to_bool(Ext::ENV_ENABLED, true) }
16
- o.lazy
15
+ o.type :bool
16
+ o.env Ext::ENV_ENABLED
17
+ o.default true
17
18
  end
18
19
 
19
20
  option :analytics_enabled do |o|
20
- o.default { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) }
21
- o.lazy
21
+ o.type :bool
22
+ o.env Ext::ENV_ANALYTICS_ENABLED
23
+ o.default false
22
24
  end
23
25
 
24
26
  option :analytics_sample_rate do |o|
25
- o.default { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) }
26
- o.lazy
27
+ o.type :float
28
+ o.env Ext::ENV_ANALYTICS_SAMPLE_RATE
29
+ o.default 1.0
27
30
  end
28
31
 
29
- option :distributed_tracing, default: true
32
+ option :distributed_tracing, default: true, type: :bool
30
33
 
31
34
  option :service_name do |o|
32
35
  o.default do
@@ -35,10 +38,14 @@ module Datadog
35
38
  Ext::DEFAULT_PEER_SERVICE_NAME
36
39
  )
37
40
  end
38
- o.lazy
39
41
  end
40
42
 
41
- option :split_by_domain, default: false
43
+ option :peer_service do |o|
44
+ o.type :string, nilable: true
45
+ o.env Ext::ENV_PEER_SERVICE
46
+ end
47
+
48
+ option :split_by_domain, default: false, type: :bool
42
49
  end
43
50
  end
44
51
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Datadog
2
4
  module Tracing
3
5
  module Contrib
@@ -5,14 +7,19 @@ module Datadog
5
7
  # RestClient integration constants
6
8
  # @public_api Changing resource names, tag names, or environment variables creates breaking changes.
7
9
  module Ext
8
- ENV_ENABLED = 'DD_TRACE_REST_CLIENT_ENABLED'.freeze
9
- ENV_SERVICE_NAME = 'DD_TRACE_REST_CLIENT_SERVICE_NAME'.freeze
10
- ENV_ANALYTICS_ENABLED = 'DD_TRACE_REST_CLIENT_ANALYTICS_ENABLED'.freeze
11
- ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_REST_CLIENT_ANALYTICS_SAMPLE_RATE'.freeze
12
- DEFAULT_PEER_SERVICE_NAME = 'rest_client'.freeze
13
- SPAN_REQUEST = 'rest_client.request'.freeze
14
- TAG_COMPONENT = 'rest_client'.freeze
15
- TAG_OPERATION_REQUEST = 'request'.freeze
10
+ ENV_ENABLED = 'DD_TRACE_REST_CLIENT_ENABLED'
11
+ ENV_SERVICE_NAME = 'DD_TRACE_REST_CLIENT_SERVICE_NAME'
12
+ ENV_PEER_SERVICE = 'DD_TRACE_REST_CLIENT_PEER_SERVICE'
13
+ ENV_ANALYTICS_ENABLED = 'DD_TRACE_REST_CLIENT_ANALYTICS_ENABLED'
14
+ ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_REST_CLIENT_ANALYTICS_SAMPLE_RATE'
15
+ DEFAULT_PEER_SERVICE_NAME = 'rest_client'
16
+ SPAN_REQUEST = 'rest_client.request'
17
+ TAG_COMPONENT = 'rest_client'
18
+ TAG_OPERATION_REQUEST = 'request'
19
+ PEER_SERVICE_SOURCES = Array[
20
+ Tracing::Metadata::Ext::TAG_PEER_HOSTNAME,
21
+ Tracing::Metadata::Ext::NET::TAG_DESTINATION_NAME,
22
+ Tracing::Metadata::Ext::NET::TAG_TARGET_HOST,].freeze
16
23
  end
17
24
  end
18
25
  end
@@ -34,16 +34,18 @@ module Datadog
34
34
  def datadog_tag_request(uri, span)
35
35
  span.resource = method.to_s.upcase
36
36
 
37
+ if datadog_configuration[:peer_service]
38
+ span.set_tag(
39
+ Tracing::Metadata::Ext::TAG_PEER_SERVICE,
40
+ datadog_configuration[:peer_service]
41
+ )
42
+ end
43
+
37
44
  span.set_tag(Tracing::Metadata::Ext::TAG_KIND, Tracing::Metadata::Ext::SpanKind::TAG_CLIENT)
38
45
 
39
46
  span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
40
47
  span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_REQUEST)
41
48
 
42
- # Tag as an external peer service
43
- if Contrib::SpanAttributeSchema.default_span_attribute_schema?
44
- span.set_tag(Tracing::Metadata::Ext::TAG_PEER_SERVICE, span.service)
45
- end
46
-
47
49
  span.set_tag(Tracing::Metadata::Ext::TAG_PEER_HOSTNAME, uri.host)
48
50
 
49
51
  # Set analytics sample rate
@@ -53,6 +55,13 @@ module Datadog
53
55
  span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_METHOD, method.to_s.upcase)
54
56
  span.set_tag(Tracing::Metadata::Ext::NET::TAG_TARGET_HOST, uri.host)
55
57
  span.set_tag(Tracing::Metadata::Ext::NET::TAG_TARGET_PORT, uri.port)
58
+ span.set_tags(
59
+ Datadog.configuration.tracing.header_tags.request_tags(
60
+ Core::Utils::Hash::CaseInsensitiveWrapper.new(processed_headers)
61
+ )
62
+ )
63
+
64
+ Contrib::SpanAttributeSchema.set_peer_service!(span, Ext::PEER_SERVICE_SOURCES)
56
65
  end
57
66
 
58
67
  def datadog_trace_request(uri)
@@ -71,6 +80,12 @@ module Datadog
71
80
  # If so, add additional tags.
72
81
  if response.is_a?(::RestClient::Response)
73
82
  span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_STATUS_CODE, response.code)
83
+
84
+ span.set_tags(
85
+ Datadog.configuration.tracing.header_tags.response_tags(
86
+ Core::Utils::Hash::CaseInsensitiveWrapper.new(response.net_http_res.to_hash)
87
+ )
88
+ )
74
89
  end
75
90
  end
76
91
  rescue ::RestClient::ExceptionWithResponse => e
@@ -11,18 +11,21 @@ module Datadog
11
11
  # Custom settings for the Roda integration
12
12
  class Settings < Contrib::Configuration::Settings
13
13
  option :enabled do |o|
14
- o.default { env_to_bool(Ext::ENV_ENABLED, true) }
15
- o.lazy
14
+ o.type :bool
15
+ o.env Ext::ENV_ENABLED
16
+ o.default true
16
17
  end
17
18
 
18
19
  option :analytics_enabled do |o|
19
- o.default { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) }
20
- o.lazy
20
+ o.type :bool
21
+ o.env Ext::ENV_ANALYTICS_ENABLED
22
+ o.default false
21
23
  end
22
24
 
23
25
  option :analytics_sample_rate do |o|
24
- o.default { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) }
25
- o.lazy
26
+ o.type :float
27
+ o.env Ext::ENV_ANALYTICS_SAMPLE_RATE
28
+ o.default 1.0
26
29
  end
27
30
 
28
31
  option :service_name
@@ -12,8 +12,9 @@ module Datadog
12
12
  # @public_api
13
13
  class Settings < Contrib::Configuration::Settings
14
14
  option :enabled do |o|
15
- o.default { env_to_bool(Ext::ENV_ENABLED, true) }
16
- o.lazy
15
+ o.type :bool
16
+ o.env Ext::ENV_ENABLED
17
+ o.default true
17
18
  end
18
19
  end
19
20
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Datadog
2
4
  module Tracing
3
5
  module Contrib
@@ -5,7 +7,7 @@ module Datadog
5
7
  # SemanticLogger integration constants
6
8
  # @public_api Changing resource names, tag names, or environment variables creates breaking changes.
7
9
  module Ext
8
- ENV_ENABLED = 'DD_TRACE_SEMANTIC_LOGGER_ENABLED'.freeze
10
+ ENV_ENABLED = 'DD_TRACE_SEMANTIC_LOGGER_ENABLED'
9
11
  end
10
12
  end
11
13
  end
@@ -15,6 +15,7 @@ module Datadog
15
15
  # Instance methods for configuration
16
16
  module InstanceMethods
17
17
  def log(log, message = nil, progname = nil, &block)
18
+ return super unless Datadog.configuration.tracing.log_injection
18
19
  return super unless Datadog.configuration.tracing[:semantic_logger].enabled
19
20
  return super unless log.is_a?(::SemanticLogger::Log)
20
21
 
@@ -12,18 +12,21 @@ module Datadog
12
12
  # @public_api
13
13
  class Settings < Contrib::Configuration::Settings
14
14
  option :enabled do |o|
15
- o.default { env_to_bool(Ext::ENV_ENABLED, true) }
16
- o.lazy
15
+ o.type :bool
16
+ o.env Ext::ENV_ENABLED
17
+ o.default true
17
18
  end
18
19
 
19
20
  option :analytics_enabled do |o|
20
- o.default { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) }
21
- o.lazy
21
+ o.type :bool
22
+ o.env Ext::ENV_ANALYTICS_ENABLED
23
+ o.default false
22
24
  end
23
25
 
24
26
  option :analytics_sample_rate do |o|
25
- o.default { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) }
26
- o.lazy
27
+ o.type :float
28
+ o.env Ext::ENV_ANALYTICS_SAMPLE_RATE
29
+ o.default 1.0
27
30
  end
28
31
  end
29
32
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Datadog
2
4
  module Tracing
3
5
  module Contrib
@@ -5,14 +7,14 @@ module Datadog
5
7
  # Sequel integration constants
6
8
  # @public_api Changing resource names, tag names, or environment variables creates breaking changes.
7
9
  module Ext
8
- ENV_ENABLED = 'DD_TRACE_SEQUEL_ENABLED'.freeze
9
- ENV_ANALYTICS_ENABLED = 'DD_TRACE_SEQUEL_ANALYTICS_ENABLED'.freeze
10
- ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_SEQUEL_ANALYTICS_SAMPLE_RATE'.freeze
11
- SPAN_QUERY = 'sequel.query'.freeze
12
- TAG_DB_VENDOR = 'sequel.db.vendor'.freeze
13
- TAG_PREPARED_NAME = 'sequel.prepared.name'.freeze
14
- TAG_COMPONENT = 'sequel'.freeze
15
- TAG_OPERATION_QUERY = 'query'.freeze
10
+ ENV_ENABLED = 'DD_TRACE_SEQUEL_ENABLED'
11
+ ENV_ANALYTICS_ENABLED = 'DD_TRACE_SEQUEL_ANALYTICS_ENABLED'
12
+ ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_SEQUEL_ANALYTICS_SAMPLE_RATE'
13
+ SPAN_QUERY = 'sequel.query'
14
+ TAG_DB_VENDOR = 'sequel.db.vendor'
15
+ TAG_PREPARED_NAME = 'sequel.prepared.name'
16
+ TAG_COMPONENT = 'sequel'
17
+ TAG_OPERATION_QUERY = 'query'
16
18
  end
17
19
  end
18
20
  end
@@ -52,16 +52,11 @@ module Datadog
52
52
  span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
53
53
  span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_QUERY)
54
54
 
55
- # Tag as an external peer service
56
- if Contrib::SpanAttributeSchema.default_span_attribute_schema?
57
- span.set_tag(Tracing::Metadata::Ext::TAG_PEER_SERVICE, span.service)
58
- end
59
-
60
55
  # TODO: Extract host for Sequel with JDBC. The easiest way seem to be through
61
56
  # TODO: the database URI. Unfortunately, JDBC URIs do not work with `URI.parse`.
62
57
  # host, _port = extract_host_port_from_uri(db.uri)
63
- # span.set_tag(Tracing::Metadata::Ext::TAG_PEER_HOSTNAME, host)
64
- span.set_tag(Tracing::Metadata::Ext::TAG_PEER_HOSTNAME, db.opts[:host]) if db.opts[:host]
58
+ # span.set_tag(Tracing::Metadata::Ext::TAG_DESTINATION_NAME, host)
59
+ span.set_tag(Tracing::Metadata::Ext::NET::TAG_DESTINATION_NAME, db.opts[:host]) if db.opts[:host]
65
60
 
66
61
  # Set analytics sample rate
67
62
  Contrib::Analytics.set_sample_rate(span, analytics_sample_rate) if analytics_enabled?
@@ -13,23 +13,29 @@ module Datadog
13
13
  # @public_api
14
14
  class Settings < Contrib::Configuration::Settings
15
15
  option :enabled do |o|
16
- o.default { env_to_bool(Ext::ENV_ENABLED, true) }
17
- o.lazy
16
+ o.type :bool
17
+ o.env Ext::ENV_ENABLED
18
+ o.default true
18
19
  end
19
20
 
20
21
  option :analytics_enabled do |o|
21
- o.default { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) }
22
- o.lazy
22
+ o.type :bool
23
+ o.env Ext::ENV_ANALYTICS_ENABLED
24
+ o.default false
23
25
  end
24
26
 
25
27
  option :analytics_sample_rate do |o|
26
- o.default { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) }
27
- o.lazy
28
+ o.type :float
29
+ o.env Ext::ENV_ANALYTICS_SAMPLE_RATE
30
+ o.default 1.0
28
31
  end
29
32
 
30
33
  option :service_name
31
- option :error_handler, default: Tracing::SpanOperation::Events::DEFAULT_ON_ERROR
32
- option :tag_body, default: false
34
+ option :error_handler do |o|
35
+ o.type :proc
36
+ o.experimental_default_proc(&Tracing::SpanOperation::Events::DEFAULT_ON_ERROR)
37
+ end
38
+ option :tag_body, default: false, type: :bool
33
39
  end
34
40
  end
35
41
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Datadog
2
4
  module Tracing
3
5
  module Contrib
@@ -5,18 +7,18 @@ module Datadog
5
7
  # Shoryuken integration constants
6
8
  # @public_api Changing resource names, tag names, or environment variables creates breaking changes.
7
9
  module Ext
8
- ENV_ENABLED = 'DD_TRACE_SHORYUKEN_ENABLED'.freeze
9
- ENV_ANALYTICS_ENABLED = 'DD_TRACE_SHORYUKEN_ANALYTICS_ENABLED'.freeze
10
- ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_SHORYUKEN_ANALYTICS_SAMPLE_RATE'.freeze
11
- SERVICE_NAME = 'shoryuken'.freeze
12
- SPAN_JOB = 'shoryuken.job'.freeze
13
- TAG_JOB_ID = 'shoryuken.id'.freeze
14
- TAG_JOB_QUEUE = 'shoryuken.queue'.freeze
15
- TAG_JOB_ATTRIBUTES = 'shoryuken.attributes'.freeze
16
- TAG_JOB_BODY = 'shoryuken.body'.freeze
17
- TAG_COMPONENT = 'shoryuken'.freeze
18
- TAG_OPERATION_JOB = 'job'.freeze
19
- TAG_MESSAGING_SYSTEM = 'amazonsqs'.freeze
10
+ ENV_ENABLED = 'DD_TRACE_SHORYUKEN_ENABLED'
11
+ ENV_ANALYTICS_ENABLED = 'DD_TRACE_SHORYUKEN_ANALYTICS_ENABLED'
12
+ ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_SHORYUKEN_ANALYTICS_SAMPLE_RATE'
13
+ SERVICE_NAME = 'shoryuken'
14
+ SPAN_JOB = 'shoryuken.job'
15
+ TAG_JOB_ID = 'shoryuken.id'
16
+ TAG_JOB_QUEUE = 'shoryuken.queue'
17
+ TAG_JOB_ATTRIBUTES = 'shoryuken.attributes'
18
+ TAG_JOB_BODY = 'shoryuken.body'
19
+ TAG_COMPONENT = 'shoryuken'
20
+ TAG_OPERATION_JOB = 'job'
21
+ TAG_MESSAGING_SYSTEM = 'amazonsqs'
20
22
  end
21
23
  end
22
24
  end
@@ -13,30 +13,37 @@ module Datadog
13
13
  # @public_api
14
14
  class Settings < Contrib::Configuration::Settings
15
15
  option :enabled do |o|
16
- o.default { env_to_bool(Ext::ENV_ENABLED, true) }
17
- o.lazy
16
+ o.type :bool
17
+ o.env Ext::ENV_ENABLED
18
+ o.default true
18
19
  end
19
20
 
20
21
  option :analytics_enabled do |o|
21
- o.default { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) }
22
- o.lazy
22
+ o.type :bool
23
+ o.env Ext::ENV_ANALYTICS_ENABLED
24
+ o.default false
23
25
  end
24
26
 
25
27
  option :analytics_sample_rate do |o|
26
- o.default { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) }
27
- o.lazy
28
+ o.type :float
29
+ o.env Ext::ENV_ANALYTICS_SAMPLE_RATE
30
+ o.default 1.0
28
31
  end
29
32
 
30
33
  option :tag_args do |o|
31
- o.default { env_to_bool(Ext::ENV_TAG_JOB_ARGS, false) }
32
- o.lazy
34
+ o.type :bool
35
+ o.env Ext::ENV_TAG_JOB_ARGS
36
+ o.default false
33
37
  end
34
38
 
35
39
  option :service_name
36
40
  option :client_service_name
37
- option :error_handler, default: Tracing::SpanOperation::Events::DEFAULT_ON_ERROR
38
- option :quantize, default: {}
39
- option :distributed_tracing, default: false
41
+ option :error_handler do |o|
42
+ o.type :proc
43
+ o.experimental_default_proc(&Tracing::SpanOperation::Events::DEFAULT_ON_ERROR)
44
+ end
45
+ option :quantize, default: {}, type: :hash
46
+ option :distributed_tracing, default: false, type: :bool
40
47
  end
41
48
  end
42
49
  end