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