datadog 2.8.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 (1035) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1009 -1
  3. data/README.md +0 -1
  4. data/bin/ddprofrb +4 -4
  5. data/ext/LIBDATADOG_DEVELOPMENT.md +3 -0
  6. data/ext/datadog_profiling_native_extension/clock_id.h +11 -3
  7. data/ext/datadog_profiling_native_extension/clock_id_from_mach.c +66 -0
  8. data/ext/datadog_profiling_native_extension/clock_id_from_pthread.c +3 -2
  9. data/ext/datadog_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +500 -188
  10. data/ext/datadog_profiling_native_extension/collectors_discrete_dynamic_sampler.c +5 -5
  11. data/ext/datadog_profiling_native_extension/collectors_discrete_dynamic_sampler.h +1 -1
  12. data/ext/datadog_profiling_native_extension/collectors_gc_profiling_helper.c +3 -2
  13. data/ext/datadog_profiling_native_extension/collectors_idle_sampling_helper.c +34 -20
  14. data/ext/datadog_profiling_native_extension/collectors_stack.c +319 -101
  15. data/ext/datadog_profiling_native_extension/collectors_stack.h +27 -5
  16. data/ext/datadog_profiling_native_extension/collectors_thread_context.c +985 -504
  17. data/ext/datadog_profiling_native_extension/collectors_thread_context.h +19 -5
  18. data/ext/datadog_profiling_native_extension/crashtracking_runtime_stacks.c +239 -0
  19. data/ext/datadog_profiling_native_extension/datadog_ruby_common.c +66 -5
  20. data/ext/datadog_profiling_native_extension/datadog_ruby_common.h +50 -1
  21. data/ext/datadog_profiling_native_extension/encoded_profile.c +80 -0
  22. data/ext/datadog_profiling_native_extension/encoded_profile.h +8 -0
  23. data/ext/datadog_profiling_native_extension/extconf.rb +53 -35
  24. data/ext/datadog_profiling_native_extension/gvl_profiling_helper.c +6 -43
  25. data/ext/datadog_profiling_native_extension/gvl_profiling_helper.h +15 -55
  26. data/ext/datadog_profiling_native_extension/heap_recorder.c +487 -497
  27. data/ext/datadog_profiling_native_extension/heap_recorder.h +17 -8
  28. data/ext/datadog_profiling_native_extension/http_transport.c +108 -144
  29. data/ext/datadog_profiling_native_extension/libdatadog_helpers.c +18 -15
  30. data/ext/datadog_profiling_native_extension/libdatadog_helpers.h +8 -10
  31. data/ext/datadog_profiling_native_extension/macos_sampler_thread.h +55 -0
  32. data/ext/datadog_profiling_native_extension/native_extension_helpers.rb +0 -13
  33. data/ext/datadog_profiling_native_extension/private_vm_api_access.c +136 -60
  34. data/ext/datadog_profiling_native_extension/private_vm_api_access.h +22 -5
  35. data/ext/datadog_profiling_native_extension/profiling.c +84 -27
  36. data/ext/datadog_profiling_native_extension/ruby_helpers.c +67 -62
  37. data/ext/datadog_profiling_native_extension/ruby_helpers.h +20 -16
  38. data/ext/datadog_profiling_native_extension/setup_signal_handler.c +34 -10
  39. data/ext/datadog_profiling_native_extension/setup_signal_handler.h +2 -1
  40. data/ext/datadog_profiling_native_extension/stack_recorder.c +326 -217
  41. data/ext/datadog_profiling_native_extension/stack_recorder.h +4 -2
  42. data/ext/datadog_profiling_native_extension/time_helpers.h +14 -8
  43. data/ext/datadog_profiling_native_extension/unsafe_api_calls_check.c +48 -0
  44. data/ext/datadog_profiling_native_extension/unsafe_api_calls_check.h +36 -0
  45. data/ext/libdatadog_api/crashtracker.c +27 -24
  46. data/ext/libdatadog_api/crashtracker.h +5 -0
  47. data/ext/libdatadog_api/crashtracker_report_exception.c +126 -0
  48. data/ext/libdatadog_api/datadog_ruby_common.c +66 -5
  49. data/ext/libdatadog_api/datadog_ruby_common.h +50 -1
  50. data/ext/libdatadog_api/ddsketch.c +102 -0
  51. data/ext/libdatadog_api/di.c +203 -0
  52. data/ext/libdatadog_api/extconf.rb +41 -45
  53. data/ext/libdatadog_api/feature_flags.c +580 -0
  54. data/ext/libdatadog_api/feature_flags.h +5 -0
  55. data/ext/libdatadog_api/helpers.h +27 -0
  56. data/ext/libdatadog_api/init.c +27 -0
  57. data/ext/libdatadog_api/library_config.c +173 -0
  58. data/ext/libdatadog_api/library_config.h +25 -0
  59. data/ext/libdatadog_api/process_discovery.c +118 -0
  60. data/ext/libdatadog_api/process_discovery.h +5 -0
  61. data/ext/libdatadog_extconf_helpers.rb +111 -18
  62. data/lib/datadog/ai_guard/api_client.rb +84 -0
  63. data/lib/datadog/ai_guard/autoload.rb +10 -0
  64. data/lib/datadog/ai_guard/component.rb +44 -0
  65. data/lib/datadog/ai_guard/configuration/ext.rb +17 -0
  66. data/lib/datadog/ai_guard/configuration.rb +115 -0
  67. data/lib/datadog/ai_guard/contrib/auto_instrument.rb +24 -0
  68. data/lib/datadog/ai_guard/contrib/integration.rb +37 -0
  69. data/lib/datadog/ai_guard/contrib/rack/integration.rb +42 -0
  70. data/lib/datadog/ai_guard/contrib/rack/patcher.rb +26 -0
  71. data/lib/datadog/ai_guard/contrib/rack/request_middleware.rb +97 -0
  72. data/lib/datadog/ai_guard/contrib/rails/integration.rb +41 -0
  73. data/lib/datadog/ai_guard/contrib/rails/patcher.rb +97 -0
  74. data/lib/datadog/ai_guard/contrib/ruby_llm/chat_instrumentation.rb +80 -0
  75. data/lib/datadog/ai_guard/contrib/ruby_llm/integration.rb +41 -0
  76. data/lib/datadog/ai_guard/contrib/ruby_llm/patcher.rb +30 -0
  77. data/lib/datadog/ai_guard/evaluation/content_builder.rb +31 -0
  78. data/lib/datadog/ai_guard/evaluation/content_part.rb +36 -0
  79. data/lib/datadog/ai_guard/evaluation/message.rb +25 -0
  80. data/lib/datadog/ai_guard/evaluation/no_op_result.rb +36 -0
  81. data/lib/datadog/ai_guard/evaluation/request.rb +86 -0
  82. data/lib/datadog/ai_guard/evaluation/result.rb +45 -0
  83. data/lib/datadog/ai_guard/evaluation/tool_call.rb +18 -0
  84. data/lib/datadog/ai_guard/evaluation.rb +108 -0
  85. data/lib/datadog/ai_guard/ext.rb +29 -0
  86. data/lib/datadog/ai_guard.rb +181 -0
  87. data/lib/datadog/appsec/actions_handler/serializable_backtrace.rb +89 -0
  88. data/lib/datadog/appsec/actions_handler.rb +49 -0
  89. data/lib/datadog/appsec/anonymizer.rb +16 -0
  90. data/lib/datadog/appsec/api_security/endpoint_collection/grape_route_serializer.rb +26 -0
  91. data/lib/datadog/appsec/api_security/endpoint_collection/rails_collector.rb +66 -0
  92. data/lib/datadog/appsec/api_security/endpoint_collection/rails_route_serializer.rb +36 -0
  93. data/lib/datadog/appsec/api_security/endpoint_collection/sinatra_route_serializer.rb +26 -0
  94. data/lib/datadog/appsec/api_security/endpoint_collection.rb +10 -0
  95. data/lib/datadog/appsec/api_security/route_extractor.rb +104 -0
  96. data/lib/datadog/appsec/api_security/sampler.rb +62 -0
  97. data/lib/datadog/appsec/api_security.rb +23 -0
  98. data/lib/datadog/appsec/assets/blocked.html +10 -1
  99. data/lib/datadog/appsec/assets/blocked.json +1 -1
  100. data/lib/datadog/appsec/assets/blocked.text +3 -1
  101. data/lib/datadog/appsec/assets/waf_rules/README.md +44 -5
  102. data/lib/datadog/appsec/assets/waf_rules/recommended.json +954 -229
  103. data/lib/datadog/appsec/assets/waf_rules/strict.json +109 -106
  104. data/lib/datadog/appsec/assets.rb +8 -8
  105. data/lib/datadog/appsec/autoload.rb +5 -5
  106. data/lib/datadog/appsec/component.rb +56 -68
  107. data/lib/datadog/appsec/compressed_json.rb +40 -0
  108. data/lib/datadog/appsec/configuration.rb +427 -1
  109. data/lib/datadog/appsec/context.rb +135 -0
  110. data/lib/datadog/appsec/contrib/active_record/instrumentation.rb +45 -24
  111. data/lib/datadog/appsec/contrib/active_record/integration.rb +6 -6
  112. data/lib/datadog/appsec/contrib/active_record/patcher.rb +67 -16
  113. data/lib/datadog/appsec/contrib/auto_instrument.rb +1 -1
  114. data/lib/datadog/appsec/contrib/aws_lambda/gateway/watcher.rb +75 -0
  115. data/lib/datadog/appsec/contrib/aws_lambda/integration.rb +39 -0
  116. data/lib/datadog/appsec/contrib/aws_lambda/patcher.rb +30 -0
  117. data/lib/datadog/appsec/contrib/aws_lambda/waf_addresses.rb +146 -0
  118. data/lib/datadog/appsec/contrib/devise/configuration.rb +52 -0
  119. data/lib/datadog/appsec/contrib/devise/data_extractor.rb +78 -0
  120. data/lib/datadog/appsec/contrib/devise/ext.rb +22 -0
  121. data/lib/datadog/appsec/contrib/devise/integration.rb +5 -6
  122. data/lib/datadog/appsec/contrib/devise/patcher.rb +33 -25
  123. data/lib/datadog/appsec/contrib/devise/patches/signin_tracking_patch.rb +104 -0
  124. data/lib/datadog/appsec/contrib/devise/patches/signup_tracking_patch.rb +70 -0
  125. data/lib/datadog/appsec/contrib/devise/{patcher/rememberable_patch.rb → patches/skip_signin_tracking_patch.rb} +3 -3
  126. data/lib/datadog/appsec/contrib/devise/tracking_middleware.rb +121 -0
  127. data/lib/datadog/appsec/contrib/excon/integration.rb +41 -0
  128. data/lib/datadog/appsec/contrib/excon/patcher.rb +30 -0
  129. data/lib/datadog/appsec/contrib/excon/ssrf_detection_middleware.rb +181 -0
  130. data/lib/datadog/appsec/contrib/faraday/connection_patch.rb +22 -0
  131. data/lib/datadog/appsec/contrib/faraday/integration.rb +42 -0
  132. data/lib/datadog/appsec/contrib/faraday/patcher.rb +53 -0
  133. data/lib/datadog/appsec/contrib/faraday/rack_builder_patch.rb +22 -0
  134. data/lib/datadog/appsec/contrib/faraday/ssrf_detection_middleware.rb +166 -0
  135. data/lib/datadog/appsec/contrib/graphql/appsec_trace.rb +4 -10
  136. data/lib/datadog/appsec/contrib/graphql/gateway/multiplex.rb +76 -26
  137. data/lib/datadog/appsec/contrib/graphql/gateway/watcher.rb +22 -33
  138. data/lib/datadog/appsec/contrib/graphql/integration.rb +10 -9
  139. data/lib/datadog/appsec/contrib/graphql/patcher.rb +3 -6
  140. data/lib/datadog/appsec/contrib/rack/buffered_input.rb +83 -0
  141. data/lib/datadog/appsec/contrib/rack/ext.rb +34 -0
  142. data/lib/datadog/appsec/contrib/rack/gateway/request.rb +56 -21
  143. data/lib/datadog/appsec/contrib/rack/gateway/response.rb +4 -4
  144. data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +101 -100
  145. data/lib/datadog/appsec/contrib/rack/input_peeker.rb +79 -0
  146. data/lib/datadog/appsec/contrib/rack/integration.rb +7 -7
  147. data/lib/datadog/appsec/contrib/rack/patcher.rb +2 -5
  148. data/lib/datadog/appsec/contrib/rack/request_body_middleware.rb +13 -14
  149. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +117 -115
  150. data/lib/datadog/appsec/contrib/rack/response_body.rb +36 -0
  151. data/lib/datadog/appsec/contrib/rails/gateway/request.rb +43 -4
  152. data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +58 -33
  153. data/lib/datadog/appsec/contrib/rails/integration.rb +6 -6
  154. data/lib/datadog/appsec/contrib/rails/patcher.rb +82 -69
  155. data/lib/datadog/appsec/contrib/rails/patches/process_action_patch.rb +29 -0
  156. data/lib/datadog/appsec/contrib/rails/patches/render_to_body_patch.rb +33 -0
  157. data/lib/datadog/appsec/contrib/rails/request.rb +3 -3
  158. data/lib/datadog/appsec/contrib/rest_client/integration.rb +45 -0
  159. data/lib/datadog/appsec/contrib/rest_client/patcher.rb +30 -0
  160. data/lib/datadog/appsec/contrib/rest_client/request_ssrf_detection_patch.rb +193 -0
  161. data/lib/datadog/appsec/contrib/sinatra/gateway/request.rb +1 -1
  162. data/lib/datadog/appsec/contrib/sinatra/gateway/route_params.rb +1 -1
  163. data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +83 -67
  164. data/lib/datadog/appsec/contrib/sinatra/integration.rb +6 -6
  165. data/lib/datadog/appsec/contrib/sinatra/patcher.rb +25 -61
  166. data/lib/datadog/appsec/contrib/sinatra/patches/json_patch.rb +31 -0
  167. data/lib/datadog/appsec/counter_sampler.rb +25 -0
  168. data/lib/datadog/appsec/default_header_tags.rb +52 -0
  169. data/lib/datadog/appsec/event.rb +80 -152
  170. data/lib/datadog/appsec/ext.rb +16 -4
  171. data/lib/datadog/appsec/extensions.rb +2 -2
  172. data/lib/datadog/appsec/instrumentation/gateway/argument.rb +23 -2
  173. data/lib/datadog/appsec/instrumentation/gateway/middleware.rb +23 -0
  174. data/lib/datadog/appsec/instrumentation/gateway.rb +6 -24
  175. data/lib/datadog/appsec/metrics/collector.rb +80 -0
  176. data/lib/datadog/appsec/metrics/exporter.rb +48 -0
  177. data/lib/datadog/appsec/metrics/telemetry.rb +40 -0
  178. data/lib/datadog/appsec/metrics/telemetry_exporter.rb +47 -0
  179. data/lib/datadog/appsec/metrics.rb +14 -0
  180. data/lib/datadog/appsec/monitor/gateway/watcher.rb +60 -34
  181. data/lib/datadog/appsec/monitor.rb +1 -1
  182. data/lib/datadog/appsec/processor/rule_loader.rb +48 -54
  183. data/lib/datadog/appsec/rate_limiter.rb +1 -1
  184. data/lib/datadog/appsec/remote.rb +59 -68
  185. data/lib/datadog/appsec/response.rb +42 -90
  186. data/lib/datadog/appsec/route_normalizer/rails_route_pattern.rb +176 -0
  187. data/lib/datadog/appsec/route_normalizer/route_pattern.rb +378 -0
  188. data/lib/datadog/appsec/route_normalizer/route_text.rb +57 -0
  189. data/lib/datadog/appsec/route_normalizer.rb +80 -0
  190. data/lib/datadog/appsec/security_engine/engine.rb +197 -0
  191. data/lib/datadog/appsec/security_engine/result.rb +103 -0
  192. data/lib/datadog/appsec/security_engine/runner.rb +111 -0
  193. data/lib/datadog/appsec/security_engine.rb +9 -0
  194. data/lib/datadog/appsec/security_event.rb +37 -0
  195. data/lib/datadog/appsec/thread_safe_ref.rb +61 -0
  196. data/lib/datadog/appsec/trace_keeper.rb +36 -0
  197. data/lib/datadog/appsec/utils/hash_coercion.rb +23 -0
  198. data/lib/datadog/appsec/utils/http/body.rb +41 -0
  199. data/lib/datadog/appsec/utils/http/body_reader.rb +61 -0
  200. data/lib/datadog/appsec/utils/http/media_range.rb +17 -16
  201. data/lib/datadog/appsec/utils/http/media_type.rb +33 -27
  202. data/lib/datadog/appsec/utils/http/url_encoded.rb +107 -0
  203. data/lib/datadog/appsec/utils.rb +0 -2
  204. data/lib/datadog/appsec.rb +35 -30
  205. data/lib/datadog/auto_instrument.rb +5 -2
  206. data/lib/datadog/auto_instrument_base.rb +2 -1
  207. data/lib/datadog/core/buffer/cruby.rb +1 -1
  208. data/lib/datadog/core/buffer/random.rb +18 -2
  209. data/lib/datadog/core/buffer/thread_safe.rb +1 -1
  210. data/lib/datadog/core/configuration/agent_settings.rb +52 -0
  211. data/lib/datadog/core/configuration/agent_settings_resolver.rb +22 -36
  212. data/lib/datadog/core/configuration/agentless_settings_resolver.rb +176 -0
  213. data/lib/datadog/core/configuration/base.rb +19 -7
  214. data/lib/datadog/core/configuration/components.rb +261 -57
  215. data/lib/datadog/core/configuration/components_state.rb +28 -0
  216. data/lib/datadog/core/configuration/config_helper.rb +109 -0
  217. data/lib/datadog/core/configuration/deprecations.rb +36 -0
  218. data/lib/datadog/core/configuration/ext.rb +15 -12
  219. data/lib/datadog/core/configuration/option.rb +150 -84
  220. data/lib/datadog/core/configuration/option_definition.rb +50 -29
  221. data/lib/datadog/core/configuration/options.rb +58 -19
  222. data/lib/datadog/core/configuration/settings.rb +287 -103
  223. data/lib/datadog/core/configuration/stable_config.rb +32 -0
  224. data/lib/datadog/core/configuration/supported_configurations.rb +415 -0
  225. data/lib/datadog/core/configuration.rb +47 -23
  226. data/lib/datadog/core/contrib/rails/railtie.rb +32 -0
  227. data/lib/datadog/core/contrib/rails/utils.rb +28 -0
  228. data/lib/datadog/core/crashtracking/component.rb +81 -38
  229. data/lib/datadog/core/crashtracking/tag_builder.rb +11 -23
  230. data/lib/datadog/core/ddsketch.rb +19 -0
  231. data/lib/datadog/core/deprecations.rb +3 -3
  232. data/lib/datadog/core/diagnostics/environment_logger.rb +10 -8
  233. data/lib/datadog/core/diagnostics/health.rb +2 -2
  234. data/lib/datadog/core/encoding.rb +21 -5
  235. data/lib/datadog/core/environment/agent_info.rb +142 -0
  236. data/lib/datadog/core/environment/cgroup.rb +53 -28
  237. data/lib/datadog/core/environment/container.rb +143 -51
  238. data/lib/datadog/core/environment/execution.rb +3 -3
  239. data/lib/datadog/core/environment/ext.rb +32 -21
  240. data/lib/datadog/core/environment/git.rb +5 -4
  241. data/lib/datadog/core/environment/identity.rb +50 -14
  242. data/lib/datadog/core/environment/platform.rb +8 -8
  243. data/lib/datadog/core/environment/process.rb +122 -0
  244. data/lib/datadog/core/environment/socket.rb +15 -2
  245. data/lib/datadog/core/environment/variable_helpers.rb +4 -4
  246. data/lib/datadog/core/environment/yjit.rb +2 -1
  247. data/lib/datadog/core/error.rb +15 -13
  248. data/lib/datadog/core/evp.rb +11 -0
  249. data/lib/datadog/core/extensions.rb +1 -1
  250. data/lib/datadog/core/feature_flags.rb +61 -0
  251. data/lib/datadog/core/git/ext.rb +4 -4
  252. data/lib/datadog/core/knuth_sampler.rb +59 -0
  253. data/lib/datadog/core/logger.rb +5 -5
  254. data/lib/datadog/core/logging/ext.rb +1 -1
  255. data/lib/datadog/core/metrics/client.rb +49 -49
  256. data/lib/datadog/core/metrics/ext.rb +5 -5
  257. data/lib/datadog/core/metrics/logging.rb +8 -8
  258. data/lib/datadog/core/metrics/options.rb +3 -3
  259. data/lib/datadog/core/pin.rb +9 -9
  260. data/lib/datadog/core/process_discovery/tracer_memfd.rb +13 -0
  261. data/lib/datadog/core/process_discovery.rb +62 -0
  262. data/lib/datadog/core/rate_limiter.rb +16 -4
  263. data/lib/datadog/core/remote/client/capabilities.rb +72 -13
  264. data/lib/datadog/core/remote/client.rb +68 -51
  265. data/lib/datadog/core/remote/component.rb +90 -55
  266. data/lib/datadog/core/remote/configuration/content.rb +17 -4
  267. data/lib/datadog/core/remote/configuration/digest.rb +22 -15
  268. data/lib/datadog/core/remote/configuration/path.rb +9 -9
  269. data/lib/datadog/core/remote/configuration/repository.rb +17 -4
  270. data/lib/datadog/core/remote/configuration/target.rb +15 -8
  271. data/lib/datadog/core/remote/configuration.rb +4 -4
  272. data/lib/datadog/core/remote/ext.rb +3 -3
  273. data/lib/datadog/core/remote/negotiation.rb +10 -10
  274. data/lib/datadog/core/remote/tie/tracing.rb +7 -7
  275. data/lib/datadog/core/remote/transport/config.rb +11 -37
  276. data/lib/datadog/core/remote/transport/http/config.rb +39 -107
  277. data/lib/datadog/core/remote/transport/http/negotiation.rb +19 -92
  278. data/lib/datadog/core/remote/transport/http.rb +33 -111
  279. data/lib/datadog/core/remote/transport/negotiation.rb +9 -21
  280. data/lib/datadog/core/remote/worker.rb +33 -42
  281. data/lib/datadog/core/runtime/ext.rb +22 -23
  282. data/lib/datadog/core/runtime/metrics.rb +30 -14
  283. data/lib/datadog/core/semaphore.rb +1 -4
  284. data/lib/datadog/core/tag_builder.rb +52 -0
  285. data/lib/datadog/core/tag_normalizer.rb +84 -0
  286. data/lib/datadog/core/telemetry/component.rb +142 -65
  287. data/lib/datadog/core/telemetry/emitter.rb +26 -14
  288. data/lib/datadog/core/telemetry/event/app_client_configuration_change.rb +65 -0
  289. data/lib/datadog/core/telemetry/event/app_closing.rb +18 -0
  290. data/lib/datadog/core/telemetry/event/app_dependencies_loaded.rb +33 -0
  291. data/lib/datadog/core/telemetry/event/app_endpoints_loaded.rb +30 -0
  292. data/lib/datadog/core/telemetry/event/app_extended_heartbeat.rb +32 -0
  293. data/lib/datadog/core/telemetry/event/app_heartbeat.rb +18 -0
  294. data/lib/datadog/core/telemetry/event/app_integrations_change.rb +58 -0
  295. data/lib/datadog/core/telemetry/event/app_started.rb +293 -0
  296. data/lib/datadog/core/telemetry/event/base.rb +40 -0
  297. data/lib/datadog/core/telemetry/event/distributions.rb +18 -0
  298. data/lib/datadog/core/telemetry/event/generate_metrics.rb +43 -0
  299. data/lib/datadog/core/telemetry/event/log.rb +76 -0
  300. data/lib/datadog/core/telemetry/event/message_batch.rb +42 -0
  301. data/lib/datadog/core/telemetry/event/synth_app_client_configuration_change.rb +66 -0
  302. data/lib/datadog/core/telemetry/event.rb +21 -392
  303. data/lib/datadog/core/telemetry/ext.rb +11 -10
  304. data/lib/datadog/core/telemetry/http/adapters/net.rb +12 -97
  305. data/lib/datadog/core/telemetry/logger.rb +6 -3
  306. data/lib/datadog/core/telemetry/logging.rb +27 -9
  307. data/lib/datadog/core/telemetry/metric.rb +35 -13
  308. data/lib/datadog/core/telemetry/metrics_collection.rb +2 -2
  309. data/lib/datadog/core/telemetry/metrics_manager.rb +10 -1
  310. data/lib/datadog/core/telemetry/request.rb +21 -9
  311. data/lib/datadog/core/telemetry/transport/http/telemetry.rb +66 -0
  312. data/lib/datadog/core/telemetry/transport/http.rb +68 -0
  313. data/lib/datadog/core/telemetry/transport/telemetry.rb +42 -0
  314. data/lib/datadog/core/telemetry/worker.rb +214 -35
  315. data/lib/datadog/core/transport/ext.rb +14 -11
  316. data/lib/datadog/core/transport/http/adapters/net.rb +19 -4
  317. data/lib/datadog/core/transport/http/adapters/test.rb +3 -2
  318. data/lib/datadog/core/transport/http/adapters/unix_socket.rb +5 -5
  319. data/lib/datadog/core/transport/http/api/endpoint.rb +10 -5
  320. data/lib/datadog/{tracing → core}/transport/http/api/instance.rb +5 -5
  321. data/lib/datadog/core/transport/http/api/map.rb +1 -1
  322. data/lib/datadog/{tracing → core}/transport/http/builder.rb +62 -36
  323. data/lib/datadog/core/transport/http/client.rb +80 -0
  324. data/lib/datadog/core/transport/http/env.rb +8 -0
  325. data/lib/datadog/core/transport/http/response.rb +5 -1
  326. data/lib/datadog/core/transport/http.rb +80 -0
  327. data/lib/datadog/core/transport/parcel.rb +61 -9
  328. data/lib/datadog/core/transport/response.rb +19 -1
  329. data/lib/datadog/core/transport/transport.rb +90 -0
  330. data/lib/datadog/core/utils/at_fork_monkey_patch.rb +9 -9
  331. data/lib/datadog/core/utils/base64_codec.rb +23 -0
  332. data/lib/datadog/core/utils/duration.rb +33 -33
  333. data/lib/datadog/core/utils/enumerable_compat.rb +29 -0
  334. data/lib/datadog/core/utils/fnv.rb +26 -0
  335. data/lib/datadog/core/utils/forking.rb +5 -3
  336. data/lib/datadog/core/utils/hash.rb +0 -23
  337. data/lib/datadog/core/utils/lru_cache.rb +45 -0
  338. data/lib/datadog/core/utils/network.rb +34 -13
  339. data/lib/datadog/core/utils/only_once.rb +1 -1
  340. data/lib/datadog/core/utils/only_once_successful.rb +25 -8
  341. data/lib/datadog/core/utils/safe_dup.rb +4 -3
  342. data/lib/datadog/core/utils/sequence.rb +2 -0
  343. data/lib/datadog/core/utils/spawn_monkey_patch.rb +68 -0
  344. data/lib/datadog/core/utils/time.rb +26 -2
  345. data/lib/datadog/core/utils/truncation.rb +21 -0
  346. data/lib/datadog/core/utils/url.rb +1 -1
  347. data/lib/datadog/core/utils.rb +14 -5
  348. data/lib/datadog/core/vendor/multipart-post/multipart/post/composite_read_io.rb +1 -1
  349. data/lib/datadog/core/vendor/multipart-post/multipart/post/multipartable.rb +8 -8
  350. data/lib/datadog/core/vendor/multipart-post/multipart/post/parts.rb +7 -7
  351. data/lib/datadog/core/worker.rb +1 -1
  352. data/lib/datadog/core/workers/async.rb +40 -14
  353. data/lib/datadog/core/workers/interval_loop.rb +63 -4
  354. data/lib/datadog/core/workers/polling.rb +4 -2
  355. data/lib/datadog/core/workers/queue.rb +96 -1
  356. data/lib/datadog/core/workers/runtime_metrics.rb +14 -6
  357. data/lib/datadog/core.rb +20 -3
  358. data/lib/datadog/data_streams/configuration.rb +50 -0
  359. data/lib/datadog/data_streams/ext.rb +11 -0
  360. data/lib/datadog/data_streams/extensions.rb +16 -0
  361. data/lib/datadog/data_streams/pathway_context.rb +169 -0
  362. data/lib/datadog/data_streams/processor.rb +511 -0
  363. data/lib/datadog/data_streams/transport/http/stats.rb +58 -0
  364. data/lib/datadog/data_streams/transport/http.rb +36 -0
  365. data/lib/datadog/data_streams/transport/stats.rb +39 -0
  366. data/lib/datadog/data_streams.rb +100 -0
  367. data/lib/datadog/di/base.rb +123 -0
  368. data/lib/datadog/di/boot.rb +47 -0
  369. data/lib/datadog/di/capture_expression.rb +21 -0
  370. data/lib/datadog/di/capture_expression_evaluator.rb +71 -0
  371. data/lib/datadog/di/capture_limits.rb +41 -0
  372. data/lib/datadog/di/code_tracker.rb +224 -12
  373. data/lib/datadog/di/component.rb +157 -49
  374. data/lib/datadog/di/configuration.rb +241 -2
  375. data/lib/datadog/di/context.rb +82 -0
  376. data/lib/datadog/di/contrib/active_record.rb +34 -5
  377. data/lib/datadog/di/contrib/railtie.rb +15 -0
  378. data/lib/datadog/di/contrib.rb +28 -0
  379. data/lib/datadog/di/el/compiler.rb +168 -0
  380. data/lib/datadog/di/el/evaluator.rb +159 -0
  381. data/lib/datadog/di/el/expression.rb +42 -0
  382. data/lib/datadog/di/el.rb +5 -0
  383. data/lib/datadog/di/error.rb +49 -0
  384. data/lib/datadog/di/fatal_exceptions.rb +26 -0
  385. data/lib/datadog/di/instrumenter.rb +672 -122
  386. data/lib/datadog/di/logger.rb +30 -0
  387. data/lib/datadog/di/{init.rb → preload.rb} +2 -4
  388. data/lib/datadog/di/probe.rb +125 -20
  389. data/lib/datadog/di/probe_builder.rb +126 -5
  390. data/lib/datadog/di/probe_file_loader/railtie.rb +15 -0
  391. data/lib/datadog/di/probe_file_loader.rb +87 -0
  392. data/lib/datadog/di/probe_manager.rb +198 -100
  393. data/lib/datadog/di/probe_notification_builder.rb +349 -103
  394. data/lib/datadog/di/probe_notifier_worker.rb +161 -51
  395. data/lib/datadog/di/probe_repository.rb +198 -0
  396. data/lib/datadog/di/proc_responder.rb +36 -0
  397. data/lib/datadog/di/redactor.rb +24 -3
  398. data/lib/datadog/di/remote.rb +259 -73
  399. data/lib/datadog/di/serializer.rb +319 -30
  400. data/lib/datadog/di/transport/diagnostics.rb +32 -0
  401. data/lib/datadog/di/transport/http/diagnostics.rb +35 -0
  402. data/lib/datadog/di/transport/http/input.rb +45 -0
  403. data/lib/datadog/di/transport/http.rb +81 -0
  404. data/lib/datadog/di/transport/input.rb +144 -0
  405. data/lib/datadog/di/utils.rb +133 -9
  406. data/lib/datadog/di.rb +188 -121
  407. data/lib/datadog/error_tracking/collector.rb +88 -0
  408. data/lib/datadog/error_tracking/component.rb +167 -0
  409. data/lib/datadog/error_tracking/configuration.rb +64 -0
  410. data/lib/datadog/error_tracking/ext.rb +18 -0
  411. data/lib/datadog/error_tracking/extensions.rb +16 -0
  412. data/lib/datadog/error_tracking/filters.rb +77 -0
  413. data/lib/datadog/error_tracking.rb +18 -0
  414. data/lib/datadog/kit/appsec/events/v2.rb +253 -0
  415. data/lib/datadog/kit/appsec/events.rb +39 -26
  416. data/lib/datadog/kit/enable_core_dumps.rb +3 -3
  417. data/lib/datadog/kit/identity.rb +34 -24
  418. data/lib/datadog/kit/tracing/method_tracer.rb +135 -0
  419. data/lib/datadog/kit.rb +1 -1
  420. data/lib/datadog/open_feature/component.rb +109 -0
  421. data/lib/datadog/open_feature/configuration.rb +50 -0
  422. data/lib/datadog/open_feature/evaluation_engine.rb +70 -0
  423. data/lib/datadog/open_feature/exposures/batch_builder.rb +32 -0
  424. data/lib/datadog/open_feature/exposures/buffer.rb +43 -0
  425. data/lib/datadog/open_feature/exposures/deduplicator.rb +30 -0
  426. data/lib/datadog/open_feature/exposures/event.rb +60 -0
  427. data/lib/datadog/open_feature/exposures/reporter.rb +40 -0
  428. data/lib/datadog/open_feature/exposures/worker.rb +116 -0
  429. data/lib/datadog/open_feature/ext.rb +21 -0
  430. data/lib/datadog/open_feature/flag_evaluation/aggregator.rb +286 -0
  431. data/lib/datadog/open_feature/flag_evaluation/writer.rb +433 -0
  432. data/lib/datadog/open_feature/hooks/flag_eval_evp_hook.rb +102 -0
  433. data/lib/datadog/open_feature/hooks/flag_eval_metrics_hook.rb +51 -0
  434. data/lib/datadog/open_feature/hooks/span_enrichment_hook/codec.rb +58 -0
  435. data/lib/datadog/open_feature/hooks/span_enrichment_hook/span_enrichment_state.rb +96 -0
  436. data/lib/datadog/open_feature/hooks/span_enrichment_hook/span_enrichment_state_store.rb +49 -0
  437. data/lib/datadog/open_feature/hooks/span_enrichment_hook.rb +184 -0
  438. data/lib/datadog/open_feature/metrics/flag_eval_metrics.rb +149 -0
  439. data/lib/datadog/open_feature/native_evaluator.rb +60 -0
  440. data/lib/datadog/open_feature/noop_evaluator.rb +26 -0
  441. data/lib/datadog/open_feature/provider.rb +226 -0
  442. data/lib/datadog/open_feature/remote.rb +67 -0
  443. data/lib/datadog/open_feature/resolution_details.rb +37 -0
  444. data/lib/datadog/open_feature/transport.rb +121 -0
  445. data/lib/datadog/open_feature.rb +19 -0
  446. data/lib/datadog/opentelemetry/api/baggage.rb +90 -0
  447. data/lib/datadog/opentelemetry/api/context.rb +25 -10
  448. data/lib/datadog/opentelemetry/configuration/settings.rb +226 -0
  449. data/lib/datadog/opentelemetry/ext.rb +9 -0
  450. data/lib/datadog/opentelemetry/logs.rb +98 -0
  451. data/lib/datadog/opentelemetry/metrics.rb +90 -0
  452. data/lib/datadog/opentelemetry/sdk/configurator.rb +69 -5
  453. data/lib/datadog/opentelemetry/sdk/id_generator.rb +16 -10
  454. data/lib/datadog/opentelemetry/sdk/logs_exporter.rb +30 -0
  455. data/lib/datadog/opentelemetry/sdk/metrics_exporter.rb +28 -0
  456. data/lib/datadog/opentelemetry/sdk/propagator.rb +20 -14
  457. data/lib/datadog/opentelemetry/sdk/span_processor.rb +24 -21
  458. data/lib/datadog/opentelemetry/sdk/trace/span.rb +43 -39
  459. data/lib/datadog/opentelemetry/sdk.rb +19 -0
  460. data/lib/datadog/opentelemetry/signal_configuration.rb +53 -0
  461. data/lib/datadog/opentelemetry/trace.rb +5 -5
  462. data/lib/datadog/opentelemetry.rb +11 -6
  463. data/lib/datadog/profiling/collectors/code_provenance.rb +84 -16
  464. data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +57 -3
  465. data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +13 -4
  466. data/lib/datadog/profiling/collectors/info.rb +62 -4
  467. data/lib/datadog/profiling/collectors/thread_context.rb +27 -7
  468. data/lib/datadog/profiling/component.rb +125 -88
  469. data/lib/datadog/profiling/encoded_profile.rb +11 -0
  470. data/lib/datadog/profiling/exporter.rb +51 -17
  471. data/lib/datadog/profiling/ext/dir_monkey_patches.rb +24 -5
  472. data/lib/datadog/profiling/ext/exec_monkey_patch.rb +32 -0
  473. data/lib/datadog/profiling/ext.rb +2 -17
  474. data/lib/datadog/profiling/flush.rb +26 -17
  475. data/lib/datadog/profiling/http_transport.rb +30 -96
  476. data/lib/datadog/profiling/load_native_extension.rb +3 -35
  477. data/lib/datadog/profiling/profiler.rb +31 -12
  478. data/lib/datadog/profiling/scheduler.rb +19 -10
  479. data/lib/datadog/profiling/sequence_tracker.rb +44 -0
  480. data/lib/datadog/profiling/stack_recorder.rb +9 -17
  481. data/lib/datadog/profiling/tag_builder.rb +41 -41
  482. data/lib/datadog/profiling/tasks/exec.rb +10 -5
  483. data/lib/datadog/profiling/tasks/help.rb +1 -0
  484. data/lib/datadog/profiling/tasks/setup.rb +4 -2
  485. data/lib/datadog/profiling.rb +38 -37
  486. data/lib/datadog/ruby_version.rb +25 -0
  487. data/lib/datadog/single_step_instrument.rb +11 -2
  488. data/lib/datadog/symbol_database/component.rb +734 -0
  489. data/lib/datadog/symbol_database/configuration.rb +73 -0
  490. data/lib/datadog/symbol_database/extensions.rb +19 -0
  491. data/lib/datadog/symbol_database/extractor.rb +1110 -0
  492. data/lib/datadog/symbol_database/file_hash.rb +48 -0
  493. data/lib/datadog/symbol_database/logger.rb +43 -0
  494. data/lib/datadog/symbol_database/remote.rb +195 -0
  495. data/lib/datadog/symbol_database/scope.rb +102 -0
  496. data/lib/datadog/symbol_database/scope_batcher.rb +292 -0
  497. data/lib/datadog/symbol_database/service_version.rb +66 -0
  498. data/lib/datadog/symbol_database/symbol.rb +69 -0
  499. data/lib/datadog/symbol_database/transport/http/endpoint.rb +28 -0
  500. data/lib/datadog/symbol_database/transport/http.rb +45 -0
  501. data/lib/datadog/symbol_database/transport.rb +54 -0
  502. data/lib/datadog/symbol_database/uploader.rb +230 -0
  503. data/lib/datadog/symbol_database.rb +71 -0
  504. data/lib/datadog/tracing/analytics.rb +2 -2
  505. data/lib/datadog/tracing/buffer.rb +15 -15
  506. data/lib/datadog/tracing/client_ip.rb +4 -4
  507. data/lib/datadog/tracing/component.rb +39 -35
  508. data/lib/datadog/tracing/configuration/dynamic.rb +14 -16
  509. data/lib/datadog/tracing/configuration/ext.rb +60 -33
  510. data/lib/datadog/tracing/configuration/http.rb +2 -2
  511. data/lib/datadog/tracing/configuration/settings.rb +156 -26
  512. data/lib/datadog/tracing/context.rb +3 -3
  513. data/lib/datadog/tracing/context_provider.rb +3 -3
  514. data/lib/datadog/tracing/contrib/action_cable/configuration/settings.rb +2 -2
  515. data/lib/datadog/tracing/contrib/action_cable/event.rb +5 -5
  516. data/lib/datadog/tracing/contrib/action_cable/events/broadcast.rb +9 -6
  517. data/lib/datadog/tracing/contrib/action_cable/events/perform_action.rb +8 -5
  518. data/lib/datadog/tracing/contrib/action_cable/events/transmit.rb +9 -6
  519. data/lib/datadog/tracing/contrib/action_cable/events.rb +4 -4
  520. data/lib/datadog/tracing/contrib/action_cable/ext.rb +18 -18
  521. data/lib/datadog/tracing/contrib/action_cable/instrumentation.rb +8 -5
  522. data/lib/datadog/tracing/contrib/action_cable/integration.rb +10 -7
  523. data/lib/datadog/tracing/contrib/action_cable/patcher.rb +4 -4
  524. data/lib/datadog/tracing/contrib/action_mailer/configuration/settings.rb +2 -2
  525. data/lib/datadog/tracing/contrib/action_mailer/event.rb +7 -4
  526. data/lib/datadog/tracing/contrib/action_mailer/events/deliver.rb +8 -8
  527. data/lib/datadog/tracing/contrib/action_mailer/events/process.rb +4 -4
  528. data/lib/datadog/tracing/contrib/action_mailer/events.rb +2 -2
  529. data/lib/datadog/tracing/contrib/action_mailer/ext.rb +18 -18
  530. data/lib/datadog/tracing/contrib/action_mailer/integration.rb +11 -7
  531. data/lib/datadog/tracing/contrib/action_mailer/patcher.rb +3 -3
  532. data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +37 -19
  533. data/lib/datadog/tracing/contrib/action_pack/action_controller/patcher.rb +2 -2
  534. data/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb +48 -13
  535. data/lib/datadog/tracing/contrib/action_pack/action_dispatch/patcher.rb +5 -3
  536. data/lib/datadog/tracing/contrib/action_pack/configuration/settings.rb +3 -3
  537. data/lib/datadog/tracing/contrib/action_pack/ext.rb +10 -8
  538. data/lib/datadog/tracing/contrib/action_pack/integration.rb +10 -7
  539. data/lib/datadog/tracing/contrib/action_pack/patcher.rb +3 -3
  540. data/lib/datadog/tracing/contrib/action_pack/utils.rb +2 -3
  541. data/lib/datadog/tracing/contrib/action_view/configuration/settings.rb +3 -3
  542. data/lib/datadog/tracing/contrib/action_view/event.rb +1 -1
  543. data/lib/datadog/tracing/contrib/action_view/events/render_partial.rb +10 -7
  544. data/lib/datadog/tracing/contrib/action_view/events/render_template.rb +12 -9
  545. data/lib/datadog/tracing/contrib/action_view/events.rb +2 -2
  546. data/lib/datadog/tracing/contrib/action_view/ext.rb +10 -10
  547. data/lib/datadog/tracing/contrib/action_view/integration.rb +14 -11
  548. data/lib/datadog/tracing/contrib/action_view/patcher.rb +5 -5
  549. data/lib/datadog/tracing/contrib/action_view/utils.rb +2 -2
  550. data/lib/datadog/tracing/contrib/active_job/configuration/settings.rb +2 -2
  551. data/lib/datadog/tracing/contrib/active_job/data_streams.rb +62 -0
  552. data/lib/datadog/tracing/contrib/active_job/event.rb +11 -11
  553. data/lib/datadog/tracing/contrib/active_job/events/discard.rb +11 -8
  554. data/lib/datadog/tracing/contrib/active_job/events/enqueue.rb +11 -8
  555. data/lib/datadog/tracing/contrib/active_job/events/enqueue_at.rb +11 -8
  556. data/lib/datadog/tracing/contrib/active_job/events/enqueue_retry.rb +11 -8
  557. data/lib/datadog/tracing/contrib/active_job/events/perform.rb +11 -8
  558. data/lib/datadog/tracing/contrib/active_job/events/retry_stopped.rb +11 -8
  559. data/lib/datadog/tracing/contrib/active_job/events.rb +6 -6
  560. data/lib/datadog/tracing/contrib/active_job/ext.rb +23 -23
  561. data/lib/datadog/tracing/contrib/active_job/integration.rb +10 -7
  562. data/lib/datadog/tracing/contrib/active_job/log_injection.rb +21 -7
  563. data/lib/datadog/tracing/contrib/active_job/patcher.rb +21 -5
  564. data/lib/datadog/tracing/contrib/active_model_serializers/configuration/settings.rb +2 -2
  565. data/lib/datadog/tracing/contrib/active_model_serializers/event.rb +4 -4
  566. data/lib/datadog/tracing/contrib/active_model_serializers/events/render.rb +8 -8
  567. data/lib/datadog/tracing/contrib/active_model_serializers/events/serialize.rb +9 -10
  568. data/lib/datadog/tracing/contrib/active_model_serializers/events.rb +2 -2
  569. data/lib/datadog/tracing/contrib/active_model_serializers/ext.rb +10 -10
  570. data/lib/datadog/tracing/contrib/active_model_serializers/integration.rb +5 -6
  571. data/lib/datadog/tracing/contrib/active_model_serializers/patcher.rb +3 -3
  572. data/lib/datadog/tracing/contrib/active_record/configuration/makara_resolver.rb +1 -1
  573. data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +8 -8
  574. data/lib/datadog/tracing/contrib/active_record/configuration/settings.rb +4 -4
  575. data/lib/datadog/tracing/contrib/active_record/event.rb +1 -1
  576. data/lib/datadog/tracing/contrib/active_record/events/instantiation.rb +10 -10
  577. data/lib/datadog/tracing/contrib/active_record/events/sql.rb +16 -19
  578. data/lib/datadog/tracing/contrib/active_record/events.rb +2 -2
  579. data/lib/datadog/tracing/contrib/active_record/ext.rb +15 -15
  580. data/lib/datadog/tracing/contrib/active_record/integration.rb +16 -12
  581. data/lib/datadog/tracing/contrib/active_record/patcher.rb +2 -2
  582. data/lib/datadog/tracing/contrib/active_record/utils.rb +19 -19
  583. data/lib/datadog/tracing/contrib/active_support/cache/event.rb +1 -1
  584. data/lib/datadog/tracing/contrib/active_support/cache/events/cache.rb +28 -20
  585. data/lib/datadog/tracing/contrib/active_support/cache/events.rb +1 -1
  586. data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +40 -8
  587. data/lib/datadog/tracing/contrib/active_support/cache/patcher.rb +8 -4
  588. data/lib/datadog/tracing/contrib/active_support/cache/redis.rb +5 -7
  589. data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +26 -3
  590. data/lib/datadog/tracing/contrib/active_support/ext.rb +16 -16
  591. data/lib/datadog/tracing/contrib/active_support/integration.rb +11 -8
  592. data/lib/datadog/tracing/contrib/active_support/notifications/event.rb +3 -2
  593. data/lib/datadog/tracing/contrib/active_support/notifications/subscriber.rb +2 -2
  594. data/lib/datadog/tracing/contrib/active_support/notifications/subscription.rb +9 -11
  595. data/lib/datadog/tracing/contrib/active_support/patcher.rb +2 -2
  596. data/lib/datadog/tracing/contrib/analytics.rb +1 -1
  597. data/lib/datadog/tracing/contrib/auto_instrument.rb +5 -5
  598. data/lib/datadog/tracing/contrib/aws/configuration/settings.rb +3 -3
  599. data/lib/datadog/tracing/contrib/aws/ext.rb +26 -26
  600. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +21 -13
  601. data/lib/datadog/tracing/contrib/aws/integration.rb +11 -8
  602. data/lib/datadog/tracing/contrib/aws/parsed_context.rb +9 -3
  603. data/lib/datadog/tracing/contrib/aws/patcher.rb +10 -6
  604. data/lib/datadog/tracing/contrib/aws/service/base.rb +2 -1
  605. data/lib/datadog/tracing/contrib/aws/service/dynamodb.rb +2 -2
  606. data/lib/datadog/tracing/contrib/aws/service/eventbridge.rb +2 -2
  607. data/lib/datadog/tracing/contrib/aws/service/kinesis.rb +4 -4
  608. data/lib/datadog/tracing/contrib/aws/service/s3.rb +2 -2
  609. data/lib/datadog/tracing/contrib/aws/service/sns.rb +3 -3
  610. data/lib/datadog/tracing/contrib/aws/service/sqs.rb +3 -3
  611. data/lib/datadog/tracing/contrib/aws/service/states.rb +5 -5
  612. data/lib/datadog/tracing/contrib/aws/services.rb +14 -14
  613. data/lib/datadog/tracing/contrib/component.rb +3 -3
  614. data/lib/datadog/tracing/contrib/concurrent_ruby/async_patch.rb +2 -2
  615. data/lib/datadog/tracing/contrib/concurrent_ruby/configuration/settings.rb +2 -2
  616. data/lib/datadog/tracing/contrib/concurrent_ruby/context_composite_executor_service.rb +2 -2
  617. data/lib/datadog/tracing/contrib/concurrent_ruby/ext.rb +2 -2
  618. data/lib/datadog/tracing/contrib/concurrent_ruby/future_patch.rb +2 -2
  619. data/lib/datadog/tracing/contrib/concurrent_ruby/integration.rb +8 -5
  620. data/lib/datadog/tracing/contrib/concurrent_ruby/patcher.rb +4 -4
  621. data/lib/datadog/tracing/contrib/concurrent_ruby/promises_future_patch.rb +2 -2
  622. data/lib/datadog/tracing/contrib/configurable.rb +24 -9
  623. data/lib/datadog/tracing/contrib/configuration/resolver.rb +14 -4
  624. data/lib/datadog/tracing/contrib/configuration/resolvers/pattern_resolver.rb +5 -5
  625. data/lib/datadog/tracing/contrib/configuration/settings.rb +3 -3
  626. data/lib/datadog/tracing/contrib/dalli/configuration/settings.rb +2 -2
  627. data/lib/datadog/tracing/contrib/dalli/ext.rb +16 -15
  628. data/lib/datadog/tracing/contrib/dalli/instrumentation.rb +6 -10
  629. data/lib/datadog/tracing/contrib/dalli/integration.rb +10 -7
  630. data/lib/datadog/tracing/contrib/dalli/patcher.rb +3 -3
  631. data/lib/datadog/tracing/contrib/dalli/quantize.rb +3 -3
  632. data/lib/datadog/tracing/contrib/delayed_job/configuration/settings.rb +2 -2
  633. data/lib/datadog/tracing/contrib/delayed_job/ext.rb +14 -14
  634. data/lib/datadog/tracing/contrib/delayed_job/integration.rb +5 -5
  635. data/lib/datadog/tracing/contrib/delayed_job/patcher.rb +3 -3
  636. data/lib/datadog/tracing/contrib/delayed_job/plugin.rb +7 -5
  637. data/lib/datadog/tracing/contrib/delayed_job/server_internal_tracer/worker.rb +1 -0
  638. data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +2 -2
  639. data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +18 -17
  640. data/lib/datadog/tracing/contrib/elasticsearch/integration.rb +8 -8
  641. data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +57 -63
  642. data/lib/datadog/tracing/contrib/elasticsearch/quantize.rb +8 -8
  643. data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +7 -3
  644. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +19 -21
  645. data/lib/datadog/tracing/contrib/ethon/ext.rb +16 -14
  646. data/lib/datadog/tracing/contrib/ethon/integration.rb +6 -6
  647. data/lib/datadog/tracing/contrib/ethon/multi_patch.rb +4 -11
  648. data/lib/datadog/tracing/contrib/ethon/patcher.rb +3 -3
  649. data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +21 -10
  650. data/lib/datadog/tracing/contrib/excon/ext.rb +14 -12
  651. data/lib/datadog/tracing/contrib/excon/integration.rb +6 -6
  652. data/lib/datadog/tracing/contrib/excon/middleware.rb +17 -19
  653. data/lib/datadog/tracing/contrib/excon/patcher.rb +2 -2
  654. data/lib/datadog/tracing/contrib/ext.rb +20 -17
  655. data/lib/datadog/tracing/contrib/extensions.rb +57 -14
  656. data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +20 -13
  657. data/lib/datadog/tracing/contrib/faraday/ext.rb +14 -12
  658. data/lib/datadog/tracing/contrib/faraday/integration.rb +6 -6
  659. data/lib/datadog/tracing/contrib/faraday/middleware.rb +19 -19
  660. data/lib/datadog/tracing/contrib/faraday/patcher.rb +6 -6
  661. data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +11 -7
  662. data/lib/datadog/tracing/contrib/grape/endpoint.rb +37 -34
  663. data/lib/datadog/tracing/contrib/grape/ext.rb +15 -15
  664. data/lib/datadog/tracing/contrib/grape/instrumentation.rb +15 -10
  665. data/lib/datadog/tracing/contrib/grape/integration.rb +5 -5
  666. data/lib/datadog/tracing/contrib/grape/patcher.rb +10 -5
  667. data/lib/datadog/tracing/contrib/graphql/configuration/error_extension_env_parser.rb +21 -0
  668. data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +20 -2
  669. data/lib/datadog/tracing/contrib/graphql/ext.rb +11 -5
  670. data/lib/datadog/tracing/contrib/graphql/integration.rb +9 -9
  671. data/lib/datadog/tracing/contrib/graphql/patcher.rb +8 -8
  672. data/lib/datadog/tracing/contrib/graphql/unified_trace.rb +174 -41
  673. data/lib/datadog/tracing/contrib/graphql/unified_trace_patcher.rb +2 -2
  674. data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +7 -4
  675. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +25 -23
  676. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +13 -17
  677. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor.rb +6 -6
  678. data/lib/datadog/tracing/contrib/grpc/distributed/fetcher.rb +2 -2
  679. data/lib/datadog/tracing/contrib/grpc/distributed/propagation.rb +12 -7
  680. data/lib/datadog/tracing/contrib/grpc/ext.rb +14 -13
  681. data/lib/datadog/tracing/contrib/grpc/formatting.rb +7 -7
  682. data/lib/datadog/tracing/contrib/grpc/integration.rb +5 -5
  683. data/lib/datadog/tracing/contrib/grpc/intercept_with_datadog.rb +1 -1
  684. data/lib/datadog/tracing/contrib/grpc/patcher.rb +3 -3
  685. data/lib/datadog/tracing/contrib/grpc.rb +7 -6
  686. data/lib/datadog/tracing/contrib/hanami/action_tracer.rb +4 -3
  687. data/lib/datadog/tracing/contrib/hanami/configuration/settings.rb +2 -2
  688. data/lib/datadog/tracing/contrib/hanami/ext.rb +8 -8
  689. data/lib/datadog/tracing/contrib/hanami/integration.rb +6 -6
  690. data/lib/datadog/tracing/contrib/hanami/patcher.rb +5 -5
  691. data/lib/datadog/tracing/contrib/hanami/renderer_policy_tracing.rb +5 -4
  692. data/lib/datadog/tracing/contrib/hanami/router_tracing.rb +12 -13
  693. data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +1 -16
  694. data/lib/datadog/tracing/contrib/http/configuration/settings.rb +20 -9
  695. data/lib/datadog/tracing/contrib/http/distributed/fetcher.rb +6 -6
  696. data/lib/datadog/tracing/contrib/http/distributed/propagation.rb +13 -8
  697. data/lib/datadog/tracing/contrib/http/ext.rb +14 -12
  698. data/lib/datadog/tracing/contrib/http/instrumentation.rb +20 -28
  699. data/lib/datadog/tracing/contrib/http/integration.rb +9 -8
  700. data/lib/datadog/tracing/contrib/http/patcher.rb +3 -3
  701. data/lib/datadog/tracing/contrib/http.rb +7 -6
  702. data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +20 -9
  703. data/lib/datadog/tracing/contrib/httpclient/ext.rb +14 -12
  704. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +21 -31
  705. data/lib/datadog/tracing/contrib/httpclient/integration.rb +6 -6
  706. data/lib/datadog/tracing/contrib/httpclient/patcher.rb +3 -3
  707. data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +20 -9
  708. data/lib/datadog/tracing/contrib/httprb/ext.rb +14 -12
  709. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +20 -32
  710. data/lib/datadog/tracing/contrib/httprb/integration.rb +9 -6
  711. data/lib/datadog/tracing/contrib/httprb/patcher.rb +3 -3
  712. data/lib/datadog/tracing/contrib/integration.rb +3 -3
  713. data/lib/datadog/tracing/contrib/kafka/configuration/settings.rb +2 -2
  714. data/lib/datadog/tracing/contrib/kafka/event.rb +5 -4
  715. data/lib/datadog/tracing/contrib/kafka/events/connection/request.rb +4 -4
  716. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_batch.rb +5 -5
  717. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_message.rb +5 -5
  718. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/heartbeat.rb +6 -6
  719. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/join_group.rb +6 -6
  720. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/leave_group.rb +6 -6
  721. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/sync_group.rb +6 -6
  722. data/lib/datadog/tracing/contrib/kafka/events/produce_operation/send_messages.rb +4 -4
  723. data/lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb +4 -4
  724. data/lib/datadog/tracing/contrib/kafka/events.rb +9 -9
  725. data/lib/datadog/tracing/contrib/kafka/ext.rb +40 -40
  726. data/lib/datadog/tracing/contrib/kafka/instrumentation/consumer.rb +66 -0
  727. data/lib/datadog/tracing/contrib/kafka/instrumentation/producer.rb +66 -0
  728. data/lib/datadog/tracing/contrib/kafka/integration.rb +8 -5
  729. data/lib/datadog/tracing/contrib/kafka/patcher.rb +17 -3
  730. data/lib/datadog/tracing/contrib/karafka/configuration/settings.rb +31 -0
  731. data/lib/datadog/tracing/contrib/karafka/distributed/propagation.rb +50 -0
  732. data/lib/datadog/tracing/contrib/karafka/ext.rb +28 -0
  733. data/lib/datadog/tracing/contrib/karafka/framework.rb +30 -0
  734. data/lib/datadog/tracing/contrib/karafka/integration.rb +45 -0
  735. data/lib/datadog/tracing/contrib/karafka/monitor.rb +77 -0
  736. data/lib/datadog/tracing/contrib/karafka/patcher.rb +102 -0
  737. data/lib/datadog/tracing/contrib/karafka.rb +38 -0
  738. data/lib/datadog/tracing/contrib/lograge/configuration/settings.rb +2 -2
  739. data/lib/datadog/tracing/contrib/lograge/ext.rb +1 -1
  740. data/lib/datadog/tracing/contrib/lograge/instrumentation.rb +1 -1
  741. data/lib/datadog/tracing/contrib/lograge/integration.rb +5 -5
  742. data/lib/datadog/tracing/contrib/lograge/patcher.rb +13 -11
  743. data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +11 -3
  744. data/lib/datadog/tracing/contrib/mongodb/ext.rb +19 -18
  745. data/lib/datadog/tracing/contrib/mongodb/instrumentation.rb +3 -3
  746. data/lib/datadog/tracing/contrib/mongodb/integration.rb +9 -6
  747. data/lib/datadog/tracing/contrib/mongodb/parsers.rb +10 -10
  748. data/lib/datadog/tracing/contrib/mongodb/patcher.rb +3 -3
  749. data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +38 -24
  750. data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +9 -3
  751. data/lib/datadog/tracing/contrib/mysql2/ext.rb +12 -12
  752. data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +25 -18
  753. data/lib/datadog/tracing/contrib/mysql2/integration.rb +5 -5
  754. data/lib/datadog/tracing/contrib/mysql2/patcher.rb +2 -2
  755. data/lib/datadog/tracing/contrib/opensearch/configuration/settings.rb +19 -2
  756. data/lib/datadog/tracing/contrib/opensearch/ext.rb +31 -21
  757. data/lib/datadog/tracing/contrib/opensearch/integration.rb +8 -6
  758. data/lib/datadog/tracing/contrib/opensearch/patcher.rb +75 -77
  759. data/lib/datadog/tracing/contrib/opensearch/quantize.rb +9 -9
  760. data/lib/datadog/tracing/contrib/patcher.rb +14 -13
  761. data/lib/datadog/tracing/contrib/pg/configuration/settings.rb +9 -3
  762. data/lib/datadog/tracing/contrib/pg/ext.rb +19 -19
  763. data/lib/datadog/tracing/contrib/pg/instrumentation.rb +21 -24
  764. data/lib/datadog/tracing/contrib/pg/integration.rb +5 -5
  765. data/lib/datadog/tracing/contrib/pg/patcher.rb +2 -2
  766. data/lib/datadog/tracing/contrib/presto/configuration/settings.rb +2 -2
  767. data/lib/datadog/tracing/contrib/presto/ext.rb +22 -22
  768. data/lib/datadog/tracing/contrib/presto/instrumentation.rb +11 -13
  769. data/lib/datadog/tracing/contrib/presto/integration.rb +8 -5
  770. data/lib/datadog/tracing/contrib/presto/patcher.rb +4 -4
  771. data/lib/datadog/tracing/contrib/propagation/sql_comment/comment.rb +2 -2
  772. data/lib/datadog/tracing/contrib/propagation/sql_comment/ext.rb +26 -13
  773. data/lib/datadog/tracing/contrib/propagation/sql_comment/mode.rb +7 -3
  774. data/lib/datadog/tracing/contrib/propagation/sql_comment.rb +29 -5
  775. data/lib/datadog/tracing/contrib/que/configuration/settings.rb +7 -4
  776. data/lib/datadog/tracing/contrib/que/ext.rb +19 -18
  777. data/lib/datadog/tracing/contrib/que/integration.rb +6 -6
  778. data/lib/datadog/tracing/contrib/que/patcher.rb +1 -1
  779. data/lib/datadog/tracing/contrib/que/tracer.rb +2 -1
  780. data/lib/datadog/tracing/contrib/racecar/configuration/settings.rb +3 -3
  781. data/lib/datadog/tracing/contrib/racecar/event.rb +6 -10
  782. data/lib/datadog/tracing/contrib/racecar/events/batch.rb +5 -5
  783. data/lib/datadog/tracing/contrib/racecar/events/consume.rb +4 -4
  784. data/lib/datadog/tracing/contrib/racecar/events/message.rb +5 -5
  785. data/lib/datadog/tracing/contrib/racecar/events.rb +3 -3
  786. data/lib/datadog/tracing/contrib/racecar/ext.rb +18 -18
  787. data/lib/datadog/tracing/contrib/racecar/integration.rb +5 -5
  788. data/lib/datadog/tracing/contrib/racecar/patcher.rb +3 -3
  789. data/lib/datadog/tracing/contrib/rack/configuration/settings.rb +13 -3
  790. data/lib/datadog/tracing/contrib/rack/ext.rb +43 -15
  791. data/lib/datadog/tracing/contrib/rack/header_collection.rb +13 -3
  792. data/lib/datadog/tracing/contrib/rack/header_tagging.rb +55 -32
  793. data/lib/datadog/tracing/contrib/rack/integration.rb +7 -7
  794. data/lib/datadog/tracing/contrib/rack/middlewares.rb +102 -63
  795. data/lib/datadog/tracing/contrib/rack/patcher.rb +5 -5
  796. data/lib/datadog/tracing/contrib/rack/request_queue.rb +8 -7
  797. data/lib/datadog/tracing/contrib/rack/route_inference.rb +67 -0
  798. data/lib/datadog/tracing/contrib/rack/trace_proxy_middleware.rb +130 -6
  799. data/lib/datadog/tracing/contrib/rails/auto_instrument_railtie.rb +1 -1
  800. data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +9 -6
  801. data/lib/datadog/tracing/contrib/rails/ext.rb +16 -14
  802. data/lib/datadog/tracing/contrib/rails/framework.rb +12 -12
  803. data/lib/datadog/tracing/contrib/rails/integration.rb +6 -6
  804. data/lib/datadog/tracing/contrib/rails/log_injection.rb +2 -2
  805. data/lib/datadog/tracing/contrib/rails/middlewares.rb +4 -4
  806. data/lib/datadog/tracing/contrib/rails/patcher.rb +11 -9
  807. data/lib/datadog/tracing/contrib/rails/railtie.rb +4 -4
  808. data/lib/datadog/tracing/contrib/rails/runner.rb +64 -40
  809. data/lib/datadog/tracing/contrib/rake/configuration/settings.rb +3 -3
  810. data/lib/datadog/tracing/contrib/rake/ext.rb +12 -12
  811. data/lib/datadog/tracing/contrib/rake/instrumentation.rb +13 -11
  812. data/lib/datadog/tracing/contrib/rake/integration.rb +5 -5
  813. data/lib/datadog/tracing/contrib/rake/patcher.rb +3 -3
  814. data/lib/datadog/tracing/contrib/redis/configuration/resolver.rb +4 -4
  815. data/lib/datadog/tracing/contrib/redis/configuration/settings.rb +2 -2
  816. data/lib/datadog/tracing/contrib/redis/ext.rb +19 -18
  817. data/lib/datadog/tracing/contrib/redis/instrumentation.rb +6 -6
  818. data/lib/datadog/tracing/contrib/redis/integration.rb +7 -7
  819. data/lib/datadog/tracing/contrib/redis/patcher.rb +12 -12
  820. data/lib/datadog/tracing/contrib/redis/quantize.rb +6 -6
  821. data/lib/datadog/tracing/contrib/redis/tags.rb +7 -12
  822. data/lib/datadog/tracing/contrib/redis/trace_middleware.rb +11 -9
  823. data/lib/datadog/tracing/contrib/registerable.rb +11 -0
  824. data/lib/datadog/tracing/contrib/registry.rb +1 -1
  825. data/lib/datadog/tracing/contrib/resque/configuration/settings.rb +2 -2
  826. data/lib/datadog/tracing/contrib/resque/ext.rb +7 -7
  827. data/lib/datadog/tracing/contrib/resque/integration.rb +5 -5
  828. data/lib/datadog/tracing/contrib/resque/patcher.rb +3 -3
  829. data/lib/datadog/tracing/contrib/resque/resque_job.rb +7 -6
  830. data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +7 -4
  831. data/lib/datadog/tracing/contrib/rest_client/ext.rb +13 -11
  832. data/lib/datadog/tracing/contrib/rest_client/integration.rb +8 -5
  833. data/lib/datadog/tracing/contrib/rest_client/patcher.rb +2 -2
  834. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +18 -17
  835. data/lib/datadog/tracing/contrib/roda/configuration/settings.rb +2 -2
  836. data/lib/datadog/tracing/contrib/roda/ext.rb +6 -5
  837. data/lib/datadog/tracing/contrib/roda/instrumentation.rb +12 -7
  838. data/lib/datadog/tracing/contrib/roda/integration.rb +6 -6
  839. data/lib/datadog/tracing/contrib/roda/patcher.rb +3 -3
  840. data/lib/datadog/tracing/contrib/semantic_logger/configuration/settings.rb +2 -2
  841. data/lib/datadog/tracing/contrib/semantic_logger/ext.rb +1 -1
  842. data/lib/datadog/tracing/contrib/semantic_logger/instrumentation.rb +1 -1
  843. data/lib/datadog/tracing/contrib/semantic_logger/integration.rb +5 -5
  844. data/lib/datadog/tracing/contrib/semantic_logger/patcher.rb +2 -2
  845. data/lib/datadog/tracing/contrib/sequel/configuration/settings.rb +2 -2
  846. data/lib/datadog/tracing/contrib/sequel/database.rb +12 -11
  847. data/lib/datadog/tracing/contrib/sequel/dataset.rb +7 -6
  848. data/lib/datadog/tracing/contrib/sequel/ext.rb +12 -8
  849. data/lib/datadog/tracing/contrib/sequel/integration.rb +5 -5
  850. data/lib/datadog/tracing/contrib/sequel/patcher.rb +3 -3
  851. data/lib/datadog/tracing/contrib/sequel/utils.rb +115 -15
  852. data/lib/datadog/tracing/contrib/shoryuken/configuration/settings.rb +2 -2
  853. data/lib/datadog/tracing/contrib/shoryuken/ext.rb +12 -12
  854. data/lib/datadog/tracing/contrib/shoryuken/integration.rb +6 -6
  855. data/lib/datadog/tracing/contrib/shoryuken/patcher.rb +1 -1
  856. data/lib/datadog/tracing/contrib/shoryuken/tracer.rb +3 -2
  857. data/lib/datadog/tracing/contrib/sidekiq/client_tracer.rb +15 -9
  858. data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +7 -3
  859. data/lib/datadog/tracing/contrib/sidekiq/distributed/propagation.rb +13 -8
  860. data/lib/datadog/tracing/contrib/sidekiq/ext.rb +31 -29
  861. data/lib/datadog/tracing/contrib/sidekiq/integration.rb +7 -7
  862. data/lib/datadog/tracing/contrib/sidekiq/patcher.rb +8 -8
  863. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/heartbeat.rb +2 -0
  864. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/job_fetch.rb +1 -0
  865. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/redis_info.rb +1 -0
  866. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/scheduled_poller.rb +2 -0
  867. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/stop.rb +1 -0
  868. data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +19 -15
  869. data/lib/datadog/tracing/contrib/sidekiq/utils.rb +10 -10
  870. data/lib/datadog/tracing/contrib/sidekiq.rb +7 -6
  871. data/lib/datadog/tracing/contrib/sinatra/configuration/settings.rb +7 -3
  872. data/lib/datadog/tracing/contrib/sinatra/env.rb +6 -6
  873. data/lib/datadog/tracing/contrib/sinatra/ext.rb +17 -16
  874. data/lib/datadog/tracing/contrib/sinatra/framework.rb +2 -2
  875. data/lib/datadog/tracing/contrib/sinatra/integration.rb +5 -5
  876. data/lib/datadog/tracing/contrib/sinatra/patcher.rb +5 -5
  877. data/lib/datadog/tracing/contrib/sinatra/tracer.rb +11 -10
  878. data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +46 -45
  879. data/lib/datadog/tracing/contrib/sneakers/configuration/settings.rb +1 -1
  880. data/lib/datadog/tracing/contrib/sneakers/ext.rb +12 -12
  881. data/lib/datadog/tracing/contrib/sneakers/integration.rb +19 -8
  882. data/lib/datadog/tracing/contrib/sneakers/patcher.rb +2 -2
  883. data/lib/datadog/tracing/contrib/sneakers/tracer.rb +4 -3
  884. data/lib/datadog/tracing/contrib/span_attribute_schema.rb +9 -4
  885. data/lib/datadog/tracing/contrib/status_range_env_parser.rb +2 -2
  886. data/lib/datadog/tracing/contrib/status_range_matcher.rb +13 -1
  887. data/lib/datadog/tracing/contrib/stripe/configuration/settings.rb +2 -2
  888. data/lib/datadog/tracing/contrib/stripe/ext.rb +12 -12
  889. data/lib/datadog/tracing/contrib/stripe/integration.rb +5 -5
  890. data/lib/datadog/tracing/contrib/stripe/patcher.rb +2 -2
  891. data/lib/datadog/tracing/contrib/stripe/request.rb +5 -5
  892. data/lib/datadog/tracing/contrib/sucker_punch/configuration/settings.rb +2 -2
  893. data/lib/datadog/tracing/contrib/sucker_punch/exception_handler.rb +1 -1
  894. data/lib/datadog/tracing/contrib/sucker_punch/ext.rb +13 -13
  895. data/lib/datadog/tracing/contrib/sucker_punch/instrumentation.rb +5 -4
  896. data/lib/datadog/tracing/contrib/sucker_punch/integration.rb +5 -5
  897. data/lib/datadog/tracing/contrib/sucker_punch/patcher.rb +4 -4
  898. data/lib/datadog/tracing/contrib/support.rb +28 -0
  899. data/lib/datadog/tracing/contrib/trilogy/configuration/settings.rb +9 -3
  900. data/lib/datadog/tracing/contrib/trilogy/ext.rb +12 -12
  901. data/lib/datadog/tracing/contrib/trilogy/instrumentation.rb +10 -12
  902. data/lib/datadog/tracing/contrib/trilogy/integration.rb +5 -5
  903. data/lib/datadog/tracing/contrib/trilogy/patcher.rb +2 -2
  904. data/lib/datadog/tracing/contrib/utils/database.rb +5 -5
  905. data/lib/datadog/tracing/contrib/utils/quantization/{hash.rb → hash_formatter.rb} +16 -14
  906. data/lib/datadog/tracing/contrib/utils/quantization/http.rb +16 -16
  907. data/lib/datadog/tracing/contrib/waterdrop/configuration/settings.rb +31 -0
  908. data/lib/datadog/tracing/contrib/waterdrop/distributed/propagation.rb +50 -0
  909. data/lib/datadog/tracing/contrib/waterdrop/ext.rb +18 -0
  910. data/lib/datadog/tracing/contrib/waterdrop/integration.rb +43 -0
  911. data/lib/datadog/tracing/contrib/waterdrop/middleware.rb +46 -0
  912. data/lib/datadog/tracing/contrib/waterdrop/patcher.rb +49 -0
  913. data/lib/datadog/tracing/contrib/waterdrop/producer.rb +50 -0
  914. data/lib/datadog/tracing/contrib/waterdrop.rb +42 -0
  915. data/lib/datadog/tracing/contrib.rb +62 -52
  916. data/lib/datadog/tracing/correlation.rb +19 -12
  917. data/lib/datadog/tracing/diagnostics/environment_logger.rb +21 -13
  918. data/lib/datadog/tracing/diagnostics/ext.rb +19 -19
  919. data/lib/datadog/tracing/diagnostics/health.rb +1 -1
  920. data/lib/datadog/tracing/distributed/b3_multi.rb +9 -9
  921. data/lib/datadog/tracing/distributed/b3_single.rb +6 -6
  922. data/lib/datadog/tracing/distributed/baggage.rb +252 -0
  923. data/lib/datadog/tracing/distributed/datadog.rb +39 -36
  924. data/lib/datadog/tracing/distributed/datadog_tags_codec.rb +12 -27
  925. data/lib/datadog/tracing/distributed/fetcher.rb +1 -1
  926. data/lib/datadog/tracing/distributed/helpers.rb +4 -4
  927. data/lib/datadog/tracing/distributed/none.rb +4 -2
  928. data/lib/datadog/tracing/distributed/propagation.rb +70 -14
  929. data/lib/datadog/tracing/distributed/propagation_policy.rb +42 -0
  930. data/lib/datadog/tracing/distributed/trace_context.rb +126 -97
  931. data/lib/datadog/tracing/event.rb +6 -8
  932. data/lib/datadog/tracing/ext.rb +9 -0
  933. data/lib/datadog/tracing/flush.rb +1 -1
  934. data/lib/datadog/tracing/metadata/analytics.rb +3 -3
  935. data/lib/datadog/tracing/metadata/errors.rb +8 -8
  936. data/lib/datadog/tracing/metadata/ext.rb +86 -59
  937. data/lib/datadog/tracing/metadata/metastruct.rb +36 -0
  938. data/lib/datadog/tracing/metadata/metastruct_tagging.rb +42 -0
  939. data/lib/datadog/tracing/metadata/tagging.rb +8 -8
  940. data/lib/datadog/tracing/metadata.rb +5 -3
  941. data/lib/datadog/tracing/pipeline/span_filter.rb +5 -3
  942. data/lib/datadog/tracing/pipeline/span_processor.rb +3 -1
  943. data/lib/datadog/tracing/pipeline.rb +4 -4
  944. data/lib/datadog/tracing/remote.rb +47 -17
  945. data/lib/datadog/tracing/sampling/all_sampler.rb +1 -1
  946. data/lib/datadog/tracing/sampling/ext.rb +9 -9
  947. data/lib/datadog/tracing/sampling/matcher.rb +4 -4
  948. data/lib/datadog/tracing/sampling/priority_sampler.rb +20 -5
  949. data/lib/datadog/tracing/sampling/rate_by_key_sampler.rb +3 -3
  950. data/lib/datadog/tracing/sampling/rate_by_service_sampler.rb +2 -2
  951. data/lib/datadog/tracing/sampling/rate_sampler.rb +9 -19
  952. data/lib/datadog/tracing/sampling/rule.rb +5 -5
  953. data/lib/datadog/tracing/sampling/rule_sampler.rb +88 -59
  954. data/lib/datadog/tracing/sampling/sampler.rb +2 -2
  955. data/lib/datadog/tracing/sampling/span/ext.rb +3 -3
  956. data/lib/datadog/tracing/sampling/span/matcher.rb +2 -2
  957. data/lib/datadog/tracing/sampling/span/rule.rb +1 -2
  958. data/lib/datadog/tracing/sampling/span/rule_parser.rb +11 -11
  959. data/lib/datadog/tracing/sampling/span/sampler.rb +0 -7
  960. data/lib/datadog/tracing/span.rb +28 -11
  961. data/lib/datadog/tracing/span_event.rb +125 -5
  962. data/lib/datadog/tracing/span_link.rb +12 -12
  963. data/lib/datadog/tracing/span_operation.rb +119 -39
  964. data/lib/datadog/tracing/sync_writer.rb +14 -11
  965. data/lib/datadog/tracing/trace_digest.rb +36 -24
  966. data/lib/datadog/tracing/trace_operation.rb +243 -112
  967. data/lib/datadog/tracing/trace_segment.rb +18 -16
  968. data/lib/datadog/tracing/tracer.rb +181 -72
  969. data/lib/datadog/tracing/transport/http/client.rb +17 -30
  970. data/lib/datadog/tracing/transport/http/statistics.rb +2 -2
  971. data/lib/datadog/tracing/transport/http/traces.rb +11 -90
  972. data/lib/datadog/tracing/transport/http.rb +26 -77
  973. data/lib/datadog/tracing/transport/io/client.rb +13 -16
  974. data/lib/datadog/tracing/transport/io/response.rb +1 -1
  975. data/lib/datadog/tracing/transport/io/traces.rb +32 -38
  976. data/lib/datadog/tracing/transport/io.rb +3 -3
  977. data/lib/datadog/tracing/transport/serializable_trace.rb +47 -23
  978. data/lib/datadog/tracing/transport/statistics.rb +3 -3
  979. data/lib/datadog/tracing/transport/trace_formatter.rb +36 -7
  980. data/lib/datadog/tracing/transport/traces.rb +56 -90
  981. data/lib/datadog/tracing/utils.rb +3 -3
  982. data/lib/datadog/tracing/workers.rb +11 -9
  983. data/lib/datadog/tracing/writer.rb +15 -11
  984. data/lib/datadog/tracing.rb +19 -6
  985. data/lib/datadog/version.rb +4 -4
  986. data/lib/datadog.rb +20 -7
  987. metadata +327 -69
  988. data/ext/datadog_profiling_loader/datadog_profiling_loader.c +0 -142
  989. data/ext/datadog_profiling_loader/extconf.rb +0 -60
  990. data/ext/datadog_profiling_native_extension/clock_id_noop.c +0 -21
  991. data/ext/libdatadog_api/macos_development.md +0 -26
  992. data/lib/datadog/appsec/assets/waf_rules/processors.json +0 -92
  993. data/lib/datadog/appsec/assets/waf_rules/scanners.json +0 -114
  994. data/lib/datadog/appsec/configuration/settings.rb +0 -215
  995. data/lib/datadog/appsec/contrib/devise/event.rb +0 -57
  996. data/lib/datadog/appsec/contrib/devise/patcher/authenticatable_patch.rb +0 -77
  997. data/lib/datadog/appsec/contrib/devise/patcher/registration_controller_patch.rb +0 -54
  998. data/lib/datadog/appsec/contrib/devise/resource.rb +0 -35
  999. data/lib/datadog/appsec/contrib/devise/tracking.rb +0 -57
  1000. data/lib/datadog/appsec/contrib/graphql/reactive/multiplex.rb +0 -46
  1001. data/lib/datadog/appsec/contrib/patcher.rb +0 -12
  1002. data/lib/datadog/appsec/contrib/rack/reactive/request.rb +0 -69
  1003. data/lib/datadog/appsec/contrib/rack/reactive/request_body.rb +0 -47
  1004. data/lib/datadog/appsec/contrib/rack/reactive/response.rb +0 -53
  1005. data/lib/datadog/appsec/contrib/rails/ext.rb +0 -13
  1006. data/lib/datadog/appsec/contrib/rails/reactive/action.rb +0 -53
  1007. data/lib/datadog/appsec/contrib/sinatra/ext.rb +0 -14
  1008. data/lib/datadog/appsec/contrib/sinatra/reactive/routed.rb +0 -48
  1009. data/lib/datadog/appsec/monitor/reactive/set_user.rb +0 -45
  1010. data/lib/datadog/appsec/processor/context.rb +0 -107
  1011. data/lib/datadog/appsec/processor/rule_merger.rb +0 -170
  1012. data/lib/datadog/appsec/processor.rb +0 -106
  1013. data/lib/datadog/appsec/reactive/address_hash.rb +0 -22
  1014. data/lib/datadog/appsec/reactive/engine.rb +0 -47
  1015. data/lib/datadog/appsec/reactive/operation.rb +0 -68
  1016. data/lib/datadog/appsec/reactive/subscriber.rb +0 -19
  1017. data/lib/datadog/appsec/scope.rb +0 -58
  1018. data/lib/datadog/appsec/utils/trace_operation.rb +0 -15
  1019. data/lib/datadog/core/crashtracking/agent_base_url.rb +0 -21
  1020. data/lib/datadog/core/remote/transport/http/api/instance.rb +0 -39
  1021. data/lib/datadog/core/remote/transport/http/api/spec.rb +0 -21
  1022. data/lib/datadog/core/remote/transport/http/api.rb +0 -58
  1023. data/lib/datadog/core/remote/transport/http/builder.rb +0 -219
  1024. data/lib/datadog/core/remote/transport/http/client.rb +0 -48
  1025. data/lib/datadog/core/telemetry/http/env.rb +0 -20
  1026. data/lib/datadog/core/telemetry/http/ext.rb +0 -28
  1027. data/lib/datadog/core/telemetry/http/response.rb +0 -70
  1028. data/lib/datadog/core/telemetry/http/transport.rb +0 -90
  1029. data/lib/datadog/core/utils/base64.rb +0 -22
  1030. data/lib/datadog/di/configuration/settings.rb +0 -188
  1031. data/lib/datadog/di/transport.rb +0 -81
  1032. data/lib/datadog/tracing/contrib/rails/utils.rb +0 -26
  1033. data/lib/datadog/tracing/transport/http/api/spec.rb +0 -19
  1034. data/lib/datadog/tracing/transport/http/api.rb +0 -43
  1035. data/lib/datadog/tracing/workers/trace_writer.rb +0 -196
data/CHANGELOG.md CHANGED
@@ -2,6 +2,665 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [2.39.0] - 2026-07-22
6
+
7
+ ### Added
8
+
9
+ * Tracing: Integrations: Add database name and host to Sequel spans and infer `peer.service` so datastore dependencies appear in the service map. ([#6072][])
10
+
11
+ ### Fixed
12
+
13
+ * AppSec: Fix error in `devise` contrib for non-standard Warden session serialization. ([#6064][])
14
+ * Dynamic Instrumentation: Fix dynamic instrumentation line probes failing to install when dynamic instrumentation is enabled remotely after application startup. ([#6050][])
15
+ * Profiling: Fix crash when trying to sample during GC compaction ([#6056][])
16
+ * Tracing: Integrations: Fix an `ArgumentError` (and the resulting `Kafka::BufferOverflow`) raised by the Kafka producer integration on Ruby 2.5 and 2.6. ([#6060][])
17
+
18
+ ## [2.38.0] - 2026-07-16
19
+
20
+ ### Added
21
+
22
+ * Dynamic Instrumentation: Log probes now support capture expressions as an alternative to capturing the full local/argument scope ([#5845][])
23
+ * SSI: Add support for Ruby 4.0 runtime ([#5981][])
24
+ * SSI: Add support for Bundler 4.0 and RubyGems 4.0 ([#5981][])
25
+
26
+ ### Fixed
27
+
28
+ * AppSec: Fix Rack-based and Rails request body analysis when body parsing fails ([#5993][])
29
+ * Profiling: Add workaround for crash when collecting frame information ([#6014][])
30
+ * Profiling: Fix left-over state impacting samples when profiler gets stopped and started again ([#5960][])
31
+ * Profiling: Fix Ruby 4.0.6 support by bumping minimum version of `datadog-ruby_core_source` to 3.5.3 ([#6047][])
32
+ * Profiling: Disable live heap size profiling on Ruby 4.0 due to incompatibility ([#6022][])
33
+ * Profiling: Disallow heap profiling on Ruby 4.1+ ([#6023][])
34
+ * Tracing: Fix `pg` instrumentation which raised `ArgumentError` when calling `exec_params`, `exec_prepared` without a `params` argument, or their `async_`/`sync_` variants ([#6020][])
35
+
36
+ ## [2.37.0] - 2026-07-06
37
+
38
+ ### Added
39
+
40
+ * AppSec: Add sign-up event tracking to `Datadog::Kit::AppSec::Events::V2` ([#5973][])
41
+ * AppSec: Integrations: Add normalized HTTP route for API Security Testing ([#5834][])
42
+ * Dynamic Instrumentation: DI can now be enabled from the Datadog UI without setting `DD_DYNAMIC_INSTRUMENTATION_ENABLED` or restarting the application. Setting `DD_DYNAMIC_INSTRUMENTATION_ENABLED=false` explicitly still disables it and blocks UI-driven enablement ([#5525][])
43
+
44
+ ### Changed
45
+
46
+ * Profiling: Reduce profiler overhead by sampling profiler-internal threads only once per minute ([#5955][])
47
+ * Dynamic Instrumentation: Reject method probes that target `Kernel#lambda`, which cannot be safely instrumented ([#5954][])
48
+ * Dynamic Instrumentation: Reject method probes that target classes or modules in the Datadog namespace ([#5907][])
49
+ * Dynamic Instrumentation: Enable Symbol Database by default when Dynamic Instrumentation is enabled ([#5828][])
50
+
51
+ ### Fixed
52
+
53
+ * AppSec: AI Guard: Fix endpoint configuration via `DD_SITE` environment variable ([#5940][])
54
+ * AppSec: Fix API Security schema extraction timeout and telemetry ([#5975][])
55
+ * AppSec: Fix remote configuration errors when the ruleset name changes ([#5970][])
56
+ * AppSec: Integrations: Add configurable size limit for downstream HTTP request and response body analysis ([#5990][])
57
+ * AppSec: Integrations: Fix WAF analysis for requests with cached or parsed bodies in Rack and Sinatra ([#5991][])
58
+ * AppSec: Integrations: Fix an exception for unauthorized requests when using Devise with Rails. ([#5987][])
59
+ * Tracing: Fix a `SIGSEGV` crash that could happen with experimental heap profiling enabled on Ruby 4.0 ([#5938][]) ([@navidemad][])
60
+ * Dynamic Instrumentation: Normalize Rack CGI header prefix (`HTTP_<HEADER>`) in redactor so snapshot captures redact sensitive headers like their bare names ([#5911][])
61
+ * Dynamic Instrumentation: Symbol Database and DI background threads no longer stop when application code raises a non-StandardError during introspection ([#5945][])
62
+
63
+ ## [2.36.0] - 2026-06-24
64
+
65
+ ### Added
66
+
67
+ * Tracing: Add `DD_TRACE_PROPAGATION_BEHAVIOR_EXTRACT` to control trace extraction behavior with `continue`, `restart`, and `ignore` modes ([#5844][])
68
+ * AppSec: Add `DD_APPSEC_BODY_PARSING_SIZE_LIMIT` to control processing of request and response body size; set to 0 to disable ([#5877][])
69
+ * AppSec: Detect attacks from inline fragments in GraphQL queries ([#5916][])
70
+ * Dynamic Instrumentation: Show lazily loaded classes in UI ([#5697][])
71
+
72
+ ### Changed
73
+
74
+ * Dynamic Instrumentation: Reduce peak memory usage during Symbol Database extraction ([#5883][])
75
+ * Profiling: Reduce profiler overhead by up to 50% by skipping redundant samples for threads without the GVL ([#5777][])
76
+ * Profiling: Remove overhead when cleaning up dead threads ([#5816][])
77
+
78
+ ### Fixed
79
+
80
+ * Tracing: Workaround Ruby VM bug causing segmentation faults inside CachingResolver ([#5719][], [#5890][])
81
+ * Dynamic Instrumentation: Prevent uploading stale class definitions for apps using `remove_const`-then-redefine patterns ([#5872][])
82
+ * Profiling: Fix GC profiling being incorrectly disabled on Ruby 3.2.10 and 3.2.11 ([#5894][])
83
+ * Profiling: Fix over-counting of the first allocation sample at profiler startup ([#5881][])
84
+ * Profiling: Fix rare profiler crash during shutdown in heap profiling cleanup ([#5920][])
85
+ * Core: Fix exception message formatting from native extensions ([#5857][])
86
+
87
+ ## [2.35.0] - 2026-06-03
88
+
89
+ ### Added
90
+
91
+ * Tracing: Add `dynamic_service` SQL comment propagation mode for Database Monitoring ([#5812][])
92
+ * Tracing: Prevent Datadog-generated traffic from interfering with application metrics ([#5811][])
93
+
94
+ ### Changed
95
+
96
+ * AppSec: Improve route extraction performance for Rails applications ([#5836][])
97
+
98
+ ### Fixed
99
+
100
+ * Tracing: Restore `Datadog::Tracing::Contrib::Ext::Metadata::TAG_BASE_SERVICE` constant removed in v2.34.0 ([#5830][])
101
+
102
+ ### Removed
103
+
104
+ * Profiling: Deprecate the `profiling.advanced.timeline_enabled` setting for removal; it no longer does anything. Please remove it from `Datadog.configure` and do not set `DD_PROFILING_TIMELINE_ENABLED` ([#5750][])
105
+
106
+ ## [2.34.0] - 2026-05-27
107
+
108
+ ### Added
109
+
110
+ * Dynamic Instrumentation: Enable opt-in Symbol Database upload so Ruby services populate Live Debugger UI autocomplete when creating probes ([#5717][])
111
+ * Open Telemetry: Add OpenTelemetry logs support with OTLP export. Enable using `DD_LOGS_OTEL_ENABLED=true`; supports standard `OTEL_EXPORTER_OTLP_*` settings ([#5446][])
112
+
113
+ ### Fixed
114
+
115
+ * Core: Fix Remote configuration `TransportError` messages removing wrapper response object memory addresses ([#5762][])
116
+ * Core: Fix `TypeError` from `Process.spawn` when passing an environment Hash ([#5773][], [#5634][])
117
+ * AppSec: Prevent host application crashes when AppSec fails to initialize ([#5768][])
118
+ * Dynamic Instrumentation: Fix off-by-one in `max_capture_depth` so snapshots respect the configured nesting limit exactly ([#5753][])
119
+ * Dynamic Instrumentation: Improve line probes to match `sourceFile` case-insensitively and support Windows-style backslashes for correct installation ([#5754][])
120
+
121
+ ## [2.33.0] - 2026-05-13
122
+
123
+ ### Added
124
+
125
+ * AI Guard: Ensure client IP is always collected when AI Guard is enabled ([#5677][])
126
+ * AppSec: Add support for AWS Lambda ([#5663][])
127
+ * Tracing: Add inferred proxy spans for services behind AWS Gateway ([#5681][])
128
+ * Open Telemetry: Add support for `DD_HOSTNAME` to set trace hostname and OTel `host.name` when `DD_TRACE_REPORT_HOSTNAME` is enabled ([#5705][])
129
+
130
+ ### Changed
131
+
132
+ * Core: Collect all threads in crash reports to provide full thread context during crashes ([#5724][])
133
+ * Core: Update `libdatadog` dependency to version 33.0.0 ([#5723][])
134
+
135
+ ## [2.32.0] - 2026-05-08
136
+
137
+ ### Added
138
+
139
+ * Open Feature: Add flag evaluation metrics (`feature_flag.evaluations`) via OpenTelemetry for OpenFeature provider. ([#5599][])
140
+ * Profiling: Add metric for total time spent waiting for the GVL. ([#5569][])
141
+ * Dynamic Instrumentation: Live Debugger line probes can now target third-party and Ruby standard library code loaded before datadog gem is loaded. ([#5501][])
142
+
143
+ ### Changed
144
+
145
+ * Profiling: Print failure info when native extension setup fails ([#5657][])
146
+ * Tracing: Add parsing limits to `tracestate` and `traceparent` propagation headers and remove whitespace around list members. ([#5674][])
147
+ * Tracing: Limit extracted [baggage](https://www.w3.org/TR/2024/CR-baggage-20240530/) header parsing to 64 items and 8192 bytes. ([#5672][])
148
+
149
+ ### Fixed
150
+
151
+ * Tracing: Enforce `x-datadog-tags` propagation header size limits by byte size. ([#5687][])
152
+ * Tracing: Return empty baggage on invalid UTF-8 baggage extraction ([#5689][])
153
+
154
+ ## [2.31.0] - 2026-04-20
155
+
156
+ ### Added
157
+
158
+ * Core: Add `app-extended-heartbeat` telemetry event to resend full configuration every 24h for long-running services. ([#5531][])
159
+ * AI Guard: Add multi-model messages support to AI Guard, enabling text and image URL content parts in evaluation SDK ([#5564][])
160
+ * AI Guard: Add evaluation of images in user prompt and tool output for RubyLLM contrib. ([#5573][])
161
+ * AI Guard: Expose Sensitive Data Scanner findings in AI Guard results via `AIGuard::Evaluation::Result#sds_findings`. ([#5579][])
162
+ * AI Guard: Expose tag probabilities in AI Guard results via `AIGuard::Evaluation::Result#tag_probabilities`. ([#5580][])
163
+ * Tracing: Integrations: Add `rails.application` to the process tags. ([#5468][])
164
+ * Tracing: Report and display all configurations used by a service in the 'SDK & Agent Configurations' tab of a Ruby service page in Datadog UI ([#5483][])
165
+
166
+ ### Changed
167
+
168
+ * Core: Upgrade `libdatadog` dependency to version 30.0.0 ([#5574][])
169
+ * AI Guard: **Breaking change:** AIGuard.evaluate now defaults to `allow_raise: true`. Pass `allow_raise: false` to keep the previous non-raising behavior. ([#5587][])
170
+ * Dynamic Instrumentation: Report exception messages in method probe snapshots. Require the libdatadog_api C extension for Dynamic Instrumentation. ([#5111][])
171
+
172
+ ### Fixed
173
+
174
+ * Profiling: Detect when `libdatadog` version does not match expected version. ([#5484][])
175
+ * Profiling: Log profiler initialization errors as warnings instead of raising them. ([#5509][])
176
+ * Tracing: Fix `NoMethodError` in `extract_trace_id!` caused by `extract_tags` returning `true`. ([#5499][])
177
+
178
+ ### Removed
179
+
180
+ * Core: Removed JRuby from the CI test matrix ([#5594][])
181
+
182
+ ## [2.30.0] - 2026-03-19
183
+
184
+ ### Added
185
+
186
+ * Core: Enable `libdatadog`-based features and tests on macOS ([#5351][])
187
+ * Tracing: Add `_dd.p.ksr` propagated tag to transmit Knuth sampling rate for backend resampling ([#5436][])
188
+ * Tracing: Integrations: Add `DD_TRACE_<INTEGRATION>_DISTRIBUTED_TRACING` environment variables to control distributed tracing per integration ([#5396][])
189
+ * Profiling: Add profiler setting `experimental_use_system_dns` to use system DNS resolver (defaults to true) ([#5425][], [#5449][])
190
+ * Profiling: Allow lowering CPU profiling sampling interval with `experimental_cpu_sampling_interval_ms` setting ([#5424][])
191
+
192
+ ### Changed
193
+
194
+ * Core: Enable process tags by default by setting `DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED`, expanding tag collection for Tracing, Database Monitoring, Data Streams Monitoring, Profiling, Runtime Metrics, Process Discovery, Remote Configuration, Telemetry, Dynamic Instrumentation, and CrashTracking ([#5432][])
195
+ * Core: Upgrade `libdatadog` dependency to version 29.0.0 ([#5274][], [#5461][])
196
+ * Core: Remove dependency on `pkg-config` system tool for native extension builds ([#5469][])
197
+ * Profiling: Improve profiling error message when another profiler is present ([#5375][])
198
+
199
+ ### Fixed
200
+
201
+ * Tracing: Integrations: Fix `endpoint_render.grape` ActiveSupport notification instrumentation for `grape` 3.x ([#5414][])
202
+ * Tracing: Integrations: Fix compatibility with `dalli` version 5.x and later ([#5435][])
203
+ * Dynamic Instrumentation: Fix JSON serialization failures when snapshots contain binary data and invalid UTF-8 strings ([#5434][])
204
+ * Dynamic Instrumentation: Show ERROR probe status when custom serializers produce non-JSON-encodable data instead of silent failures ([#5448][])
205
+ * Data Streams: Fix Data Streams Monitoring to correctly report the configured environment instead of showing `env:none` ([#5427][])
206
+
207
+ ## [2.29.0] - 2026-02-20
208
+
209
+
210
+ ### Added
211
+
212
+ * AppSec: Add analysis for downstream request with redirects ([#5347][])
213
+ * AppSec: Add downstream request body analysis. ([#5320][])
214
+ * SSI: Add support for Bundler vendored mode (`BUNDLE_PATH`) ([#5368][])
215
+ * SSI: Default to local dependency resolution ([#5368][])
216
+ * Dynamic Instrumentation: Added circuit breaker to automatically disable probes consuming excessive CPU time ([#5335][])
217
+ * Crashtracking: Add reporting of unhandled exceptions ([#5321][])
218
+ * Tracing: Add support for the `kicks` gem ([#5305][])
219
+ * Profiling: Add heap profiling for ruby 4.x ([#5201][])
220
+ * Tracing: Add simple method tracing API ([#5294][])
221
+ * Tracing: Add `trace_singleton_class_method` for tracing singleton class methods. ([#5334][])
222
+
223
+ ### Changed
224
+
225
+ * Dynamic Instrumentation: Improve error reporting when instrumentation fails or is removed due to circuit breaker ([#5371][])
226
+ * SSI: Reduce SSI package size ([#5352][])
227
+ * Core: Change default logger output from stdout to stderr ([#5342][])
228
+ * AppSec: Make AppSec blocking page more friendly for vulnerability scanners ([#5341][])
229
+ * Core: Add process tags and container id to process discovery payloads when the experimental setting `DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED=true` is enabled. ([#5336][])
230
+
231
+ ### Fixed
232
+
233
+ * Dynamic Instrumentation: Fix Live Debugger UI for forking web servers with more than one worker process ([#5304][])
234
+
235
+ ## [2.28.0] - 2026-02-04
236
+
237
+ ### Added
238
+
239
+ * AI Guard: Add instrumentation for `ruby_llm` gem. ([#5273][])
240
+
241
+ ### Changed
242
+
243
+ * Core: Bump minimum version of datadog-ruby_core_source to 3.5.2 ([#5278][])
244
+
245
+ ### Fixed
246
+
247
+ * AppSec: Fix exception in Rails contrib `:after_routes_loaded` hook when routes are reloaded. ([#5283][])
248
+
249
+ ## [2.27.0] - 2026-01-21
250
+
251
+ ### Added
252
+
253
+ * AppSec: Add analysis of the downstream requests ([#5206][])
254
+ * Telemetry: Add static error reporting for native extensions ([#5076][])
255
+
256
+ ### Changed
257
+
258
+ * SSI: Update injector to v1.2.1 ([#5254][])
259
+ * SSI: Prepare for expanded platform support ([#5254][])
260
+ * SSI: Improve remote resolution with expanded platform support via fallback to local gems ([#5254][])
261
+ * SSI: Introduce experimental fully local resolution support ([#5254][])
262
+ * Profiling: Telemetry-safe error reporting for native extensions ([#5076][])
263
+
264
+
265
+ ### Fixed
266
+
267
+ * Profiler: Fix interrupting new processes with the message `Profiling timer expired` during `exec` ([#5246][])
268
+ * Profiler: Fix rare race in profiler causing flaky spec on Ruby 2.7 ([#5247][])
269
+ * Appsec: Fix reporting of multi-method routes for Endpoint Collection ([#5240][])
270
+ * AppSec: Fix reporting of Rails routes that accept multiple request methods. ([#5240][])
271
+
272
+ ## [2.26.0] - 2026-01-16
273
+
274
+ ### Added
275
+
276
+ * Core: Add process tags to runtime metrics when `DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED` is enabled. ([#5210][])
277
+ * SSI: Add experimental dependency injection validation.
278
+
279
+ ### Changed
280
+
281
+ * Profiling: Improve profiler error reporting. ([#5237][])
282
+ * SSI: Improve injection debug error reporting. ([#5238][])
283
+
284
+ ## [2.25.0] - 2026-01-13
285
+
286
+ ### Added
287
+
288
+ AI Guard: Add SDK for evaluating the safety of user messages and assistant commands for LLM session ([#5144][])
289
+
290
+ ### Changed
291
+
292
+ Core: Bump minimum version of `datadog-ruby_core_source` dependency ([#5215][])
293
+
294
+ ### Fixed
295
+
296
+ AppSec: Fix processing of numeric data for WAF and RASP checks ([#5222][])
297
+
298
+ ## [2.24.0] - 2026-01-08
299
+
300
+ ### Added
301
+
302
+ * Core: Add support for installing the gem on Ruby 4.0.x stable ([#5157][])
303
+ * Tracing: Add origin detection using extra headers and the `DD_EXTERNAL_ENV` variable. ([#5028][])
304
+ * Dynamic Instrumentation: Add one-click enablement support ([#5150][])
305
+ * SSI: Add support for Bundler deployment mode ([#5053][])
306
+ * SSI: Report UI-oriented injection results ([#5053][])
307
+ * SSI: Guard against Bundler global force_ruby_platform ([#5053][])
308
+ * SSI: Guard against Bundler 4.0 and Bundler 2.7 in 4.0 mode ([#5053][])
309
+ * SSI: Guard against Ruby 3.5+ ([#5053][])
310
+
311
+ ### Changed
312
+
313
+ * Profiling: Remove profiler warning related to the Ractor issue ([#5194][])
314
+ * Profiling: Disable heap profiling on Ruby 4 due to incompatibility ([#5148][])
315
+ * Dynamic Instrumentation: Stop using customer-provided time provider for method duration calculation ([#5153][])
316
+ * Live Debugger / Dynamic Instrumentation: Improve probe instrumentation ([#5165][])
317
+ * Live Debugger / Dynamic Instrumentation: Improve instrumentation reliability for probes ([#5169][])
318
+
319
+ ### Fixed
320
+
321
+ * Core: Improve reliability of worker shutdown ([#5176][])
322
+ * Core: Fix RDoc error when installing the `datadog` gem ([#5145][])
323
+ * Tracing: Ensure `Tracing.continue_from!` keeps the active trace for the full block duration. ([#4941][])
324
+ * Profiling: Fix and refine profiler thread state categorization for Ruby 4 ([#5197][])
325
+ * Profiling: Fix profiler error triggering `Bundler::PermissionError` ([#5146][])
326
+ * Live Debugger / Dynamic Instrumentation: Fix Live Debugger and Dynamic Instrumentation UI for forking web servers ([#5159][])
327
+ * Live Debugger / Dynamic Instrumentation: Fix method probe leak when a referenced class loads after the probe reaches the application ([#5168][])
328
+
329
+ ## [2.23.0] - 2025-12-11
330
+
331
+ ### Added
332
+
333
+ * Tracing: Add process tags to trace payloads with `DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED` environment variable ([#5033][])
334
+ * Tracing: Integrations: Add Data Streams Monitoring (DSM) instrumentation to Waterdrop producers ([#5031][])
335
+ * Tracing: Open Telemetry: Add OpenTelemetry metrics support with OTLP exporters using `DD_METRICS_OTEL_ENABLED` and standard OpenTelemetry environment variables ([#5021][])
336
+ * Tracing: Add `http.endpoint` tag which contains the route whenever routing info is available, and falls back to route inferred from the request path ([#4995][])
337
+ * Tracing: Add configuration of HTTP client and server error ranges via `DD_TRACE_HTTP_CLIENT_ERROR_STATUSES` and `DD_TRACE_HTTP_SERVER_ERROR_STATUSES` ([#4991][])
338
+ * Tracing: Integrations: Add Data Streams Monitoring for `ruby-kafka` and `karafka` consumers with optional manual instrumentation ([#4901][])
339
+ * Dynamic Instrumentation: Add support for Hash length operations in expression language ([#5019][])
340
+ * AppSec: Add unique security response identifier in the response body for blocked requests ([#5049][])
341
+ * AppSec: Add support for processor overrides and custom data scanners ([#5044][])
342
+ * Feature Flags: Add new component to support Open Feature SDK ([#5054][], [#5024][])
343
+
344
+ ### Changed
345
+
346
+ * Core: Update minimum `datadog-ruby_core_source` dependency to 3.4.2 ([#5122][])
347
+ * Core: Update `libdatadog` dependency to version 24.0.1 ([#5058][], [#5045][], [#5020][])
348
+ * Tracing: Treat IPs from `100.65.0.0/10` range as private. ([#4975][])
349
+
350
+ ### Fixed
351
+
352
+ * Live Debugger / Dynamic Instrumentation: Fix issues delivering large quantities of snapshots ([#5086][])
353
+ * Tracing: Integrations: Fix `NoMethodError` in GraphQL integration when error has no `locations`. ([#5025][])
354
+ * Tracing: Integrations: Fix `http.route` tag for Rack applications mounted inside Rails. ([#4988][])
355
+ * Profiling: Fix profiler support for Ruby 4.0.0-preview2 ([#5091][])
356
+ * Profiling: Fix profiler sleep and wait states not being categorized in timeline ([#5000][])
357
+ * Profiling: Fix profiler not identifying executables with gems they belong to ([#4999][])
358
+ * Stable Config: Fix potential segfault during configuration file parsing ([#5073][])
359
+ * AppSec: Fix route extraction error for Rails 8.1.1+. ([#5042][])
360
+
361
+ ## [2.22.0] - 2025-10-15
362
+
363
+ ### Added
364
+
365
+ * Tracing: Add GraphQL error tracking with OpenTelemetry semantics ([#4864][])
366
+ * AppSec: API Security: Add endpoint collection for Rails ([#4919][])
367
+ * AppSec: Updated WAF rules to add support for JWT analysis ([#4907][])
368
+ * AppSec: Enable Remote Configuration capabilities for fingerprinting, trace tagging and user auto-instrumentation ([#4965][])
369
+ * Dynamic Instrumentation: Support `[@duration][]`, `[@return][]` and `[@exception][]` in message templates ([#4914][])
370
+ * Dynamic Instrumentation: Report evaluation errors to the UI ([#4913][])
371
+ * Dynamic Instrumentation: Support conditions for method probes ([#4909][])
372
+ * Dynamic Instrumentation: Capture exceptions raised by instrumented methods in method probes ([#4906][])
373
+ * Dynamic Instrumentation: Add support for probe conditions for line probes ([#4861][])
374
+
375
+ ### Changed
376
+
377
+ * Core: Upgrade `libdatadog` dependency to 22.0.1 ([#4902][])
378
+ * Tracing: Add `Forwarded` header to the list of headers used for remote IP detection. ([#4969][])
379
+ * AppSec: Update `libbddwaf` to version 1.25.1.0.1 ([#4894][])
380
+ * AppSec: WAF rules can control whether traces are kept or sampled ([#4918][])
381
+ * Dynamic Instrumentation: Evaluate message templates when logging instrumented code ([#4908][])
382
+
383
+ ### Fixed
384
+
385
+ * Core: Improve locking code for remote configuration worker ([#4957][])
386
+ * Dynamic Instrumentation: Emit a single log event for line probes on exception-raising lines ([#4900][])
387
+
388
+ ## [2.21.0] - 2025-09-17
389
+
390
+ ### Added
391
+
392
+ * Tracing: Generate metrics for GraphQL operation execution ([#4862][])
393
+
394
+ ### Changed
395
+
396
+ * Tracing: The `graphql.execute` span resource now includes the operation type ([#4862][])
397
+
398
+ ### Fixed
399
+
400
+ * Tracing: Fix Service Discovery capabilities on forked processes ([#4877][])
401
+ * Tracing: Fix an unclosed trace issue when the Rack application has proxy spans and raises an exception. This caused traces that encompassed multiple requests ([#4779][])
402
+ * AppSec: Fix API Security route extraction for Rails ([#4887][])
403
+ * AppSec: Fix a bug with non-string Hash keys conversion ([#4893][])
404
+ * Dynamic Instrumentation: Fix incorrect template expression evaluation in some cases ([#4884][])
405
+
406
+ ## [2.20.0] - 2025-09-04
407
+
408
+ ### Added
409
+
410
+ * Tracing: Add capability to add [W3C Baggage](https://www.w3.org/TR/baggage/#example) headers to the local root span as span tags ([#4716][])
411
+ * AppSec: Add WAF analysis of the responses with JSON body ([#4848][])
412
+ * Dynamic Instrumentation: Live Debugger: Add support for specifying probes in a file via `DD_DYNAMIC_INSTRUMENTATION_PROBE_FILE` environment variable ([#4838][])
413
+
414
+ ### Changed
415
+
416
+ * Core: Expand generated warning and error messages during `libdatadog` build ([#4831][])
417
+ * AppSec: Rework handling of Remote Config updates for multi-threaded web servers ([#4833][])
418
+ * AppSec: Update security tags for Business Logic Events and User Events SDK v1 and v2 ([#4851][])
419
+
420
+ ### Fixed
421
+
422
+ * Tracing: Fix constants resolution for Rails runner ([#4863][])
423
+
424
+ ## [2.19.0] - 2025-07-24
425
+
426
+ ### Added
427
+
428
+ * AppSec: Added Business Logic Events SDK v2. ([#4802][])
429
+ * Tracing: Add `record_exception` API to capture and attach error information to spans via span events. ([#4771][])
430
+ * Tracing: Add `:cache_store` option to ActiveSupport integration to allow tracing only specified cache backends. ([#4693][])
431
+ * SSI: Rework SSI from the ground up. ([#4366][])
432
+
433
+ ### Changed
434
+
435
+ * Profiling: Switch profiler stack truncation strategy and improve sampling performance ([#4819][])
436
+ * Profiling: Report GC tuning environment variables with profiles ([#4813][])
437
+ * Profiling: Tag profiles with sequence number ([#4794][])
438
+ * Profiling: Enable sample from inside signal handler by default on modern Rubies ([#4786][], [#4785][])
439
+
440
+ ### Fixed
441
+
442
+ * Core: Fix emitting duplicate warnings on agent configuration mismatch ([#4814][])
443
+ * Appsec: Fix an error in AppSec route extractor for not-found routes in Rails 8 ([#4793][])
444
+ * Profiling: Add workaround for Ruby VM bug ([#4787][])
445
+ * Profiling: Fix checking for dladdr in profiling ([#4783][])
446
+ * Profiling: Fix potential profiler compilation issue. ([#4783][])
447
+ * Tracing: The mysql integration now only sets the `db.name` tag if there is a valid value ([#4776][])
448
+ * Tracing: The Rails Runner instrumentation should now create Rails Runner spans. ([#4681][])
449
+ * Tracing: Fix sampling rules and sample rate reporting in environment logger. ([#4772][])
450
+
451
+ ### Removed
452
+
453
+ ## [2.18.0] - 2025-07-03
454
+
455
+ ### Added
456
+
457
+ * AppSec: Add API Security with new sampling algorithm to the Rack, Rails, Sinatra and Grape frameworks ([#4699][])
458
+ * Core: Add support for tracer configuration through Fleet Automation ([#4651][])
459
+ * Tracing: Add Rails view render times and database query times to the spans, when available ([#4697][])
460
+ * Core: Add Service Discovery capability, enabling the tracer to reliably determine which process are instrumented
461
+
462
+ ### Changed
463
+
464
+ * AppSec: Enable API Security feature by default ([#4756][])
465
+ * AppSec: Improve overall threat detection ([#4757][])
466
+ * AppSec: Deprecate `config.appsec.ip_passlist`, `config.appsec.ip_denylist`, and `config.appsec.user_id_denylist` ([#4757][])
467
+ * Profiling: Graduate Heap Profiling from alpha to preview ([#4401][], [#4460][])
468
+ * Dynamic Instrumentation: Add instance variable capture to method and line probes ([#4668][])
469
+ * Profiling: Add capturing of native filenames in backtraces ([#4745][])
470
+ * Profiling: Clean up profiler logging ([#4728][])
471
+ Tracing: Add support for `DD_RUNTIME_METRICS_RUNTIME_ID_ENABLED` to tag runtime metrics with the current runtime ID, allowing correlation across processes ([#4718][])
472
+ * Tracing: Improve performance of `http.route` tag computation for Rails ([#4688][])
473
+
474
+ ### Fixed
475
+
476
+ * AppSec: Fix authenticated users tracking in anonymization mode for Devise ([#4731][])
477
+ * Dynamic Instrumentation: Fix source code display in dynamic instrumentation/live debugger ([#4743][])
478
+ * Profiling: Fix profiler stopping due to bug in heap profiling serialization ([#4721][])
479
+
480
+ ## [2.17.0] - 2025-06-02
481
+
482
+ ### Added
483
+
484
+ * Tracing: Add support for Rails 8.0. ([#4455][])
485
+
486
+ ### Changed
487
+
488
+ * Core: Improve tracer error reporting when agent responds with error responses to remote configuration requests ([#4669][])
489
+ * Core: Profiling: Upgrade libdatadog dependency to version 18.1 ([#4577][])
490
+ * Dynamic Instrumentation: Improve UI reporting of application and host status ([#4678][])
491
+ * Tracing: Mark AWS integration spans as errored when AWS requests fail ([#4672][])
492
+
493
+ ### Fixed
494
+
495
+ * Error Tracking: remove error tracking support on Ruby 2.6 ([#4665][])
496
+ * Profiling: Fix profiling scheduler reporting corner case during shutdown ([#4679][])
497
+ * Tracing: Fix: The `on_error` warning for HTTP instrumentations ([#4673][])
498
+
499
+ ## [2.16.0] - 2025-05-19
500
+
501
+ ### Added
502
+
503
+ * Core: Add new configuration precedence value `environment` ([#4610][])
504
+ * Core: Add Source Code Integration (SCI) tags in Telemetry app-started event and in each Remote Config request ([#4653][])
505
+ * Core: Tracing: ErrorTracking: Add automatic reporting of handled errors ([#4604][])
506
+ * AppSec: Integrations: Add session tracking and attacker fingerprinting to `devise` and `rails` ([#4644][], [#4625][])
507
+ * Profiling: Add support for Ruby 3.5.0-preview1 ([#4600][])
508
+ * Tracing: Add warning when `on_error` handler is not a `Proc` ([#4611][])
509
+ * Tracing: Integrations: Add option to serialize MongoDB command as JSON ([#4403][])
510
+ * Tracing: Integrations: Add baggage to `karafka` list of propagation styles ([#4614][])
511
+
512
+ ### Changed
513
+
514
+ * Tracing: Adjust trace sampling formula ([#4616][])
515
+ * Profiling: Replace `JSON.fast_generate` with `JSON.generate` ([#4602][])
516
+
517
+ ### Fixed
518
+
519
+ * Core: Fix Ruby warnings when providing a custom time provider ([#4613][])
520
+ * Core: Fix Telemetry configuration in agentless mode to respect the timeout specified for the Agent ([#4590][])
521
+ * Profiling: Fix profiler compatibility with ruby-head (3.5) ([#4656][])
522
+
523
+ ### Removed
524
+
525
+ * Core: Remove duplicated classes from Telemetry transport ([#4575][])
526
+
527
+ ## [2.15.0] - 2025-04-17
528
+
529
+ ### Added
530
+
531
+ * AppSec: Add auto-patching for `activerecord` with sql injection detection ([#4581][])
532
+ * Tracing: Add option for `opensearch` to set resource with relative path ([#4509][])
533
+
534
+ ### Changed
535
+
536
+ * AppSec: Update In-App WAF rules, processors, and scanners ([#4568][])
537
+
538
+ ### Fixed
539
+
540
+ * AppSec: Fix blocked requests not marked correctly when using custom redirect blocking action ([#4580][])
541
+ * AppSec: Fix UTF-8 unsafe payloads in InApp-WAF causing runtime exceptions ([#4573][])
542
+
543
+ ## [2.14.0] - 2025-04-04
544
+
545
+ ### Added
546
+
547
+ * Tracing: Add `karafka` instrumentation with 2.3.0 as the minimum supported version. ([#4147][])
548
+
549
+ ### Fixed
550
+
551
+ * Core: Tracing: default logger arguments for compatibility with previous dd-trace-rb versions ([#4558][])
552
+ * AppSec: Fix `Datadog::Kit::AppSec::Events` SDK methods to correctly handle given string key `usr.login`. ([#4552][])
553
+
554
+ ## [2.13.0] - 2025-04-02
555
+
556
+ ### Added
557
+
558
+ * Core: Add `DD_TRACE_EXPERIMENTAL_RUNTIME_ID_ENABLED` experimental option to enable runtime ID collection for runtime metrics. ([#4473][])
559
+ * Tracing: Add support for W3C Baggage API along with automatic extraction and injection, and OpenTelemetry support. ([#4493][], [#4505][])
560
+ * Tracing: Add `DD_APM_TRACING_ENABLED` option to disable APM tracing while keeping other products traces. ([#4498][])
561
+ * Tracing: Add `DD_TRACE_NATIVE_SPAN_EVENTS` option to override span events serialization for agent-less environments. ([#4507][])
562
+ * AppSec: Add stack trace reporting for security events. ([#4526][])
563
+ * AppSec: Improve `devise` instrumentation to support latest Account Takeover (ATO) detection. ([#4433][])
564
+
565
+ ### Changed
566
+
567
+ * Core: Improve `DD_TAGS` configuration handling to be more consistent across Datadog libraries and Agent. ([#4530][])
568
+ * Tracing: Enable by default 128-bit trace ID logging so that trace IDs are consistent across logs and the Datadog UI. ([#4528][])
569
+
570
+ ### Fixed
571
+
572
+ * Core: Fix initialization when the library is partially loaded. ([#4498][])
573
+ * Tracing: Fix trace ID propagation by ensuring extraction of 16-character hex values from the `_dd.p.tid` tag in `x-datadog-tags` header. ([#4534][])
574
+ * Tracing: Profiling: Fix warnings printed by `ruby -w`. ([#4547][], [#4549][])
575
+
576
+ ## [2.12.2] - 2025-03-17
577
+
578
+ ### Fixed
579
+
580
+ * AppSec: Fix custom In-App WAF blocking response that was configured in the UI is now applied correctly ([#4497][])
581
+
582
+ ## [2.12.1] - 2025-03-05
583
+
584
+ ### Fixed
585
+
586
+ * AppSec: Fix `ArgumentError` from ActiveRecord for Ruby < 2.7 ([#4437][])
587
+
588
+ ## [2.12.0] - 2025-02-27
589
+
590
+ ### Added
591
+
592
+ * AppSec: Add detection of Server-Side Request Forgery attacks for `rest-client` ([#4424][])
593
+ * Dynamic Instrumentation: Add support for unix domain sockets ([#4426][])
594
+
595
+ ## [2.11.0] - 2025-02-24
596
+
597
+ ### Added
598
+
599
+ * Tracing: Support `graphql` multiple query errors report via Span Events ([#4177][])
600
+ * Profiling: Enable GVL profiling by default on Ruby 3.2+ ([#4406][])
601
+ * Profiling: Support correlating profiling with OTel API 1.5+ ([#4425][])
602
+ * AppSec: Add detection of Server-Side Request Forgery attacks for `excon` ([#4399][])
603
+ * AppSec: Add detection of Server-Side Request Forgery attacks for `faraday` ([#4391][])
604
+ * AppSec: Deprecate `appsec.track_user_events` configuration setting in favor of `appsec.auto_user_instrumentation` ([#4352][])
605
+ * Dynamic Instrumentation: Add optional trace logging ([#4283][])
606
+
607
+ ### Changed
608
+
609
+ * Increase default timeout for unix domain socket to 30 seconds ([#4411][])
610
+ * Upgrade `libdatadog` to `16.0.1` ([#4353][])
611
+ * Dynamic Instrumentation: Improve path matching with prefixes of probe paths ([#4346][])
612
+ * Dynamic Instrumentation: Improve event reporting with combing status and snapshot events ([#4360][])
613
+
614
+ ### Fixed
615
+
616
+ * Tracing: Fix `rack` to continue trace if only distributed trace is present ([#4398][])
617
+ * AppSec: Fix a memory leak issue for RASP ([#4422][])
618
+ * Dynamic Instrumentation: Fix event submission on forked servers ([#4363][])
619
+
620
+ ### Removed
621
+
622
+ * Tracing: Remove peer services by default ([#3846][])
623
+
624
+ ## [2.10.0] - 2025-02-04
625
+
626
+ ### Added
627
+
628
+ * AppSec: Add configuration option(`Datadog.configuration.appsec.rasp_enabled`) to enable/disable Runtime Application Self-Protection checks ([#4311][])
629
+ * AppSec: Add stack trace when SQL Injection attack is detected ([#4321][])
630
+
631
+ ### Changed
632
+
633
+ * Add `logger` gem as dependency ([#4257][])
634
+ * Bump minimum version of `datadog-ruby_core_source` to 3.4 ([#4323][])
635
+
636
+ ### Fixed
637
+
638
+ * Dynamic instrumentation: Fix report probe status when dynamic instrumentation probes fail to instrument ([#4301][])
639
+ * Dynamic instrumentation: Include variables named `env` in probe snapshots ([#4292][])
640
+ * Fix a concurrency issue during application boot ([#4303][])
641
+
642
+ ## [2.9.0] - 2025-01-15
643
+
644
+ ### Added
645
+
646
+ * Core: add support for Ruby 3.4 ([#4249][])
647
+ * Integrations: add a new option for `ActiveSupport` to disable adding the `cache_key` as a Span Tag with the `cache_key_enabled` option ([#4022][])
648
+
649
+ ### Changed
650
+
651
+ * Dynamic instrumentation: move DI preloading to `datadog/di/preload` ([#4288][])
652
+ * Dynamic instrumentation: dd-trace-rb now reports whether dynamic instrumentation is enabled in startup summary report ([#4285][])
653
+ * Dynamic instrumentation: improve loading of DI components ([#4272][], [#4239][])
654
+ * Dynamic instrumentation: logging of internal conditions is now done on debug level ([#4266][])
655
+ * Dynamic instrumentation: report instrumentation error for line probes when the target file is loaded but not in code tracker registry ([#4208][])
656
+ * Profiling: require datadog-ruby_core_source >= 3.3.7 to ensure Ruby 3.4 support ([#4228][])
657
+
658
+ ### Fixed
659
+
660
+ * Core: fix a crash in crashtracker when agent hostname is an IPv6 address ([#4237][])
661
+ * Profiling: fix allocation profiling + otel tracing causing Ruby crash ([#4240][])
662
+ * Profiling: fix profiling warnings being really hard to silence ([#4232][])
663
+
5
664
  ## [2.8.0] - 2024-12-10
6
665
 
7
666
  ### Added
@@ -3057,7 +3716,40 @@ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.3.1
3057
3716
  Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
3058
3717
 
3059
3718
 
3060
- [Unreleased]: https://github.com/DataDog/dd-trace-rb/compare/v2.8.0...master
3719
+ [Unreleased]: https://github.com/DataDog/dd-trace-rb/compare/v2.39.0...master
3720
+ [2.39.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.38.0...v2.39.0
3721
+ [2.38.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.37.0...v2.38.0
3722
+ [2.37.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.36.0...v2.37.0
3723
+ [2.36.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.35.0...v2.36.0
3724
+ [2.35.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.34.0...v2.35.0
3725
+ [2.34.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.33.0...v2.34.0
3726
+ [2.33.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.32.0...v2.33.0
3727
+ [2.32.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.31.0...v2.32.0
3728
+ [2.31.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.30.0...v2.31.0
3729
+ [2.30.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.29.0...v2.30.0
3730
+ [2.29.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.28.0...v2.29.0
3731
+ [2.28.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.27.0...v2.28.0
3732
+ [2.27.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.26.0...v2.27.0
3733
+ [2.26.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.25.0...v2.26.0
3734
+ [2.25.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.24.0...v2.25.0
3735
+ [2.24.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.23.0...v2.24.0
3736
+ [2.23.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.22.0...v2.23.0
3737
+ [2.22.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.21.0...v2.22.0
3738
+ [2.21.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.20.0...v2.21.0
3739
+ [2.20.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.19.0...v2.20.0
3740
+ [2.19.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.18.0...v2.19.0
3741
+ [2.18.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.17.0...v2.18.0
3742
+ [2.17.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.16.0...v2.17.0
3743
+ [2.16.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.15.0...v2.16.0
3744
+ [2.15.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.14.0...v2.15.0
3745
+ [2.14.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.13.0...v2.14.0
3746
+ [2.13.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.12.2...v2.13.0
3747
+ [2.12.2]: https://github.com/DataDog/dd-trace-rb/compare/v2.12.1...v2.12.2
3748
+ [2.12.1]: https://github.com/DataDog/dd-trace-rb/compare/v2.12.0...v2.12.1
3749
+ [2.12.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.11.0...v2.12.0
3750
+ [2.11.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.10.0...v2.11.0
3751
+ [2.10.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.9.0...v2.10.0
3752
+ [2.9.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.8.0...v2.9.0
3061
3753
  [2.8.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.7.1...v2.8.0
3062
3754
  [2.7.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.6.0...v2.7.0
3063
3755
  [2.6.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.5.0...v2.6.0
@@ -4483,6 +5175,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
4483
5175
  [#3837]: https://github.com/DataDog/dd-trace-rb/issues/3837
4484
5176
  [#3839]: https://github.com/DataDog/dd-trace-rb/issues/3839
4485
5177
  [#3841]: https://github.com/DataDog/dd-trace-rb/issues/3841
5178
+ [#3846]: https://github.com/DataDog/dd-trace-rb/issues/3846
4486
5179
  [#3849]: https://github.com/DataDog/dd-trace-rb/issues/3849
4487
5180
  [#3852]: https://github.com/DataDog/dd-trace-rb/issues/3852
4488
5181
  [#3857]: https://github.com/DataDog/dd-trace-rb/issues/3857
@@ -4499,6 +5192,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
4499
5192
  [#3997]: https://github.com/DataDog/dd-trace-rb/issues/3997
4500
5193
  [#4014]: https://github.com/DataDog/dd-trace-rb/issues/4014
4501
5194
  [#4020]: https://github.com/DataDog/dd-trace-rb/issues/4020
5195
+ [#4022]: https://github.com/DataDog/dd-trace-rb/issues/4022
4502
5196
  [#4024]: https://github.com/DataDog/dd-trace-rb/issues/4024
4503
5197
  [#4027]: https://github.com/DataDog/dd-trace-rb/issues/4027
4504
5198
  [#4033]: https://github.com/DataDog/dd-trace-rb/issues/4033
@@ -4511,14 +5205,324 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
4511
5205
  [#4085]: https://github.com/DataDog/dd-trace-rb/issues/4085
4512
5206
  [#4137]: https://github.com/DataDog/dd-trace-rb/issues/4137
4513
5207
  [#4140]: https://github.com/DataDog/dd-trace-rb/issues/4140
5208
+ [#4147]: https://github.com/DataDog/dd-trace-rb/issues/4147
4514
5209
  [#4153]: https://github.com/DataDog/dd-trace-rb/issues/4153
4515
5210
  [#4161]: https://github.com/DataDog/dd-trace-rb/issues/4161
4516
5211
  [#4164]: https://github.com/DataDog/dd-trace-rb/issues/4164
4517
5212
  [#4167]: https://github.com/DataDog/dd-trace-rb/issues/4167
5213
+ [#4177]: https://github.com/DataDog/dd-trace-rb/issues/4177
4518
5214
  [#4178]: https://github.com/DataDog/dd-trace-rb/issues/4178
4519
5215
  [#4195]: https://github.com/DataDog/dd-trace-rb/issues/4195
4520
5216
  [#4196]: https://github.com/DataDog/dd-trace-rb/issues/4196
4521
5217
  [#4197]: https://github.com/DataDog/dd-trace-rb/issues/4197
5218
+ [#4208]: https://github.com/DataDog/dd-trace-rb/issues/4208
5219
+ [#4228]: https://github.com/DataDog/dd-trace-rb/issues/4228
5220
+ [#4232]: https://github.com/DataDog/dd-trace-rb/issues/4232
5221
+ [#4237]: https://github.com/DataDog/dd-trace-rb/issues/4237
5222
+ [#4239]: https://github.com/DataDog/dd-trace-rb/issues/4239
5223
+ [#4240]: https://github.com/DataDog/dd-trace-rb/issues/4240
5224
+ [#4249]: https://github.com/DataDog/dd-trace-rb/issues/4249
5225
+ [#4257]: https://github.com/DataDog/dd-trace-rb/issues/4257
5226
+ [#4266]: https://github.com/DataDog/dd-trace-rb/issues/4266
5227
+ [#4272]: https://github.com/DataDog/dd-trace-rb/issues/4272
5228
+ [#4283]: https://github.com/DataDog/dd-trace-rb/issues/4283
5229
+ [#4285]: https://github.com/DataDog/dd-trace-rb/issues/4285
5230
+ [#4288]: https://github.com/DataDog/dd-trace-rb/issues/4288
5231
+ [#4292]: https://github.com/DataDog/dd-trace-rb/issues/4292
5232
+ [#4301]: https://github.com/DataDog/dd-trace-rb/issues/4301
5233
+ [#4303]: https://github.com/DataDog/dd-trace-rb/issues/4303
5234
+ [#4311]: https://github.com/DataDog/dd-trace-rb/issues/4311
5235
+ [#4321]: https://github.com/DataDog/dd-trace-rb/issues/4321
5236
+ [#4323]: https://github.com/DataDog/dd-trace-rb/issues/4323
5237
+ [#4346]: https://github.com/DataDog/dd-trace-rb/issues/4346
5238
+ [#4352]: https://github.com/DataDog/dd-trace-rb/issues/4352
5239
+ [#4353]: https://github.com/DataDog/dd-trace-rb/issues/4353
5240
+ [#4360]: https://github.com/DataDog/dd-trace-rb/issues/4360
5241
+ [#4363]: https://github.com/DataDog/dd-trace-rb/issues/4363
5242
+ [#4366]: https://github.com/DataDog/dd-trace-rb/issues/4366
5243
+ [#4391]: https://github.com/DataDog/dd-trace-rb/issues/4391
5244
+ [#4398]: https://github.com/DataDog/dd-trace-rb/issues/4398
5245
+ [#4399]: https://github.com/DataDog/dd-trace-rb/issues/4399
5246
+ [#4401]: https://github.com/DataDog/dd-trace-rb/issues/4401
5247
+ [#4403]: https://github.com/DataDog/dd-trace-rb/issues/4403
5248
+ [#4406]: https://github.com/DataDog/dd-trace-rb/issues/4406
5249
+ [#4411]: https://github.com/DataDog/dd-trace-rb/issues/4411
5250
+ [#4422]: https://github.com/DataDog/dd-trace-rb/issues/4422
5251
+ [#4424]: https://github.com/DataDog/dd-trace-rb/issues/4424
5252
+ [#4425]: https://github.com/DataDog/dd-trace-rb/issues/4425
5253
+ [#4426]: https://github.com/DataDog/dd-trace-rb/issues/4426
5254
+ [#4433]: https://github.com/DataDog/dd-trace-rb/issues/4433
5255
+ [#4437]: https://github.com/DataDog/dd-trace-rb/issues/4437
5256
+ [#4455]: https://github.com/DataDog/dd-trace-rb/issues/4455
5257
+ [#4460]: https://github.com/DataDog/dd-trace-rb/issues/4460
5258
+ [#4473]: https://github.com/DataDog/dd-trace-rb/issues/4473
5259
+ [#4493]: https://github.com/DataDog/dd-trace-rb/issues/4493
5260
+ [#4497]: https://github.com/DataDog/dd-trace-rb/issues/4497
5261
+ [#4498]: https://github.com/DataDog/dd-trace-rb/issues/4498
5262
+ [#4505]: https://github.com/DataDog/dd-trace-rb/issues/4505
5263
+ [#4507]: https://github.com/DataDog/dd-trace-rb/issues/4507
5264
+ [#4509]: https://github.com/DataDog/dd-trace-rb/issues/4509
5265
+ [#4526]: https://github.com/DataDog/dd-trace-rb/issues/4526
5266
+ [#4528]: https://github.com/DataDog/dd-trace-rb/issues/4528
5267
+ [#4530]: https://github.com/DataDog/dd-trace-rb/issues/4530
5268
+ [#4534]: https://github.com/DataDog/dd-trace-rb/issues/4534
5269
+ [#4547]: https://github.com/DataDog/dd-trace-rb/issues/4547
5270
+ [#4549]: https://github.com/DataDog/dd-trace-rb/issues/4549
5271
+ [#4552]: https://github.com/DataDog/dd-trace-rb/issues/4552
5272
+ [#4558]: https://github.com/DataDog/dd-trace-rb/issues/4558
5273
+ [#4568]: https://github.com/DataDog/dd-trace-rb/issues/4568
5274
+ [#4573]: https://github.com/DataDog/dd-trace-rb/issues/4573
5275
+ [#4575]: https://github.com/DataDog/dd-trace-rb/issues/4575
5276
+ [#4577]: https://github.com/DataDog/dd-trace-rb/issues/4577
5277
+ [#4580]: https://github.com/DataDog/dd-trace-rb/issues/4580
5278
+ [#4581]: https://github.com/DataDog/dd-trace-rb/issues/4581
5279
+ [#4590]: https://github.com/DataDog/dd-trace-rb/issues/4590
5280
+ [#4600]: https://github.com/DataDog/dd-trace-rb/issues/4600
5281
+ [#4602]: https://github.com/DataDog/dd-trace-rb/issues/4602
5282
+ [#4604]: https://github.com/DataDog/dd-trace-rb/issues/4604
5283
+ [#4610]: https://github.com/DataDog/dd-trace-rb/issues/4610
5284
+ [#4611]: https://github.com/DataDog/dd-trace-rb/issues/4611
5285
+ [#4613]: https://github.com/DataDog/dd-trace-rb/issues/4613
5286
+ [#4614]: https://github.com/DataDog/dd-trace-rb/issues/4614
5287
+ [#4616]: https://github.com/DataDog/dd-trace-rb/issues/4616
5288
+ [#4625]: https://github.com/DataDog/dd-trace-rb/issues/4625
5289
+ [#4644]: https://github.com/DataDog/dd-trace-rb/issues/4644
5290
+ [#4651]: https://github.com/DataDog/dd-trace-rb/issues/4651
5291
+ [#4653]: https://github.com/DataDog/dd-trace-rb/issues/4653
5292
+ [#4656]: https://github.com/DataDog/dd-trace-rb/issues/4656
5293
+ [#4665]: https://github.com/DataDog/dd-trace-rb/issues/4665
5294
+ [#4668]: https://github.com/DataDog/dd-trace-rb/issues/4668
5295
+ [#4669]: https://github.com/DataDog/dd-trace-rb/issues/4669
5296
+ [#4672]: https://github.com/DataDog/dd-trace-rb/issues/4672
5297
+ [#4673]: https://github.com/DataDog/dd-trace-rb/issues/4673
5298
+ [#4678]: https://github.com/DataDog/dd-trace-rb/issues/4678
5299
+ [#4679]: https://github.com/DataDog/dd-trace-rb/issues/4679
5300
+ [#4681]: https://github.com/DataDog/dd-trace-rb/issues/4681
5301
+ [#4688]: https://github.com/DataDog/dd-trace-rb/issues/4688
5302
+ [#4693]: https://github.com/DataDog/dd-trace-rb/issues/4693
5303
+ [#4697]: https://github.com/DataDog/dd-trace-rb/issues/4697
5304
+ [#4699]: https://github.com/DataDog/dd-trace-rb/issues/4699
5305
+ [#4716]: https://github.com/DataDog/dd-trace-rb/issues/4716
5306
+ [#4718]: https://github.com/DataDog/dd-trace-rb/issues/4718
5307
+ [#4721]: https://github.com/DataDog/dd-trace-rb/issues/4721
5308
+ [#4728]: https://github.com/DataDog/dd-trace-rb/issues/4728
5309
+ [#4731]: https://github.com/DataDog/dd-trace-rb/issues/4731
5310
+ [#4743]: https://github.com/DataDog/dd-trace-rb/issues/4743
5311
+ [#4745]: https://github.com/DataDog/dd-trace-rb/issues/4745
5312
+ [#4756]: https://github.com/DataDog/dd-trace-rb/issues/4756
5313
+ [#4757]: https://github.com/DataDog/dd-trace-rb/issues/4757
5314
+ [#4771]: https://github.com/DataDog/dd-trace-rb/issues/4771
5315
+ [#4772]: https://github.com/DataDog/dd-trace-rb/issues/4772
5316
+ [#4776]: https://github.com/DataDog/dd-trace-rb/issues/4776
5317
+ [#4779]: https://github.com/DataDog/dd-trace-rb/issues/4779
5318
+ [#4783]: https://github.com/DataDog/dd-trace-rb/issues/4783
5319
+ [#4785]: https://github.com/DataDog/dd-trace-rb/issues/4785
5320
+ [#4786]: https://github.com/DataDog/dd-trace-rb/issues/4786
5321
+ [#4787]: https://github.com/DataDog/dd-trace-rb/issues/4787
5322
+ [#4793]: https://github.com/DataDog/dd-trace-rb/issues/4793
5323
+ [#4794]: https://github.com/DataDog/dd-trace-rb/issues/4794
5324
+ [#4802]: https://github.com/DataDog/dd-trace-rb/issues/4802
5325
+ [#4813]: https://github.com/DataDog/dd-trace-rb/issues/4813
5326
+ [#4814]: https://github.com/DataDog/dd-trace-rb/issues/4814
5327
+ [#4819]: https://github.com/DataDog/dd-trace-rb/issues/4819
5328
+ [#4831]: https://github.com/DataDog/dd-trace-rb/issues/4831
5329
+ [#4833]: https://github.com/DataDog/dd-trace-rb/issues/4833
5330
+ [#4838]: https://github.com/DataDog/dd-trace-rb/issues/4838
5331
+ [#4848]: https://github.com/DataDog/dd-trace-rb/issues/4848
5332
+ [#4851]: https://github.com/DataDog/dd-trace-rb/issues/4851
5333
+ [#4861]: https://github.com/DataDog/dd-trace-rb/issues/4861
5334
+ [#4862]: https://github.com/DataDog/dd-trace-rb/issues/4862
5335
+ [#4863]: https://github.com/DataDog/dd-trace-rb/issues/4863
5336
+ [#4864]: https://github.com/DataDog/dd-trace-rb/issues/4864
5337
+ [#4877]: https://github.com/DataDog/dd-trace-rb/issues/4877
5338
+ [#4884]: https://github.com/DataDog/dd-trace-rb/issues/4884
5339
+ [#4887]: https://github.com/DataDog/dd-trace-rb/issues/4887
5340
+ [#4893]: https://github.com/DataDog/dd-trace-rb/issues/4893
5341
+ [#4894]: https://github.com/DataDog/dd-trace-rb/issues/4894
5342
+ [#4900]: https://github.com/DataDog/dd-trace-rb/issues/4900
5343
+ [#4901]: https://github.com/DataDog/dd-trace-rb/issues/4901
5344
+ [#4902]: https://github.com/DataDog/dd-trace-rb/issues/4902
5345
+ [#4906]: https://github.com/DataDog/dd-trace-rb/issues/4906
5346
+ [#4907]: https://github.com/DataDog/dd-trace-rb/issues/4907
5347
+ [#4908]: https://github.com/DataDog/dd-trace-rb/issues/4908
5348
+ [#4909]: https://github.com/DataDog/dd-trace-rb/issues/4909
5349
+ [#4913]: https://github.com/DataDog/dd-trace-rb/issues/4913
5350
+ [#4914]: https://github.com/DataDog/dd-trace-rb/issues/4914
5351
+ [#4918]: https://github.com/DataDog/dd-trace-rb/issues/4918
5352
+ [#4919]: https://github.com/DataDog/dd-trace-rb/issues/4919
5353
+ [#4941]: https://github.com/DataDog/dd-trace-rb/issues/4941
5354
+ [#4957]: https://github.com/DataDog/dd-trace-rb/issues/4957
5355
+ [#4965]: https://github.com/DataDog/dd-trace-rb/issues/4965
5356
+ [#4969]: https://github.com/DataDog/dd-trace-rb/issues/4969
5357
+ [#4975]: https://github.com/DataDog/dd-trace-rb/issues/4975
5358
+ [#4988]: https://github.com/DataDog/dd-trace-rb/issues/4988
5359
+ [#4991]: https://github.com/DataDog/dd-trace-rb/issues/4991
5360
+ [#4995]: https://github.com/DataDog/dd-trace-rb/issues/4995
5361
+ [#4999]: https://github.com/DataDog/dd-trace-rb/issues/4999
5362
+ [#5000]: https://github.com/DataDog/dd-trace-rb/issues/5000
5363
+ [#5019]: https://github.com/DataDog/dd-trace-rb/issues/5019
5364
+ [#5020]: https://github.com/DataDog/dd-trace-rb/issues/5020
5365
+ [#5021]: https://github.com/DataDog/dd-trace-rb/issues/5021
5366
+ [#5024]: https://github.com/DataDog/dd-trace-rb/issues/5024
5367
+ [#5025]: https://github.com/DataDog/dd-trace-rb/issues/5025
5368
+ [#5028]: https://github.com/DataDog/dd-trace-rb/issues/5028
5369
+ [#5031]: https://github.com/DataDog/dd-trace-rb/issues/5031
5370
+ [#5033]: https://github.com/DataDog/dd-trace-rb/issues/5033
5371
+ [#5042]: https://github.com/DataDog/dd-trace-rb/issues/5042
5372
+ [#5044]: https://github.com/DataDog/dd-trace-rb/issues/5044
5373
+ [#5045]: https://github.com/DataDog/dd-trace-rb/issues/5045
5374
+ [#5049]: https://github.com/DataDog/dd-trace-rb/issues/5049
5375
+ [#5053]: https://github.com/DataDog/dd-trace-rb/issues/5053
5376
+ [#5054]: https://github.com/DataDog/dd-trace-rb/issues/5054
5377
+ [#5058]: https://github.com/DataDog/dd-trace-rb/issues/5058
5378
+ [#5073]: https://github.com/DataDog/dd-trace-rb/issues/5073
5379
+ [#5076]: https://github.com/DataDog/dd-trace-rb/issues/5076
5380
+ [#5086]: https://github.com/DataDog/dd-trace-rb/issues/5086
5381
+ [#5091]: https://github.com/DataDog/dd-trace-rb/issues/5091
5382
+ [#5111]: https://github.com/DataDog/dd-trace-rb/issues/5111
5383
+ [#5122]: https://github.com/DataDog/dd-trace-rb/issues/5122
5384
+ [#5144]: https://github.com/DataDog/dd-trace-rb/issues/5144
5385
+ [#5145]: https://github.com/DataDog/dd-trace-rb/issues/5145
5386
+ [#5146]: https://github.com/DataDog/dd-trace-rb/issues/5146
5387
+ [#5148]: https://github.com/DataDog/dd-trace-rb/issues/5148
5388
+ [#5150]: https://github.com/DataDog/dd-trace-rb/issues/5150
5389
+ [#5153]: https://github.com/DataDog/dd-trace-rb/issues/5153
5390
+ [#5157]: https://github.com/DataDog/dd-trace-rb/issues/5157
5391
+ [#5159]: https://github.com/DataDog/dd-trace-rb/issues/5159
5392
+ [#5165]: https://github.com/DataDog/dd-trace-rb/issues/5165
5393
+ [#5168]: https://github.com/DataDog/dd-trace-rb/issues/5168
5394
+ [#5169]: https://github.com/DataDog/dd-trace-rb/issues/5169
5395
+ [#5176]: https://github.com/DataDog/dd-trace-rb/issues/5176
5396
+ [#5194]: https://github.com/DataDog/dd-trace-rb/issues/5194
5397
+ [#5197]: https://github.com/DataDog/dd-trace-rb/issues/5197
5398
+ [#5201]: https://github.com/DataDog/dd-trace-rb/issues/5201
5399
+ [#5206]: https://github.com/DataDog/dd-trace-rb/issues/5206
5400
+ [#5210]: https://github.com/DataDog/dd-trace-rb/issues/5210
5401
+ [#5215]: https://github.com/DataDog/dd-trace-rb/issues/5215
5402
+ [#5222]: https://github.com/DataDog/dd-trace-rb/issues/5222
5403
+ [#5237]: https://github.com/DataDog/dd-trace-rb/issues/5237
5404
+ [#5238]: https://github.com/DataDog/dd-trace-rb/issues/5238
5405
+ [#5240]: https://github.com/DataDog/dd-trace-rb/issues/5240
5406
+ [#5246]: https://github.com/DataDog/dd-trace-rb/issues/5246
5407
+ [#5247]: https://github.com/DataDog/dd-trace-rb/issues/5247
5408
+ [#5254]: https://github.com/DataDog/dd-trace-rb/issues/5254
5409
+ [#5273]: https://github.com/DataDog/dd-trace-rb/issues/5273
5410
+ [#5274]: https://github.com/DataDog/dd-trace-rb/issues/5274
5411
+ [#5278]: https://github.com/DataDog/dd-trace-rb/issues/5278
5412
+ [#5283]: https://github.com/DataDog/dd-trace-rb/issues/5283
5413
+ [#5294]: https://github.com/DataDog/dd-trace-rb/issues/5294
5414
+ [#5304]: https://github.com/DataDog/dd-trace-rb/issues/5304
5415
+ [#5305]: https://github.com/DataDog/dd-trace-rb/issues/5305
5416
+ [#5320]: https://github.com/DataDog/dd-trace-rb/issues/5320
5417
+ [#5321]: https://github.com/DataDog/dd-trace-rb/issues/5321
5418
+ [#5334]: https://github.com/DataDog/dd-trace-rb/issues/5334
5419
+ [#5335]: https://github.com/DataDog/dd-trace-rb/issues/5335
5420
+ [#5336]: https://github.com/DataDog/dd-trace-rb/issues/5336
5421
+ [#5341]: https://github.com/DataDog/dd-trace-rb/issues/5341
5422
+ [#5342]: https://github.com/DataDog/dd-trace-rb/issues/5342
5423
+ [#5347]: https://github.com/DataDog/dd-trace-rb/issues/5347
5424
+ [#5351]: https://github.com/DataDog/dd-trace-rb/issues/5351
5425
+ [#5352]: https://github.com/DataDog/dd-trace-rb/issues/5352
5426
+ [#5368]: https://github.com/DataDog/dd-trace-rb/issues/5368
5427
+ [#5371]: https://github.com/DataDog/dd-trace-rb/issues/5371
5428
+ [#5375]: https://github.com/DataDog/dd-trace-rb/issues/5375
5429
+ [#5396]: https://github.com/DataDog/dd-trace-rb/issues/5396
5430
+ [#5414]: https://github.com/DataDog/dd-trace-rb/issues/5414
5431
+ [#5424]: https://github.com/DataDog/dd-trace-rb/issues/5424
5432
+ [#5425]: https://github.com/DataDog/dd-trace-rb/issues/5425
5433
+ [#5427]: https://github.com/DataDog/dd-trace-rb/issues/5427
5434
+ [#5432]: https://github.com/DataDog/dd-trace-rb/issues/5432
5435
+ [#5434]: https://github.com/DataDog/dd-trace-rb/issues/5434
5436
+ [#5435]: https://github.com/DataDog/dd-trace-rb/issues/5435
5437
+ [#5436]: https://github.com/DataDog/dd-trace-rb/issues/5436
5438
+ [#5446]: https://github.com/DataDog/dd-trace-rb/issues/5446
5439
+ [#5448]: https://github.com/DataDog/dd-trace-rb/issues/5448
5440
+ [#5449]: https://github.com/DataDog/dd-trace-rb/issues/5449
5441
+ [#5461]: https://github.com/DataDog/dd-trace-rb/issues/5461
5442
+ [#5468]: https://github.com/DataDog/dd-trace-rb/issues/5468
5443
+ [#5469]: https://github.com/DataDog/dd-trace-rb/issues/5469
5444
+ [#5483]: https://github.com/DataDog/dd-trace-rb/issues/5483
5445
+ [#5484]: https://github.com/DataDog/dd-trace-rb/issues/5484
5446
+ [#5499]: https://github.com/DataDog/dd-trace-rb/issues/5499
5447
+ [#5501]: https://github.com/DataDog/dd-trace-rb/issues/5501
5448
+ [#5509]: https://github.com/DataDog/dd-trace-rb/issues/5509
5449
+ [#5525]: https://github.com/DataDog/dd-trace-rb/issues/5525
5450
+ [#5531]: https://github.com/DataDog/dd-trace-rb/issues/5531
5451
+ [#5564]: https://github.com/DataDog/dd-trace-rb/issues/5564
5452
+ [#5569]: https://github.com/DataDog/dd-trace-rb/issues/5569
5453
+ [#5573]: https://github.com/DataDog/dd-trace-rb/issues/5573
5454
+ [#5574]: https://github.com/DataDog/dd-trace-rb/issues/5574
5455
+ [#5579]: https://github.com/DataDog/dd-trace-rb/issues/5579
5456
+ [#5580]: https://github.com/DataDog/dd-trace-rb/issues/5580
5457
+ [#5587]: https://github.com/DataDog/dd-trace-rb/issues/5587
5458
+ [#5594]: https://github.com/DataDog/dd-trace-rb/issues/5594
5459
+ [#5599]: https://github.com/DataDog/dd-trace-rb/issues/5599
5460
+ [#5634]: https://github.com/DataDog/dd-trace-rb/issues/5634
5461
+ [#5657]: https://github.com/DataDog/dd-trace-rb/issues/5657
5462
+ [#5663]: https://github.com/DataDog/dd-trace-rb/issues/5663
5463
+ [#5672]: https://github.com/DataDog/dd-trace-rb/issues/5672
5464
+ [#5674]: https://github.com/DataDog/dd-trace-rb/issues/5674
5465
+ [#5677]: https://github.com/DataDog/dd-trace-rb/issues/5677
5466
+ [#5681]: https://github.com/DataDog/dd-trace-rb/issues/5681
5467
+ [#5687]: https://github.com/DataDog/dd-trace-rb/issues/5687
5468
+ [#5689]: https://github.com/DataDog/dd-trace-rb/issues/5689
5469
+ [#5697]: https://github.com/DataDog/dd-trace-rb/issues/5697
5470
+ [#5705]: https://github.com/DataDog/dd-trace-rb/issues/5705
5471
+ [#5717]: https://github.com/DataDog/dd-trace-rb/issues/5717
5472
+ [#5719]: https://github.com/DataDog/dd-trace-rb/issues/5719
5473
+ [#5723]: https://github.com/DataDog/dd-trace-rb/issues/5723
5474
+ [#5724]: https://github.com/DataDog/dd-trace-rb/issues/5724
5475
+ [#5750]: https://github.com/DataDog/dd-trace-rb/issues/5750
5476
+ [#5753]: https://github.com/DataDog/dd-trace-rb/issues/5753
5477
+ [#5754]: https://github.com/DataDog/dd-trace-rb/issues/5754
5478
+ [#5762]: https://github.com/DataDog/dd-trace-rb/issues/5762
5479
+ [#5768]: https://github.com/DataDog/dd-trace-rb/issues/5768
5480
+ [#5773]: https://github.com/DataDog/dd-trace-rb/issues/5773
5481
+ [#5777]: https://github.com/DataDog/dd-trace-rb/issues/5777
5482
+ [#5811]: https://github.com/DataDog/dd-trace-rb/issues/5811
5483
+ [#5812]: https://github.com/DataDog/dd-trace-rb/issues/5812
5484
+ [#5816]: https://github.com/DataDog/dd-trace-rb/issues/5816
5485
+ [#5828]: https://github.com/DataDog/dd-trace-rb/issues/5828
5486
+ [#5830]: https://github.com/DataDog/dd-trace-rb/issues/5830
5487
+ [#5834]: https://github.com/DataDog/dd-trace-rb/issues/5834
5488
+ [#5836]: https://github.com/DataDog/dd-trace-rb/issues/5836
5489
+ [#5844]: https://github.com/DataDog/dd-trace-rb/issues/5844
5490
+ [#5845]: https://github.com/DataDog/dd-trace-rb/issues/5845
5491
+ [#5857]: https://github.com/DataDog/dd-trace-rb/issues/5857
5492
+ [#5872]: https://github.com/DataDog/dd-trace-rb/issues/5872
5493
+ [#5877]: https://github.com/DataDog/dd-trace-rb/issues/5877
5494
+ [#5881]: https://github.com/DataDog/dd-trace-rb/issues/5881
5495
+ [#5883]: https://github.com/DataDog/dd-trace-rb/issues/5883
5496
+ [#5890]: https://github.com/DataDog/dd-trace-rb/issues/5890
5497
+ [#5894]: https://github.com/DataDog/dd-trace-rb/issues/5894
5498
+ [#5907]: https://github.com/DataDog/dd-trace-rb/issues/5907
5499
+ [#5911]: https://github.com/DataDog/dd-trace-rb/issues/5911
5500
+ [#5916]: https://github.com/DataDog/dd-trace-rb/issues/5916
5501
+ [#5920]: https://github.com/DataDog/dd-trace-rb/issues/5920
5502
+ [#5938]: https://github.com/DataDog/dd-trace-rb/issues/5938
5503
+ [#5940]: https://github.com/DataDog/dd-trace-rb/issues/5940
5504
+ [#5945]: https://github.com/DataDog/dd-trace-rb/issues/5945
5505
+ [#5954]: https://github.com/DataDog/dd-trace-rb/issues/5954
5506
+ [#5955]: https://github.com/DataDog/dd-trace-rb/issues/5955
5507
+ [#5960]: https://github.com/DataDog/dd-trace-rb/issues/5960
5508
+ [#5970]: https://github.com/DataDog/dd-trace-rb/issues/5970
5509
+ [#5973]: https://github.com/DataDog/dd-trace-rb/issues/5973
5510
+ [#5975]: https://github.com/DataDog/dd-trace-rb/issues/5975
5511
+ [#5981]: https://github.com/DataDog/dd-trace-rb/issues/5981
5512
+ [#5987]: https://github.com/DataDog/dd-trace-rb/issues/5987
5513
+ [#5990]: https://github.com/DataDog/dd-trace-rb/issues/5990
5514
+ [#5991]: https://github.com/DataDog/dd-trace-rb/issues/5991
5515
+ [#5993]: https://github.com/DataDog/dd-trace-rb/issues/5993
5516
+ [#6014]: https://github.com/DataDog/dd-trace-rb/issues/6014
5517
+ [#6020]: https://github.com/DataDog/dd-trace-rb/issues/6020
5518
+ [#6022]: https://github.com/DataDog/dd-trace-rb/issues/6022
5519
+ [#6023]: https://github.com/DataDog/dd-trace-rb/issues/6023
5520
+ [#6047]: https://github.com/DataDog/dd-trace-rb/issues/6047
5521
+ [#6050]: https://github.com/DataDog/dd-trace-rb/issues/6050
5522
+ [#6056]: https://github.com/DataDog/dd-trace-rb/issues/6056
5523
+ [#6060]: https://github.com/DataDog/dd-trace-rb/issues/6060
5524
+ [#6064]: https://github.com/DataDog/dd-trace-rb/issues/6064
5525
+ [#6072]: https://github.com/DataDog/dd-trace-rb/issues/6072
4522
5526
  [@AdrianLC]: https://github.com/AdrianLC
4523
5527
  [@Azure7111]: https://github.com/Azure7111
4524
5528
  [@BabyGroot]: https://github.com/BabyGroot
@@ -4577,6 +5581,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
4577
5581
  [@dorner]: https://github.com/dorner
4578
5582
  [@drcapulet]: https://github.com/drcapulet
4579
5583
  [@dudo]: https://github.com/dudo
5584
+ [@duration]: https://github.com/duration
4580
5585
  [@e1senh0rn]: https://github.com/e1senh0rn
4581
5586
  [@ecdemis123]: https://github.com/ecdemis123
4582
5587
  [@elliterate]: https://github.com/elliterate
@@ -4585,6 +5590,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
4585
5590
  [@erict-square]: https://github.com/erict-square
4586
5591
  [@errriclee]: https://github.com/errriclee
4587
5592
  [@evan-waters]: https://github.com/evan-waters
5593
+ [@exception]: https://github.com/exception
4588
5594
  [@fledman]: https://github.com/fledman
4589
5595
  [@frsantos]: https://github.com/frsantos
4590
5596
  [@fteem]: https://github.com/fteem
@@ -4631,6 +5637,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
4631
5637
  [@mscrivo]: https://github.com/mscrivo
4632
5638
  [@mstruve]: https://github.com/mstruve
4633
5639
  [@mustela]: https://github.com/mustela
5640
+ [@navidemad]: https://github.com/navidemad
4634
5641
  [@nic-lan]: https://github.com/nic-lan
4635
5642
  [@noma4i]: https://github.com/noma4i
4636
5643
  [@norbertnytko]: https://github.com/norbertnytko
@@ -4642,6 +5649,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
4642
5649
  [@rahul342]: https://github.com/rahul342
4643
5650
  [@randy-girard]: https://github.com/randy-girard
4644
5651
  [@renchap]: https://github.com/renchap
5652
+ [@return]: https://github.com/return
4645
5653
  [@ricbartm]: https://github.com/ricbartm
4646
5654
  [@roccoblues]: https://github.com/roccoblues
4647
5655
  [@rqz13]: https://github.com/rqz13