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
@@ -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
  # ActionPack 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_ACTION_PACK_ENABLED'.freeze
9
- ENV_ANALYTICS_ENABLED = 'DD_TRACE_ACTION_PACK_ANALYTICS_ENABLED'.freeze
10
- ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_ACTION_PACK_ANALYTICS_SAMPLE_RATE'.freeze
11
- SPAN_ACTION_CONTROLLER = 'rails.action_controller'.freeze
12
- TAG_COMPONENT = 'action_pack'.freeze
13
- TAG_OPERATION_CONTROLLER = 'controller'.freeze
14
- TAG_ROUTE_ACTION = 'rails.route.action'.freeze
15
- TAG_ROUTE_CONTROLLER = 'rails.route.controller'.freeze
10
+ ENV_ENABLED = 'DD_TRACE_ACTION_PACK_ENABLED'
11
+ ENV_ANALYTICS_ENABLED = 'DD_TRACE_ACTION_PACK_ANALYTICS_ENABLED'
12
+ ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_ACTION_PACK_ANALYTICS_SAMPLE_RATE'
13
+ SPAN_ACTION_CONTROLLER = 'rails.action_controller'
14
+ TAG_COMPONENT = 'action_pack'
15
+ TAG_OPERATION_CONTROLLER = 'controller'
16
+ TAG_ROUTE_ACTION = 'rails.route.action'
17
+ TAG_ROUTE_CONTROLLER = 'rails.route.controller'
16
18
  end
17
19
  end
18
20
  end
@@ -10,18 +10,21 @@ module Datadog
10
10
  # @public_api
11
11
  class Settings < Contrib::Configuration::Settings
12
12
  option :enabled do |o|
13
- o.default { env_to_bool(Ext::ENV_ENABLED, true) }
14
- o.lazy
13
+ o.type :bool
14
+ o.env Ext::ENV_ENABLED
15
+ o.default true
15
16
  end
16
17
 
17
18
  option :analytics_enabled do |o|
18
- o.default { env_to_bool(Ext::ENV_ANALYTICS_ENABLED, false) }
19
- o.lazy
19
+ o.type :bool
20
+ o.env Ext::ENV_ANALYTICS_ENABLED
21
+ o.default false
20
22
  end
21
23
 
22
24
  option :analytics_sample_rate do |o|
23
- o.default { env_to_float(Ext::ENV_ANALYTICS_SAMPLE_RATE, 1.0) }
24
- o.lazy
25
+ o.type :float
26
+ o.env Ext::ENV_ANALYTICS_SAMPLE_RATE
27
+ o.default 1.0
25
28
  end
26
29
 
27
30
  option :service_name
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Datadog
2
4
  module Tracing
3
5
  module Contrib
@@ -5,16 +7,16 @@ module Datadog
5
7
  # ActionView 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_ACTION_VIEW_ENABLED'.freeze
9
- ENV_ANALYTICS_ENABLED = 'DD_TRACE_ACTION_VIEW_ANALYTICS_ENABLED'.freeze
10
- ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_ACTION_VIEW_ANALYTICS_SAMPLE_RATE'.freeze
11
- SPAN_RENDER_PARTIAL = 'rails.render_partial'.freeze
12
- SPAN_RENDER_TEMPLATE = 'rails.render_template'.freeze
13
- TAG_COMPONENT = 'action_view'.freeze
14
- TAG_LAYOUT = 'rails.layout'.freeze
15
- TAG_OPERATION_RENDER_PARTIAL = 'render_partial'.freeze
16
- TAG_OPERATION_RENDER_TEMPLATE = 'render_template'.freeze
17
- TAG_TEMPLATE_NAME = 'rails.template_name'.freeze
10
+ ENV_ENABLED = 'DD_TRACE_ACTION_VIEW_ENABLED'
11
+ ENV_ANALYTICS_ENABLED = 'DD_TRACE_ACTION_VIEW_ANALYTICS_ENABLED'
12
+ ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_ACTION_VIEW_ANALYTICS_SAMPLE_RATE'
13
+ SPAN_RENDER_PARTIAL = 'rails.render_partial'
14
+ SPAN_RENDER_TEMPLATE = 'rails.render_template'
15
+ TAG_COMPONENT = 'action_view'
16
+ TAG_LAYOUT = 'rails.layout'
17
+ TAG_OPERATION_RENDER_PARTIAL = 'render_partial'
18
+ TAG_OPERATION_RENDER_TEMPLATE = 'render_template'
19
+ TAG_TEMPLATE_NAME = 'rails.template_name'
18
20
  end
19
21
  end
20
22
  end
@@ -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,35 +1,37 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Datadog
2
4
  module Tracing
3
5
  module Contrib
4
6
  module ActiveJob
5
7
  # @public_api Changing resource names, tag names, or environment variables creates breaking changes.
6
8
  module Ext
7
- ENV_ENABLED = 'DD_TRACE_ACTIVE_JOB_ENABLED'.freeze
8
- ENV_ANALYTICS_ENABLED = 'DD_TRACE_ACTIVE_JOB_ANALYTICS_ENABLED'.freeze
9
- ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_ACTIVE_JOB_ANALYTICS_SAMPLE_RATE'.freeze
9
+ ENV_ENABLED = 'DD_TRACE_ACTIVE_JOB_ENABLED'
10
+ ENV_ANALYTICS_ENABLED = 'DD_TRACE_ACTIVE_JOB_ANALYTICS_ENABLED'
11
+ ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_ACTIVE_JOB_ANALYTICS_SAMPLE_RATE'
10
12
 
11
- SPAN_DISCARD = 'active_job.discard'.freeze
12
- SPAN_ENQUEUE = 'active_job.enqueue'.freeze
13
- SPAN_ENQUEUE_RETRY = 'active_job.enqueue_retry'.freeze
14
- SPAN_PERFORM = 'active_job.perform'.freeze
15
- SPAN_RETRY_STOPPED = 'active_job.retry_stopped'.freeze
13
+ SPAN_DISCARD = 'active_job.discard'
14
+ SPAN_ENQUEUE = 'active_job.enqueue'
15
+ SPAN_ENQUEUE_RETRY = 'active_job.enqueue_retry'
16
+ SPAN_PERFORM = 'active_job.perform'
17
+ SPAN_RETRY_STOPPED = 'active_job.retry_stopped'
16
18
 
17
- TAG_COMPONENT = 'active_job'.freeze
18
- TAG_OPERATION_DISCARD = 'discard'.freeze
19
- TAG_OPERATION_ENQUEUE = 'enqueue'.freeze
20
- TAG_OPERATION_ENQUEUE_AT = 'enqueue_at'.freeze
21
- TAG_OPERATION_ENQUEUE_RETRY = 'enqueue_retry'.freeze
22
- TAG_OPERATION_PERFORM = 'perform'.freeze
23
- TAG_OPERATION_RETRY_STOPPED = 'retry_stopped'.freeze
19
+ TAG_COMPONENT = 'active_job'
20
+ TAG_OPERATION_DISCARD = 'discard'
21
+ TAG_OPERATION_ENQUEUE = 'enqueue'
22
+ TAG_OPERATION_ENQUEUE_AT = 'enqueue_at'
23
+ TAG_OPERATION_ENQUEUE_RETRY = 'enqueue_retry'
24
+ TAG_OPERATION_PERFORM = 'perform'
25
+ TAG_OPERATION_RETRY_STOPPED = 'retry_stopped'
24
26
 
25
- TAG_ADAPTER = 'active_job.adapter'.freeze
26
- TAG_JOB_ERROR = 'active_job.job.error'.freeze
27
- TAG_JOB_EXECUTIONS = 'active_job.job.executions'.freeze
28
- TAG_JOB_ID = 'active_job.job.id'.freeze
29
- TAG_JOB_PRIORITY = 'active_job.job.priority'.freeze
30
- TAG_JOB_QUEUE = 'active_job.job.queue'.freeze
31
- TAG_JOB_RETRY_WAIT = 'active_job.job.retry_wait'.freeze
32
- TAG_JOB_SCHEDULED_AT = 'active_job.job.scheduled_at'.freeze
27
+ TAG_ADAPTER = 'active_job.adapter'
28
+ TAG_JOB_ERROR = 'active_job.job.error'
29
+ TAG_JOB_EXECUTIONS = 'active_job.job.executions'
30
+ TAG_JOB_ID = 'active_job.job.id'
31
+ TAG_JOB_PRIORITY = 'active_job.job.priority'
32
+ TAG_JOB_QUEUE = 'active_job.job.queue'
33
+ TAG_JOB_RETRY_WAIT = 'active_job.job.retry_wait'
34
+ TAG_JOB_SCHEDULED_AT = 'active_job.job.scheduled_at'
33
35
  end
34
36
  end
35
37
  end
@@ -9,7 +9,7 @@ module Datadog
9
9
  def self.included(base)
10
10
  base.class_eval do
11
11
  around_perform do |_, block|
12
- if logger.respond_to?(:tagged)
12
+ if Datadog.configuration.tracing.log_injection && logger.respond_to?(:tagged)
13
13
  logger.tagged(Tracing.log_correlation, &block)
14
14
  else
15
15
  block.call
@@ -21,7 +21,7 @@ module Datadog
21
21
 
22
22
  def patch
23
23
  Events.subscribe!
24
- inject_log_correlation if Datadog.configuration.tracing.log_injection
24
+ inject_log_correlation
25
25
  end
26
26
 
27
27
  def inject_log_correlation
@@ -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,16 +7,16 @@ module Datadog
5
7
  # ActiveModelSerializers 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_ACTIVE_MODEL_SERIALIZERS_ENABLED'.freeze
9
- ENV_ANALYTICS_ENABLED = 'DD_TRACE_ACTIVE_MODEL_SERIALIZERS_ANALYTICS_ENABLED'.freeze
10
- ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_ACTIVE_MODEL_SERIALIZERS_ANALYTICS_SAMPLE_RATE'.freeze
11
- SPAN_RENDER = 'active_model_serializers.render'.freeze
12
- SPAN_SERIALIZE = 'active_model_serializers.serialize'.freeze
13
- TAG_ADAPTER = 'active_model_serializers.adapter'.freeze
14
- TAG_COMPONENT = 'active_model_serializers'.freeze
15
- TAG_OPERATION_RENDER = 'render'.freeze
16
- TAG_OPERATION_SERIALIZE = 'serialize'.freeze
17
- TAG_SERIALIZER = 'active_model_serializers.serializer'.freeze
10
+ ENV_ENABLED = 'DD_TRACE_ACTIVE_MODEL_SERIALIZERS_ENABLED'
11
+ ENV_ANALYTICS_ENABLED = 'DD_TRACE_ACTIVE_MODEL_SERIALIZERS_ANALYTICS_ENABLED'
12
+ ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_ACTIVE_MODEL_SERIALIZERS_ANALYTICS_SAMPLE_RATE'
13
+ SPAN_RENDER = 'active_model_serializers.render'
14
+ SPAN_SERIALIZE = 'active_model_serializers.serialize'
15
+ TAG_ADAPTER = 'active_model_serializers.adapter'
16
+ TAG_COMPONENT = 'active_model_serializers'
17
+ TAG_OPERATION_RENDER = 'render'
18
+ TAG_OPERATION_SERIALIZE = 'serialize'
19
+ TAG_SERIALIZER = 'active_model_serializers.serializer'
18
20
  end
19
21
  end
20
22
  end
@@ -13,18 +13,21 @@ 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 do |o|
@@ -34,7 +37,6 @@ module Datadog
34
37
  Utils.adapter_name
35
38
  )
36
39
  end
37
- o.lazy
38
40
  end
39
41
  end
40
42
  end
@@ -45,14 +45,6 @@ module Datadog
45
45
  span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
46
46
  span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_SQL)
47
47
 
48
- # Tag as an external peer service
49
- if Contrib::SpanAttributeSchema.default_span_attribute_schema?
50
- span.set_tag(Tracing::Metadata::Ext::TAG_PEER_SERVICE, span.service)
51
- end
52
-
53
- # TODO: Populate hostname for JDBC connections
54
- span.set_tag(Tracing::Metadata::Ext::TAG_PEER_HOSTNAME, config[:host]) if config[:host]
55
-
56
48
  # Set analytics sample rate
57
49
  if Contrib::Analytics.enabled?(configuration[:analytics_enabled])
58
50
  Contrib::Analytics.set_sample_rate(span, configuration[:analytics_sample_rate])
@@ -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,21 @@ module Datadog
5
7
  # ActiveRecord 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_ACTIVE_RECORD_ENABLED'.freeze
9
- ENV_ANALYTICS_ENABLED = 'DD_TRACE_ACTIVE_RECORD_ANALYTICS_ENABLED'.freeze
10
- ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_ACTIVE_RECORD_ANALYTICS_SAMPLE_RATE'.freeze
11
- SERVICE_NAME = 'active_record'.freeze
12
- SPAN_INSTANTIATION = 'active_record.instantiation'.freeze
13
- SPAN_SQL = 'active_record.sql'.freeze
14
- SPAN_TYPE_INSTANTIATION = 'custom'.freeze
15
- TAG_COMPONENT = 'active_record'.freeze
16
- TAG_OPERATION_INSTANTIATION = 'instantiation'.freeze
17
- TAG_OPERATION_SQL = 'sql'.freeze
18
- TAG_DB_CACHED = 'active_record.db.cached'.freeze
19
- TAG_DB_NAME = 'active_record.db.name'.freeze
20
- TAG_DB_VENDOR = 'active_record.db.vendor'.freeze
21
- TAG_INSTANTIATION_CLASS_NAME = 'active_record.instantiation.class_name'.freeze
22
- TAG_INSTANTIATION_RECORD_COUNT = 'active_record.instantiation.record_count'.freeze
10
+ ENV_ENABLED = 'DD_TRACE_ACTIVE_RECORD_ENABLED'
11
+ ENV_ANALYTICS_ENABLED = 'DD_TRACE_ACTIVE_RECORD_ANALYTICS_ENABLED'
12
+ ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_ACTIVE_RECORD_ANALYTICS_SAMPLE_RATE'
13
+ SERVICE_NAME = 'active_record'
14
+ SPAN_INSTANTIATION = 'active_record.instantiation'
15
+ SPAN_SQL = 'active_record.sql'
16
+ SPAN_TYPE_INSTANTIATION = 'custom'
17
+ TAG_COMPONENT = 'active_record'
18
+ TAG_OPERATION_INSTANTIATION = 'instantiation'
19
+ TAG_OPERATION_SQL = 'sql'
20
+ TAG_DB_CACHED = 'active_record.db.cached'
21
+ TAG_DB_NAME = 'active_record.db.name'
22
+ TAG_DB_VENDOR = 'active_record.db.vendor'
23
+ TAG_INSTANTIATION_CLASS_NAME = 'active_record.instantiation.class_name'
24
+ TAG_INSTANTIATION_RECORD_COUNT = 'active_record.instantiation.record_count'
23
25
  end
24
26
  end
25
27
  end
@@ -42,11 +42,6 @@ module Datadog
42
42
  span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
43
43
  span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_CACHE)
44
44
 
45
- if Contrib::SpanAttributeSchema.default_span_attribute_schema?
46
- # Tag as an external peer service
47
- span.set_tag(Tracing::Metadata::Ext::TAG_PEER_SERVICE, service)
48
- end
49
-
50
45
  tracing_context[:dd_cache_span] = span
51
46
  rescue StandardError => e
52
47
  Datadog.logger.debug(e.message)
@@ -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
 
29
32
  option :cache_service do |o|
@@ -33,7 +36,6 @@ module Datadog
33
36
  Ext::SERVICE_CACHE
34
37
  )
35
38
  end
36
- o.lazy
37
39
  end
38
40
  end
39
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,23 +7,23 @@ module Datadog
5
7
  # ActiveSupport 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_ACTIVE_SUPPORT_ENABLED'.freeze
9
- ENV_ANALYTICS_ENABLED = 'DD_TRACE_ACTIVE_SUPPORT_ANALYTICS_ENABLED'.freeze
10
- ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_ACTIVE_SUPPORT_ANALYTICS_SAMPLE_RATE'.freeze
10
+ ENV_ENABLED = 'DD_TRACE_ACTIVE_SUPPORT_ENABLED'
11
+ ENV_ANALYTICS_ENABLED = 'DD_TRACE_ACTIVE_SUPPORT_ANALYTICS_ENABLED'
12
+ ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_ACTIVE_SUPPORT_ANALYTICS_SAMPLE_RATE'
11
13
  QUANTIZE_CACHE_MAX_KEY_SIZE = 300
12
- RESOURCE_CACHE_DELETE = 'DELETE'.freeze
13
- RESOURCE_CACHE_GET = 'GET'.freeze
14
- RESOURCE_CACHE_MGET = 'MGET'.freeze
15
- RESOURCE_CACHE_SET = 'SET'.freeze
16
- RESOURCE_CACHE_MSET = 'MSET'.freeze
17
- SERVICE_CACHE = 'active_support-cache'.freeze
18
- SPAN_CACHE = 'rails.cache'.freeze
19
- SPAN_TYPE_CACHE = 'cache'.freeze
20
- TAG_CACHE_BACKEND = 'rails.cache.backend'.freeze
21
- TAG_CACHE_KEY = 'rails.cache.key'.freeze
22
- TAG_CACHE_KEY_MULTI = 'rails.cache.keys'.freeze
23
- TAG_COMPONENT = 'active_support'.freeze
24
- TAG_OPERATION_CACHE = 'cache'.freeze
14
+ RESOURCE_CACHE_DELETE = 'DELETE'
15
+ RESOURCE_CACHE_GET = 'GET'
16
+ RESOURCE_CACHE_MGET = 'MGET'
17
+ RESOURCE_CACHE_SET = 'SET'
18
+ RESOURCE_CACHE_MSET = 'MSET'
19
+ SERVICE_CACHE = 'active_support-cache'
20
+ SPAN_CACHE = 'rails.cache'
21
+ SPAN_TYPE_CACHE = 'cache'
22
+ TAG_CACHE_BACKEND = 'rails.cache.backend'
23
+ TAG_CACHE_KEY = 'rails.cache.key'
24
+ TAG_CACHE_KEY_MULTI = 'rails.cache.keys'
25
+ TAG_COMPONENT = 'active_support'
26
+ TAG_OPERATION_CACHE = 'cache'
25
27
  end
26
28
  end
27
29
  end
@@ -13,18 +13,21 @@ 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 do |o|
@@ -34,7 +37,11 @@ module Datadog
34
37
  Ext::DEFAULT_PEER_SERVICE_NAME
35
38
  )
36
39
  end
37
- o.lazy
40
+ end
41
+
42
+ option :peer_service do |o|
43
+ o.type :string, nilable: true
44
+ o.env Ext::ENV_PEER_SERVICE
38
45
  end
39
46
  end
40
47
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Datadog
2
4
  module Tracing
3
5
  module Contrib
@@ -5,30 +7,41 @@ module Datadog
5
7
  # AWS 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_AWS_ENABLED'.freeze
9
- ENV_SERVICE_NAME = 'DD_TRACE_AWS_SERVICE_NAME'.freeze
10
- ENV_ANALYTICS_ENABLED = 'DD_TRACE_AWS_ANALYTICS_ENABLED'.freeze
11
- ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_AWS_ANALYTICS_SAMPLE_RATE'.freeze
12
- DEFAULT_PEER_SERVICE_NAME = 'aws'.freeze
13
- SPAN_COMMAND = 'aws.command'.freeze
14
- TAG_AGENT = 'aws.agent'.freeze
15
- TAG_COMPONENT = 'aws'.freeze
16
- TAG_DEFAULT_AGENT = 'aws-sdk-ruby'.freeze
17
- TAG_HOST = 'host'.freeze
18
- TAG_OPERATION = 'aws.operation'.freeze
19
- TAG_OPERATION_COMMAND = 'command'.freeze
20
- TAG_PATH = 'path'.freeze
21
- TAG_AWS_REGION = 'aws.region'.freeze
22
- TAG_REGION = 'region'.freeze
23
- TAG_AWS_SERVICE = 'aws_service'.freeze
24
- TAG_AWS_ACCOUNT = 'aws_account'.freeze
25
- TAG_QUEUE_NAME = 'queuename'.freeze
26
- TAG_TOPIC_NAME = 'topicname'.freeze
27
- TAG_TABLE_NAME = 'tablename'.freeze
28
- TAG_STREAM_NAME = 'streamname'.freeze
29
- TAG_RULE_NAME = 'rulename'.freeze
30
- TAG_STATE_MACHINE_NAME = 'statemachinename'.freeze
31
- TAG_BUCKET_NAME = 'bucketname'.freeze
10
+ ENV_ENABLED = 'DD_TRACE_AWS_ENABLED'
11
+ ENV_SERVICE_NAME = 'DD_TRACE_AWS_SERVICE_NAME'
12
+ ENV_PEER_SERVICE = 'DD_TRACE_AWS_PEER_SERVICE'
13
+ ENV_ANALYTICS_ENABLED = 'DD_TRACE_AWS_ANALYTICS_ENABLED'
14
+ ENV_ANALYTICS_SAMPLE_RATE = 'DD_TRACE_AWS_ANALYTICS_SAMPLE_RATE'
15
+ DEFAULT_PEER_SERVICE_NAME = 'aws'
16
+ SPAN_COMMAND = 'aws.command'
17
+ TAG_AGENT = 'aws.agent'
18
+ TAG_COMPONENT = 'aws'
19
+ TAG_DEFAULT_AGENT = 'aws-sdk-ruby'
20
+ TAG_HOST = 'host'
21
+ TAG_OPERATION = 'aws.operation'
22
+ TAG_OPERATION_COMMAND = 'command'
23
+ TAG_PATH = 'path'
24
+ TAG_AWS_REGION = 'aws.region'
25
+ TAG_REGION = 'region'
26
+ TAG_AWS_SERVICE = 'aws_service'
27
+ TAG_AWS_ACCOUNT = 'aws_account'
28
+ TAG_QUEUE_NAME = 'queuename'
29
+ TAG_TOPIC_NAME = 'topicname'
30
+ TAG_TABLE_NAME = 'tablename'
31
+ TAG_STREAM_NAME = 'streamname'
32
+ TAG_RULE_NAME = 'rulename'
33
+ TAG_STATE_MACHINE_NAME = 'statemachinename'
34
+ TAG_BUCKET_NAME = 'bucketname'
35
+ PEER_SERVICE_SOURCES = Array[TAG_QUEUE_NAME,
36
+ TAG_TOPIC_NAME,
37
+ TAG_STREAM_NAME,
38
+ TAG_TABLE_NAME,
39
+ TAG_BUCKET_NAME,
40
+ TAG_RULE_NAME,
41
+ TAG_STATE_MACHINE_NAME,
42
+ Tracing::Metadata::Ext::TAG_PEER_HOSTNAME,
43
+ Tracing::Metadata::Ext::NET::TAG_DESTINATION_NAME,
44
+ Tracing::Metadata::Ext::NET::TAG_TARGET_HOST,].freeze
32
45
  end
33
46
  end
34
47
  end
@@ -40,16 +40,18 @@ module Datadog
40
40
  handler.add_tags(span, params)
41
41
  end
42
42
 
43
+ if configuration[:peer_service]
44
+ span.set_tag(
45
+ Tracing::Metadata::Ext::TAG_PEER_SERVICE,
46
+ configuration[:peer_service]
47
+ )
48
+ end
49
+
43
50
  span.set_tag(Tracing::Metadata::Ext::TAG_KIND, Tracing::Metadata::Ext::SpanKind::TAG_CLIENT)
44
51
 
45
52
  span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
46
53
  span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_COMMAND)
47
54
 
48
- # Tag as an external peer service
49
- if Contrib::SpanAttributeSchema.default_span_attribute_schema?
50
- span.set_tag(Tracing::Metadata::Ext::TAG_PEER_SERVICE, span.service)
51
- end
52
-
53
55
  span.set_tag(Tracing::Metadata::Ext::TAG_PEER_HOSTNAME, context.safely(:host))
54
56
 
55
57
  # Set analytics sample rate
@@ -66,6 +68,8 @@ module Datadog
66
68
  span.set_tag(Ext::TAG_HOST, context.safely(:host))
67
69
  span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_METHOD, context.safely(:http_method))
68
70
  span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_STATUS_CODE, context.safely(:status_code))
71
+
72
+ Contrib::SpanAttributeSchema.set_peer_service!(span, Ext::PEER_SERVICE_SOURCES)
69
73
  end
70
74
 
71
75
  def configuration
@@ -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,8 +7,8 @@ module Datadog
5
7
  # ConcurrentRuby integration constants
6
8
  # @public_api Changing resource names, tag names, or environment variables creates breaking changes.
7
9
  module Ext
8
- APP = 'concurrent-ruby'.freeze
9
- ENV_ENABLED = 'DD_TRACE_CONCURRENT_RUBY_ENABLED'.freeze
10
+ APP = 'concurrent-ruby'
11
+ ENV_ENABLED = 'DD_TRACE_CONCURRENT_RUBY_ENABLED'
10
12
  end
11
13
  end
12
14
  end