datadog 2.37.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 (823) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +48 -1
  3. data/bin/ddprofrb +4 -4
  4. data/ext/datadog_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +99 -15
  5. data/ext/datadog_profiling_native_extension/collectors_stack.c +19 -24
  6. data/ext/datadog_profiling_native_extension/collectors_stack.h +0 -1
  7. data/ext/datadog_profiling_native_extension/collectors_thread_context.c +155 -141
  8. data/ext/datadog_profiling_native_extension/collectors_thread_context.h +1 -0
  9. data/ext/datadog_profiling_native_extension/extconf.rb +1 -4
  10. data/ext/datadog_profiling_native_extension/private_vm_api_access.c +5 -0
  11. data/ext/datadog_profiling_native_extension/private_vm_api_access.h +2 -0
  12. data/ext/datadog_profiling_native_extension/setup_signal_handler.c +2 -0
  13. data/ext/datadog_profiling_native_extension/time_helpers.h +12 -7
  14. data/ext/libdatadog_api/extconf.rb +24 -24
  15. data/ext/libdatadog_api/feature_flags.c +26 -0
  16. data/ext/libdatadog_extconf_helpers.rb +9 -9
  17. data/lib/datadog/ai_guard/api_client.rb +2 -2
  18. data/lib/datadog/ai_guard/component.rb +10 -10
  19. data/lib/datadog/appsec/actions_handler/serializable_backtrace.rb +16 -16
  20. data/lib/datadog/appsec/actions_handler.rb +6 -6
  21. data/lib/datadog/appsec/anonymizer.rb +1 -1
  22. data/lib/datadog/appsec/api_security/endpoint_collection/grape_route_serializer.rb +1 -1
  23. data/lib/datadog/appsec/api_security/endpoint_collection/rails_collector.rb +6 -6
  24. data/lib/datadog/appsec/api_security/endpoint_collection/sinatra_route_serializer.rb +1 -1
  25. data/lib/datadog/appsec/api_security/route_extractor.rb +11 -11
  26. data/lib/datadog/appsec/api_security/sampler.rb +5 -5
  27. data/lib/datadog/appsec/api_security.rb +1 -1
  28. data/lib/datadog/appsec/assets.rb +7 -7
  29. data/lib/datadog/appsec/autoload.rb +3 -3
  30. data/lib/datadog/appsec/component.rb +15 -15
  31. data/lib/datadog/appsec/compressed_json.rb +6 -6
  32. data/lib/datadog/appsec/configuration.rb +59 -59
  33. data/lib/datadog/appsec/context.rb +6 -6
  34. data/lib/datadog/appsec/contrib/active_record/instrumentation.rb +6 -6
  35. data/lib/datadog/appsec/contrib/active_record/integration.rb +4 -4
  36. data/lib/datadog/appsec/contrib/active_record/patcher.rb +4 -4
  37. data/lib/datadog/appsec/contrib/aws_lambda/gateway/watcher.rb +7 -7
  38. data/lib/datadog/appsec/contrib/aws_lambda/integration.rb +2 -2
  39. data/lib/datadog/appsec/contrib/aws_lambda/patcher.rb +2 -2
  40. data/lib/datadog/appsec/contrib/aws_lambda/waf_addresses.rb +36 -34
  41. data/lib/datadog/appsec/contrib/devise/data_extractor.rb +3 -3
  42. data/lib/datadog/appsec/contrib/devise/ext.rb +20 -20
  43. data/lib/datadog/appsec/contrib/devise/integration.rb +4 -4
  44. data/lib/datadog/appsec/contrib/devise/patcher.rb +7 -7
  45. data/lib/datadog/appsec/contrib/devise/patches/signin_tracking_patch.rb +12 -12
  46. data/lib/datadog/appsec/contrib/devise/patches/signup_tracking_patch.rb +8 -8
  47. data/lib/datadog/appsec/contrib/devise/tracking_middleware.rb +24 -9
  48. data/lib/datadog/appsec/contrib/excon/integration.rb +4 -4
  49. data/lib/datadog/appsec/contrib/excon/patcher.rb +1 -1
  50. data/lib/datadog/appsec/contrib/excon/ssrf_detection_middleware.rb +26 -26
  51. data/lib/datadog/appsec/contrib/faraday/integration.rb +4 -4
  52. data/lib/datadog/appsec/contrib/faraday/patcher.rb +4 -4
  53. data/lib/datadog/appsec/contrib/faraday/ssrf_detection_middleware.rb +22 -22
  54. data/lib/datadog/appsec/contrib/graphql/appsec_trace.rb +4 -4
  55. data/lib/datadog/appsec/contrib/graphql/gateway/multiplex.rb +2 -2
  56. data/lib/datadog/appsec/contrib/graphql/gateway/watcher.rb +7 -7
  57. data/lib/datadog/appsec/contrib/graphql/integration.rb +9 -9
  58. data/lib/datadog/appsec/contrib/graphql/patcher.rb +3 -3
  59. data/lib/datadog/appsec/contrib/rack/buffered_input.rb +1 -1
  60. data/lib/datadog/appsec/contrib/rack/ext.rb +29 -29
  61. data/lib/datadog/appsec/contrib/rack/gateway/request.rb +18 -17
  62. data/lib/datadog/appsec/contrib/rack/gateway/response.rb +1 -1
  63. data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +24 -24
  64. data/lib/datadog/appsec/contrib/rack/input_peeker.rb +6 -6
  65. data/lib/datadog/appsec/contrib/rack/integration.rb +6 -6
  66. data/lib/datadog/appsec/contrib/rack/patcher.rb +2 -2
  67. data/lib/datadog/appsec/contrib/rack/request_body_middleware.rb +5 -5
  68. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +26 -26
  69. data/lib/datadog/appsec/contrib/rack/response_body.rb +1 -1
  70. data/lib/datadog/appsec/contrib/rails/gateway/request.rb +14 -9
  71. data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +10 -10
  72. data/lib/datadog/appsec/contrib/rails/integration.rb +5 -5
  73. data/lib/datadog/appsec/contrib/rails/patcher.rb +17 -17
  74. data/lib/datadog/appsec/contrib/rails/patches/process_action_patch.rb +2 -2
  75. data/lib/datadog/appsec/contrib/rails/patches/render_to_body_patch.rb +3 -3
  76. data/lib/datadog/appsec/contrib/rails/request.rb +3 -3
  77. data/lib/datadog/appsec/contrib/rest_client/integration.rb +5 -5
  78. data/lib/datadog/appsec/contrib/rest_client/patcher.rb +1 -1
  79. data/lib/datadog/appsec/contrib/rest_client/request_ssrf_detection_patch.rb +23 -23
  80. data/lib/datadog/appsec/contrib/sinatra/gateway/request.rb +1 -1
  81. data/lib/datadog/appsec/contrib/sinatra/gateway/route_params.rb +1 -1
  82. data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +15 -15
  83. data/lib/datadog/appsec/contrib/sinatra/integration.rb +5 -5
  84. data/lib/datadog/appsec/contrib/sinatra/patcher.rb +11 -11
  85. data/lib/datadog/appsec/contrib/sinatra/patches/json_patch.rb +3 -3
  86. data/lib/datadog/appsec/counter_sampler.rb +1 -1
  87. data/lib/datadog/appsec/event.rb +14 -14
  88. data/lib/datadog/appsec/ext.rb +11 -11
  89. data/lib/datadog/appsec/extensions.rb +2 -2
  90. data/lib/datadog/appsec/instrumentation/gateway.rb +1 -1
  91. data/lib/datadog/appsec/metrics/exporter.rb +8 -8
  92. data/lib/datadog/appsec/metrics/telemetry.rb +7 -7
  93. data/lib/datadog/appsec/metrics/telemetry_exporter.rb +4 -4
  94. data/lib/datadog/appsec/metrics.rb +4 -4
  95. data/lib/datadog/appsec/monitor/gateway/watcher.rb +16 -12
  96. data/lib/datadog/appsec/monitor.rb +1 -1
  97. data/lib/datadog/appsec/processor/rule_loader.rb +26 -26
  98. data/lib/datadog/appsec/rate_limiter.rb +1 -1
  99. data/lib/datadog/appsec/remote.rb +6 -6
  100. data/lib/datadog/appsec/response.rb +21 -21
  101. data/lib/datadog/appsec/route_normalizer/rails_route_pattern.rb +11 -11
  102. data/lib/datadog/appsec/route_normalizer/route_pattern.rb +15 -15
  103. data/lib/datadog/appsec/route_normalizer/route_text.rb +3 -3
  104. data/lib/datadog/appsec/route_normalizer.rb +15 -15
  105. data/lib/datadog/appsec/security_engine/engine.rb +37 -37
  106. data/lib/datadog/appsec/security_engine/runner.rb +2 -2
  107. data/lib/datadog/appsec/security_event.rb +2 -2
  108. data/lib/datadog/appsec/utils/http/body.rb +11 -8
  109. data/lib/datadog/appsec/utils/http/body_reader.rb +1 -1
  110. data/lib/datadog/appsec/utils/http/media_range.rb +15 -15
  111. data/lib/datadog/appsec/utils/http/media_type.rb +4 -4
  112. data/lib/datadog/appsec/utils/http/url_encoded.rb +80 -25
  113. data/lib/datadog/appsec.rb +16 -16
  114. data/lib/datadog/auto_instrument.rb +2 -2
  115. data/lib/datadog/core/buffer/cruby.rb +1 -1
  116. data/lib/datadog/core/buffer/thread_safe.rb +1 -1
  117. data/lib/datadog/core/configuration/agent_settings.rb +1 -1
  118. data/lib/datadog/core/configuration/agent_settings_resolver.rb +15 -15
  119. data/lib/datadog/core/configuration/agentless_settings_resolver.rb +2 -2
  120. data/lib/datadog/core/configuration/base.rb +2 -2
  121. data/lib/datadog/core/configuration/components.rb +33 -29
  122. data/lib/datadog/core/configuration/config_helper.rb +3 -3
  123. data/lib/datadog/core/configuration/deprecations.rb +6 -6
  124. data/lib/datadog/core/configuration/ext.rb +11 -11
  125. data/lib/datadog/core/configuration/option.rb +16 -16
  126. data/lib/datadog/core/configuration/option_definition.rb +4 -4
  127. data/lib/datadog/core/configuration/options.rb +1 -1
  128. data/lib/datadog/core/configuration/settings.rb +62 -62
  129. data/lib/datadog/core/configuration/stable_config.rb +1 -1
  130. data/lib/datadog/core/configuration/supported_configurations.rb +3 -1
  131. data/lib/datadog/core/configuration.rb +8 -8
  132. data/lib/datadog/core/contrib/rails/railtie.rb +3 -3
  133. data/lib/datadog/core/crashtracking/component.rb +9 -9
  134. data/lib/datadog/core/crashtracking/tag_builder.rb +5 -5
  135. data/lib/datadog/core/deprecations.rb +1 -1
  136. data/lib/datadog/core/diagnostics/environment_logger.rb +6 -6
  137. data/lib/datadog/core/diagnostics/health.rb +2 -2
  138. data/lib/datadog/core/encoding.rb +4 -4
  139. data/lib/datadog/core/environment/agent_info.rb +2 -2
  140. data/lib/datadog/core/environment/cgroup.rb +4 -4
  141. data/lib/datadog/core/environment/container.rb +9 -9
  142. data/lib/datadog/core/environment/execution.rb +3 -3
  143. data/lib/datadog/core/environment/ext.rb +18 -18
  144. data/lib/datadog/core/environment/git.rb +2 -2
  145. data/lib/datadog/core/environment/identity.rb +10 -10
  146. data/lib/datadog/core/environment/platform.rb +8 -8
  147. data/lib/datadog/core/environment/process.rb +3 -3
  148. data/lib/datadog/core/environment/socket.rb +2 -2
  149. data/lib/datadog/core/environment/variable_helpers.rb +1 -1
  150. data/lib/datadog/core/error.rb +5 -5
  151. data/lib/datadog/core/evp.rb +2 -2
  152. data/lib/datadog/core/extensions.rb +1 -1
  153. data/lib/datadog/core/feature_flags.rb +2 -2
  154. data/lib/datadog/core/git/ext.rb +4 -4
  155. data/lib/datadog/core/knuth_sampler.rb +3 -1
  156. data/lib/datadog/core/logger.rb +3 -3
  157. data/lib/datadog/core/logging/ext.rb +1 -1
  158. data/lib/datadog/core/metrics/client.rb +21 -21
  159. data/lib/datadog/core/metrics/ext.rb +5 -5
  160. data/lib/datadog/core/metrics/logging.rb +2 -2
  161. data/lib/datadog/core/metrics/options.rb +3 -3
  162. data/lib/datadog/core/pin.rb +1 -1
  163. data/lib/datadog/core/process_discovery.rb +8 -8
  164. data/lib/datadog/core/rate_limiter.rb +1 -1
  165. data/lib/datadog/core/remote/client/capabilities.rb +36 -20
  166. data/lib/datadog/core/remote/client.rb +16 -16
  167. data/lib/datadog/core/remote/component.rb +20 -12
  168. data/lib/datadog/core/remote/configuration/content.rb +3 -3
  169. data/lib/datadog/core/remote/configuration/digest.rb +1 -1
  170. data/lib/datadog/core/remote/configuration/path.rb +9 -9
  171. data/lib/datadog/core/remote/configuration/repository.rb +2 -2
  172. data/lib/datadog/core/remote/configuration/target.rb +9 -9
  173. data/lib/datadog/core/remote/configuration.rb +4 -4
  174. data/lib/datadog/core/remote/ext.rb +3 -3
  175. data/lib/datadog/core/remote/negotiation.rb +1 -1
  176. data/lib/datadog/core/remote/tie/tracing.rb +7 -7
  177. data/lib/datadog/core/remote/transport/config.rb +4 -4
  178. data/lib/datadog/core/remote/transport/http/config.rb +7 -7
  179. data/lib/datadog/core/remote/transport/http/negotiation.rb +4 -4
  180. data/lib/datadog/core/remote/transport/http.rb +10 -10
  181. data/lib/datadog/core/remote/transport/negotiation.rb +3 -3
  182. data/lib/datadog/core/remote/worker.rb +5 -5
  183. data/lib/datadog/core/runtime/ext.rb +22 -22
  184. data/lib/datadog/core/runtime/metrics.rb +9 -9
  185. data/lib/datadog/core/tag_builder.rb +18 -18
  186. data/lib/datadog/core/tag_normalizer.rb +7 -7
  187. data/lib/datadog/core/telemetry/component.rb +13 -13
  188. data/lib/datadog/core/telemetry/emitter.rb +4 -4
  189. data/lib/datadog/core/telemetry/event/app_client_configuration_change.rb +5 -5
  190. data/lib/datadog/core/telemetry/event/app_closing.rb +2 -2
  191. data/lib/datadog/core/telemetry/event/app_dependencies_loaded.rb +2 -2
  192. data/lib/datadog/core/telemetry/event/app_endpoints_loaded.rb +2 -2
  193. data/lib/datadog/core/telemetry/event/app_extended_heartbeat.rb +2 -2
  194. data/lib/datadog/core/telemetry/event/app_heartbeat.rb +2 -2
  195. data/lib/datadog/core/telemetry/event/app_integrations_change.rb +2 -2
  196. data/lib/datadog/core/telemetry/event/app_started.rb +33 -33
  197. data/lib/datadog/core/telemetry/event/base.rb +1 -1
  198. data/lib/datadog/core/telemetry/event/distributions.rb +2 -2
  199. data/lib/datadog/core/telemetry/event/generate_metrics.rb +2 -2
  200. data/lib/datadog/core/telemetry/event/log.rb +4 -4
  201. data/lib/datadog/core/telemetry/event/message_batch.rb +1 -1
  202. data/lib/datadog/core/telemetry/event/synth_app_client_configuration_change.rb +2 -2
  203. data/lib/datadog/core/telemetry/event.rb +16 -16
  204. data/lib/datadog/core/telemetry/ext.rb +11 -11
  205. data/lib/datadog/core/telemetry/logger.rb +1 -1
  206. data/lib/datadog/core/telemetry/logging.rb +5 -5
  207. data/lib/datadog/core/telemetry/metric.rb +7 -7
  208. data/lib/datadog/core/telemetry/metrics_collection.rb +2 -2
  209. data/lib/datadog/core/telemetry/metrics_manager.rb +1 -1
  210. data/lib/datadog/core/telemetry/request.rb +4 -4
  211. data/lib/datadog/core/telemetry/transport/http/telemetry.rb +14 -14
  212. data/lib/datadog/core/telemetry/transport/http.rb +7 -7
  213. data/lib/datadog/core/telemetry/transport/telemetry.rb +3 -3
  214. data/lib/datadog/core/telemetry/worker.rb +6 -6
  215. data/lib/datadog/core/transport/ext.rb +14 -14
  216. data/lib/datadog/core/transport/http/adapters/net.rb +4 -4
  217. data/lib/datadog/core/transport/http/adapters/test.rb +1 -1
  218. data/lib/datadog/core/transport/http/adapters/unix_socket.rb +4 -4
  219. data/lib/datadog/core/transport/http/api/endpoint.rb +1 -1
  220. data/lib/datadog/core/transport/http/api/map.rb +1 -1
  221. data/lib/datadog/core/transport/http/builder.rb +6 -6
  222. data/lib/datadog/core/transport/http/client.rb +2 -2
  223. data/lib/datadog/core/transport/http/response.rb +1 -1
  224. data/lib/datadog/core/transport/http.rb +8 -8
  225. data/lib/datadog/core/transport/transport.rb +1 -1
  226. data/lib/datadog/core/utils/at_fork_monkey_patch.rb +3 -3
  227. data/lib/datadog/core/utils/base64_codec.rb +3 -3
  228. data/lib/datadog/core/utils/duration.rb +1 -1
  229. data/lib/datadog/core/utils/forking.rb +2 -2
  230. data/lib/datadog/core/utils/lru_cache.rb +3 -3
  231. data/lib/datadog/core/utils/network.rb +11 -11
  232. data/lib/datadog/core/utils/only_once_successful.rb +1 -1
  233. data/lib/datadog/core/utils/safe_dup.rb +2 -1
  234. data/lib/datadog/core/utils/spawn_monkey_patch.rb +2 -2
  235. data/lib/datadog/core/utils/time.rb +5 -1
  236. data/lib/datadog/core/utils/url.rb +1 -1
  237. data/lib/datadog/core/utils.rb +4 -4
  238. data/lib/datadog/core/workers/async.rb +1 -1
  239. data/lib/datadog/core/workers/polling.rb +2 -2
  240. data/lib/datadog/core/workers/runtime_metrics.rb +4 -4
  241. data/lib/datadog/core.rb +4 -4
  242. data/lib/datadog/data_streams/configuration.rb +3 -3
  243. data/lib/datadog/data_streams/ext.rb +1 -1
  244. data/lib/datadog/data_streams/extensions.rb +2 -2
  245. data/lib/datadog/data_streams/pathway_context.rb +5 -5
  246. data/lib/datadog/data_streams/processor.rb +52 -52
  247. data/lib/datadog/data_streams/transport/http/stats.rb +5 -5
  248. data/lib/datadog/data_streams/transport/http.rb +5 -5
  249. data/lib/datadog/data_streams/transport/stats.rb +7 -7
  250. data/lib/datadog/data_streams.rb +5 -5
  251. data/lib/datadog/di/base.rb +4 -4
  252. data/lib/datadog/di/boot.rb +25 -22
  253. data/lib/datadog/di/capture_expression.rb +21 -0
  254. data/lib/datadog/di/capture_expression_evaluator.rb +71 -0
  255. data/lib/datadog/di/capture_limits.rb +41 -0
  256. data/lib/datadog/di/code_tracker.rb +6 -6
  257. data/lib/datadog/di/component.rb +13 -5
  258. data/lib/datadog/di/configuration.rb +7 -1
  259. data/lib/datadog/di/context.rb +9 -3
  260. data/lib/datadog/di/contrib/railtie.rb +1 -1
  261. data/lib/datadog/di/contrib.rb +5 -5
  262. data/lib/datadog/di/el/compiler.rb +26 -26
  263. data/lib/datadog/di/el.rb +3 -3
  264. data/lib/datadog/di/instrumenter.rb +52 -11
  265. data/lib/datadog/di/logger.rb +1 -1
  266. data/lib/datadog/di/preload.rb +1 -1
  267. data/lib/datadog/di/probe.rb +47 -2
  268. data/lib/datadog/di/probe_builder.rb +94 -12
  269. data/lib/datadog/di/probe_file_loader/railtie.rb +1 -1
  270. data/lib/datadog/di/probe_file_loader.rb +5 -5
  271. data/lib/datadog/di/probe_manager.rb +1 -1
  272. data/lib/datadog/di/probe_notification_builder.rb +63 -22
  273. data/lib/datadog/di/probe_notifier_worker.rb +6 -6
  274. data/lib/datadog/di/probe_repository.rb +1 -1
  275. data/lib/datadog/di/remote.rb +4 -4
  276. data/lib/datadog/di/serializer.rb +35 -23
  277. data/lib/datadog/di/transport/diagnostics.rb +5 -5
  278. data/lib/datadog/di/transport/http/diagnostics.rb +3 -3
  279. data/lib/datadog/di/transport/http/input.rb +2 -2
  280. data/lib/datadog/di/transport/http.rb +10 -10
  281. data/lib/datadog/di/transport/input.rb +9 -9
  282. data/lib/datadog/di/utils.rb +4 -4
  283. data/lib/datadog/di.rb +5 -5
  284. data/lib/datadog/error_tracking/collector.rb +2 -2
  285. data/lib/datadog/error_tracking/component.rb +12 -12
  286. data/lib/datadog/error_tracking/configuration.rb +2 -2
  287. data/lib/datadog/error_tracking/ext.rb +7 -7
  288. data/lib/datadog/error_tracking/extensions.rb +2 -2
  289. data/lib/datadog/error_tracking/filters.rb +4 -4
  290. data/lib/datadog/error_tracking.rb +6 -6
  291. data/lib/datadog/kit/appsec/events/v2.rb +39 -39
  292. data/lib/datadog/kit/appsec/events.rb +25 -25
  293. data/lib/datadog/kit/enable_core_dumps.rb +2 -2
  294. data/lib/datadog/kit/identity.rb +18 -18
  295. data/lib/datadog/kit/tracing/method_tracer.rb +7 -7
  296. data/lib/datadog/kit.rb +1 -1
  297. data/lib/datadog/open_feature/component.rb +31 -22
  298. data/lib/datadog/open_feature/configuration.rb +15 -2
  299. data/lib/datadog/open_feature/evaluation_engine.rb +7 -7
  300. data/lib/datadog/open_feature/exposures/buffer.rb +1 -1
  301. data/lib/datadog/open_feature/exposures/deduplicator.rb +1 -1
  302. data/lib/datadog/open_feature/exposures/event.rb +2 -2
  303. data/lib/datadog/open_feature/exposures/reporter.rb +3 -3
  304. data/lib/datadog/open_feature/exposures/worker.rb +6 -6
  305. data/lib/datadog/open_feature/ext.rb +13 -8
  306. data/lib/datadog/open_feature/flag_evaluation/aggregator.rb +8 -8
  307. data/lib/datadog/open_feature/flag_evaluation/writer.rb +36 -36
  308. data/lib/datadog/open_feature/hooks/flag_eval_evp_hook.rb +5 -4
  309. data/lib/datadog/open_feature/hooks/flag_eval_metrics_hook.rb +3 -1
  310. data/lib/datadog/open_feature/hooks/span_enrichment_hook/codec.rb +58 -0
  311. data/lib/datadog/open_feature/hooks/span_enrichment_hook/span_enrichment_state.rb +96 -0
  312. data/lib/datadog/open_feature/hooks/span_enrichment_hook/span_enrichment_state_store.rb +49 -0
  313. data/lib/datadog/open_feature/hooks/span_enrichment_hook.rb +184 -0
  314. data/lib/datadog/open_feature/metrics/flag_eval_metrics.rb +24 -24
  315. data/lib/datadog/open_feature/native_evaluator.rb +4 -4
  316. data/lib/datadog/open_feature/noop_evaluator.rb +3 -3
  317. data/lib/datadog/open_feature/provider.rb +45 -10
  318. data/lib/datadog/open_feature/remote.rb +2 -2
  319. data/lib/datadog/open_feature/resolution_details.rb +4 -2
  320. data/lib/datadog/open_feature/transport.rb +14 -14
  321. data/lib/datadog/open_feature.rb +2 -2
  322. data/lib/datadog/opentelemetry/api/baggage.rb +3 -3
  323. data/lib/datadog/opentelemetry/api/context.rb +4 -4
  324. data/lib/datadog/opentelemetry/configuration/settings.rb +41 -41
  325. data/lib/datadog/opentelemetry/ext.rb +1 -1
  326. data/lib/datadog/opentelemetry/logs.rb +5 -5
  327. data/lib/datadog/opentelemetry/metrics.rb +7 -7
  328. data/lib/datadog/opentelemetry/sdk/configurator.rb +8 -8
  329. data/lib/datadog/opentelemetry/sdk/id_generator.rb +2 -2
  330. data/lib/datadog/opentelemetry/sdk/logs_exporter.rb +6 -6
  331. data/lib/datadog/opentelemetry/sdk/metrics_exporter.rb +5 -5
  332. data/lib/datadog/opentelemetry/sdk/propagator.rb +7 -7
  333. data/lib/datadog/opentelemetry/sdk/span_processor.rb +15 -15
  334. data/lib/datadog/opentelemetry/sdk/trace/span.rb +32 -32
  335. data/lib/datadog/opentelemetry/sdk.rb +2 -2
  336. data/lib/datadog/opentelemetry/signal_configuration.rb +11 -11
  337. data/lib/datadog/opentelemetry/trace.rb +1 -1
  338. data/lib/datadog/opentelemetry.rb +8 -8
  339. data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +5 -0
  340. data/lib/datadog/profiling/collectors/thread_context.rb +9 -1
  341. data/lib/datadog/profiling/component.rb +17 -0
  342. data/lib/datadog/profiling/exporter.rb +1 -1
  343. data/lib/datadog/profiling/http_transport.rb +1 -1
  344. data/lib/datadog/profiling/sequence_tracker.rb +1 -1
  345. data/lib/datadog/profiling/tag_builder.rb +19 -19
  346. data/lib/datadog/profiling.rb +27 -27
  347. data/lib/datadog/single_step_instrument.rb +1 -1
  348. data/lib/datadog/symbol_database/component.rb +15 -15
  349. data/lib/datadog/symbol_database/configuration.rb +3 -3
  350. data/lib/datadog/symbol_database/extensions.rb +2 -2
  351. data/lib/datadog/symbol_database/extractor.rb +53 -53
  352. data/lib/datadog/symbol_database/file_hash.rb +3 -3
  353. data/lib/datadog/symbol_database/logger.rb +1 -1
  354. data/lib/datadog/symbol_database/remote.rb +21 -6
  355. data/lib/datadog/symbol_database/scope.rb +2 -2
  356. data/lib/datadog/symbol_database/scope_batcher.rb +2 -2
  357. data/lib/datadog/symbol_database/service_version.rb +4 -4
  358. data/lib/datadog/symbol_database/symbol.rb +1 -1
  359. data/lib/datadog/symbol_database/transport/http/endpoint.rb +1 -1
  360. data/lib/datadog/symbol_database/transport/http.rb +6 -6
  361. data/lib/datadog/symbol_database/transport.rb +4 -4
  362. data/lib/datadog/symbol_database/uploader.rb +22 -22
  363. data/lib/datadog/symbol_database.rb +2 -2
  364. data/lib/datadog/tracing/analytics.rb +1 -1
  365. data/lib/datadog/tracing/buffer.rb +5 -5
  366. data/lib/datadog/tracing/client_ip.rb +4 -4
  367. data/lib/datadog/tracing/component.rb +7 -7
  368. data/lib/datadog/tracing/configuration/dynamic.rb +8 -8
  369. data/lib/datadog/tracing/configuration/ext.rb +42 -42
  370. data/lib/datadog/tracing/configuration/http.rb +2 -2
  371. data/lib/datadog/tracing/configuration/settings.rb +16 -16
  372. data/lib/datadog/tracing/context.rb +1 -1
  373. data/lib/datadog/tracing/context_provider.rb +2 -2
  374. data/lib/datadog/tracing/contrib/action_cable/configuration/settings.rb +2 -2
  375. data/lib/datadog/tracing/contrib/action_cable/event.rb +4 -4
  376. data/lib/datadog/tracing/contrib/action_cable/events/broadcast.rb +5 -5
  377. data/lib/datadog/tracing/contrib/action_cable/events/perform_action.rb +4 -4
  378. data/lib/datadog/tracing/contrib/action_cable/events/transmit.rb +5 -5
  379. data/lib/datadog/tracing/contrib/action_cable/events.rb +4 -4
  380. data/lib/datadog/tracing/contrib/action_cable/ext.rb +18 -18
  381. data/lib/datadog/tracing/contrib/action_cable/instrumentation.rb +4 -4
  382. data/lib/datadog/tracing/contrib/action_cable/integration.rb +7 -7
  383. data/lib/datadog/tracing/contrib/action_cable/patcher.rb +4 -4
  384. data/lib/datadog/tracing/contrib/action_mailer/configuration/settings.rb +2 -2
  385. data/lib/datadog/tracing/contrib/action_mailer/event.rb +3 -3
  386. data/lib/datadog/tracing/contrib/action_mailer/events/deliver.rb +8 -8
  387. data/lib/datadog/tracing/contrib/action_mailer/events/process.rb +4 -4
  388. data/lib/datadog/tracing/contrib/action_mailer/events.rb +2 -2
  389. data/lib/datadog/tracing/contrib/action_mailer/ext.rb +18 -18
  390. data/lib/datadog/tracing/contrib/action_mailer/integration.rb +7 -7
  391. data/lib/datadog/tracing/contrib/action_mailer/patcher.rb +3 -3
  392. data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +8 -8
  393. data/lib/datadog/tracing/contrib/action_pack/action_controller/patcher.rb +2 -2
  394. data/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb +4 -4
  395. data/lib/datadog/tracing/contrib/action_pack/action_dispatch/patcher.rb +4 -4
  396. data/lib/datadog/tracing/contrib/action_pack/configuration/settings.rb +3 -3
  397. data/lib/datadog/tracing/contrib/action_pack/ext.rb +10 -10
  398. data/lib/datadog/tracing/contrib/action_pack/integration.rb +7 -7
  399. data/lib/datadog/tracing/contrib/action_pack/patcher.rb +3 -3
  400. data/lib/datadog/tracing/contrib/action_pack/utils.rb +1 -1
  401. data/lib/datadog/tracing/contrib/action_view/configuration/settings.rb +3 -3
  402. data/lib/datadog/tracing/contrib/action_view/event.rb +1 -1
  403. data/lib/datadog/tracing/contrib/action_view/events/render_partial.rb +6 -6
  404. data/lib/datadog/tracing/contrib/action_view/events/render_template.rb +6 -6
  405. data/lib/datadog/tracing/contrib/action_view/events.rb +2 -2
  406. data/lib/datadog/tracing/contrib/action_view/ext.rb +10 -10
  407. data/lib/datadog/tracing/contrib/action_view/integration.rb +11 -11
  408. data/lib/datadog/tracing/contrib/action_view/patcher.rb +5 -5
  409. data/lib/datadog/tracing/contrib/action_view/utils.rb +2 -2
  410. data/lib/datadog/tracing/contrib/active_job/configuration/settings.rb +2 -2
  411. data/lib/datadog/tracing/contrib/active_job/data_streams.rb +62 -0
  412. data/lib/datadog/tracing/contrib/active_job/event.rb +3 -3
  413. data/lib/datadog/tracing/contrib/active_job/events/discard.rb +5 -5
  414. data/lib/datadog/tracing/contrib/active_job/events/enqueue.rb +5 -5
  415. data/lib/datadog/tracing/contrib/active_job/events/enqueue_at.rb +5 -5
  416. data/lib/datadog/tracing/contrib/active_job/events/enqueue_retry.rb +5 -5
  417. data/lib/datadog/tracing/contrib/active_job/events/perform.rb +5 -5
  418. data/lib/datadog/tracing/contrib/active_job/events/retry_stopped.rb +5 -5
  419. data/lib/datadog/tracing/contrib/active_job/events.rb +6 -6
  420. data/lib/datadog/tracing/contrib/active_job/ext.rb +23 -23
  421. data/lib/datadog/tracing/contrib/active_job/integration.rb +7 -7
  422. data/lib/datadog/tracing/contrib/active_job/patcher.rb +17 -5
  423. data/lib/datadog/tracing/contrib/active_model_serializers/configuration/settings.rb +2 -2
  424. data/lib/datadog/tracing/contrib/active_model_serializers/event.rb +4 -4
  425. data/lib/datadog/tracing/contrib/active_model_serializers/events/render.rb +6 -6
  426. data/lib/datadog/tracing/contrib/active_model_serializers/events/serialize.rb +7 -8
  427. data/lib/datadog/tracing/contrib/active_model_serializers/events.rb +2 -2
  428. data/lib/datadog/tracing/contrib/active_model_serializers/ext.rb +10 -10
  429. data/lib/datadog/tracing/contrib/active_model_serializers/integration.rb +5 -5
  430. data/lib/datadog/tracing/contrib/active_model_serializers/patcher.rb +3 -3
  431. data/lib/datadog/tracing/contrib/active_record/configuration/makara_resolver.rb +1 -1
  432. data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +6 -6
  433. data/lib/datadog/tracing/contrib/active_record/configuration/settings.rb +4 -4
  434. data/lib/datadog/tracing/contrib/active_record/event.rb +1 -1
  435. data/lib/datadog/tracing/contrib/active_record/events/instantiation.rb +8 -8
  436. data/lib/datadog/tracing/contrib/active_record/events/sql.rb +9 -9
  437. data/lib/datadog/tracing/contrib/active_record/events.rb +2 -2
  438. data/lib/datadog/tracing/contrib/active_record/ext.rb +15 -15
  439. data/lib/datadog/tracing/contrib/active_record/integration.rb +11 -11
  440. data/lib/datadog/tracing/contrib/active_record/patcher.rb +2 -2
  441. data/lib/datadog/tracing/contrib/active_record/utils.rb +3 -3
  442. data/lib/datadog/tracing/contrib/active_support/cache/event.rb +1 -1
  443. data/lib/datadog/tracing/contrib/active_support/cache/events/cache.rb +11 -11
  444. data/lib/datadog/tracing/contrib/active_support/cache/events.rb +1 -1
  445. data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +4 -4
  446. data/lib/datadog/tracing/contrib/active_support/cache/patcher.rb +5 -5
  447. data/lib/datadog/tracing/contrib/active_support/cache/redis.rb +4 -4
  448. data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +3 -3
  449. data/lib/datadog/tracing/contrib/active_support/ext.rb +16 -16
  450. data/lib/datadog/tracing/contrib/active_support/integration.rb +8 -8
  451. data/lib/datadog/tracing/contrib/active_support/notifications/event.rb +1 -1
  452. data/lib/datadog/tracing/contrib/active_support/notifications/subscriber.rb +2 -2
  453. data/lib/datadog/tracing/contrib/active_support/notifications/subscription.rb +1 -1
  454. data/lib/datadog/tracing/contrib/active_support/patcher.rb +2 -2
  455. data/lib/datadog/tracing/contrib/analytics.rb +1 -1
  456. data/lib/datadog/tracing/contrib/auto_instrument.rb +4 -4
  457. data/lib/datadog/tracing/contrib/aws/configuration/settings.rb +3 -3
  458. data/lib/datadog/tracing/contrib/aws/ext.rb +25 -25
  459. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +5 -5
  460. data/lib/datadog/tracing/contrib/aws/integration.rb +9 -9
  461. data/lib/datadog/tracing/contrib/aws/parsed_context.rb +1 -1
  462. data/lib/datadog/tracing/contrib/aws/patcher.rb +5 -5
  463. data/lib/datadog/tracing/contrib/aws/service/dynamodb.rb +2 -2
  464. data/lib/datadog/tracing/contrib/aws/service/eventbridge.rb +2 -2
  465. data/lib/datadog/tracing/contrib/aws/service/kinesis.rb +4 -4
  466. data/lib/datadog/tracing/contrib/aws/service/s3.rb +2 -2
  467. data/lib/datadog/tracing/contrib/aws/service/sns.rb +3 -3
  468. data/lib/datadog/tracing/contrib/aws/service/sqs.rb +3 -3
  469. data/lib/datadog/tracing/contrib/aws/service/states.rb +5 -5
  470. data/lib/datadog/tracing/contrib/aws/services.rb +14 -14
  471. data/lib/datadog/tracing/contrib/concurrent_ruby/async_patch.rb +1 -1
  472. data/lib/datadog/tracing/contrib/concurrent_ruby/configuration/settings.rb +2 -2
  473. data/lib/datadog/tracing/contrib/concurrent_ruby/context_composite_executor_service.rb +1 -1
  474. data/lib/datadog/tracing/contrib/concurrent_ruby/ext.rb +2 -2
  475. data/lib/datadog/tracing/contrib/concurrent_ruby/future_patch.rb +1 -1
  476. data/lib/datadog/tracing/contrib/concurrent_ruby/integration.rb +6 -6
  477. data/lib/datadog/tracing/contrib/concurrent_ruby/patcher.rb +4 -4
  478. data/lib/datadog/tracing/contrib/concurrent_ruby/promises_future_patch.rb +1 -1
  479. data/lib/datadog/tracing/contrib/configurable.rb +2 -2
  480. data/lib/datadog/tracing/contrib/configuration/resolvers/pattern_resolver.rb +1 -1
  481. data/lib/datadog/tracing/contrib/configuration/settings.rb +2 -2
  482. data/lib/datadog/tracing/contrib/dalli/configuration/settings.rb +2 -2
  483. data/lib/datadog/tracing/contrib/dalli/ext.rb +13 -13
  484. data/lib/datadog/tracing/contrib/dalli/instrumentation.rb +5 -5
  485. data/lib/datadog/tracing/contrib/dalli/integration.rb +7 -7
  486. data/lib/datadog/tracing/contrib/dalli/patcher.rb +3 -3
  487. data/lib/datadog/tracing/contrib/dalli/quantize.rb +2 -2
  488. data/lib/datadog/tracing/contrib/delayed_job/configuration/settings.rb +2 -2
  489. data/lib/datadog/tracing/contrib/delayed_job/ext.rb +14 -14
  490. data/lib/datadog/tracing/contrib/delayed_job/integration.rb +5 -5
  491. data/lib/datadog/tracing/contrib/delayed_job/patcher.rb +3 -3
  492. data/lib/datadog/tracing/contrib/delayed_job/plugin.rb +5 -5
  493. data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +2 -2
  494. data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +15 -15
  495. data/lib/datadog/tracing/contrib/elasticsearch/integration.rb +6 -6
  496. data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +10 -10
  497. data/lib/datadog/tracing/contrib/elasticsearch/quantize.rb +2 -2
  498. data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +2 -2
  499. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +8 -8
  500. data/lib/datadog/tracing/contrib/ethon/ext.rb +13 -13
  501. data/lib/datadog/tracing/contrib/ethon/integration.rb +6 -6
  502. data/lib/datadog/tracing/contrib/ethon/multi_patch.rb +3 -3
  503. data/lib/datadog/tracing/contrib/ethon/patcher.rb +3 -3
  504. data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +5 -5
  505. data/lib/datadog/tracing/contrib/excon/ext.rb +11 -11
  506. data/lib/datadog/tracing/contrib/excon/integration.rb +6 -6
  507. data/lib/datadog/tracing/contrib/excon/middleware.rb +8 -8
  508. data/lib/datadog/tracing/contrib/excon/patcher.rb +2 -2
  509. data/lib/datadog/tracing/contrib/ext.rb +15 -15
  510. data/lib/datadog/tracing/contrib/extensions.rb +2 -2
  511. data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +4 -4
  512. data/lib/datadog/tracing/contrib/faraday/ext.rb +11 -11
  513. data/lib/datadog/tracing/contrib/faraday/integration.rb +6 -6
  514. data/lib/datadog/tracing/contrib/faraday/middleware.rb +8 -8
  515. data/lib/datadog/tracing/contrib/faraday/patcher.rb +6 -6
  516. data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +4 -4
  517. data/lib/datadog/tracing/contrib/grape/endpoint.rb +20 -20
  518. data/lib/datadog/tracing/contrib/grape/ext.rb +15 -15
  519. data/lib/datadog/tracing/contrib/grape/instrumentation.rb +3 -3
  520. data/lib/datadog/tracing/contrib/grape/integration.rb +5 -5
  521. data/lib/datadog/tracing/contrib/grape/patcher.rb +5 -5
  522. data/lib/datadog/tracing/contrib/graphql/configuration/error_extension_env_parser.rb +1 -1
  523. data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +3 -3
  524. data/lib/datadog/tracing/contrib/graphql/ext.rb +9 -9
  525. data/lib/datadog/tracing/contrib/graphql/integration.rb +9 -9
  526. data/lib/datadog/tracing/contrib/graphql/patcher.rb +7 -7
  527. data/lib/datadog/tracing/contrib/graphql/unified_trace.rb +37 -37
  528. data/lib/datadog/tracing/contrib/graphql/unified_trace_patcher.rb +2 -2
  529. data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +2 -2
  530. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +7 -7
  531. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +7 -7
  532. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor.rb +6 -6
  533. data/lib/datadog/tracing/contrib/grpc/distributed/fetcher.rb +1 -1
  534. data/lib/datadog/tracing/contrib/grpc/distributed/propagation.rb +8 -8
  535. data/lib/datadog/tracing/contrib/grpc/ext.rb +14 -14
  536. data/lib/datadog/tracing/contrib/grpc/formatting.rb +7 -7
  537. data/lib/datadog/tracing/contrib/grpc/integration.rb +5 -5
  538. data/lib/datadog/tracing/contrib/grpc/intercept_with_datadog.rb +1 -1
  539. data/lib/datadog/tracing/contrib/grpc/patcher.rb +3 -3
  540. data/lib/datadog/tracing/contrib/grpc.rb +6 -6
  541. data/lib/datadog/tracing/contrib/hanami/action_tracer.rb +3 -3
  542. data/lib/datadog/tracing/contrib/hanami/configuration/settings.rb +2 -2
  543. data/lib/datadog/tracing/contrib/hanami/ext.rb +8 -8
  544. data/lib/datadog/tracing/contrib/hanami/integration.rb +6 -6
  545. data/lib/datadog/tracing/contrib/hanami/patcher.rb +5 -5
  546. data/lib/datadog/tracing/contrib/hanami/renderer_policy_tracing.rb +3 -3
  547. data/lib/datadog/tracing/contrib/hanami/router_tracing.rb +3 -3
  548. data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +1 -1
  549. data/lib/datadog/tracing/contrib/http/configuration/settings.rb +4 -4
  550. data/lib/datadog/tracing/contrib/http/distributed/fetcher.rb +3 -3
  551. data/lib/datadog/tracing/contrib/http/distributed/propagation.rb +8 -8
  552. data/lib/datadog/tracing/contrib/http/ext.rb +11 -11
  553. data/lib/datadog/tracing/contrib/http/instrumentation.rb +6 -6
  554. data/lib/datadog/tracing/contrib/http/integration.rb +7 -7
  555. data/lib/datadog/tracing/contrib/http/patcher.rb +3 -3
  556. data/lib/datadog/tracing/contrib/http.rb +6 -6
  557. data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +4 -4
  558. data/lib/datadog/tracing/contrib/httpclient/ext.rb +11 -11
  559. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +5 -5
  560. data/lib/datadog/tracing/contrib/httpclient/integration.rb +6 -6
  561. data/lib/datadog/tracing/contrib/httpclient/patcher.rb +3 -3
  562. data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +4 -4
  563. data/lib/datadog/tracing/contrib/httprb/ext.rb +11 -11
  564. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +6 -6
  565. data/lib/datadog/tracing/contrib/httprb/integration.rb +7 -7
  566. data/lib/datadog/tracing/contrib/httprb/patcher.rb +3 -3
  567. data/lib/datadog/tracing/contrib/integration.rb +3 -3
  568. data/lib/datadog/tracing/contrib/kafka/configuration/settings.rb +2 -2
  569. data/lib/datadog/tracing/contrib/kafka/event.rb +3 -3
  570. data/lib/datadog/tracing/contrib/kafka/events/connection/request.rb +3 -3
  571. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_batch.rb +4 -4
  572. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_message.rb +4 -4
  573. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/heartbeat.rb +5 -5
  574. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/join_group.rb +5 -5
  575. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/leave_group.rb +5 -5
  576. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/sync_group.rb +5 -5
  577. data/lib/datadog/tracing/contrib/kafka/events/produce_operation/send_messages.rb +3 -3
  578. data/lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb +3 -3
  579. data/lib/datadog/tracing/contrib/kafka/events.rb +9 -9
  580. data/lib/datadog/tracing/contrib/kafka/ext.rb +40 -40
  581. data/lib/datadog/tracing/contrib/kafka/instrumentation/consumer.rb +2 -2
  582. data/lib/datadog/tracing/contrib/kafka/instrumentation/producer.rb +4 -4
  583. data/lib/datadog/tracing/contrib/kafka/integration.rb +6 -6
  584. data/lib/datadog/tracing/contrib/kafka/patcher.rb +5 -5
  585. data/lib/datadog/tracing/contrib/karafka/configuration/settings.rb +2 -2
  586. data/lib/datadog/tracing/contrib/karafka/distributed/propagation.rb +8 -8
  587. data/lib/datadog/tracing/contrib/karafka/ext.rb +13 -13
  588. data/lib/datadog/tracing/contrib/karafka/integration.rb +5 -5
  589. data/lib/datadog/tracing/contrib/karafka/monitor.rb +14 -14
  590. data/lib/datadog/tracing/contrib/karafka/patcher.rb +8 -8
  591. data/lib/datadog/tracing/contrib/karafka.rb +6 -6
  592. data/lib/datadog/tracing/contrib/lograge/configuration/settings.rb +2 -2
  593. data/lib/datadog/tracing/contrib/lograge/ext.rb +1 -1
  594. data/lib/datadog/tracing/contrib/lograge/integration.rb +5 -5
  595. data/lib/datadog/tracing/contrib/lograge/patcher.rb +9 -9
  596. data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +2 -2
  597. data/lib/datadog/tracing/contrib/mongodb/ext.rb +18 -18
  598. data/lib/datadog/tracing/contrib/mongodb/instrumentation.rb +3 -3
  599. data/lib/datadog/tracing/contrib/mongodb/integration.rb +7 -7
  600. data/lib/datadog/tracing/contrib/mongodb/parsers.rb +5 -5
  601. data/lib/datadog/tracing/contrib/mongodb/patcher.rb +3 -3
  602. data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +13 -13
  603. data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +3 -3
  604. data/lib/datadog/tracing/contrib/mysql2/ext.rb +11 -11
  605. data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +6 -6
  606. data/lib/datadog/tracing/contrib/mysql2/integration.rb +5 -5
  607. data/lib/datadog/tracing/contrib/mysql2/patcher.rb +2 -2
  608. data/lib/datadog/tracing/contrib/opensearch/configuration/settings.rb +2 -2
  609. data/lib/datadog/tracing/contrib/opensearch/ext.rb +22 -22
  610. data/lib/datadog/tracing/contrib/opensearch/integration.rb +6 -6
  611. data/lib/datadog/tracing/contrib/opensearch/patcher.rb +13 -13
  612. data/lib/datadog/tracing/contrib/opensearch/quantize.rb +3 -3
  613. data/lib/datadog/tracing/contrib/patcher.rb +2 -2
  614. data/lib/datadog/tracing/contrib/pg/configuration/settings.rb +3 -3
  615. data/lib/datadog/tracing/contrib/pg/ext.rb +19 -19
  616. data/lib/datadog/tracing/contrib/pg/instrumentation.rb +18 -18
  617. data/lib/datadog/tracing/contrib/pg/integration.rb +5 -5
  618. data/lib/datadog/tracing/contrib/pg/patcher.rb +2 -2
  619. data/lib/datadog/tracing/contrib/presto/configuration/settings.rb +2 -2
  620. data/lib/datadog/tracing/contrib/presto/ext.rb +21 -21
  621. data/lib/datadog/tracing/contrib/presto/instrumentation.rb +2 -2
  622. data/lib/datadog/tracing/contrib/presto/integration.rb +6 -6
  623. data/lib/datadog/tracing/contrib/presto/patcher.rb +4 -4
  624. data/lib/datadog/tracing/contrib/propagation/sql_comment/comment.rb +2 -2
  625. data/lib/datadog/tracing/contrib/propagation/sql_comment/ext.rb +17 -17
  626. data/lib/datadog/tracing/contrib/propagation/sql_comment/mode.rb +1 -1
  627. data/lib/datadog/tracing/contrib/propagation/sql_comment.rb +5 -5
  628. data/lib/datadog/tracing/contrib/que/configuration/settings.rb +2 -2
  629. data/lib/datadog/tracing/contrib/que/ext.rb +19 -19
  630. data/lib/datadog/tracing/contrib/que/integration.rb +6 -6
  631. data/lib/datadog/tracing/contrib/que/patcher.rb +1 -1
  632. data/lib/datadog/tracing/contrib/que/tracer.rb +1 -1
  633. data/lib/datadog/tracing/contrib/racecar/configuration/settings.rb +3 -3
  634. data/lib/datadog/tracing/contrib/racecar/event.rb +4 -4
  635. data/lib/datadog/tracing/contrib/racecar/events/batch.rb +3 -3
  636. data/lib/datadog/tracing/contrib/racecar/events/consume.rb +3 -3
  637. data/lib/datadog/tracing/contrib/racecar/events/message.rb +3 -3
  638. data/lib/datadog/tracing/contrib/racecar/events.rb +3 -3
  639. data/lib/datadog/tracing/contrib/racecar/ext.rb +18 -18
  640. data/lib/datadog/tracing/contrib/racecar/integration.rb +5 -5
  641. data/lib/datadog/tracing/contrib/racecar/patcher.rb +3 -3
  642. data/lib/datadog/tracing/contrib/rack/configuration/settings.rb +2 -2
  643. data/lib/datadog/tracing/contrib/rack/ext.rb +33 -33
  644. data/lib/datadog/tracing/contrib/rack/header_collection.rb +3 -3
  645. data/lib/datadog/tracing/contrib/rack/header_tagging.rb +4 -4
  646. data/lib/datadog/tracing/contrib/rack/integration.rb +6 -6
  647. data/lib/datadog/tracing/contrib/rack/middlewares.rb +24 -24
  648. data/lib/datadog/tracing/contrib/rack/patcher.rb +3 -3
  649. data/lib/datadog/tracing/contrib/rack/request_queue.rb +3 -3
  650. data/lib/datadog/tracing/contrib/rack/route_inference.rb +11 -11
  651. data/lib/datadog/tracing/contrib/rack/trace_proxy_middleware.rb +15 -15
  652. data/lib/datadog/tracing/contrib/rails/auto_instrument_railtie.rb +1 -1
  653. data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +3 -3
  654. data/lib/datadog/tracing/contrib/rails/ext.rb +15 -15
  655. data/lib/datadog/tracing/contrib/rails/framework.rb +11 -11
  656. data/lib/datadog/tracing/contrib/rails/integration.rb +5 -5
  657. data/lib/datadog/tracing/contrib/rails/middlewares.rb +1 -1
  658. data/lib/datadog/tracing/contrib/rails/patcher.rb +8 -8
  659. data/lib/datadog/tracing/contrib/rails/railtie.rb +4 -4
  660. data/lib/datadog/tracing/contrib/rails/runner.rb +1 -1
  661. data/lib/datadog/tracing/contrib/rake/configuration/settings.rb +3 -3
  662. data/lib/datadog/tracing/contrib/rake/ext.rb +12 -12
  663. data/lib/datadog/tracing/contrib/rake/instrumentation.rb +4 -4
  664. data/lib/datadog/tracing/contrib/rake/integration.rb +5 -5
  665. data/lib/datadog/tracing/contrib/rake/patcher.rb +3 -3
  666. data/lib/datadog/tracing/contrib/redis/configuration/resolver.rb +2 -2
  667. data/lib/datadog/tracing/contrib/redis/configuration/settings.rb +2 -2
  668. data/lib/datadog/tracing/contrib/redis/ext.rb +16 -16
  669. data/lib/datadog/tracing/contrib/redis/instrumentation.rb +6 -6
  670. data/lib/datadog/tracing/contrib/redis/integration.rb +7 -7
  671. data/lib/datadog/tracing/contrib/redis/patcher.rb +10 -10
  672. data/lib/datadog/tracing/contrib/redis/quantize.rb +4 -4
  673. data/lib/datadog/tracing/contrib/redis/tags.rb +5 -5
  674. data/lib/datadog/tracing/contrib/redis/trace_middleware.rb +5 -5
  675. data/lib/datadog/tracing/contrib/resque/configuration/settings.rb +2 -2
  676. data/lib/datadog/tracing/contrib/resque/ext.rb +7 -7
  677. data/lib/datadog/tracing/contrib/resque/integration.rb +5 -5
  678. data/lib/datadog/tracing/contrib/resque/patcher.rb +3 -3
  679. data/lib/datadog/tracing/contrib/resque/resque_job.rb +5 -5
  680. data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +2 -2
  681. data/lib/datadog/tracing/contrib/rest_client/ext.rb +10 -10
  682. data/lib/datadog/tracing/contrib/rest_client/integration.rb +6 -6
  683. data/lib/datadog/tracing/contrib/rest_client/patcher.rb +2 -2
  684. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +5 -5
  685. data/lib/datadog/tracing/contrib/roda/configuration/settings.rb +2 -2
  686. data/lib/datadog/tracing/contrib/roda/ext.rb +6 -6
  687. data/lib/datadog/tracing/contrib/roda/instrumentation.rb +4 -4
  688. data/lib/datadog/tracing/contrib/roda/integration.rb +6 -6
  689. data/lib/datadog/tracing/contrib/roda/patcher.rb +3 -3
  690. data/lib/datadog/tracing/contrib/semantic_logger/configuration/settings.rb +2 -2
  691. data/lib/datadog/tracing/contrib/semantic_logger/ext.rb +1 -1
  692. data/lib/datadog/tracing/contrib/semantic_logger/integration.rb +5 -5
  693. data/lib/datadog/tracing/contrib/semantic_logger/patcher.rb +2 -2
  694. data/lib/datadog/tracing/contrib/sequel/configuration/settings.rb +2 -2
  695. data/lib/datadog/tracing/contrib/sequel/database.rb +6 -6
  696. data/lib/datadog/tracing/contrib/sequel/dataset.rb +5 -5
  697. data/lib/datadog/tracing/contrib/sequel/ext.rb +12 -8
  698. data/lib/datadog/tracing/contrib/sequel/integration.rb +5 -5
  699. data/lib/datadog/tracing/contrib/sequel/patcher.rb +3 -3
  700. data/lib/datadog/tracing/contrib/sequel/utils.rb +115 -10
  701. data/lib/datadog/tracing/contrib/shoryuken/configuration/settings.rb +2 -2
  702. data/lib/datadog/tracing/contrib/shoryuken/ext.rb +12 -12
  703. data/lib/datadog/tracing/contrib/shoryuken/integration.rb +6 -6
  704. data/lib/datadog/tracing/contrib/shoryuken/patcher.rb +1 -1
  705. data/lib/datadog/tracing/contrib/shoryuken/tracer.rb +2 -2
  706. data/lib/datadog/tracing/contrib/sidekiq/client_tracer.rb +8 -8
  707. data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +2 -2
  708. data/lib/datadog/tracing/contrib/sidekiq/distributed/propagation.rb +9 -9
  709. data/lib/datadog/tracing/contrib/sidekiq/ext.rb +30 -30
  710. data/lib/datadog/tracing/contrib/sidekiq/integration.rb +7 -7
  711. data/lib/datadog/tracing/contrib/sidekiq/patcher.rb +8 -8
  712. data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +14 -14
  713. data/lib/datadog/tracing/contrib/sidekiq/utils.rb +9 -9
  714. data/lib/datadog/tracing/contrib/sidekiq.rb +6 -6
  715. data/lib/datadog/tracing/contrib/sinatra/configuration/settings.rb +2 -2
  716. data/lib/datadog/tracing/contrib/sinatra/env.rb +6 -6
  717. data/lib/datadog/tracing/contrib/sinatra/ext.rb +17 -17
  718. data/lib/datadog/tracing/contrib/sinatra/framework.rb +2 -2
  719. data/lib/datadog/tracing/contrib/sinatra/integration.rb +5 -5
  720. data/lib/datadog/tracing/contrib/sinatra/patcher.rb +5 -5
  721. data/lib/datadog/tracing/contrib/sinatra/tracer.rb +10 -10
  722. data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +8 -8
  723. data/lib/datadog/tracing/contrib/sneakers/configuration/settings.rb +1 -1
  724. data/lib/datadog/tracing/contrib/sneakers/ext.rb +12 -12
  725. data/lib/datadog/tracing/contrib/sneakers/integration.rb +7 -7
  726. data/lib/datadog/tracing/contrib/sneakers/patcher.rb +2 -2
  727. data/lib/datadog/tracing/contrib/sneakers/tracer.rb +3 -3
  728. data/lib/datadog/tracing/contrib/span_attribute_schema.rb +2 -2
  729. data/lib/datadog/tracing/contrib/status_range_env_parser.rb +2 -2
  730. data/lib/datadog/tracing/contrib/status_range_matcher.rb +1 -1
  731. data/lib/datadog/tracing/contrib/stripe/configuration/settings.rb +2 -2
  732. data/lib/datadog/tracing/contrib/stripe/ext.rb +12 -12
  733. data/lib/datadog/tracing/contrib/stripe/integration.rb +5 -5
  734. data/lib/datadog/tracing/contrib/stripe/patcher.rb +2 -2
  735. data/lib/datadog/tracing/contrib/stripe/request.rb +3 -3
  736. data/lib/datadog/tracing/contrib/sucker_punch/configuration/settings.rb +2 -2
  737. data/lib/datadog/tracing/contrib/sucker_punch/exception_handler.rb +1 -1
  738. data/lib/datadog/tracing/contrib/sucker_punch/ext.rb +13 -13
  739. data/lib/datadog/tracing/contrib/sucker_punch/instrumentation.rb +4 -4
  740. data/lib/datadog/tracing/contrib/sucker_punch/integration.rb +5 -5
  741. data/lib/datadog/tracing/contrib/sucker_punch/patcher.rb +4 -4
  742. data/lib/datadog/tracing/contrib/trilogy/configuration/settings.rb +3 -3
  743. data/lib/datadog/tracing/contrib/trilogy/ext.rb +11 -11
  744. data/lib/datadog/tracing/contrib/trilogy/instrumentation.rb +6 -6
  745. data/lib/datadog/tracing/contrib/trilogy/integration.rb +5 -5
  746. data/lib/datadog/tracing/contrib/trilogy/patcher.rb +2 -2
  747. data/lib/datadog/tracing/contrib/utils/database.rb +5 -5
  748. data/lib/datadog/tracing/contrib/utils/quantization/hash_formatter.rb +1 -1
  749. data/lib/datadog/tracing/contrib/utils/quantization/http.rb +10 -10
  750. data/lib/datadog/tracing/contrib/waterdrop/configuration/settings.rb +2 -2
  751. data/lib/datadog/tracing/contrib/waterdrop/distributed/propagation.rb +8 -8
  752. data/lib/datadog/tracing/contrib/waterdrop/ext.rb +4 -4
  753. data/lib/datadog/tracing/contrib/waterdrop/integration.rb +5 -5
  754. data/lib/datadog/tracing/contrib/waterdrop/middleware.rb +2 -2
  755. data/lib/datadog/tracing/contrib/waterdrop/patcher.rb +7 -7
  756. data/lib/datadog/tracing/contrib/waterdrop/producer.rb +3 -3
  757. data/lib/datadog/tracing/contrib/waterdrop.rb +6 -6
  758. data/lib/datadog/tracing/contrib.rb +54 -54
  759. data/lib/datadog/tracing/correlation.rb +10 -10
  760. data/lib/datadog/tracing/diagnostics/environment_logger.rb +9 -9
  761. data/lib/datadog/tracing/diagnostics/ext.rb +19 -19
  762. data/lib/datadog/tracing/diagnostics/health.rb +1 -1
  763. data/lib/datadog/tracing/distributed/b3_multi.rb +8 -8
  764. data/lib/datadog/tracing/distributed/b3_single.rb +4 -4
  765. data/lib/datadog/tracing/distributed/baggage.rb +27 -27
  766. data/lib/datadog/tracing/distributed/datadog.rb +21 -21
  767. data/lib/datadog/tracing/distributed/datadog_tags_codec.rb +3 -3
  768. data/lib/datadog/tracing/distributed/fetcher.rb +1 -1
  769. data/lib/datadog/tracing/distributed/helpers.rb +3 -3
  770. data/lib/datadog/tracing/distributed/propagation.rb +12 -12
  771. data/lib/datadog/tracing/distributed/trace_context.rb +33 -33
  772. data/lib/datadog/tracing/event.rb +1 -1
  773. data/lib/datadog/tracing/ext.rb +1 -1
  774. data/lib/datadog/tracing/metadata/analytics.rb +2 -2
  775. data/lib/datadog/tracing/metadata/errors.rb +4 -4
  776. data/lib/datadog/tracing/metadata/ext.rb +69 -69
  777. data/lib/datadog/tracing/metadata/metastruct.rb +1 -1
  778. data/lib/datadog/tracing/metadata/metastruct_tagging.rb +1 -1
  779. data/lib/datadog/tracing/metadata/tagging.rb +2 -2
  780. data/lib/datadog/tracing/metadata.rb +4 -4
  781. data/lib/datadog/tracing/pipeline/span_filter.rb +2 -2
  782. data/lib/datadog/tracing/pipeline.rb +2 -2
  783. data/lib/datadog/tracing/remote.rb +23 -16
  784. data/lib/datadog/tracing/sampling/all_sampler.rb +1 -1
  785. data/lib/datadog/tracing/sampling/ext.rb +8 -8
  786. data/lib/datadog/tracing/sampling/matcher.rb +4 -4
  787. data/lib/datadog/tracing/sampling/priority_sampler.rb +4 -4
  788. data/lib/datadog/tracing/sampling/rate_by_key_sampler.rb +3 -3
  789. data/lib/datadog/tracing/sampling/rate_by_service_sampler.rb +2 -2
  790. data/lib/datadog/tracing/sampling/rate_sampler.rb +2 -2
  791. data/lib/datadog/tracing/sampling/rule.rb +4 -4
  792. data/lib/datadog/tracing/sampling/rule_sampler.rb +12 -12
  793. data/lib/datadog/tracing/sampling/sampler.rb +2 -2
  794. data/lib/datadog/tracing/sampling/span/ext.rb +3 -3
  795. data/lib/datadog/tracing/sampling/span/matcher.rb +2 -2
  796. data/lib/datadog/tracing/sampling/span/rule.rb +1 -1
  797. data/lib/datadog/tracing/sampling/span/rule_parser.rb +8 -8
  798. data/lib/datadog/tracing/span.rb +8 -8
  799. data/lib/datadog/tracing/span_event.rb +5 -5
  800. data/lib/datadog/tracing/span_operation.rb +21 -21
  801. data/lib/datadog/tracing/sync_writer.rb +4 -4
  802. data/lib/datadog/tracing/trace_operation.rb +11 -11
  803. data/lib/datadog/tracing/trace_segment.rb +10 -10
  804. data/lib/datadog/tracing/tracer.rb +15 -15
  805. data/lib/datadog/tracing/transport/http/client.rb +4 -4
  806. data/lib/datadog/tracing/transport/http/statistics.rb +2 -2
  807. data/lib/datadog/tracing/transport/http/traces.rb +8 -8
  808. data/lib/datadog/tracing/transport/http.rb +10 -10
  809. data/lib/datadog/tracing/transport/io/client.rb +2 -2
  810. data/lib/datadog/tracing/transport/io/response.rb +1 -1
  811. data/lib/datadog/tracing/transport/io/traces.rb +4 -4
  812. data/lib/datadog/tracing/transport/io.rb +3 -3
  813. data/lib/datadog/tracing/transport/serializable_trace.rb +19 -19
  814. data/lib/datadog/tracing/transport/statistics.rb +2 -2
  815. data/lib/datadog/tracing/transport/trace_formatter.rb +9 -9
  816. data/lib/datadog/tracing/transport/traces.rb +8 -8
  817. data/lib/datadog/tracing/utils.rb +2 -2
  818. data/lib/datadog/tracing/workers.rb +2 -2
  819. data/lib/datadog/tracing/writer.rb +5 -5
  820. data/lib/datadog/tracing.rb +3 -3
  821. data/lib/datadog/version.rb +4 -4
  822. data/lib/datadog.rb +13 -13
  823. metadata +13 -5
@@ -1,14 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../core/remote/dispatcher'
4
- require_relative 'configuration/dynamic'
3
+ require_relative "../core/remote/dispatcher"
4
+ require_relative "configuration/dynamic"
5
5
 
6
6
  module Datadog
7
7
  module Tracing
8
8
  # Remote configuration declaration
9
9
  module Remote
10
10
  class << self
11
- PRODUCT = 'APM_TRACING'
11
+ PRODUCT = "APM_TRACING"
12
12
 
13
13
  CAPABILITIES = [
14
14
  1 << 12, # APM_TRACING_SAMPLE_RATE: Dynamic trace sampling rate configuration
@@ -29,7 +29,7 @@ module Datadog
29
29
  end
30
30
 
31
31
  def process_config(config, content, repository = nil)
32
- lib_config = config['lib_config']
32
+ lib_config = config["lib_config"]
33
33
 
34
34
  env_vars = Datadog::Tracing::Configuration::Dynamic::OPTIONS.map do |name, env_var, option|
35
35
  value = lib_config[name]
@@ -42,25 +42,32 @@ module Datadog
42
42
  [env_var, value]
43
43
  end
44
44
 
45
- if (di_enabled = lib_config['dynamic_instrumentation_enabled']) != nil # rubocop:disable Style/NonNilCheck
45
+ if (di_enabled = lib_config["dynamic_instrumentation_enabled"]) != nil # rubocop:disable Style/NonNilCheck
46
46
  # repository is forwarded so that an enable signal can reconcile DI
47
47
  # against probes delivered in an earlier poll while DI was stopped
48
48
  # (see Datadog::DI::Remote.handle_rc_enablement).
49
49
  Datadog::DI::Remote.handle_rc_enablement(di_enabled, repository)
50
50
 
51
+ components = Datadog.send(:components, allow_initialization: false)
52
+ di_products = Datadog::DI::Remote.products +
53
+ Datadog::SymbolDatabase::Remote.deferred_products(Datadog.configuration)
54
+
51
55
  if di_enabled
52
- # DI was just (implicitly) enabled. A Symbol Database upload signal
53
- # received in an earlier poll while DI was inactive was deferred by
54
- # the component's DI-active gate; re-attempt it now. Mirrors the DI
55
- # probe replay in handle_rc_enablement above. allow_initialization:
56
- # false because this runs on the remote-config worker thread.
57
- Datadog.send(:components, allow_initialization: false)&.symbol_database&.resume_pending_upload
56
+ components&.symbol_database&.resume_pending_upload
57
+ # Advertise the DI products only if the component actually started.
58
+ # handle_rc_enablement above no-ops when DI cannot run the
59
+ # component is nil on an unsupported runtime, or the enable signal
60
+ # is blocked by DD_DYNAMIC_INSTRUMENTATION_ENABLED=false. Advertising
61
+ # then would report DI as in use when it is not and invite probe
62
+ # configs the tracer must refuse; withdraw the products otherwise.
63
+ if components&.dynamic_instrumentation&.started?
64
+ components&.remote&.add_products(*di_products)
65
+ else
66
+ components&.remote&.remove_products(*di_products)
67
+ end
58
68
  else
59
- # DI was disabled via remote configuration. In the nil-default
60
- # (follows-DI) case, stop Symbol Database too so its TracePoint and
61
- # scheduler don't keep uploading while DI is off. An explicit
62
- # symbol_database.enabled = true is independent and keeps running.
63
- Datadog.send(:components, allow_initialization: false)&.symbol_database&.stop_for_di_disable
69
+ components&.symbol_database&.stop_for_di_disable
70
+ components&.remote&.remove_products(*di_products)
64
71
  end
65
72
  end
66
73
 
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'sampler'
3
+ require_relative "sampler"
4
4
 
5
5
  module Datadog
6
6
  module Tracing
@@ -37,22 +37,22 @@ module Datadog
37
37
  # this tag is currently formatted as `"-sampling_mechanism"`.
38
38
  module Decision
39
39
  # Used before the tracer receives any rates from agent and there are no rules configured.
40
- DEFAULT = '-0'
40
+ DEFAULT = "-0"
41
41
  # The sampling rate received in the agent's http response.
42
- AGENT_RATE = '-1'
42
+ AGENT_RATE = "-1"
43
43
  # Locally configured rule.
44
- TRACE_SAMPLING_RULE = '-3'
44
+ TRACE_SAMPLING_RULE = "-3"
45
45
  # User directly sets sampling priority via {Tracing.reject!} or {Tracing.keep!},
46
46
  # or by a custom sampler implementation.
47
- MANUAL = '-4'
47
+ MANUAL = "-4"
48
48
  # Formerly AppSec.
49
- ASM = '-5'
49
+ ASM = "-5"
50
50
  # AI Guard.
51
- AI_GUARD = '-13'
51
+ AI_GUARD = "-13"
52
52
  # Dynamically configured rule, explicitly created by the user.
53
- REMOTE_USER_RULE = '-11'
53
+ REMOTE_USER_RULE = "-11"
54
54
  # Dynamically configured rule, automatically generated by Datadog.
55
- REMOTE_DYNAMIC_RULE = '-12'
55
+ REMOTE_DYNAMIC_RULE = "-12"
56
56
  end
57
57
  end
58
58
  end
@@ -7,7 +7,7 @@ module Datadog
7
7
  # @abstract
8
8
  class Matcher
9
9
  # Pattern that matches any string
10
- MATCH_ALL_PATTERN = '*'
10
+ MATCH_ALL_PATTERN = "*"
11
11
 
12
12
  # Returns `true` if the trace should conforms to this rule, `false` otherwise
13
13
  #
@@ -35,8 +35,8 @@ module Datadog
35
35
 
36
36
  # Our valid special characters, `?` and `*`, were just escaped
37
37
  # by `Regexp.quote` above. We need to unescape them:
38
- glob.gsub!('\?', '.') # Any single character
39
- glob.gsub!('\*', '.*') # Any substring
38
+ glob.gsub!('\?', ".") # Any single character
39
+ glob.gsub!('\*', ".*") # Any substring
40
40
 
41
41
  # Patterns have to match the whole input string
42
42
  glob = "\\A#{glob}\\z"
@@ -108,7 +108,7 @@ module Datadog
108
108
  # Format metrics as strings, to allow for partial number matching (/4.*/ matching '400', '404', etc.).
109
109
  # Because metrics are floats, we use the '%g' format specifier to avoid trailing zeros, which
110
110
  # can affect exact string matching (e.g. '400' matching '400.0').
111
- tag = format('%g', tag) if tag.is_a?(Numeric)
111
+ tag = format("%g", tag) if tag.is_a?(Numeric)
112
112
 
113
113
  matcher.match?(tag)
114
114
  end
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'ext'
4
- require_relative 'all_sampler'
5
- require_relative 'rate_sampler'
6
- require_relative 'rate_by_service_sampler'
3
+ require_relative "ext"
4
+ require_relative "all_sampler"
5
+ require_relative "rate_sampler"
6
+ require_relative "rate_by_service_sampler"
7
7
 
8
8
  module Datadog
9
9
  module Tracing
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'sampler'
4
- require_relative 'rate_sampler'
3
+ require_relative "sampler"
4
+ require_relative "rate_sampler"
5
5
 
6
6
  module Datadog
7
7
  module Tracing
@@ -14,7 +14,7 @@ module Datadog
14
14
  def initialize(default_key, default_rate = 1.0, decision: nil, &block)
15
15
  super()
16
16
 
17
- raise ArgumentError, 'No resolver given!' unless block
17
+ raise ArgumentError, "No resolver given!" unless block
18
18
 
19
19
  @default_key = default_key
20
20
  @resolver = block
@@ -1,13 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'rate_by_key_sampler'
3
+ require_relative "rate_by_key_sampler"
4
4
 
5
5
  module Datadog
6
6
  module Tracing
7
7
  module Sampling
8
8
  # {Datadog::Tracing::Sampling::RateByServiceSampler} samples different services at different rates
9
9
  class RateByServiceSampler < RateByKeySampler
10
- DEFAULT_KEY = 'service:,env:'
10
+ DEFAULT_KEY = "service:,env:"
11
11
 
12
12
  def initialize(default_rate = 1.0, env: nil, decision: Datadog::Tracing::Sampling::Ext::Decision::DEFAULT)
13
13
  super(
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'sampler'
4
- require_relative '../../core/knuth_sampler'
3
+ require_relative "sampler"
4
+ require_relative "../../core/knuth_sampler"
5
5
 
6
6
  module Datadog
7
7
  module Tracing
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'matcher'
4
- require_relative 'rate_sampler'
5
- require_relative '../../core/telemetry/logger'
3
+ require_relative "matcher"
4
+ require_relative "rate_sampler"
5
+ require_relative "../../core/telemetry/logger"
6
6
 
7
7
  module Datadog
8
8
  module Tracing
@@ -36,7 +36,7 @@ module Datadog
36
36
  Datadog.logger.error(
37
37
  "Matcher failed. Cause: #{e.class}: #{e.message} Source: #{Array(e.backtrace).first}"
38
38
  )
39
- Datadog::Core::Telemetry::Logger.report(e, description: 'Matcher failed')
39
+ Datadog::Core::Telemetry::Logger.report(e, description: "Matcher failed")
40
40
  nil
41
41
  end
42
42
 
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'ext'
4
- require_relative '../../core/rate_limiter'
5
- require_relative 'rule'
6
- require_relative '../../core/telemetry/logger'
3
+ require_relative "ext"
4
+ require_relative "../../core/rate_limiter"
5
+ require_relative "rule"
6
+ require_relative "../../core/telemetry/logger"
7
7
 
8
8
  module Datadog
9
9
  module Tracing
@@ -48,14 +48,14 @@ module Datadog
48
48
  nil
49
49
  else
50
50
  # TODO: Simplify .tags access, as `Tracer#tags` can't be arbitrarily changed anymore
51
- RateByServiceSampler.new(1.0, env: -> { Tracing.send(:tracer).tags['env'] })
51
+ RateByServiceSampler.new(1.0, env: -> { Tracing.send(:tracer).tags["env"] })
52
52
  end
53
53
  @reconsider_sample_resource_enabled = @rules.any? { |rule| resource_rule?(rule) }
54
54
  end
55
55
 
56
56
  def self.parse(rules, rate_limit, default_sample_rate)
57
57
  parsed_rules = JSON.parse(rules).map do |rule|
58
- sample_rate = rule['sample_rate']
58
+ sample_rate = rule["sample_rate"]
59
59
 
60
60
  begin
61
61
  sample_rate = Float(sample_rate)
@@ -64,12 +64,12 @@ module Datadog
64
64
  end
65
65
 
66
66
  kwargs = {
67
- name: rule['name'],
68
- service: rule['service'],
69
- resource: rule['resource'],
70
- tags: rule['tags'],
67
+ name: rule["name"],
68
+ service: rule["service"],
69
+ resource: rule["resource"],
70
+ tags: rule["tags"],
71
71
  sample_rate: sample_rate,
72
- provenance: if (provenance = rule['provenance'])
72
+ provenance: if (provenance = rule["provenance"])
73
73
  # `Rule::PROVENANCE_*` values are symbols, so convert strings to match
74
74
  provenance.to_sym
75
75
  else
@@ -135,7 +135,7 @@ module Datadog
135
135
  Datadog.logger.error(
136
136
  "Rule sampling failed. Cause: #{e.class}: #{e.message} Source: #{Array(e.backtrace).first}"
137
137
  )
138
- Datadog::Core::Telemetry::Logger.report(e, description: 'Rule sampling failed')
138
+ Datadog::Core::Telemetry::Logger.report(e, description: "Rule sampling failed")
139
139
 
140
140
  yield(trace)
141
141
  end
@@ -15,7 +15,7 @@ module Datadog
15
15
  # @param [Datadog::Tracing::TraceOperation] trace
16
16
  # @return [Boolean] should this trace be kept?
17
17
  def sample!(trace)
18
- raise NotImplementedError, 'Samplers must implement the #sample! method'
18
+ raise NotImplementedError, "Samplers must implement the #sample! method"
19
19
  end
20
20
 
21
21
  # The sampling rate, if this sampler has such concept.
@@ -24,7 +24,7 @@ module Datadog
24
24
  # @param [Datadog::Tracing::TraceOperation] trace
25
25
  # @return [Float,nil] sampling ratio between 0.0 and 1.0 (inclusive), or `nil` if not applicable
26
26
  def sample_rate(trace)
27
- raise NotImplementedError, 'Samplers must implement the #sample_rate method'
27
+ raise NotImplementedError, "Samplers must implement the #sample_rate method"
28
28
  end
29
29
  end
30
30
  end
@@ -13,11 +13,11 @@ module Datadog
13
13
  DEFAULT_MAX_PER_SECOND = -1
14
14
 
15
15
  # Sampling decision method used to come to the sampling decision for this span
16
- TAG_MECHANISM = '_dd.span_sampling.mechanism'
16
+ TAG_MECHANISM = "_dd.span_sampling.mechanism"
17
17
  # Sampling rate applied to this span, if a rule applies
18
- TAG_RULE_RATE = '_dd.span_sampling.rule_rate'
18
+ TAG_RULE_RATE = "_dd.span_sampling.rule_rate"
19
19
  # Rate limit configured for this span, if a rule applies
20
- TAG_MAX_PER_SECOND = '_dd.span_sampling.max_per_second'
20
+ TAG_MAX_PER_SECOND = "_dd.span_sampling.max_per_second"
21
21
  end
22
22
  end
23
23
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../matcher'
3
+ require_relative "../matcher"
4
4
 
5
5
  module Datadog
6
6
  module Tracing
@@ -11,7 +11,7 @@ module Datadog
11
11
  attr_reader :name, :service
12
12
 
13
13
  # Pattern that matches any string
14
- MATCH_ALL_PATTERN = '*'
14
+ MATCH_ALL_PATTERN = "*"
15
15
 
16
16
  # Matches span name and service to their respective patterns provided.
17
17
  #
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'ext'
3
+ require_relative "ext"
4
4
 
5
5
  module Datadog
6
6
  module Tracing
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'json'
3
+ require "json"
4
4
 
5
- require_relative 'ext'
6
- require_relative 'matcher'
7
- require_relative 'rule'
5
+ require_relative "ext"
6
+ require_relative "matcher"
7
+ require_relative "rule"
8
8
 
9
9
  module Datadog
10
10
  module Tracing
@@ -75,22 +75,22 @@ module Datadog
75
75
 
76
76
  def parse_rule(hash)
77
77
  matcher_options = {}
78
- if (name_pattern = hash['name'])
78
+ if (name_pattern = hash["name"])
79
79
  matcher_options[:name_pattern] = name_pattern
80
80
  end
81
81
 
82
- if (service_pattern = hash['service'])
82
+ if (service_pattern = hash["service"])
83
83
  matcher_options[:service_pattern] = service_pattern
84
84
  end
85
85
 
86
86
  matcher = Matcher.new(**matcher_options)
87
87
 
88
88
  rule_options = {}
89
- if (sample_rate = hash['sample_rate'])
89
+ if (sample_rate = hash["sample_rate"])
90
90
  rule_options[:sample_rate] = sample_rate
91
91
  end
92
92
 
93
- if (max_per_second = hash['max_per_second'])
93
+ if (max_per_second = hash["max_per_second"])
94
94
  rule_options[:rate_limit] = max_per_second
95
95
  end
96
96
 
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../core/utils/safe_dup'
4
- require_relative 'utils'
3
+ require_relative "../core/utils/safe_dup"
4
+ require_relative "utils"
5
5
 
6
- require_relative 'metadata/ext'
7
- require_relative 'metadata'
6
+ require_relative "metadata/ext"
7
+ require_relative "metadata"
8
8
 
9
9
  module Datadog
10
10
  module Tracing
@@ -143,7 +143,7 @@ module Datadog
143
143
  # TODO: Change this to reflect attributes when serialization
144
144
  # isn't handled by this method.
145
145
  def to_hash
146
- @meta['events'] = @events.map(&:to_hash).to_json unless @events.empty?
146
+ @meta["events"] = @events.map(&:to_hash).to_json unless @events.empty?
147
147
 
148
148
  h = {
149
149
  error: @status,
@@ -185,19 +185,19 @@ module Datadog
185
185
  q.text "Start: #{start_time}\n"
186
186
  q.text "End: #{end_time}\n"
187
187
  q.text "Duration: #{duration.to_f}\n"
188
- q.group(2, 'Tags: [', "]\n") do
188
+ q.group(2, "Tags: [", "]\n") do
189
189
  q.breakable
190
190
  q.seplist @meta.each do |key, value|
191
191
  q.text "#{key} => #{value}"
192
192
  end
193
193
  end
194
- q.group(2, 'Metrics: [', "]\n") do
194
+ q.group(2, "Metrics: [", "]\n") do
195
195
  q.breakable
196
196
  q.seplist @metrics.each do |key, value|
197
197
  q.text "#{key} => #{value}"
198
198
  end
199
199
  end
200
- q.group(2, 'Metastruct: [', ']') do
200
+ q.group(2, "Metastruct: [", "]") do
201
201
  metastruct.pretty_print(q)
202
202
  end
203
203
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'time'
3
+ require "time"
4
4
 
5
5
  module Datadog
6
6
  module Tracing
@@ -41,8 +41,8 @@ module Datadog
41
41
  # of being limiting span events to the size limit of a span tag.
42
42
  # All Datadog agents support this format.
43
43
  def to_hash
44
- h = {'name' => @name, 'time_unix_nano' => @time_unix_nano}
45
- h['attributes'] = @attributes unless @attributes.empty?
44
+ h = {"name" => @name, "time_unix_nano" => @time_unix_nano}
45
+ h["attributes"] = @attributes unless @attributes.empty?
46
46
  h
47
47
  end
48
48
 
@@ -51,7 +51,7 @@ module Datadog
51
51
  # This serialization format removes the serialization limitations of the `span.set_tag('events)` approach,
52
52
  # but is only supported by newer version of the Datadog agent.
53
53
  def to_native_format
54
- h = {'name' => @name, 'time_unix_nano' => @time_unix_nano}
54
+ h = {"name" => @name, "time_unix_nano" => @time_unix_nano}
55
55
 
56
56
  attr = {}
57
57
  @attributes.each do |key, value|
@@ -62,7 +62,7 @@ module Datadog
62
62
  end
63
63
  end
64
64
 
65
- h['attributes'] = attr unless @attributes.empty?
65
+ h["attributes"] = attr unless @attributes.empty?
66
66
 
67
67
  h
68
68
  end
@@ -1,19 +1,19 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'time'
3
+ require "time"
4
4
 
5
- require_relative '../core/environment/identity'
6
- require_relative '../core/utils'
7
- require_relative '../core/utils/time'
8
- require_relative '../core/utils/safe_dup'
5
+ require_relative "../core/environment/identity"
6
+ require_relative "../core/utils"
7
+ require_relative "../core/utils/time"
8
+ require_relative "../core/utils/safe_dup"
9
9
 
10
- require_relative 'event'
11
- require_relative 'metadata'
12
- require_relative 'metadata/ext'
13
- require_relative 'span'
14
- require_relative 'span_event'
15
- require_relative 'span_link'
16
- require_relative 'utils'
10
+ require_relative "event"
11
+ require_relative "metadata"
12
+ require_relative "metadata/ext"
13
+ require_relative "span"
14
+ require_relative "span_event"
15
+ require_relative "span_link"
16
+ require_relative "utils"
17
17
 
18
18
  module Datadog
19
19
  module Tracing
@@ -146,7 +146,7 @@ module Datadog
146
146
  end
147
147
 
148
148
  def measure
149
- raise ArgumentError, 'Must provide block to measure!' unless block_given?
149
+ raise ArgumentError, "Must provide block to measure!" unless block_given?
150
150
  # TODO: Should we just invoke the block and skip tracing instead?
151
151
  raise AlreadyStartedError if started?
152
152
 
@@ -318,14 +318,14 @@ module Datadog
318
318
  exc = Core::Error.build_from(exception)
319
319
 
320
320
  event_attributes = {
321
- 'exception.type' => exc.type,
322
- 'exception.message' => exc.message,
323
- 'exception.stacktrace' => exc.backtrace,
321
+ "exception.type" => exc.type,
322
+ "exception.message" => exc.message,
323
+ "exception.stacktrace" => exc.backtrace,
324
324
  }
325
325
 
326
326
  # Steep: Caused by wrong declaration, should be the same parameters as `merge`
327
327
  # https://github.com/ruby/rbs/blob/3d0fb3a7fdde60af7120e875fe3bd7237b5b6a88/core/hash.rbs#L1468
328
- @span_events << SpanEvent.new('exception', attributes: event_attributes.merge!(attributes)) # steep:ignore ArgumentTypeMismatch
328
+ @span_events << SpanEvent.new("exception", attributes: event_attributes.merge!(attributes)) # steep:ignore ArgumentTypeMismatch
329
329
  end
330
330
 
331
331
  # Return a string representation of the span.
@@ -374,19 +374,19 @@ module Datadog
374
374
  q.text "Start: #{start_time}\n"
375
375
  q.text "End: #{end_time}\n"
376
376
  q.text "Duration: #{duration.to_f if stopped?}\n"
377
- q.group(2, 'Tags: [', "]\n") do
377
+ q.group(2, "Tags: [", "]\n") do
378
378
  q.breakable
379
379
  q.seplist meta.each do |key, value|
380
380
  q.text "#{key} => #{value}"
381
381
  end
382
382
  end
383
- q.group(2, 'Metrics: [', "]\n") do
383
+ q.group(2, "Metrics: [", "]\n") do
384
384
  q.breakable
385
385
  q.seplist metrics.each do |key, value|
386
386
  q.text "#{key} => #{value}"
387
387
  end
388
388
  end
389
- q.group(2, 'Metastruct: [', ']') do
389
+ q.group(2, "Metastruct: [", "]") do
390
390
  metastruct.pretty_print(q)
391
391
  end
392
392
  end
@@ -496,7 +496,7 @@ module Datadog
496
496
  # Error when the span attempts to start again after being started
497
497
  class AlreadyStartedError < StandardError
498
498
  def message
499
- 'Cannot measure an already started span!'
499
+ "Cannot measure an already started span!"
500
500
  end
501
501
  end
502
502
 
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'pipeline'
4
- require_relative 'runtime/metrics'
5
- require_relative 'writer'
3
+ require_relative "pipeline"
4
+ require_relative "runtime/metrics"
5
+ require_relative "writer"
6
6
 
7
- require_relative 'transport/http'
7
+ require_relative "transport/http"
8
8
 
9
9
  module Datadog
10
10
  module Tracing
@@ -1,15 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../core/environment/identity'
4
- require_relative '../core/utils'
5
- require_relative 'event'
6
- require_relative 'metadata/tagging'
7
- require_relative 'sampling/ext'
8
- require_relative 'span_operation'
9
- require_relative 'trace_digest'
10
- require_relative 'correlation'
11
- require_relative 'trace_segment'
12
- require_relative 'utils'
3
+ require_relative "../core/environment/identity"
4
+ require_relative "../core/utils"
5
+ require_relative "event"
6
+ require_relative "metadata/tagging"
7
+ require_relative "sampling/ext"
8
+ require_relative "span_operation"
9
+ require_relative "trace_digest"
10
+ require_relative "correlation"
11
+ require_relative "trace_segment"
12
+ require_relative "utils"
13
13
 
14
14
  module Datadog
15
15
  module Tracing
@@ -206,7 +206,7 @@ module Datadog
206
206
  def set_distributed_source(product_bit)
207
207
  source = get_tag(Metadata::Ext::Distributed::TAG_TRACE_SOURCE)&.to_i(16) || 0
208
208
  source |= product_bit
209
- set_tag(Metadata::Ext::Distributed::TAG_TRACE_SOURCE, format('%02X', source))
209
+ set_tag(Metadata::Ext::Distributed::TAG_TRACE_SOURCE, format("%02X", source))
210
210
  end
211
211
 
212
212
  def tags