datadog 2.38.0 → 2.39.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 (805) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +20 -1
  3. data/bin/ddprofrb +4 -4
  4. data/ext/datadog_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +77 -1
  5. data/ext/datadog_profiling_native_extension/extconf.rb +1 -1
  6. data/ext/datadog_profiling_native_extension/setup_signal_handler.c +2 -0
  7. data/ext/libdatadog_api/extconf.rb +24 -24
  8. data/ext/libdatadog_api/feature_flags.c +26 -0
  9. data/ext/libdatadog_extconf_helpers.rb +9 -9
  10. data/lib/datadog/ai_guard/api_client.rb +2 -2
  11. data/lib/datadog/ai_guard/component.rb +10 -10
  12. data/lib/datadog/appsec/actions_handler/serializable_backtrace.rb +16 -16
  13. data/lib/datadog/appsec/actions_handler.rb +6 -6
  14. data/lib/datadog/appsec/anonymizer.rb +1 -1
  15. data/lib/datadog/appsec/api_security/endpoint_collection/grape_route_serializer.rb +1 -1
  16. data/lib/datadog/appsec/api_security/endpoint_collection/rails_collector.rb +6 -6
  17. data/lib/datadog/appsec/api_security/endpoint_collection/sinatra_route_serializer.rb +1 -1
  18. data/lib/datadog/appsec/api_security/route_extractor.rb +11 -11
  19. data/lib/datadog/appsec/api_security/sampler.rb +5 -5
  20. data/lib/datadog/appsec/api_security.rb +1 -1
  21. data/lib/datadog/appsec/assets.rb +7 -7
  22. data/lib/datadog/appsec/autoload.rb +3 -3
  23. data/lib/datadog/appsec/component.rb +15 -15
  24. data/lib/datadog/appsec/compressed_json.rb +6 -6
  25. data/lib/datadog/appsec/configuration.rb +59 -59
  26. data/lib/datadog/appsec/context.rb +6 -6
  27. data/lib/datadog/appsec/contrib/active_record/instrumentation.rb +6 -6
  28. data/lib/datadog/appsec/contrib/active_record/integration.rb +4 -4
  29. data/lib/datadog/appsec/contrib/active_record/patcher.rb +4 -4
  30. data/lib/datadog/appsec/contrib/aws_lambda/gateway/watcher.rb +7 -7
  31. data/lib/datadog/appsec/contrib/aws_lambda/integration.rb +2 -2
  32. data/lib/datadog/appsec/contrib/aws_lambda/patcher.rb +2 -2
  33. data/lib/datadog/appsec/contrib/aws_lambda/waf_addresses.rb +36 -34
  34. data/lib/datadog/appsec/contrib/devise/data_extractor.rb +3 -3
  35. data/lib/datadog/appsec/contrib/devise/ext.rb +20 -20
  36. data/lib/datadog/appsec/contrib/devise/integration.rb +4 -4
  37. data/lib/datadog/appsec/contrib/devise/patcher.rb +7 -7
  38. data/lib/datadog/appsec/contrib/devise/patches/signin_tracking_patch.rb +12 -12
  39. data/lib/datadog/appsec/contrib/devise/patches/signup_tracking_patch.rb +8 -8
  40. data/lib/datadog/appsec/contrib/devise/tracking_middleware.rb +24 -9
  41. data/lib/datadog/appsec/contrib/excon/integration.rb +4 -4
  42. data/lib/datadog/appsec/contrib/excon/patcher.rb +1 -1
  43. data/lib/datadog/appsec/contrib/excon/ssrf_detection_middleware.rb +26 -26
  44. data/lib/datadog/appsec/contrib/faraday/integration.rb +4 -4
  45. data/lib/datadog/appsec/contrib/faraday/patcher.rb +4 -4
  46. data/lib/datadog/appsec/contrib/faraday/ssrf_detection_middleware.rb +22 -22
  47. data/lib/datadog/appsec/contrib/graphql/appsec_trace.rb +4 -4
  48. data/lib/datadog/appsec/contrib/graphql/gateway/multiplex.rb +2 -2
  49. data/lib/datadog/appsec/contrib/graphql/gateway/watcher.rb +7 -7
  50. data/lib/datadog/appsec/contrib/graphql/integration.rb +9 -9
  51. data/lib/datadog/appsec/contrib/graphql/patcher.rb +3 -3
  52. data/lib/datadog/appsec/contrib/rack/buffered_input.rb +1 -1
  53. data/lib/datadog/appsec/contrib/rack/ext.rb +29 -29
  54. data/lib/datadog/appsec/contrib/rack/gateway/request.rb +14 -18
  55. data/lib/datadog/appsec/contrib/rack/gateway/response.rb +1 -1
  56. data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +24 -24
  57. data/lib/datadog/appsec/contrib/rack/input_peeker.rb +6 -6
  58. data/lib/datadog/appsec/contrib/rack/integration.rb +6 -6
  59. data/lib/datadog/appsec/contrib/rack/patcher.rb +2 -2
  60. data/lib/datadog/appsec/contrib/rack/request_body_middleware.rb +5 -5
  61. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +26 -26
  62. data/lib/datadog/appsec/contrib/rack/response_body.rb +1 -1
  63. data/lib/datadog/appsec/contrib/rails/gateway/request.rb +10 -10
  64. data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +10 -10
  65. data/lib/datadog/appsec/contrib/rails/integration.rb +5 -5
  66. data/lib/datadog/appsec/contrib/rails/patcher.rb +17 -17
  67. data/lib/datadog/appsec/contrib/rails/patches/process_action_patch.rb +2 -2
  68. data/lib/datadog/appsec/contrib/rails/patches/render_to_body_patch.rb +3 -3
  69. data/lib/datadog/appsec/contrib/rails/request.rb +3 -3
  70. data/lib/datadog/appsec/contrib/rest_client/integration.rb +5 -5
  71. data/lib/datadog/appsec/contrib/rest_client/patcher.rb +1 -1
  72. data/lib/datadog/appsec/contrib/rest_client/request_ssrf_detection_patch.rb +23 -23
  73. data/lib/datadog/appsec/contrib/sinatra/gateway/request.rb +1 -1
  74. data/lib/datadog/appsec/contrib/sinatra/gateway/route_params.rb +1 -1
  75. data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +15 -15
  76. data/lib/datadog/appsec/contrib/sinatra/integration.rb +5 -5
  77. data/lib/datadog/appsec/contrib/sinatra/patcher.rb +11 -11
  78. data/lib/datadog/appsec/contrib/sinatra/patches/json_patch.rb +3 -3
  79. data/lib/datadog/appsec/counter_sampler.rb +1 -1
  80. data/lib/datadog/appsec/event.rb +14 -14
  81. data/lib/datadog/appsec/ext.rb +11 -11
  82. data/lib/datadog/appsec/extensions.rb +2 -2
  83. data/lib/datadog/appsec/instrumentation/gateway.rb +1 -1
  84. data/lib/datadog/appsec/metrics/exporter.rb +8 -8
  85. data/lib/datadog/appsec/metrics/telemetry.rb +7 -7
  86. data/lib/datadog/appsec/metrics/telemetry_exporter.rb +4 -4
  87. data/lib/datadog/appsec/metrics.rb +4 -4
  88. data/lib/datadog/appsec/monitor/gateway/watcher.rb +16 -12
  89. data/lib/datadog/appsec/monitor.rb +1 -1
  90. data/lib/datadog/appsec/processor/rule_loader.rb +26 -26
  91. data/lib/datadog/appsec/rate_limiter.rb +1 -1
  92. data/lib/datadog/appsec/remote.rb +6 -6
  93. data/lib/datadog/appsec/response.rb +21 -21
  94. data/lib/datadog/appsec/route_normalizer/rails_route_pattern.rb +11 -11
  95. data/lib/datadog/appsec/route_normalizer/route_pattern.rb +15 -15
  96. data/lib/datadog/appsec/route_normalizer/route_text.rb +3 -3
  97. data/lib/datadog/appsec/route_normalizer.rb +15 -15
  98. data/lib/datadog/appsec/security_engine/engine.rb +37 -37
  99. data/lib/datadog/appsec/security_engine/runner.rb +2 -2
  100. data/lib/datadog/appsec/security_event.rb +2 -2
  101. data/lib/datadog/appsec/utils/http/body.rb +11 -8
  102. data/lib/datadog/appsec/utils/http/body_reader.rb +1 -1
  103. data/lib/datadog/appsec/utils/http/media_range.rb +15 -15
  104. data/lib/datadog/appsec/utils/http/media_type.rb +4 -4
  105. data/lib/datadog/appsec/utils/http/url_encoded.rb +80 -25
  106. data/lib/datadog/appsec.rb +16 -16
  107. data/lib/datadog/auto_instrument.rb +2 -2
  108. data/lib/datadog/core/buffer/cruby.rb +1 -1
  109. data/lib/datadog/core/buffer/thread_safe.rb +1 -1
  110. data/lib/datadog/core/configuration/agent_settings.rb +1 -1
  111. data/lib/datadog/core/configuration/agent_settings_resolver.rb +15 -15
  112. data/lib/datadog/core/configuration/base.rb +2 -2
  113. data/lib/datadog/core/configuration/components.rb +33 -29
  114. data/lib/datadog/core/configuration/config_helper.rb +3 -3
  115. data/lib/datadog/core/configuration/deprecations.rb +6 -6
  116. data/lib/datadog/core/configuration/ext.rb +11 -11
  117. data/lib/datadog/core/configuration/option.rb +16 -16
  118. data/lib/datadog/core/configuration/option_definition.rb +4 -4
  119. data/lib/datadog/core/configuration/options.rb +1 -1
  120. data/lib/datadog/core/configuration/settings.rb +58 -58
  121. data/lib/datadog/core/configuration/stable_config.rb +1 -1
  122. data/lib/datadog/core/configuration/supported_configurations.rb +2 -1
  123. data/lib/datadog/core/configuration.rb +8 -8
  124. data/lib/datadog/core/contrib/rails/railtie.rb +3 -3
  125. data/lib/datadog/core/crashtracking/component.rb +9 -9
  126. data/lib/datadog/core/crashtracking/tag_builder.rb +5 -5
  127. data/lib/datadog/core/deprecations.rb +1 -1
  128. data/lib/datadog/core/diagnostics/environment_logger.rb +6 -6
  129. data/lib/datadog/core/diagnostics/health.rb +2 -2
  130. data/lib/datadog/core/encoding.rb +4 -4
  131. data/lib/datadog/core/environment/agent_info.rb +2 -2
  132. data/lib/datadog/core/environment/cgroup.rb +4 -4
  133. data/lib/datadog/core/environment/container.rb +9 -9
  134. data/lib/datadog/core/environment/execution.rb +3 -3
  135. data/lib/datadog/core/environment/ext.rb +18 -18
  136. data/lib/datadog/core/environment/git.rb +2 -2
  137. data/lib/datadog/core/environment/identity.rb +10 -10
  138. data/lib/datadog/core/environment/platform.rb +8 -8
  139. data/lib/datadog/core/environment/process.rb +3 -3
  140. data/lib/datadog/core/environment/socket.rb +2 -2
  141. data/lib/datadog/core/environment/variable_helpers.rb +1 -1
  142. data/lib/datadog/core/error.rb +5 -5
  143. data/lib/datadog/core/evp.rb +2 -2
  144. data/lib/datadog/core/extensions.rb +1 -1
  145. data/lib/datadog/core/feature_flags.rb +2 -2
  146. data/lib/datadog/core/git/ext.rb +4 -4
  147. data/lib/datadog/core/logger.rb +3 -3
  148. data/lib/datadog/core/logging/ext.rb +1 -1
  149. data/lib/datadog/core/metrics/client.rb +20 -20
  150. data/lib/datadog/core/metrics/ext.rb +5 -5
  151. data/lib/datadog/core/metrics/logging.rb +2 -2
  152. data/lib/datadog/core/metrics/options.rb +3 -3
  153. data/lib/datadog/core/pin.rb +1 -1
  154. data/lib/datadog/core/process_discovery.rb +8 -8
  155. data/lib/datadog/core/rate_limiter.rb +1 -1
  156. data/lib/datadog/core/remote/client/capabilities.rb +36 -20
  157. data/lib/datadog/core/remote/client.rb +16 -16
  158. data/lib/datadog/core/remote/component.rb +20 -12
  159. data/lib/datadog/core/remote/configuration/content.rb +3 -3
  160. data/lib/datadog/core/remote/configuration/digest.rb +1 -1
  161. data/lib/datadog/core/remote/configuration/path.rb +9 -9
  162. data/lib/datadog/core/remote/configuration/repository.rb +2 -2
  163. data/lib/datadog/core/remote/configuration/target.rb +9 -9
  164. data/lib/datadog/core/remote/configuration.rb +4 -4
  165. data/lib/datadog/core/remote/ext.rb +3 -3
  166. data/lib/datadog/core/remote/negotiation.rb +1 -1
  167. data/lib/datadog/core/remote/tie/tracing.rb +7 -7
  168. data/lib/datadog/core/remote/transport/config.rb +4 -4
  169. data/lib/datadog/core/remote/transport/http/config.rb +7 -7
  170. data/lib/datadog/core/remote/transport/http/negotiation.rb +4 -4
  171. data/lib/datadog/core/remote/transport/http.rb +10 -10
  172. data/lib/datadog/core/remote/transport/negotiation.rb +3 -3
  173. data/lib/datadog/core/remote/worker.rb +5 -5
  174. data/lib/datadog/core/runtime/ext.rb +22 -22
  175. data/lib/datadog/core/runtime/metrics.rb +9 -9
  176. data/lib/datadog/core/tag_builder.rb +18 -18
  177. data/lib/datadog/core/tag_normalizer.rb +7 -7
  178. data/lib/datadog/core/telemetry/component.rb +13 -13
  179. data/lib/datadog/core/telemetry/emitter.rb +4 -4
  180. data/lib/datadog/core/telemetry/event/app_client_configuration_change.rb +5 -5
  181. data/lib/datadog/core/telemetry/event/app_closing.rb +2 -2
  182. data/lib/datadog/core/telemetry/event/app_dependencies_loaded.rb +2 -2
  183. data/lib/datadog/core/telemetry/event/app_endpoints_loaded.rb +2 -2
  184. data/lib/datadog/core/telemetry/event/app_extended_heartbeat.rb +2 -2
  185. data/lib/datadog/core/telemetry/event/app_heartbeat.rb +2 -2
  186. data/lib/datadog/core/telemetry/event/app_integrations_change.rb +2 -2
  187. data/lib/datadog/core/telemetry/event/app_started.rb +33 -33
  188. data/lib/datadog/core/telemetry/event/base.rb +1 -1
  189. data/lib/datadog/core/telemetry/event/distributions.rb +2 -2
  190. data/lib/datadog/core/telemetry/event/generate_metrics.rb +2 -2
  191. data/lib/datadog/core/telemetry/event/log.rb +4 -4
  192. data/lib/datadog/core/telemetry/event/message_batch.rb +1 -1
  193. data/lib/datadog/core/telemetry/event/synth_app_client_configuration_change.rb +2 -2
  194. data/lib/datadog/core/telemetry/event.rb +16 -16
  195. data/lib/datadog/core/telemetry/ext.rb +11 -11
  196. data/lib/datadog/core/telemetry/logger.rb +1 -1
  197. data/lib/datadog/core/telemetry/logging.rb +5 -5
  198. data/lib/datadog/core/telemetry/metric.rb +7 -7
  199. data/lib/datadog/core/telemetry/metrics_collection.rb +2 -2
  200. data/lib/datadog/core/telemetry/metrics_manager.rb +1 -1
  201. data/lib/datadog/core/telemetry/request.rb +4 -4
  202. data/lib/datadog/core/telemetry/transport/http/telemetry.rb +14 -14
  203. data/lib/datadog/core/telemetry/transport/http.rb +7 -7
  204. data/lib/datadog/core/telemetry/transport/telemetry.rb +3 -3
  205. data/lib/datadog/core/telemetry/worker.rb +6 -6
  206. data/lib/datadog/core/transport/ext.rb +14 -14
  207. data/lib/datadog/core/transport/http/adapters/net.rb +4 -4
  208. data/lib/datadog/core/transport/http/adapters/test.rb +1 -1
  209. data/lib/datadog/core/transport/http/adapters/unix_socket.rb +4 -4
  210. data/lib/datadog/core/transport/http/api/endpoint.rb +1 -1
  211. data/lib/datadog/core/transport/http/api/map.rb +1 -1
  212. data/lib/datadog/core/transport/http/builder.rb +5 -5
  213. data/lib/datadog/core/transport/http/client.rb +2 -2
  214. data/lib/datadog/core/transport/http/response.rb +1 -1
  215. data/lib/datadog/core/transport/http.rb +8 -8
  216. data/lib/datadog/core/transport/transport.rb +1 -1
  217. data/lib/datadog/core/utils/at_fork_monkey_patch.rb +2 -2
  218. data/lib/datadog/core/utils/base64_codec.rb +3 -3
  219. data/lib/datadog/core/utils/duration.rb +1 -1
  220. data/lib/datadog/core/utils/forking.rb +2 -2
  221. data/lib/datadog/core/utils/lru_cache.rb +3 -3
  222. data/lib/datadog/core/utils/network.rb +11 -11
  223. data/lib/datadog/core/utils/only_once_successful.rb +1 -1
  224. data/lib/datadog/core/utils/safe_dup.rb +2 -1
  225. data/lib/datadog/core/utils/spawn_monkey_patch.rb +2 -2
  226. data/lib/datadog/core/utils/url.rb +1 -1
  227. data/lib/datadog/core/utils.rb +4 -4
  228. data/lib/datadog/core/workers/async.rb +1 -1
  229. data/lib/datadog/core/workers/polling.rb +2 -2
  230. data/lib/datadog/core/workers/runtime_metrics.rb +4 -4
  231. data/lib/datadog/core.rb +4 -4
  232. data/lib/datadog/data_streams/configuration.rb +3 -3
  233. data/lib/datadog/data_streams/ext.rb +1 -1
  234. data/lib/datadog/data_streams/extensions.rb +2 -2
  235. data/lib/datadog/data_streams/pathway_context.rb +5 -5
  236. data/lib/datadog/data_streams/processor.rb +52 -52
  237. data/lib/datadog/data_streams/transport/http/stats.rb +5 -5
  238. data/lib/datadog/data_streams/transport/http.rb +5 -5
  239. data/lib/datadog/data_streams/transport/stats.rb +7 -7
  240. data/lib/datadog/data_streams.rb +5 -5
  241. data/lib/datadog/di/base.rb +4 -4
  242. data/lib/datadog/di/boot.rb +25 -25
  243. data/lib/datadog/di/code_tracker.rb +6 -6
  244. data/lib/datadog/di/component.rb +11 -3
  245. data/lib/datadog/di/configuration.rb +2 -2
  246. data/lib/datadog/di/contrib/railtie.rb +1 -1
  247. data/lib/datadog/di/contrib.rb +5 -5
  248. data/lib/datadog/di/el/compiler.rb +25 -25
  249. data/lib/datadog/di/el.rb +3 -3
  250. data/lib/datadog/di/instrumenter.rb +19 -9
  251. data/lib/datadog/di/logger.rb +1 -1
  252. data/lib/datadog/di/preload.rb +1 -1
  253. data/lib/datadog/di/probe_builder.rb +22 -22
  254. data/lib/datadog/di/probe_file_loader/railtie.rb +1 -1
  255. data/lib/datadog/di/probe_file_loader.rb +5 -5
  256. data/lib/datadog/di/probe_manager.rb +1 -1
  257. data/lib/datadog/di/probe_notification_builder.rb +16 -16
  258. data/lib/datadog/di/probe_notifier_worker.rb +6 -6
  259. data/lib/datadog/di/probe_repository.rb +1 -1
  260. data/lib/datadog/di/remote.rb +3 -3
  261. data/lib/datadog/di/serializer.rb +13 -13
  262. data/lib/datadog/di/transport/diagnostics.rb +5 -5
  263. data/lib/datadog/di/transport/http/diagnostics.rb +3 -3
  264. data/lib/datadog/di/transport/http/input.rb +2 -2
  265. data/lib/datadog/di/transport/http.rb +10 -10
  266. data/lib/datadog/di/transport/input.rb +9 -9
  267. data/lib/datadog/di/utils.rb +4 -4
  268. data/lib/datadog/di.rb +5 -5
  269. data/lib/datadog/error_tracking/collector.rb +2 -2
  270. data/lib/datadog/error_tracking/component.rb +12 -12
  271. data/lib/datadog/error_tracking/configuration.rb +2 -2
  272. data/lib/datadog/error_tracking/ext.rb +7 -7
  273. data/lib/datadog/error_tracking/extensions.rb +2 -2
  274. data/lib/datadog/error_tracking/filters.rb +4 -4
  275. data/lib/datadog/error_tracking.rb +6 -6
  276. data/lib/datadog/kit/appsec/events/v2.rb +39 -39
  277. data/lib/datadog/kit/appsec/events.rb +25 -25
  278. data/lib/datadog/kit/enable_core_dumps.rb +2 -2
  279. data/lib/datadog/kit/identity.rb +18 -18
  280. data/lib/datadog/kit/tracing/method_tracer.rb +7 -7
  281. data/lib/datadog/kit.rb +1 -1
  282. data/lib/datadog/open_feature/component.rb +31 -22
  283. data/lib/datadog/open_feature/configuration.rb +15 -2
  284. data/lib/datadog/open_feature/evaluation_engine.rb +7 -7
  285. data/lib/datadog/open_feature/exposures/buffer.rb +1 -1
  286. data/lib/datadog/open_feature/exposures/deduplicator.rb +1 -1
  287. data/lib/datadog/open_feature/exposures/event.rb +2 -2
  288. data/lib/datadog/open_feature/exposures/reporter.rb +3 -3
  289. data/lib/datadog/open_feature/exposures/worker.rb +6 -6
  290. data/lib/datadog/open_feature/ext.rb +13 -8
  291. data/lib/datadog/open_feature/flag_evaluation/aggregator.rb +8 -8
  292. data/lib/datadog/open_feature/flag_evaluation/writer.rb +36 -36
  293. data/lib/datadog/open_feature/hooks/flag_eval_evp_hook.rb +5 -4
  294. data/lib/datadog/open_feature/hooks/flag_eval_metrics_hook.rb +3 -1
  295. data/lib/datadog/open_feature/hooks/span_enrichment_hook/codec.rb +58 -0
  296. data/lib/datadog/open_feature/hooks/span_enrichment_hook/span_enrichment_state.rb +96 -0
  297. data/lib/datadog/open_feature/hooks/span_enrichment_hook/span_enrichment_state_store.rb +49 -0
  298. data/lib/datadog/open_feature/hooks/span_enrichment_hook.rb +184 -0
  299. data/lib/datadog/open_feature/metrics/flag_eval_metrics.rb +24 -24
  300. data/lib/datadog/open_feature/native_evaluator.rb +4 -4
  301. data/lib/datadog/open_feature/noop_evaluator.rb +3 -3
  302. data/lib/datadog/open_feature/provider.rb +45 -10
  303. data/lib/datadog/open_feature/remote.rb +2 -2
  304. data/lib/datadog/open_feature/resolution_details.rb +4 -2
  305. data/lib/datadog/open_feature/transport.rb +14 -14
  306. data/lib/datadog/open_feature.rb +2 -2
  307. data/lib/datadog/opentelemetry/api/baggage.rb +3 -3
  308. data/lib/datadog/opentelemetry/api/context.rb +4 -4
  309. data/lib/datadog/opentelemetry/configuration/settings.rb +41 -41
  310. data/lib/datadog/opentelemetry/ext.rb +1 -1
  311. data/lib/datadog/opentelemetry/logs.rb +5 -5
  312. data/lib/datadog/opentelemetry/metrics.rb +7 -7
  313. data/lib/datadog/opentelemetry/sdk/configurator.rb +8 -8
  314. data/lib/datadog/opentelemetry/sdk/id_generator.rb +2 -2
  315. data/lib/datadog/opentelemetry/sdk/logs_exporter.rb +6 -6
  316. data/lib/datadog/opentelemetry/sdk/metrics_exporter.rb +5 -5
  317. data/lib/datadog/opentelemetry/sdk/propagator.rb +7 -7
  318. data/lib/datadog/opentelemetry/sdk/span_processor.rb +15 -15
  319. data/lib/datadog/opentelemetry/sdk/trace/span.rb +32 -32
  320. data/lib/datadog/opentelemetry/sdk.rb +2 -2
  321. data/lib/datadog/opentelemetry/signal_configuration.rb +11 -11
  322. data/lib/datadog/opentelemetry/trace.rb +1 -1
  323. data/lib/datadog/opentelemetry.rb +8 -8
  324. data/lib/datadog/profiling/exporter.rb +1 -1
  325. data/lib/datadog/profiling/http_transport.rb +1 -1
  326. data/lib/datadog/profiling/sequence_tracker.rb +1 -1
  327. data/lib/datadog/profiling/tag_builder.rb +19 -19
  328. data/lib/datadog/profiling.rb +27 -27
  329. data/lib/datadog/single_step_instrument.rb +1 -1
  330. data/lib/datadog/symbol_database/component.rb +15 -15
  331. data/lib/datadog/symbol_database/configuration.rb +3 -3
  332. data/lib/datadog/symbol_database/extensions.rb +2 -2
  333. data/lib/datadog/symbol_database/extractor.rb +53 -53
  334. data/lib/datadog/symbol_database/file_hash.rb +3 -3
  335. data/lib/datadog/symbol_database/logger.rb +1 -1
  336. data/lib/datadog/symbol_database/remote.rb +21 -6
  337. data/lib/datadog/symbol_database/scope.rb +2 -2
  338. data/lib/datadog/symbol_database/scope_batcher.rb +2 -2
  339. data/lib/datadog/symbol_database/service_version.rb +4 -4
  340. data/lib/datadog/symbol_database/symbol.rb +1 -1
  341. data/lib/datadog/symbol_database/transport/http/endpoint.rb +1 -1
  342. data/lib/datadog/symbol_database/transport/http.rb +6 -6
  343. data/lib/datadog/symbol_database/transport.rb +4 -4
  344. data/lib/datadog/symbol_database/uploader.rb +22 -22
  345. data/lib/datadog/symbol_database.rb +2 -2
  346. data/lib/datadog/tracing/analytics.rb +1 -1
  347. data/lib/datadog/tracing/buffer.rb +5 -5
  348. data/lib/datadog/tracing/client_ip.rb +4 -4
  349. data/lib/datadog/tracing/component.rb +7 -7
  350. data/lib/datadog/tracing/configuration/dynamic.rb +8 -8
  351. data/lib/datadog/tracing/configuration/ext.rb +42 -42
  352. data/lib/datadog/tracing/configuration/http.rb +2 -2
  353. data/lib/datadog/tracing/configuration/settings.rb +16 -16
  354. data/lib/datadog/tracing/context.rb +1 -1
  355. data/lib/datadog/tracing/context_provider.rb +2 -2
  356. data/lib/datadog/tracing/contrib/action_cable/configuration/settings.rb +2 -2
  357. data/lib/datadog/tracing/contrib/action_cable/event.rb +4 -4
  358. data/lib/datadog/tracing/contrib/action_cable/events/broadcast.rb +5 -5
  359. data/lib/datadog/tracing/contrib/action_cable/events/perform_action.rb +4 -4
  360. data/lib/datadog/tracing/contrib/action_cable/events/transmit.rb +5 -5
  361. data/lib/datadog/tracing/contrib/action_cable/events.rb +4 -4
  362. data/lib/datadog/tracing/contrib/action_cable/ext.rb +18 -18
  363. data/lib/datadog/tracing/contrib/action_cable/instrumentation.rb +4 -4
  364. data/lib/datadog/tracing/contrib/action_cable/integration.rb +7 -7
  365. data/lib/datadog/tracing/contrib/action_cable/patcher.rb +4 -4
  366. data/lib/datadog/tracing/contrib/action_mailer/configuration/settings.rb +2 -2
  367. data/lib/datadog/tracing/contrib/action_mailer/event.rb +3 -3
  368. data/lib/datadog/tracing/contrib/action_mailer/events/deliver.rb +8 -8
  369. data/lib/datadog/tracing/contrib/action_mailer/events/process.rb +4 -4
  370. data/lib/datadog/tracing/contrib/action_mailer/events.rb +2 -2
  371. data/lib/datadog/tracing/contrib/action_mailer/ext.rb +18 -18
  372. data/lib/datadog/tracing/contrib/action_mailer/integration.rb +7 -7
  373. data/lib/datadog/tracing/contrib/action_mailer/patcher.rb +3 -3
  374. data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +8 -8
  375. data/lib/datadog/tracing/contrib/action_pack/action_controller/patcher.rb +2 -2
  376. data/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb +4 -4
  377. data/lib/datadog/tracing/contrib/action_pack/action_dispatch/patcher.rb +4 -4
  378. data/lib/datadog/tracing/contrib/action_pack/configuration/settings.rb +3 -3
  379. data/lib/datadog/tracing/contrib/action_pack/ext.rb +10 -10
  380. data/lib/datadog/tracing/contrib/action_pack/integration.rb +7 -7
  381. data/lib/datadog/tracing/contrib/action_pack/patcher.rb +3 -3
  382. data/lib/datadog/tracing/contrib/action_pack/utils.rb +1 -1
  383. data/lib/datadog/tracing/contrib/action_view/configuration/settings.rb +3 -3
  384. data/lib/datadog/tracing/contrib/action_view/event.rb +1 -1
  385. data/lib/datadog/tracing/contrib/action_view/events/render_partial.rb +6 -6
  386. data/lib/datadog/tracing/contrib/action_view/events/render_template.rb +6 -6
  387. data/lib/datadog/tracing/contrib/action_view/events.rb +2 -2
  388. data/lib/datadog/tracing/contrib/action_view/ext.rb +10 -10
  389. data/lib/datadog/tracing/contrib/action_view/integration.rb +11 -11
  390. data/lib/datadog/tracing/contrib/action_view/patcher.rb +5 -5
  391. data/lib/datadog/tracing/contrib/action_view/utils.rb +2 -2
  392. data/lib/datadog/tracing/contrib/active_job/configuration/settings.rb +2 -2
  393. data/lib/datadog/tracing/contrib/active_job/data_streams.rb +2 -2
  394. data/lib/datadog/tracing/contrib/active_job/event.rb +3 -3
  395. data/lib/datadog/tracing/contrib/active_job/events/discard.rb +5 -5
  396. data/lib/datadog/tracing/contrib/active_job/events/enqueue.rb +5 -5
  397. data/lib/datadog/tracing/contrib/active_job/events/enqueue_at.rb +5 -5
  398. data/lib/datadog/tracing/contrib/active_job/events/enqueue_retry.rb +5 -5
  399. data/lib/datadog/tracing/contrib/active_job/events/perform.rb +5 -5
  400. data/lib/datadog/tracing/contrib/active_job/events/retry_stopped.rb +5 -5
  401. data/lib/datadog/tracing/contrib/active_job/events.rb +6 -6
  402. data/lib/datadog/tracing/contrib/active_job/ext.rb +23 -23
  403. data/lib/datadog/tracing/contrib/active_job/integration.rb +7 -7
  404. data/lib/datadog/tracing/contrib/active_job/patcher.rb +7 -7
  405. data/lib/datadog/tracing/contrib/active_model_serializers/configuration/settings.rb +2 -2
  406. data/lib/datadog/tracing/contrib/active_model_serializers/event.rb +4 -4
  407. data/lib/datadog/tracing/contrib/active_model_serializers/events/render.rb +6 -6
  408. data/lib/datadog/tracing/contrib/active_model_serializers/events/serialize.rb +6 -6
  409. data/lib/datadog/tracing/contrib/active_model_serializers/events.rb +2 -2
  410. data/lib/datadog/tracing/contrib/active_model_serializers/ext.rb +10 -10
  411. data/lib/datadog/tracing/contrib/active_model_serializers/integration.rb +5 -5
  412. data/lib/datadog/tracing/contrib/active_model_serializers/patcher.rb +3 -3
  413. data/lib/datadog/tracing/contrib/active_record/configuration/makara_resolver.rb +1 -1
  414. data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +6 -6
  415. data/lib/datadog/tracing/contrib/active_record/configuration/settings.rb +4 -4
  416. data/lib/datadog/tracing/contrib/active_record/event.rb +1 -1
  417. data/lib/datadog/tracing/contrib/active_record/events/instantiation.rb +8 -8
  418. data/lib/datadog/tracing/contrib/active_record/events/sql.rb +9 -9
  419. data/lib/datadog/tracing/contrib/active_record/events.rb +2 -2
  420. data/lib/datadog/tracing/contrib/active_record/ext.rb +15 -15
  421. data/lib/datadog/tracing/contrib/active_record/integration.rb +11 -11
  422. data/lib/datadog/tracing/contrib/active_record/patcher.rb +2 -2
  423. data/lib/datadog/tracing/contrib/active_record/utils.rb +3 -3
  424. data/lib/datadog/tracing/contrib/active_support/cache/event.rb +1 -1
  425. data/lib/datadog/tracing/contrib/active_support/cache/events/cache.rb +11 -11
  426. data/lib/datadog/tracing/contrib/active_support/cache/events.rb +1 -1
  427. data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +4 -4
  428. data/lib/datadog/tracing/contrib/active_support/cache/patcher.rb +5 -5
  429. data/lib/datadog/tracing/contrib/active_support/cache/redis.rb +4 -4
  430. data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +3 -3
  431. data/lib/datadog/tracing/contrib/active_support/ext.rb +16 -16
  432. data/lib/datadog/tracing/contrib/active_support/integration.rb +8 -8
  433. data/lib/datadog/tracing/contrib/active_support/notifications/event.rb +1 -1
  434. data/lib/datadog/tracing/contrib/active_support/notifications/subscriber.rb +2 -2
  435. data/lib/datadog/tracing/contrib/active_support/notifications/subscription.rb +1 -1
  436. data/lib/datadog/tracing/contrib/active_support/patcher.rb +2 -2
  437. data/lib/datadog/tracing/contrib/analytics.rb +1 -1
  438. data/lib/datadog/tracing/contrib/auto_instrument.rb +4 -4
  439. data/lib/datadog/tracing/contrib/aws/configuration/settings.rb +3 -3
  440. data/lib/datadog/tracing/contrib/aws/ext.rb +25 -25
  441. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +5 -5
  442. data/lib/datadog/tracing/contrib/aws/integration.rb +9 -9
  443. data/lib/datadog/tracing/contrib/aws/parsed_context.rb +1 -1
  444. data/lib/datadog/tracing/contrib/aws/patcher.rb +5 -5
  445. data/lib/datadog/tracing/contrib/aws/service/dynamodb.rb +2 -2
  446. data/lib/datadog/tracing/contrib/aws/service/eventbridge.rb +2 -2
  447. data/lib/datadog/tracing/contrib/aws/service/kinesis.rb +4 -4
  448. data/lib/datadog/tracing/contrib/aws/service/s3.rb +2 -2
  449. data/lib/datadog/tracing/contrib/aws/service/sns.rb +3 -3
  450. data/lib/datadog/tracing/contrib/aws/service/sqs.rb +3 -3
  451. data/lib/datadog/tracing/contrib/aws/service/states.rb +5 -5
  452. data/lib/datadog/tracing/contrib/aws/services.rb +14 -14
  453. data/lib/datadog/tracing/contrib/concurrent_ruby/async_patch.rb +1 -1
  454. data/lib/datadog/tracing/contrib/concurrent_ruby/configuration/settings.rb +2 -2
  455. data/lib/datadog/tracing/contrib/concurrent_ruby/context_composite_executor_service.rb +1 -1
  456. data/lib/datadog/tracing/contrib/concurrent_ruby/ext.rb +2 -2
  457. data/lib/datadog/tracing/contrib/concurrent_ruby/future_patch.rb +1 -1
  458. data/lib/datadog/tracing/contrib/concurrent_ruby/integration.rb +6 -6
  459. data/lib/datadog/tracing/contrib/concurrent_ruby/patcher.rb +4 -4
  460. data/lib/datadog/tracing/contrib/concurrent_ruby/promises_future_patch.rb +1 -1
  461. data/lib/datadog/tracing/contrib/configurable.rb +2 -2
  462. data/lib/datadog/tracing/contrib/configuration/resolvers/pattern_resolver.rb +1 -1
  463. data/lib/datadog/tracing/contrib/configuration/settings.rb +2 -2
  464. data/lib/datadog/tracing/contrib/dalli/configuration/settings.rb +2 -2
  465. data/lib/datadog/tracing/contrib/dalli/ext.rb +13 -13
  466. data/lib/datadog/tracing/contrib/dalli/instrumentation.rb +5 -5
  467. data/lib/datadog/tracing/contrib/dalli/integration.rb +7 -7
  468. data/lib/datadog/tracing/contrib/dalli/patcher.rb +3 -3
  469. data/lib/datadog/tracing/contrib/dalli/quantize.rb +2 -2
  470. data/lib/datadog/tracing/contrib/delayed_job/configuration/settings.rb +2 -2
  471. data/lib/datadog/tracing/contrib/delayed_job/ext.rb +14 -14
  472. data/lib/datadog/tracing/contrib/delayed_job/integration.rb +5 -5
  473. data/lib/datadog/tracing/contrib/delayed_job/patcher.rb +3 -3
  474. data/lib/datadog/tracing/contrib/delayed_job/plugin.rb +5 -5
  475. data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +2 -2
  476. data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +15 -15
  477. data/lib/datadog/tracing/contrib/elasticsearch/integration.rb +6 -6
  478. data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +10 -10
  479. data/lib/datadog/tracing/contrib/elasticsearch/quantize.rb +2 -2
  480. data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +2 -2
  481. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +8 -8
  482. data/lib/datadog/tracing/contrib/ethon/ext.rb +13 -13
  483. data/lib/datadog/tracing/contrib/ethon/integration.rb +6 -6
  484. data/lib/datadog/tracing/contrib/ethon/multi_patch.rb +3 -3
  485. data/lib/datadog/tracing/contrib/ethon/patcher.rb +3 -3
  486. data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +5 -5
  487. data/lib/datadog/tracing/contrib/excon/ext.rb +11 -11
  488. data/lib/datadog/tracing/contrib/excon/integration.rb +6 -6
  489. data/lib/datadog/tracing/contrib/excon/middleware.rb +8 -8
  490. data/lib/datadog/tracing/contrib/excon/patcher.rb +2 -2
  491. data/lib/datadog/tracing/contrib/ext.rb +15 -15
  492. data/lib/datadog/tracing/contrib/extensions.rb +2 -2
  493. data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +4 -4
  494. data/lib/datadog/tracing/contrib/faraday/ext.rb +11 -11
  495. data/lib/datadog/tracing/contrib/faraday/integration.rb +6 -6
  496. data/lib/datadog/tracing/contrib/faraday/middleware.rb +8 -8
  497. data/lib/datadog/tracing/contrib/faraday/patcher.rb +6 -6
  498. data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +4 -4
  499. data/lib/datadog/tracing/contrib/grape/endpoint.rb +20 -20
  500. data/lib/datadog/tracing/contrib/grape/ext.rb +15 -15
  501. data/lib/datadog/tracing/contrib/grape/instrumentation.rb +3 -3
  502. data/lib/datadog/tracing/contrib/grape/integration.rb +5 -5
  503. data/lib/datadog/tracing/contrib/grape/patcher.rb +5 -5
  504. data/lib/datadog/tracing/contrib/graphql/configuration/error_extension_env_parser.rb +1 -1
  505. data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +3 -3
  506. data/lib/datadog/tracing/contrib/graphql/ext.rb +9 -9
  507. data/lib/datadog/tracing/contrib/graphql/integration.rb +9 -9
  508. data/lib/datadog/tracing/contrib/graphql/patcher.rb +7 -7
  509. data/lib/datadog/tracing/contrib/graphql/unified_trace.rb +37 -37
  510. data/lib/datadog/tracing/contrib/graphql/unified_trace_patcher.rb +2 -2
  511. data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +2 -2
  512. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +7 -7
  513. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +7 -7
  514. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor.rb +6 -6
  515. data/lib/datadog/tracing/contrib/grpc/distributed/fetcher.rb +1 -1
  516. data/lib/datadog/tracing/contrib/grpc/distributed/propagation.rb +8 -8
  517. data/lib/datadog/tracing/contrib/grpc/ext.rb +14 -14
  518. data/lib/datadog/tracing/contrib/grpc/formatting.rb +7 -7
  519. data/lib/datadog/tracing/contrib/grpc/integration.rb +5 -5
  520. data/lib/datadog/tracing/contrib/grpc/intercept_with_datadog.rb +1 -1
  521. data/lib/datadog/tracing/contrib/grpc/patcher.rb +3 -3
  522. data/lib/datadog/tracing/contrib/grpc.rb +6 -6
  523. data/lib/datadog/tracing/contrib/hanami/action_tracer.rb +3 -3
  524. data/lib/datadog/tracing/contrib/hanami/configuration/settings.rb +2 -2
  525. data/lib/datadog/tracing/contrib/hanami/ext.rb +8 -8
  526. data/lib/datadog/tracing/contrib/hanami/integration.rb +6 -6
  527. data/lib/datadog/tracing/contrib/hanami/patcher.rb +5 -5
  528. data/lib/datadog/tracing/contrib/hanami/renderer_policy_tracing.rb +3 -3
  529. data/lib/datadog/tracing/contrib/hanami/router_tracing.rb +3 -3
  530. data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +1 -1
  531. data/lib/datadog/tracing/contrib/http/configuration/settings.rb +4 -4
  532. data/lib/datadog/tracing/contrib/http/distributed/fetcher.rb +3 -3
  533. data/lib/datadog/tracing/contrib/http/distributed/propagation.rb +8 -8
  534. data/lib/datadog/tracing/contrib/http/ext.rb +11 -11
  535. data/lib/datadog/tracing/contrib/http/instrumentation.rb +6 -6
  536. data/lib/datadog/tracing/contrib/http/integration.rb +7 -7
  537. data/lib/datadog/tracing/contrib/http/patcher.rb +3 -3
  538. data/lib/datadog/tracing/contrib/http.rb +6 -6
  539. data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +4 -4
  540. data/lib/datadog/tracing/contrib/httpclient/ext.rb +11 -11
  541. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +5 -5
  542. data/lib/datadog/tracing/contrib/httpclient/integration.rb +6 -6
  543. data/lib/datadog/tracing/contrib/httpclient/patcher.rb +3 -3
  544. data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +4 -4
  545. data/lib/datadog/tracing/contrib/httprb/ext.rb +11 -11
  546. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +6 -6
  547. data/lib/datadog/tracing/contrib/httprb/integration.rb +7 -7
  548. data/lib/datadog/tracing/contrib/httprb/patcher.rb +3 -3
  549. data/lib/datadog/tracing/contrib/integration.rb +3 -3
  550. data/lib/datadog/tracing/contrib/kafka/configuration/settings.rb +2 -2
  551. data/lib/datadog/tracing/contrib/kafka/event.rb +3 -3
  552. data/lib/datadog/tracing/contrib/kafka/events/connection/request.rb +3 -3
  553. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_batch.rb +4 -4
  554. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_message.rb +4 -4
  555. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/heartbeat.rb +5 -5
  556. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/join_group.rb +5 -5
  557. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/leave_group.rb +5 -5
  558. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/sync_group.rb +5 -5
  559. data/lib/datadog/tracing/contrib/kafka/events/produce_operation/send_messages.rb +3 -3
  560. data/lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb +3 -3
  561. data/lib/datadog/tracing/contrib/kafka/events.rb +9 -9
  562. data/lib/datadog/tracing/contrib/kafka/ext.rb +40 -40
  563. data/lib/datadog/tracing/contrib/kafka/instrumentation/consumer.rb +2 -2
  564. data/lib/datadog/tracing/contrib/kafka/instrumentation/producer.rb +4 -4
  565. data/lib/datadog/tracing/contrib/kafka/integration.rb +6 -6
  566. data/lib/datadog/tracing/contrib/kafka/patcher.rb +5 -5
  567. data/lib/datadog/tracing/contrib/karafka/configuration/settings.rb +2 -2
  568. data/lib/datadog/tracing/contrib/karafka/distributed/propagation.rb +8 -8
  569. data/lib/datadog/tracing/contrib/karafka/ext.rb +13 -13
  570. data/lib/datadog/tracing/contrib/karafka/integration.rb +5 -5
  571. data/lib/datadog/tracing/contrib/karafka/monitor.rb +14 -14
  572. data/lib/datadog/tracing/contrib/karafka/patcher.rb +8 -8
  573. data/lib/datadog/tracing/contrib/karafka.rb +6 -6
  574. data/lib/datadog/tracing/contrib/lograge/configuration/settings.rb +2 -2
  575. data/lib/datadog/tracing/contrib/lograge/ext.rb +1 -1
  576. data/lib/datadog/tracing/contrib/lograge/integration.rb +5 -5
  577. data/lib/datadog/tracing/contrib/lograge/patcher.rb +9 -9
  578. data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +2 -2
  579. data/lib/datadog/tracing/contrib/mongodb/ext.rb +18 -18
  580. data/lib/datadog/tracing/contrib/mongodb/instrumentation.rb +3 -3
  581. data/lib/datadog/tracing/contrib/mongodb/integration.rb +7 -7
  582. data/lib/datadog/tracing/contrib/mongodb/parsers.rb +5 -5
  583. data/lib/datadog/tracing/contrib/mongodb/patcher.rb +3 -3
  584. data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +13 -13
  585. data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +3 -3
  586. data/lib/datadog/tracing/contrib/mysql2/ext.rb +11 -11
  587. data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +6 -6
  588. data/lib/datadog/tracing/contrib/mysql2/integration.rb +5 -5
  589. data/lib/datadog/tracing/contrib/mysql2/patcher.rb +2 -2
  590. data/lib/datadog/tracing/contrib/opensearch/configuration/settings.rb +2 -2
  591. data/lib/datadog/tracing/contrib/opensearch/ext.rb +22 -22
  592. data/lib/datadog/tracing/contrib/opensearch/integration.rb +6 -6
  593. data/lib/datadog/tracing/contrib/opensearch/patcher.rb +13 -13
  594. data/lib/datadog/tracing/contrib/opensearch/quantize.rb +3 -3
  595. data/lib/datadog/tracing/contrib/patcher.rb +2 -2
  596. data/lib/datadog/tracing/contrib/pg/configuration/settings.rb +3 -3
  597. data/lib/datadog/tracing/contrib/pg/ext.rb +19 -19
  598. data/lib/datadog/tracing/contrib/pg/instrumentation.rb +6 -6
  599. data/lib/datadog/tracing/contrib/pg/integration.rb +5 -5
  600. data/lib/datadog/tracing/contrib/pg/patcher.rb +2 -2
  601. data/lib/datadog/tracing/contrib/presto/configuration/settings.rb +2 -2
  602. data/lib/datadog/tracing/contrib/presto/ext.rb +21 -21
  603. data/lib/datadog/tracing/contrib/presto/instrumentation.rb +2 -2
  604. data/lib/datadog/tracing/contrib/presto/integration.rb +6 -6
  605. data/lib/datadog/tracing/contrib/presto/patcher.rb +4 -4
  606. data/lib/datadog/tracing/contrib/propagation/sql_comment/comment.rb +2 -2
  607. data/lib/datadog/tracing/contrib/propagation/sql_comment/ext.rb +17 -17
  608. data/lib/datadog/tracing/contrib/propagation/sql_comment/mode.rb +1 -1
  609. data/lib/datadog/tracing/contrib/propagation/sql_comment.rb +5 -5
  610. data/lib/datadog/tracing/contrib/que/configuration/settings.rb +2 -2
  611. data/lib/datadog/tracing/contrib/que/ext.rb +19 -19
  612. data/lib/datadog/tracing/contrib/que/integration.rb +6 -6
  613. data/lib/datadog/tracing/contrib/que/patcher.rb +1 -1
  614. data/lib/datadog/tracing/contrib/que/tracer.rb +1 -1
  615. data/lib/datadog/tracing/contrib/racecar/configuration/settings.rb +3 -3
  616. data/lib/datadog/tracing/contrib/racecar/event.rb +4 -4
  617. data/lib/datadog/tracing/contrib/racecar/events/batch.rb +3 -3
  618. data/lib/datadog/tracing/contrib/racecar/events/consume.rb +3 -3
  619. data/lib/datadog/tracing/contrib/racecar/events/message.rb +3 -3
  620. data/lib/datadog/tracing/contrib/racecar/events.rb +3 -3
  621. data/lib/datadog/tracing/contrib/racecar/ext.rb +18 -18
  622. data/lib/datadog/tracing/contrib/racecar/integration.rb +5 -5
  623. data/lib/datadog/tracing/contrib/racecar/patcher.rb +3 -3
  624. data/lib/datadog/tracing/contrib/rack/configuration/settings.rb +2 -2
  625. data/lib/datadog/tracing/contrib/rack/ext.rb +33 -33
  626. data/lib/datadog/tracing/contrib/rack/header_collection.rb +3 -3
  627. data/lib/datadog/tracing/contrib/rack/header_tagging.rb +4 -4
  628. data/lib/datadog/tracing/contrib/rack/integration.rb +6 -6
  629. data/lib/datadog/tracing/contrib/rack/middlewares.rb +24 -24
  630. data/lib/datadog/tracing/contrib/rack/patcher.rb +2 -2
  631. data/lib/datadog/tracing/contrib/rack/request_queue.rb +3 -3
  632. data/lib/datadog/tracing/contrib/rack/route_inference.rb +11 -11
  633. data/lib/datadog/tracing/contrib/rack/trace_proxy_middleware.rb +15 -15
  634. data/lib/datadog/tracing/contrib/rails/auto_instrument_railtie.rb +1 -1
  635. data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +3 -3
  636. data/lib/datadog/tracing/contrib/rails/ext.rb +15 -15
  637. data/lib/datadog/tracing/contrib/rails/framework.rb +11 -11
  638. data/lib/datadog/tracing/contrib/rails/integration.rb +5 -5
  639. data/lib/datadog/tracing/contrib/rails/middlewares.rb +1 -1
  640. data/lib/datadog/tracing/contrib/rails/patcher.rb +8 -8
  641. data/lib/datadog/tracing/contrib/rails/railtie.rb +4 -4
  642. data/lib/datadog/tracing/contrib/rails/runner.rb +1 -1
  643. data/lib/datadog/tracing/contrib/rake/configuration/settings.rb +3 -3
  644. data/lib/datadog/tracing/contrib/rake/ext.rb +12 -12
  645. data/lib/datadog/tracing/contrib/rake/instrumentation.rb +4 -4
  646. data/lib/datadog/tracing/contrib/rake/integration.rb +5 -5
  647. data/lib/datadog/tracing/contrib/rake/patcher.rb +3 -3
  648. data/lib/datadog/tracing/contrib/redis/configuration/resolver.rb +2 -2
  649. data/lib/datadog/tracing/contrib/redis/configuration/settings.rb +2 -2
  650. data/lib/datadog/tracing/contrib/redis/ext.rb +16 -16
  651. data/lib/datadog/tracing/contrib/redis/instrumentation.rb +6 -6
  652. data/lib/datadog/tracing/contrib/redis/integration.rb +7 -7
  653. data/lib/datadog/tracing/contrib/redis/patcher.rb +10 -10
  654. data/lib/datadog/tracing/contrib/redis/quantize.rb +4 -4
  655. data/lib/datadog/tracing/contrib/redis/tags.rb +5 -5
  656. data/lib/datadog/tracing/contrib/redis/trace_middleware.rb +5 -5
  657. data/lib/datadog/tracing/contrib/resque/configuration/settings.rb +2 -2
  658. data/lib/datadog/tracing/contrib/resque/ext.rb +7 -7
  659. data/lib/datadog/tracing/contrib/resque/integration.rb +5 -5
  660. data/lib/datadog/tracing/contrib/resque/patcher.rb +3 -3
  661. data/lib/datadog/tracing/contrib/resque/resque_job.rb +5 -5
  662. data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +2 -2
  663. data/lib/datadog/tracing/contrib/rest_client/ext.rb +10 -10
  664. data/lib/datadog/tracing/contrib/rest_client/integration.rb +6 -6
  665. data/lib/datadog/tracing/contrib/rest_client/patcher.rb +2 -2
  666. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +5 -5
  667. data/lib/datadog/tracing/contrib/roda/configuration/settings.rb +2 -2
  668. data/lib/datadog/tracing/contrib/roda/ext.rb +6 -6
  669. data/lib/datadog/tracing/contrib/roda/instrumentation.rb +4 -4
  670. data/lib/datadog/tracing/contrib/roda/integration.rb +6 -6
  671. data/lib/datadog/tracing/contrib/roda/patcher.rb +3 -3
  672. data/lib/datadog/tracing/contrib/semantic_logger/configuration/settings.rb +2 -2
  673. data/lib/datadog/tracing/contrib/semantic_logger/ext.rb +1 -1
  674. data/lib/datadog/tracing/contrib/semantic_logger/integration.rb +5 -5
  675. data/lib/datadog/tracing/contrib/semantic_logger/patcher.rb +2 -2
  676. data/lib/datadog/tracing/contrib/sequel/configuration/settings.rb +2 -2
  677. data/lib/datadog/tracing/contrib/sequel/database.rb +6 -6
  678. data/lib/datadog/tracing/contrib/sequel/dataset.rb +5 -5
  679. data/lib/datadog/tracing/contrib/sequel/ext.rb +12 -8
  680. data/lib/datadog/tracing/contrib/sequel/integration.rb +5 -5
  681. data/lib/datadog/tracing/contrib/sequel/patcher.rb +3 -3
  682. data/lib/datadog/tracing/contrib/sequel/utils.rb +113 -8
  683. data/lib/datadog/tracing/contrib/shoryuken/configuration/settings.rb +2 -2
  684. data/lib/datadog/tracing/contrib/shoryuken/ext.rb +12 -12
  685. data/lib/datadog/tracing/contrib/shoryuken/integration.rb +6 -6
  686. data/lib/datadog/tracing/contrib/shoryuken/patcher.rb +1 -1
  687. data/lib/datadog/tracing/contrib/shoryuken/tracer.rb +2 -2
  688. data/lib/datadog/tracing/contrib/sidekiq/client_tracer.rb +8 -8
  689. data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +2 -2
  690. data/lib/datadog/tracing/contrib/sidekiq/distributed/propagation.rb +9 -9
  691. data/lib/datadog/tracing/contrib/sidekiq/ext.rb +30 -30
  692. data/lib/datadog/tracing/contrib/sidekiq/integration.rb +7 -7
  693. data/lib/datadog/tracing/contrib/sidekiq/patcher.rb +8 -8
  694. data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +13 -13
  695. data/lib/datadog/tracing/contrib/sidekiq/utils.rb +9 -9
  696. data/lib/datadog/tracing/contrib/sidekiq.rb +6 -6
  697. data/lib/datadog/tracing/contrib/sinatra/configuration/settings.rb +2 -2
  698. data/lib/datadog/tracing/contrib/sinatra/env.rb +6 -6
  699. data/lib/datadog/tracing/contrib/sinatra/ext.rb +17 -17
  700. data/lib/datadog/tracing/contrib/sinatra/framework.rb +1 -1
  701. data/lib/datadog/tracing/contrib/sinatra/integration.rb +5 -5
  702. data/lib/datadog/tracing/contrib/sinatra/patcher.rb +5 -5
  703. data/lib/datadog/tracing/contrib/sinatra/tracer.rb +10 -10
  704. data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +8 -8
  705. data/lib/datadog/tracing/contrib/sneakers/configuration/settings.rb +1 -1
  706. data/lib/datadog/tracing/contrib/sneakers/ext.rb +12 -12
  707. data/lib/datadog/tracing/contrib/sneakers/integration.rb +7 -7
  708. data/lib/datadog/tracing/contrib/sneakers/patcher.rb +2 -2
  709. data/lib/datadog/tracing/contrib/sneakers/tracer.rb +3 -3
  710. data/lib/datadog/tracing/contrib/span_attribute_schema.rb +2 -2
  711. data/lib/datadog/tracing/contrib/status_range_env_parser.rb +2 -2
  712. data/lib/datadog/tracing/contrib/status_range_matcher.rb +1 -1
  713. data/lib/datadog/tracing/contrib/stripe/configuration/settings.rb +2 -2
  714. data/lib/datadog/tracing/contrib/stripe/ext.rb +12 -12
  715. data/lib/datadog/tracing/contrib/stripe/integration.rb +5 -5
  716. data/lib/datadog/tracing/contrib/stripe/patcher.rb +2 -2
  717. data/lib/datadog/tracing/contrib/stripe/request.rb +3 -3
  718. data/lib/datadog/tracing/contrib/sucker_punch/configuration/settings.rb +2 -2
  719. data/lib/datadog/tracing/contrib/sucker_punch/exception_handler.rb +1 -1
  720. data/lib/datadog/tracing/contrib/sucker_punch/ext.rb +13 -13
  721. data/lib/datadog/tracing/contrib/sucker_punch/instrumentation.rb +4 -4
  722. data/lib/datadog/tracing/contrib/sucker_punch/integration.rb +5 -5
  723. data/lib/datadog/tracing/contrib/sucker_punch/patcher.rb +4 -4
  724. data/lib/datadog/tracing/contrib/trilogy/configuration/settings.rb +3 -3
  725. data/lib/datadog/tracing/contrib/trilogy/ext.rb +11 -11
  726. data/lib/datadog/tracing/contrib/trilogy/instrumentation.rb +6 -6
  727. data/lib/datadog/tracing/contrib/trilogy/integration.rb +5 -5
  728. data/lib/datadog/tracing/contrib/trilogy/patcher.rb +2 -2
  729. data/lib/datadog/tracing/contrib/utils/database.rb +5 -5
  730. data/lib/datadog/tracing/contrib/utils/quantization/hash_formatter.rb +1 -1
  731. data/lib/datadog/tracing/contrib/utils/quantization/http.rb +10 -10
  732. data/lib/datadog/tracing/contrib/waterdrop/configuration/settings.rb +2 -2
  733. data/lib/datadog/tracing/contrib/waterdrop/distributed/propagation.rb +8 -8
  734. data/lib/datadog/tracing/contrib/waterdrop/ext.rb +4 -4
  735. data/lib/datadog/tracing/contrib/waterdrop/integration.rb +5 -5
  736. data/lib/datadog/tracing/contrib/waterdrop/middleware.rb +2 -2
  737. data/lib/datadog/tracing/contrib/waterdrop/patcher.rb +7 -7
  738. data/lib/datadog/tracing/contrib/waterdrop/producer.rb +3 -3
  739. data/lib/datadog/tracing/contrib/waterdrop.rb +6 -6
  740. data/lib/datadog/tracing/contrib.rb +54 -54
  741. data/lib/datadog/tracing/correlation.rb +10 -10
  742. data/lib/datadog/tracing/diagnostics/environment_logger.rb +9 -9
  743. data/lib/datadog/tracing/diagnostics/ext.rb +19 -19
  744. data/lib/datadog/tracing/diagnostics/health.rb +1 -1
  745. data/lib/datadog/tracing/distributed/b3_multi.rb +8 -8
  746. data/lib/datadog/tracing/distributed/b3_single.rb +4 -4
  747. data/lib/datadog/tracing/distributed/baggage.rb +27 -27
  748. data/lib/datadog/tracing/distributed/datadog.rb +21 -21
  749. data/lib/datadog/tracing/distributed/datadog_tags_codec.rb +3 -3
  750. data/lib/datadog/tracing/distributed/fetcher.rb +1 -1
  751. data/lib/datadog/tracing/distributed/helpers.rb +3 -3
  752. data/lib/datadog/tracing/distributed/propagation.rb +12 -12
  753. data/lib/datadog/tracing/distributed/trace_context.rb +33 -33
  754. data/lib/datadog/tracing/event.rb +1 -1
  755. data/lib/datadog/tracing/ext.rb +1 -1
  756. data/lib/datadog/tracing/metadata/analytics.rb +2 -2
  757. data/lib/datadog/tracing/metadata/errors.rb +4 -4
  758. data/lib/datadog/tracing/metadata/ext.rb +69 -69
  759. data/lib/datadog/tracing/metadata/metastruct.rb +1 -1
  760. data/lib/datadog/tracing/metadata/metastruct_tagging.rb +1 -1
  761. data/lib/datadog/tracing/metadata/tagging.rb +2 -2
  762. data/lib/datadog/tracing/metadata.rb +4 -4
  763. data/lib/datadog/tracing/pipeline/span_filter.rb +2 -2
  764. data/lib/datadog/tracing/pipeline.rb +2 -2
  765. data/lib/datadog/tracing/remote.rb +23 -16
  766. data/lib/datadog/tracing/sampling/all_sampler.rb +1 -1
  767. data/lib/datadog/tracing/sampling/ext.rb +8 -8
  768. data/lib/datadog/tracing/sampling/matcher.rb +4 -4
  769. data/lib/datadog/tracing/sampling/priority_sampler.rb +4 -4
  770. data/lib/datadog/tracing/sampling/rate_by_key_sampler.rb +3 -3
  771. data/lib/datadog/tracing/sampling/rate_by_service_sampler.rb +2 -2
  772. data/lib/datadog/tracing/sampling/rate_sampler.rb +2 -2
  773. data/lib/datadog/tracing/sampling/rule.rb +4 -4
  774. data/lib/datadog/tracing/sampling/rule_sampler.rb +12 -12
  775. data/lib/datadog/tracing/sampling/sampler.rb +2 -2
  776. data/lib/datadog/tracing/sampling/span/ext.rb +3 -3
  777. data/lib/datadog/tracing/sampling/span/matcher.rb +2 -2
  778. data/lib/datadog/tracing/sampling/span/rule.rb +1 -1
  779. data/lib/datadog/tracing/sampling/span/rule_parser.rb +8 -8
  780. data/lib/datadog/tracing/span.rb +8 -8
  781. data/lib/datadog/tracing/span_event.rb +5 -5
  782. data/lib/datadog/tracing/span_operation.rb +21 -21
  783. data/lib/datadog/tracing/sync_writer.rb +4 -4
  784. data/lib/datadog/tracing/trace_operation.rb +11 -11
  785. data/lib/datadog/tracing/trace_segment.rb +10 -10
  786. data/lib/datadog/tracing/tracer.rb +15 -15
  787. data/lib/datadog/tracing/transport/http/client.rb +4 -4
  788. data/lib/datadog/tracing/transport/http/statistics.rb +2 -2
  789. data/lib/datadog/tracing/transport/http/traces.rb +8 -8
  790. data/lib/datadog/tracing/transport/http.rb +10 -10
  791. data/lib/datadog/tracing/transport/io/client.rb +2 -2
  792. data/lib/datadog/tracing/transport/io/response.rb +1 -1
  793. data/lib/datadog/tracing/transport/io/traces.rb +4 -4
  794. data/lib/datadog/tracing/transport/io.rb +3 -3
  795. data/lib/datadog/tracing/transport/serializable_trace.rb +19 -19
  796. data/lib/datadog/tracing/transport/statistics.rb +2 -2
  797. data/lib/datadog/tracing/transport/trace_formatter.rb +9 -9
  798. data/lib/datadog/tracing/transport/traces.rb +8 -8
  799. data/lib/datadog/tracing/utils.rb +2 -2
  800. data/lib/datadog/tracing/workers.rb +2 -2
  801. data/lib/datadog/tracing/writer.rb +5 -5
  802. data/lib/datadog/tracing.rb +3 -3
  803. data/lib/datadog/version.rb +4 -4
  804. data/lib/datadog.rb +13 -13
  805. metadata +7 -3
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'helpers'
4
- require_relative '../trace_digest'
5
- require_relative '../utils'
3
+ require_relative "helpers"
4
+ require_relative "../trace_digest"
5
+ require_relative "../utils"
6
6
 
7
7
  module Datadog
8
8
  module Tracing
@@ -10,9 +10,9 @@ module Datadog
10
10
  # B3 multi header-style trace propagation.
11
11
  # @see https://github.com/openzipkin/b3-propagation#multiple-headers
12
12
  class B3Multi
13
- B3_TRACE_ID_KEY = 'x-b3-traceid'
14
- B3_SPAN_ID_KEY = 'x-b3-spanid'
15
- B3_SAMPLED_KEY = 'x-b3-sampled'
13
+ B3_TRACE_ID_KEY = "x-b3-traceid"
14
+ B3_SPAN_ID_KEY = "x-b3-spanid"
15
+ B3_SAMPLED_KEY = "x-b3-sampled"
16
16
 
17
17
  def initialize(
18
18
  fetcher:,
@@ -30,8 +30,8 @@ module Datadog
30
30
  return if digest.nil?
31
31
 
32
32
  # DEV: We need these to be hex encoded
33
- data[@trace_id_key] = format('%032x', digest.trace_id)
34
- data[@span_id_key] = format('%016x', digest.span_id || 0) # # Fall back to zero (invalid) if not present
33
+ data[@trace_id_key] = format("%032x", digest.trace_id)
34
+ data[@span_id_key] = format("%016x", digest.span_id || 0) # # Fall back to zero (invalid) if not present
35
35
 
36
36
  if digest.trace_sampling_priority
37
37
  sampling_priority = Helpers.clamp_sampling_priority(
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'helpers'
4
- require_relative '../trace_digest'
3
+ require_relative "helpers"
4
+ require_relative "../trace_digest"
5
5
 
6
6
  module Datadog
7
7
  module Tracing
@@ -15,7 +15,7 @@ module Datadog
15
15
  #
16
16
  # @see https://github.com/openzipkin/b3-propagation#single-header
17
17
  class B3Single
18
- B3_SINGLE_HEADER_KEY = 'b3'
18
+ B3_SINGLE_HEADER_KEY = "b3"
19
19
 
20
20
  def initialize(fetcher:, key: B3_SINGLE_HEADER_KEY)
21
21
  @key = key
@@ -47,7 +47,7 @@ module Datadog
47
47
 
48
48
  return unless value
49
49
 
50
- parts = value.split('-')
50
+ parts = value.split("-")
51
51
  trace_id = Helpers.parse_hex_id(parts[0]) unless parts.empty?
52
52
  # Return early if this propagation is not valid
53
53
  return if trace_id.nil? || trace_id <= 0 || trace_id > Tracing::Utils::TraceId::MAX
@@ -1,12 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../ext'
4
- require_relative '../metadata/ext'
5
- require_relative '../trace_digest'
6
- require_relative 'datadog_tags_codec'
7
- require_relative '../utils'
8
- require_relative 'helpers'
9
- require 'uri'
3
+ require_relative "../ext"
4
+ require_relative "../metadata/ext"
5
+ require_relative "../trace_digest"
6
+ require_relative "datadog_tags_codec"
7
+ require_relative "../utils"
8
+ require_relative "helpers"
9
+ require "uri"
10
10
 
11
11
  module Datadog
12
12
  module Tracing
@@ -15,10 +15,10 @@ module Datadog
15
15
  # The baggage header is propagated through `baggage`.
16
16
  # @see https://www.w3.org/TR/baggage/
17
17
  class Baggage
18
- BAGGAGE_KEY = 'baggage'
18
+ BAGGAGE_KEY = "baggage"
19
19
  DD_TRACE_BAGGAGE_MAX_ITEMS = 64
20
20
  DD_TRACE_BAGGAGE_MAX_BYTES = 8192
21
- BAGGAGE_TAG_KEYS_MATCH_ALL = ['*'].freeze
21
+ BAGGAGE_TAG_KEYS_MATCH_ALL = ["*"].freeze
22
22
  SAFE_CHARACTERS_KEY = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789$!#&'*+-.^_`|~"
23
23
  SAFE_CHARACTERS_VALUE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789$!#&'()*+-./:<>?@[]^_`{|}~"
24
24
 
@@ -43,9 +43,9 @@ module Datadog
43
43
  ::Datadog.logger.warn("Baggage item limit (#{DD_TRACE_BAGGAGE_MAX_ITEMS}) exceeded, dropping excess items")
44
44
  # Record telemetry for item count truncation
45
45
  record_telemetry_metric(
46
- 'context_header.truncated',
46
+ "context_header.truncated",
47
47
  1,
48
- {'header_style' => 'baggage', 'truncation_reason' => 'baggage_item_count_exceeded'}
48
+ {"header_style" => "baggage", "truncation_reason" => "baggage_item_count_exceeded"}
49
49
  )
50
50
  baggage_items = baggage_items.first(DD_TRACE_BAGGAGE_MAX_ITEMS)
51
51
  end
@@ -60,9 +60,9 @@ module Datadog
60
60
  ::Datadog.logger.warn("Baggage header size (#{DD_TRACE_BAGGAGE_MAX_BYTES}) exceeded, dropping excess items")
61
61
  # Record telemetry for byte count truncation
62
62
  record_telemetry_metric(
63
- 'context_header.truncated',
63
+ "context_header.truncated",
64
64
  1,
65
- {'header_style' => 'baggage', 'truncation_reason' => 'baggage_byte_count_exceeded'}
65
+ {"header_style" => "baggage", "truncation_reason" => "baggage_byte_count_exceeded"}
66
66
  )
67
67
  break # stop adding items when size limit is reached
68
68
  end
@@ -73,10 +73,10 @@ module Datadog
73
73
  # edge case where a single item is too large
74
74
  return if encoded_items.empty?
75
75
 
76
- data[@baggage_key] = encoded_items.join(',')
76
+ data[@baggage_key] = encoded_items.join(",")
77
77
 
78
78
  # Record telemetry for successful injection
79
- record_telemetry_metric('context_header_style.injected', 1, {'header_style' => 'baggage'})
79
+ record_telemetry_metric("context_header_style.injected", 1, {"header_style" => "baggage"})
80
80
  rescue => e
81
81
  ::Datadog.logger.warn("Failed to encode and inject baggage header: #{e.class}: #{e.message}")
82
82
  end
@@ -95,7 +95,7 @@ module Datadog
95
95
 
96
96
  # Record telemetry for successful extraction only if baggage is not empty
97
97
  unless baggage.empty?
98
- record_telemetry_metric('context_header_style.extracted', 1, {'header_style' => 'baggage'})
98
+ record_telemetry_metric("context_header_style.extracted", 1, {"header_style" => "baggage"})
99
99
  end
100
100
 
101
101
  TraceDigest.new(
@@ -110,7 +110,7 @@ module Datadog
110
110
  # Strip whitespace and URL-encode the item
111
111
  result = URI.encode_www_form_component(item.strip)
112
112
  # Replace '+' with '%20' for space encoding consistency with W3C spec
113
- result = result.gsub('+', '%20')
113
+ result = result.gsub("+", "%20")
114
114
  # Selectively decode percent-encoded characters that are considered "safe" in W3C Baggage spec
115
115
  result.gsub(/%[0-9A-F]{2}/) do |encoded|
116
116
  if encoded.size >= 3 && encoded[1..2] =~ /\A[0-9A-F]{2}\z/
@@ -118,7 +118,7 @@ module Datadog
118
118
  next encoded unless hex_str && !hex_str.empty?
119
119
 
120
120
  # Convert hex representation back to character
121
- char = [hex_str.hex].pack('C')
121
+ char = [hex_str.hex].pack("C")
122
122
  # Keep the character as-is if it's in the safe character set, otherwise keep it encoded
123
123
  safe_characters.include?(char) ? char : encoded
124
124
  else
@@ -145,12 +145,12 @@ module Datadog
145
145
  # the typical Rack path is unaffected; only UTF-8-tagged-but-actually-invalid
146
146
  # input (e.g. headers re-encoded upstream) is short-circuited here.
147
147
  unless baggage_header.valid_encoding?
148
- record_telemetry_metric('context_header_style.malformed', 1, {'header_style' => 'baggage'})
148
+ record_telemetry_metric("context_header_style.malformed", 1, {"header_style" => "baggage"})
149
149
  return {}
150
150
  end
151
151
 
152
152
  if baggage_header.bytesize > DD_TRACE_BAGGAGE_MAX_BYTES
153
- record_telemetry_metric('context_header.truncated', 1, {'header_style' => 'baggage', 'truncation_reason' => 'baggage_byte_count_exceeded'})
153
+ record_telemetry_metric("context_header.truncated", 1, {"header_style" => "baggage", "truncation_reason" => "baggage_byte_count_exceeded"})
154
154
 
155
155
  # We MUST NOT propagate partial entries, but we SHOULD try
156
156
  # to parse as much of the baggage as possible:
@@ -158,7 +158,7 @@ module Datadog
158
158
 
159
159
  # We parse 1 byte over the limit to detect if the last entry
160
160
  # is a partial entry (toss) or ends exactly at the limit (keep).
161
- remove_last_entry = baggage_header.byteslice(DD_TRACE_BAGGAGE_MAX_BYTES, 1) != ','
161
+ remove_last_entry = baggage_header.byteslice(DD_TRACE_BAGGAGE_MAX_BYTES, 1) != ","
162
162
 
163
163
  # To ensure we don't have a trailing partial UTF-8 codepoint, we keep one extra byte
164
164
  # and safely remove it with `#chop`.
@@ -171,10 +171,10 @@ module Datadog
171
171
  baggage = {}
172
172
  # DEV: To avoid unnecessary eager string allocation, replace with
173
173
  # DEV: `split(',') { |s| ... }` when Ruby 2.5 is no longer supported.
174
- baggages = baggage_header.split(',', DD_TRACE_BAGGAGE_MAX_ITEMS + 1) # Stop splitting if we've reached max size
174
+ baggages = baggage_header.split(",", DD_TRACE_BAGGAGE_MAX_ITEMS + 1) # Stop splitting if we've reached max size
175
175
  baggages.each_with_index do |key_value, index|
176
176
  if index >= DD_TRACE_BAGGAGE_MAX_ITEMS
177
- record_telemetry_metric('context_header.truncated', 1, {'header_style' => 'baggage', 'truncation_reason' => 'baggage_item_count_exceeded'})
177
+ record_telemetry_metric("context_header.truncated", 1, {"header_style" => "baggage", "truncation_reason" => "baggage_item_count_exceeded"})
178
178
  break
179
179
  end
180
180
 
@@ -184,11 +184,11 @@ module Datadog
184
184
  # Empty items are skipped
185
185
  next if key_value.strip.empty?
186
186
 
187
- key, value = key_value.split('=', 2)
187
+ key, value = key_value.split("=", 2)
188
188
  # If baggage is malformed, return an empty hash
189
189
  if key.nil? || value.nil?
190
190
  # Record telemetry for malformed header
191
- record_telemetry_metric('context_header_style.malformed', 1, {'header_style' => 'baggage'})
191
+ record_telemetry_metric("context_header_style.malformed", 1, {"header_style" => "baggage"})
192
192
  return {}
193
193
  end
194
194
 
@@ -199,13 +199,13 @@ module Datadog
199
199
  # `URI.decode_www_form_component` raises on malformed percent encoding
200
200
  # (e.g. `%XX`, lone `%`). Treat as malformed rather than letting it
201
201
  # propagate to `Propagation#extract`'s caller.
202
- record_telemetry_metric('context_header_style.malformed', 1, {'header_style' => 'baggage'})
202
+ record_telemetry_metric("context_header_style.malformed", 1, {"header_style" => "baggage"})
203
203
  return {}
204
204
  end
205
205
 
206
206
  if key.empty? || value.empty?
207
207
  # Record telemetry for malformed header
208
- record_telemetry_metric('context_header_style.malformed', 1, {'header_style' => 'baggage'})
208
+ record_telemetry_metric("context_header_style.malformed", 1, {"header_style" => "baggage"})
209
209
  return {}
210
210
  end
211
211
 
@@ -1,25 +1,25 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../metadata/ext'
4
- require_relative '../trace_digest'
5
- require_relative 'datadog_tags_codec'
6
- require_relative '../utils'
7
- require_relative 'helpers'
3
+ require_relative "../metadata/ext"
4
+ require_relative "../trace_digest"
5
+ require_relative "datadog_tags_codec"
6
+ require_relative "../utils"
7
+ require_relative "helpers"
8
8
 
9
9
  module Datadog
10
10
  module Tracing
11
11
  module Distributed
12
12
  # Datadog-style trace propagation.
13
13
  class Datadog
14
- TRACE_ID_KEY = 'x-datadog-trace-id'
15
- PARENT_ID_KEY = 'x-datadog-parent-id'
16
- SAMPLING_PRIORITY_KEY = 'x-datadog-sampling-priority'
17
- ORIGIN_KEY = 'x-datadog-origin'
14
+ TRACE_ID_KEY = "x-datadog-trace-id"
15
+ PARENT_ID_KEY = "x-datadog-parent-id"
16
+ SAMPLING_PRIORITY_KEY = "x-datadog-sampling-priority"
17
+ ORIGIN_KEY = "x-datadog-origin"
18
18
  # Distributed trace-level tags
19
- TAGS_KEY = 'x-datadog-tags'
19
+ TAGS_KEY = "x-datadog-tags"
20
20
 
21
21
  # Prefix used by all Datadog-specific distributed tags
22
- TAGS_PREFIX = 'x-datadog-'
22
+ TAGS_PREFIX = "x-datadog-"
23
23
 
24
24
  def initialize(
25
25
  fetcher:,
@@ -108,7 +108,7 @@ module Datadog
108
108
 
109
109
  return tags if high_order == 0
110
110
 
111
- tags.merge(Tracing::Metadata::Ext::Distributed::TAG_TID => format('%016x', high_order))
111
+ tags.merge(Tracing::Metadata::Ext::Distributed::TAG_TID => format("%016x", high_order))
112
112
  end
113
113
 
114
114
  # Side effect: Remove high order 64 bit hex-encoded `tid` tag from distributed tags
@@ -127,15 +127,15 @@ module Datadog
127
127
  # DEV: This means errors cannot be reported if there's not active span.
128
128
  # DEV: Ideally, we'd have a dedicated error reporting stream for all of datadog.
129
129
  def inject_tags!(tags, data)
130
- return set_tags_propagation_error(reason: 'disabled') if tags_disabled?
130
+ return set_tags_propagation_error(reason: "disabled") if tags_disabled?
131
131
 
132
132
  encoded_tags = DatadogTagsCodec.encode(tags)
133
133
 
134
- return set_tags_propagation_error(reason: 'inject_max_size') if tags_too_large?(encoded_tags, scenario: 'inject')
134
+ return set_tags_propagation_error(reason: "inject_max_size") if tags_too_large?(encoded_tags, scenario: "inject")
135
135
 
136
136
  data[@tags_key] = encoded_tags
137
137
  rescue => e
138
- set_tags_propagation_error(reason: 'encoding_error')
138
+ set_tags_propagation_error(reason: "encoding_error")
139
139
  ::Datadog.logger.warn(
140
140
  "Failed to inject x-datadog-tags: #{e.class}: #{e.message} at #{Array(e.backtrace).first}"
141
141
  )
@@ -152,8 +152,8 @@ module Datadog
152
152
  tags = fetcher[@tags_key]
153
153
 
154
154
  return if !tags || tags.empty?
155
- return set_tags_propagation_error(reason: 'disabled') if tags_disabled?
156
- return set_tags_propagation_error(reason: 'extract_max_size') if tags_too_large?(tags, scenario: 'extract')
155
+ return set_tags_propagation_error(reason: "disabled") if tags_disabled?
156
+ return set_tags_propagation_error(reason: "extract_max_size") if tags_too_large?(tags, scenario: "extract")
157
157
 
158
158
  tags_hash = DatadogTagsCodec.decode(tags)
159
159
  # Only extract keys with the expected Datadog prefix
@@ -162,7 +162,7 @@ module Datadog
162
162
  end
163
163
  tags_hash
164
164
  rescue => e
165
- set_tags_propagation_error(reason: 'decoding_error')
165
+ set_tags_propagation_error(reason: "decoding_error")
166
166
  ::Datadog.logger.warn(
167
167
  "Failed to extract x-datadog-tags: #{e.class}: #{e.message} at #{Array(e.backtrace).first}"
168
168
  )
@@ -171,7 +171,7 @@ module Datadog
171
171
 
172
172
  def set_tags_propagation_error(reason:)
173
173
  active_trace = Tracing.active_trace
174
- active_trace&.set_tag('_dd.propagation_error', reason)
174
+ active_trace&.set_tag("_dd.propagation_error", reason)
175
175
  nil
176
176
  end
177
177
 
@@ -188,14 +188,14 @@ module Datadog
188
188
  ::Datadog.logger.warn(
189
189
  "Failed to #{scenario} x-datadog-tags: tags are too large for configured limit (bytesize:#{size} >= " \
190
190
  "limit:#{max_length}). This limit can be configured " \
191
- 'through the DD_TRACE_X_DATADOG_TAGS_MAX_LENGTH environment variable.'
191
+ "through the DD_TRACE_X_DATADOG_TAGS_MAX_LENGTH environment variable."
192
192
  )
193
193
 
194
194
  true
195
195
  end
196
196
 
197
197
  # We want to exclude tags that we don't want to propagate downstream.
198
- EXCLUDED_TAG = '_dd.p.upstream_services'
198
+ EXCLUDED_TAG = "_dd.p.upstream_services"
199
199
  private_constant :EXCLUDED_TAG
200
200
  end
201
201
  end
@@ -26,7 +26,7 @@ module Datadog
26
26
  raise EncodingError, "Invalid value `#{value}` for key `#{key}`" unless VALID_VALUE_CHARS.match?(value)
27
27
 
28
28
  "#{key}=#{value.strip}"
29
- end.join(',')
29
+ end.join(",")
30
30
  rescue => e
31
31
  raise EncodingError, "Error encoding tags `#{tags}`: `#{e.class}: #{e.message}`"
32
32
  end
@@ -37,8 +37,8 @@ module Datadog
37
37
  # @return [Hash<String,String>] decoded input as a hash of strings
38
38
  # @raise [DecodingError] if string does not conform to the `x-datadog-tags` format
39
39
  def self.decode(string)
40
- result = (string.split(',').map do |raw_tag|
41
- raw_tag.split('=', 2).tap do |raw_key, raw_value|
40
+ result = (string.split(",").map do |raw_tag|
41
+ raw_tag.split("=", 2).tap do |raw_key, raw_value|
42
42
  key = raw_key.to_s
43
43
  value = raw_value.to_s
44
44
 
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'helpers'
3
+ require_relative "helpers"
4
4
 
5
5
  module Datadog
6
6
  module Tracing
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../sampling/ext'
4
- require_relative '../utils'
3
+ require_relative "../sampling/ext"
4
+ require_relative "../utils"
5
5
 
6
6
  module Datadog
7
7
  module Tracing
@@ -47,7 +47,7 @@ module Datadog
47
47
  # for us so we want to make sure the comparision will work as expected
48
48
  # DEV: regex, remove all leading zeros up until we find the last 0 in the string
49
49
  # or we find the first non-zero, this allows `'0000' -> '0'` and `'00001' -> '1'`
50
- value = value.sub(/^0*(?=(0$)|[^0])/, '')
50
+ value = value.sub(/^0*(?=(0$)|[^0])/, "")
51
51
 
52
52
  # Convert value to an integer
53
53
  # DEV: Ruby `.to_i` will return `0` if a number could not be parsed
@@ -1,11 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../configuration/ext'
4
- require_relative '../trace_digest'
5
- require_relative '../trace_operation'
6
- require_relative '../span_link'
7
- require_relative '../../core/telemetry/logger'
8
- require_relative 'baggage'
3
+ require_relative "../configuration/ext"
4
+ require_relative "../trace_digest"
5
+ require_relative "../trace_operation"
6
+ require_relative "../span_link"
7
+ require_relative "../../core/telemetry/logger"
8
+ require_relative "baggage"
9
9
 
10
10
  module Datadog
11
11
  module Tracing
@@ -62,13 +62,13 @@ module Datadog
62
62
  # @return [nil] in case of unrecoverable errors, see `Datadog.logger` output for details.
63
63
  def inject!(digest, data)
64
64
  if digest.nil?
65
- ::Datadog.logger.debug('Cannot inject distributed trace data: digest is nil.')
65
+ ::Datadog.logger.debug("Cannot inject distributed trace data: digest is nil.")
66
66
  return nil
67
67
  end
68
68
 
69
69
  digest = digest.to_digest if digest.respond_to?(:to_digest)
70
70
  if digest.trace_id.nil? && digest.baggage.nil?
71
- ::Datadog.logger.debug('Cannot inject distributed trace data: digest.trace_id and digest.baggage are both nil.')
71
+ ::Datadog.logger.debug("Cannot inject distributed trace data: digest.trace_id and digest.baggage are both nil.")
72
72
  return nil
73
73
  end
74
74
 
@@ -166,11 +166,11 @@ module Datadog
166
166
  link = SpanLink.new(
167
167
  extracted_trace_digest,
168
168
  attributes: {
169
- 'reason' => 'propagation_behavior_extract',
170
- 'context_headers' => extracted_style_name,
169
+ "reason" => "propagation_behavior_extract",
170
+ "context_headers" => extracted_style_name,
171
171
  }
172
172
  )
173
- baggage_tags = extracted_trace_digest.trace_distributed_tags&.select { |k, _| k.start_with?('baggage.') }
173
+ baggage_tags = extracted_trace_digest.trace_distributed_tags&.select { |k, _| k.start_with?("baggage.") }
174
174
  baggage_tags = nil if baggage_tags&.empty?
175
175
  TraceDigest.new(
176
176
  span_links: [link],
@@ -210,7 +210,7 @@ module Datadog
210
210
  tracecontext_tags[Tracing::Metadata::Ext::Distributed::TAG_DD_PARENT_ID]
211
211
  elsif dd_propagator && (dd_digest = dd_propagator.extract(headers))
212
212
  # if p value is not present in tracestate, use the parent id from the datadog headers
213
- format('%016x', dd_digest.span_id)
213
+ format("%016x", dd_digest.span_id)
214
214
  end
215
215
  end
216
216
  end