datadog 2.21.0 → 2.38.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 (623) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +574 -1
  3. data/ext/LIBDATADOG_DEVELOPMENT.md +3 -0
  4. data/ext/datadog_profiling_native_extension/clock_id.h +9 -1
  5. data/ext/datadog_profiling_native_extension/clock_id_from_mach.c +66 -0
  6. data/ext/datadog_profiling_native_extension/clock_id_from_pthread.c +3 -2
  7. data/ext/datadog_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +301 -82
  8. data/ext/datadog_profiling_native_extension/collectors_discrete_dynamic_sampler.c +4 -4
  9. data/ext/datadog_profiling_native_extension/collectors_gc_profiling_helper.c +3 -2
  10. data/ext/datadog_profiling_native_extension/collectors_idle_sampling_helper.c +18 -4
  11. data/ext/datadog_profiling_native_extension/collectors_stack.c +63 -32
  12. data/ext/datadog_profiling_native_extension/collectors_stack.h +7 -2
  13. data/ext/datadog_profiling_native_extension/collectors_thread_context.c +728 -436
  14. data/ext/datadog_profiling_native_extension/collectors_thread_context.h +19 -6
  15. data/ext/datadog_profiling_native_extension/crashtracking_runtime_stacks.c +239 -0
  16. data/ext/datadog_profiling_native_extension/datadog_ruby_common.c +65 -1
  17. data/ext/datadog_profiling_native_extension/datadog_ruby_common.h +40 -1
  18. data/ext/datadog_profiling_native_extension/encoded_profile.c +2 -1
  19. data/ext/datadog_profiling_native_extension/extconf.rb +41 -37
  20. data/ext/datadog_profiling_native_extension/gvl_profiling_helper.c +4 -43
  21. data/ext/datadog_profiling_native_extension/gvl_profiling_helper.h +15 -47
  22. data/ext/datadog_profiling_native_extension/heap_recorder.c +252 -103
  23. data/ext/datadog_profiling_native_extension/heap_recorder.h +12 -1
  24. data/ext/datadog_profiling_native_extension/http_transport.c +66 -68
  25. data/ext/datadog_profiling_native_extension/libdatadog_helpers.c +3 -22
  26. data/ext/datadog_profiling_native_extension/libdatadog_helpers.h +0 -5
  27. data/ext/datadog_profiling_native_extension/macos_sampler_thread.h +55 -0
  28. data/ext/datadog_profiling_native_extension/native_extension_helpers.rb +0 -13
  29. data/ext/datadog_profiling_native_extension/private_vm_api_access.c +40 -43
  30. data/ext/datadog_profiling_native_extension/private_vm_api_access.h +6 -0
  31. data/ext/datadog_profiling_native_extension/profiling.c +65 -19
  32. data/ext/datadog_profiling_native_extension/ruby_helpers.c +63 -46
  33. data/ext/datadog_profiling_native_extension/ruby_helpers.h +17 -5
  34. data/ext/datadog_profiling_native_extension/setup_signal_handler.c +32 -10
  35. data/ext/datadog_profiling_native_extension/setup_signal_handler.h +2 -1
  36. data/ext/datadog_profiling_native_extension/stack_recorder.c +110 -85
  37. data/ext/datadog_profiling_native_extension/stack_recorder.h +3 -1
  38. data/ext/datadog_profiling_native_extension/time_helpers.h +13 -7
  39. data/ext/datadog_profiling_native_extension/unsafe_api_calls_check.c +2 -1
  40. data/ext/datadog_profiling_native_extension/unsafe_api_calls_check.h +9 -4
  41. data/ext/libdatadog_api/crashtracker.c +16 -15
  42. data/ext/libdatadog_api/crashtracker_report_exception.c +126 -0
  43. data/ext/libdatadog_api/datadog_ruby_common.c +65 -1
  44. data/ext/libdatadog_api/datadog_ruby_common.h +40 -1
  45. data/ext/libdatadog_api/ddsketch.c +102 -0
  46. data/ext/libdatadog_api/di.c +203 -0
  47. data/ext/libdatadog_api/extconf.rb +18 -24
  48. data/ext/libdatadog_api/feature_flags.c +554 -0
  49. data/ext/libdatadog_api/feature_flags.h +5 -0
  50. data/ext/libdatadog_api/helpers.h +27 -0
  51. data/ext/libdatadog_api/init.c +13 -1
  52. data/ext/libdatadog_api/library_config.c +34 -25
  53. data/ext/libdatadog_api/process_discovery.c +19 -13
  54. data/ext/libdatadog_extconf_helpers.rb +94 -11
  55. data/lib/datadog/ai_guard/api_client.rb +84 -0
  56. data/lib/datadog/ai_guard/autoload.rb +10 -0
  57. data/lib/datadog/ai_guard/component.rb +44 -0
  58. data/lib/datadog/ai_guard/configuration/ext.rb +17 -0
  59. data/lib/datadog/ai_guard/configuration.rb +115 -0
  60. data/lib/datadog/ai_guard/contrib/auto_instrument.rb +24 -0
  61. data/lib/datadog/ai_guard/contrib/integration.rb +37 -0
  62. data/lib/datadog/ai_guard/contrib/rack/integration.rb +42 -0
  63. data/lib/datadog/ai_guard/contrib/rack/patcher.rb +26 -0
  64. data/lib/datadog/ai_guard/contrib/rack/request_middleware.rb +97 -0
  65. data/lib/datadog/ai_guard/contrib/rails/integration.rb +41 -0
  66. data/lib/datadog/ai_guard/contrib/rails/patcher.rb +97 -0
  67. data/lib/datadog/ai_guard/contrib/ruby_llm/chat_instrumentation.rb +80 -0
  68. data/lib/datadog/ai_guard/contrib/ruby_llm/integration.rb +41 -0
  69. data/lib/datadog/ai_guard/contrib/ruby_llm/patcher.rb +30 -0
  70. data/lib/datadog/ai_guard/evaluation/content_builder.rb +31 -0
  71. data/lib/datadog/ai_guard/evaluation/content_part.rb +36 -0
  72. data/lib/datadog/ai_guard/evaluation/message.rb +25 -0
  73. data/lib/datadog/ai_guard/evaluation/no_op_result.rb +36 -0
  74. data/lib/datadog/ai_guard/evaluation/request.rb +86 -0
  75. data/lib/datadog/ai_guard/evaluation/result.rb +45 -0
  76. data/lib/datadog/ai_guard/evaluation/tool_call.rb +18 -0
  77. data/lib/datadog/ai_guard/evaluation.rb +108 -0
  78. data/lib/datadog/ai_guard/ext.rb +29 -0
  79. data/lib/datadog/ai_guard.rb +181 -0
  80. data/lib/datadog/appsec/api_security/endpoint_collection/grape_route_serializer.rb +26 -0
  81. data/lib/datadog/appsec/api_security/endpoint_collection/rails_collector.rb +66 -0
  82. data/lib/datadog/appsec/api_security/endpoint_collection/rails_route_serializer.rb +36 -0
  83. data/lib/datadog/appsec/api_security/endpoint_collection/sinatra_route_serializer.rb +26 -0
  84. data/lib/datadog/appsec/api_security/endpoint_collection.rb +10 -0
  85. data/lib/datadog/appsec/api_security/route_extractor.rb +38 -9
  86. data/lib/datadog/appsec/api_security/sampler.rb +7 -4
  87. data/lib/datadog/appsec/assets/blocked.html +10 -1
  88. data/lib/datadog/appsec/assets/blocked.json +1 -1
  89. data/lib/datadog/appsec/assets/blocked.text +3 -1
  90. data/lib/datadog/appsec/assets/waf_rules/README.md +30 -36
  91. data/lib/datadog/appsec/assets/waf_rules/recommended.json +359 -4
  92. data/lib/datadog/appsec/assets/waf_rules/strict.json +43 -2
  93. data/lib/datadog/appsec/assets.rb +1 -1
  94. data/lib/datadog/appsec/autoload.rb +1 -1
  95. data/lib/datadog/appsec/component.rb +16 -9
  96. data/lib/datadog/appsec/compressed_json.rb +3 -3
  97. data/lib/datadog/appsec/configuration.rb +427 -1
  98. data/lib/datadog/appsec/context.rb +51 -13
  99. data/lib/datadog/appsec/contrib/active_record/instrumentation.rb +3 -1
  100. data/lib/datadog/appsec/contrib/active_record/integration.rb +1 -1
  101. data/lib/datadog/appsec/contrib/active_record/patcher.rb +4 -1
  102. data/lib/datadog/appsec/contrib/aws_lambda/gateway/watcher.rb +75 -0
  103. data/lib/datadog/appsec/contrib/aws_lambda/integration.rb +39 -0
  104. data/lib/datadog/appsec/contrib/aws_lambda/patcher.rb +30 -0
  105. data/lib/datadog/appsec/contrib/aws_lambda/waf_addresses.rb +144 -0
  106. data/lib/datadog/appsec/contrib/devise/integration.rb +1 -1
  107. data/lib/datadog/appsec/contrib/devise/patches/signin_tracking_patch.rb +2 -1
  108. data/lib/datadog/appsec/contrib/excon/integration.rb +1 -1
  109. data/lib/datadog/appsec/contrib/excon/patcher.rb +3 -1
  110. data/lib/datadog/appsec/contrib/excon/ssrf_detection_middleware.rb +152 -12
  111. data/lib/datadog/appsec/contrib/faraday/integration.rb +1 -1
  112. data/lib/datadog/appsec/contrib/faraday/patcher.rb +1 -1
  113. data/lib/datadog/appsec/contrib/faraday/ssrf_detection_middleware.rb +138 -12
  114. data/lib/datadog/appsec/contrib/graphql/gateway/multiplex.rb +74 -24
  115. data/lib/datadog/appsec/contrib/graphql/gateway/watcher.rb +4 -2
  116. data/lib/datadog/appsec/contrib/graphql/integration.rb +2 -1
  117. data/lib/datadog/appsec/contrib/rack/buffered_input.rb +83 -0
  118. data/lib/datadog/appsec/contrib/rack/ext.rb +1 -1
  119. data/lib/datadog/appsec/contrib/rack/gateway/request.rb +52 -13
  120. data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +40 -19
  121. data/lib/datadog/appsec/contrib/rack/input_peeker.rb +79 -0
  122. data/lib/datadog/appsec/contrib/rack/integration.rb +1 -1
  123. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +48 -33
  124. data/lib/datadog/appsec/contrib/rack/response_body.rb +36 -0
  125. data/lib/datadog/appsec/contrib/rails/gateway/request.rb +40 -1
  126. data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +26 -5
  127. data/lib/datadog/appsec/contrib/rails/integration.rb +1 -1
  128. data/lib/datadog/appsec/contrib/rails/patcher.rb +38 -0
  129. data/lib/datadog/appsec/contrib/rails/patches/process_action_patch.rb +2 -0
  130. data/lib/datadog/appsec/contrib/rest_client/integration.rb +1 -1
  131. data/lib/datadog/appsec/contrib/rest_client/patcher.rb +3 -1
  132. data/lib/datadog/appsec/contrib/rest_client/request_ssrf_detection_patch.rb +167 -11
  133. data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +43 -13
  134. data/lib/datadog/appsec/contrib/sinatra/integration.rb +1 -1
  135. data/lib/datadog/appsec/contrib/sinatra/patcher.rb +4 -4
  136. data/lib/datadog/appsec/contrib/sinatra/patches/json_patch.rb +1 -1
  137. data/lib/datadog/appsec/counter_sampler.rb +25 -0
  138. data/lib/datadog/appsec/default_header_tags.rb +52 -0
  139. data/lib/datadog/appsec/event.rb +13 -31
  140. data/lib/datadog/appsec/ext.rb +3 -0
  141. data/lib/datadog/appsec/instrumentation/gateway/middleware.rb +2 -3
  142. data/lib/datadog/appsec/instrumentation/gateway.rb +2 -15
  143. data/lib/datadog/appsec/metrics/collector.rb +43 -5
  144. data/lib/datadog/appsec/metrics/exporter.rb +16 -3
  145. data/lib/datadog/appsec/metrics/telemetry.rb +20 -3
  146. data/lib/datadog/appsec/metrics/telemetry_exporter.rb +20 -1
  147. data/lib/datadog/appsec/metrics.rb +5 -5
  148. data/lib/datadog/appsec/monitor/gateway/watcher.rb +8 -6
  149. data/lib/datadog/appsec/remote.rb +44 -29
  150. data/lib/datadog/appsec/response.rb +18 -4
  151. data/lib/datadog/appsec/route_normalizer/rails_route_pattern.rb +176 -0
  152. data/lib/datadog/appsec/route_normalizer/route_pattern.rb +378 -0
  153. data/lib/datadog/appsec/route_normalizer/route_text.rb +57 -0
  154. data/lib/datadog/appsec/route_normalizer.rb +80 -0
  155. data/lib/datadog/appsec/security_engine/engine.rb +26 -5
  156. data/lib/datadog/appsec/security_engine/result.rb +29 -9
  157. data/lib/datadog/appsec/security_engine/runner.rb +20 -10
  158. data/lib/datadog/appsec/security_event.rb +5 -7
  159. data/lib/datadog/appsec/trace_keeper.rb +18 -6
  160. data/lib/datadog/appsec/utils/http/body.rb +38 -0
  161. data/lib/datadog/appsec/utils/http/body_reader.rb +61 -0
  162. data/lib/datadog/appsec/utils/http/media_range.rb +2 -1
  163. data/lib/datadog/appsec/utils/http/media_type.rb +32 -26
  164. data/lib/datadog/appsec/utils/http/url_encoded.rb +52 -0
  165. data/lib/datadog/appsec.rb +6 -3
  166. data/lib/datadog/core/configuration/agentless_settings_resolver.rb +2 -2
  167. data/lib/datadog/core/configuration/base.rb +17 -5
  168. data/lib/datadog/core/configuration/components.rb +185 -17
  169. data/lib/datadog/core/configuration/components_state.rb +6 -1
  170. data/lib/datadog/core/configuration/config_helper.rb +11 -2
  171. data/lib/datadog/core/configuration/deprecations.rb +2 -2
  172. data/lib/datadog/core/configuration/option.rb +32 -6
  173. data/lib/datadog/core/configuration/option_definition.rb +42 -14
  174. data/lib/datadog/core/configuration/options.rb +49 -12
  175. data/lib/datadog/core/configuration/settings.rb +115 -16
  176. data/lib/datadog/core/configuration/stable_config.rb +10 -0
  177. data/lib/datadog/core/configuration/supported_configurations.rb +379 -300
  178. data/lib/datadog/core/configuration.rb +3 -3
  179. data/lib/datadog/core/contrib/rails/railtie.rb +32 -0
  180. data/lib/datadog/core/contrib/rails/utils.rb +7 -3
  181. data/lib/datadog/core/crashtracking/component.rb +73 -21
  182. data/lib/datadog/core/crashtracking/tag_builder.rb +6 -0
  183. data/lib/datadog/core/ddsketch.rb +19 -0
  184. data/lib/datadog/core/diagnostics/environment_logger.rb +3 -1
  185. data/lib/datadog/core/environment/agent_info.rb +65 -1
  186. data/lib/datadog/core/environment/cgroup.rb +52 -25
  187. data/lib/datadog/core/environment/container.rb +140 -46
  188. data/lib/datadog/core/environment/ext.rb +13 -0
  189. data/lib/datadog/core/environment/identity.rb +40 -4
  190. data/lib/datadog/core/environment/process.rb +122 -0
  191. data/lib/datadog/core/environment/socket.rb +13 -0
  192. data/lib/datadog/core/environment/yjit.rb +2 -1
  193. data/lib/datadog/core/error.rb +6 -6
  194. data/lib/datadog/core/evp.rb +11 -0
  195. data/lib/datadog/core/feature_flags.rb +61 -0
  196. data/lib/datadog/core/knuth_sampler.rb +59 -0
  197. data/lib/datadog/core/logger.rb +1 -1
  198. data/lib/datadog/core/metrics/client.rb +6 -6
  199. data/lib/datadog/core/metrics/logging.rb +1 -1
  200. data/lib/datadog/core/pin.rb +8 -8
  201. data/lib/datadog/core/process_discovery.rb +21 -18
  202. data/lib/datadog/core/rate_limiter.rb +11 -1
  203. data/lib/datadog/core/remote/client/capabilities.rb +49 -6
  204. data/lib/datadog/core/remote/client.rb +15 -7
  205. data/lib/datadog/core/remote/component.rb +64 -36
  206. data/lib/datadog/core/remote/configuration/content.rb +15 -2
  207. data/lib/datadog/core/remote/configuration/digest.rb +14 -7
  208. data/lib/datadog/core/remote/configuration/repository.rb +1 -1
  209. data/lib/datadog/core/remote/configuration/target.rb +13 -6
  210. data/lib/datadog/core/remote/transport/config.rb +9 -36
  211. data/lib/datadog/core/remote/transport/http/config.rb +15 -55
  212. data/lib/datadog/core/remote/transport/http/negotiation.rb +14 -44
  213. data/lib/datadog/core/remote/transport/http.rb +15 -24
  214. data/lib/datadog/core/remote/transport/negotiation.rb +8 -33
  215. data/lib/datadog/core/remote/worker.rb +25 -37
  216. data/lib/datadog/core/runtime/metrics.rb +11 -2
  217. data/lib/datadog/core/semaphore.rb +1 -4
  218. data/lib/datadog/core/tag_builder.rb +0 -4
  219. data/lib/datadog/core/tag_normalizer.rb +84 -0
  220. data/lib/datadog/core/telemetry/component.rb +59 -15
  221. data/lib/datadog/core/telemetry/emitter.rb +6 -6
  222. data/lib/datadog/core/telemetry/event/app_client_configuration_change.rb +2 -3
  223. data/lib/datadog/core/telemetry/event/app_endpoints_loaded.rb +30 -0
  224. data/lib/datadog/core/telemetry/event/app_extended_heartbeat.rb +32 -0
  225. data/lib/datadog/core/telemetry/event/app_started.rb +177 -171
  226. data/lib/datadog/core/telemetry/event/synth_app_client_configuration_change.rb +27 -4
  227. data/lib/datadog/core/telemetry/event.rb +2 -7
  228. data/lib/datadog/core/telemetry/ext.rb +1 -0
  229. data/lib/datadog/core/telemetry/logger.rb +4 -2
  230. data/lib/datadog/core/telemetry/logging.rb +17 -5
  231. data/lib/datadog/core/telemetry/metrics_manager.rb +9 -0
  232. data/lib/datadog/core/telemetry/request.rb +17 -5
  233. data/lib/datadog/core/telemetry/transport/http/telemetry.rb +8 -34
  234. data/lib/datadog/core/telemetry/transport/http.rb +21 -16
  235. data/lib/datadog/core/telemetry/transport/telemetry.rb +8 -17
  236. data/lib/datadog/core/telemetry/worker.rb +108 -32
  237. data/lib/datadog/core/transport/ext.rb +3 -0
  238. data/lib/datadog/core/transport/http/api/endpoint.rb +9 -4
  239. data/lib/datadog/core/transport/http/api/instance.rb +4 -21
  240. data/lib/datadog/core/transport/http/builder.rb +10 -6
  241. data/lib/datadog/core/transport/http/client.rb +80 -0
  242. data/lib/datadog/core/transport/http/response.rb +4 -0
  243. data/lib/datadog/core/transport/http.rb +24 -19
  244. data/lib/datadog/core/transport/parcel.rb +61 -9
  245. data/lib/datadog/core/transport/response.rb +16 -2
  246. data/lib/datadog/core/transport/transport.rb +90 -0
  247. data/lib/datadog/core/utils/at_fork_monkey_patch.rb +2 -2
  248. data/lib/datadog/core/utils/{base64.rb → base64_codec.rb} +4 -3
  249. data/lib/datadog/core/utils/enumerable_compat.rb +29 -0
  250. data/lib/datadog/core/utils/fnv.rb +26 -0
  251. data/lib/datadog/core/utils/forking.rb +3 -1
  252. data/lib/datadog/core/utils/hash.rb +0 -23
  253. data/lib/datadog/{appsec/api_security → core/utils}/lru_cache.rb +10 -21
  254. data/lib/datadog/core/utils/network.rb +22 -1
  255. data/lib/datadog/core/utils/only_once.rb +1 -1
  256. data/lib/datadog/core/utils/only_once_successful.rb +8 -2
  257. data/lib/datadog/core/utils/safe_dup.rb +2 -2
  258. data/lib/datadog/core/utils/sequence.rb +2 -0
  259. data/lib/datadog/core/utils/spawn_monkey_patch.rb +68 -0
  260. data/lib/datadog/core/utils/time.rb +6 -2
  261. data/lib/datadog/core/utils.rb +3 -1
  262. data/lib/datadog/core/workers/async.rb +11 -2
  263. data/lib/datadog/core/workers/interval_loop.rb +51 -3
  264. data/lib/datadog/core/workers/polling.rb +2 -0
  265. data/lib/datadog/core/workers/queue.rb +96 -1
  266. data/lib/datadog/core/workers/runtime_metrics.rb +9 -1
  267. data/lib/datadog/core.rb +10 -3
  268. data/lib/datadog/data_streams/configuration.rb +50 -0
  269. data/lib/datadog/data_streams/ext.rb +11 -0
  270. data/lib/datadog/data_streams/extensions.rb +16 -0
  271. data/lib/datadog/data_streams/pathway_context.rb +169 -0
  272. data/lib/datadog/data_streams/processor.rb +511 -0
  273. data/lib/datadog/data_streams/transport/http/stats.rb +58 -0
  274. data/lib/datadog/data_streams/transport/http.rb +36 -0
  275. data/lib/datadog/data_streams/transport/stats.rb +39 -0
  276. data/lib/datadog/data_streams.rb +100 -0
  277. data/lib/datadog/di/base.rb +15 -7
  278. data/lib/datadog/di/boot.rb +7 -2
  279. data/lib/datadog/di/capture_expression.rb +21 -0
  280. data/lib/datadog/di/capture_expression_evaluator.rb +71 -0
  281. data/lib/datadog/di/capture_limits.rb +41 -0
  282. data/lib/datadog/di/code_tracker.rb +217 -15
  283. data/lib/datadog/di/component.rb +139 -51
  284. data/lib/datadog/di/configuration.rb +241 -2
  285. data/lib/datadog/di/context.rb +82 -0
  286. data/lib/datadog/di/contrib/active_record.rb +34 -5
  287. data/lib/datadog/di/el/compiler.rb +168 -0
  288. data/lib/datadog/di/el/evaluator.rb +159 -0
  289. data/lib/datadog/di/el/expression.rb +42 -0
  290. data/lib/datadog/di/el.rb +5 -0
  291. data/lib/datadog/di/error.rb +44 -0
  292. data/lib/datadog/di/fatal_exceptions.rb +26 -0
  293. data/lib/datadog/di/instrumenter.rb +623 -147
  294. data/lib/datadog/di/logger.rb +2 -2
  295. data/lib/datadog/di/probe.rb +122 -14
  296. data/lib/datadog/di/probe_builder.rb +124 -3
  297. data/lib/datadog/di/probe_file_loader/railtie.rb +1 -1
  298. data/lib/datadog/di/probe_file_loader.rb +12 -7
  299. data/lib/datadog/di/probe_manager.rb +195 -100
  300. data/lib/datadog/di/probe_notification_builder.rb +321 -90
  301. data/lib/datadog/di/probe_notifier_worker.rb +112 -36
  302. data/lib/datadog/di/probe_repository.rb +198 -0
  303. data/lib/datadog/di/proc_responder.rb +36 -0
  304. data/lib/datadog/di/redactor.rb +24 -2
  305. data/lib/datadog/di/remote.rb +258 -93
  306. data/lib/datadog/di/serializer.rb +310 -29
  307. data/lib/datadog/di/transport/diagnostics.rb +12 -42
  308. data/lib/datadog/di/transport/http/diagnostics.rb +4 -34
  309. data/lib/datadog/di/transport/http/input.rb +2 -34
  310. data/lib/datadog/di/transport/http.rb +43 -19
  311. data/lib/datadog/di/transport/input.rb +112 -38
  312. data/lib/datadog/di/utils.rb +42 -14
  313. data/lib/datadog/di.rb +204 -4
  314. data/lib/datadog/error_tracking/collector.rb +2 -1
  315. data/lib/datadog/error_tracking/component.rb +2 -2
  316. data/lib/datadog/error_tracking/configuration.rb +55 -2
  317. data/lib/datadog/error_tracking/filters.rb +2 -2
  318. data/lib/datadog/kit/appsec/events/v2.rb +60 -3
  319. data/lib/datadog/kit/enable_core_dumps.rb +1 -1
  320. data/lib/datadog/kit/tracing/method_tracer.rb +135 -0
  321. data/lib/datadog/open_feature/component.rb +100 -0
  322. data/lib/datadog/open_feature/configuration.rb +37 -0
  323. data/lib/datadog/open_feature/evaluation_engine.rb +70 -0
  324. data/lib/datadog/open_feature/exposures/batch_builder.rb +32 -0
  325. data/lib/datadog/open_feature/exposures/buffer.rb +43 -0
  326. data/lib/datadog/open_feature/exposures/deduplicator.rb +30 -0
  327. data/lib/datadog/open_feature/exposures/event.rb +60 -0
  328. data/lib/datadog/open_feature/exposures/reporter.rb +40 -0
  329. data/lib/datadog/open_feature/exposures/worker.rb +116 -0
  330. data/lib/datadog/open_feature/ext.rb +16 -0
  331. data/lib/datadog/open_feature/flag_evaluation/aggregator.rb +286 -0
  332. data/lib/datadog/open_feature/flag_evaluation/writer.rb +433 -0
  333. data/lib/datadog/open_feature/hooks/flag_eval_evp_hook.rb +101 -0
  334. data/lib/datadog/open_feature/hooks/flag_eval_metrics_hook.rb +49 -0
  335. data/lib/datadog/open_feature/metrics/flag_eval_metrics.rb +149 -0
  336. data/lib/datadog/open_feature/native_evaluator.rb +60 -0
  337. data/lib/datadog/open_feature/noop_evaluator.rb +26 -0
  338. data/lib/datadog/open_feature/provider.rb +191 -0
  339. data/lib/datadog/open_feature/remote.rb +67 -0
  340. data/lib/datadog/open_feature/resolution_details.rb +35 -0
  341. data/lib/datadog/open_feature/transport.rb +121 -0
  342. data/lib/datadog/open_feature.rb +19 -0
  343. data/lib/datadog/opentelemetry/api/baggage.rb +1 -1
  344. data/lib/datadog/opentelemetry/configuration/settings.rb +226 -0
  345. data/lib/datadog/opentelemetry/ext.rb +9 -0
  346. data/lib/datadog/opentelemetry/logs.rb +98 -0
  347. data/lib/datadog/opentelemetry/metrics.rb +90 -0
  348. data/lib/datadog/opentelemetry/sdk/configurator.rb +65 -1
  349. data/lib/datadog/opentelemetry/sdk/id_generator.rb +16 -10
  350. data/lib/datadog/opentelemetry/sdk/logs_exporter.rb +30 -0
  351. data/lib/datadog/opentelemetry/sdk/metrics_exporter.rb +28 -0
  352. data/lib/datadog/opentelemetry/sdk/propagator.rb +9 -3
  353. data/lib/datadog/opentelemetry/sdk/span_processor.rb +4 -1
  354. data/lib/datadog/opentelemetry/sdk.rb +19 -0
  355. data/lib/datadog/opentelemetry/signal_configuration.rb +53 -0
  356. data/lib/datadog/opentelemetry.rb +4 -0
  357. data/lib/datadog/profiling/collectors/code_provenance.rb +71 -12
  358. data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +52 -4
  359. data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +13 -5
  360. data/lib/datadog/profiling/collectors/info.rb +18 -4
  361. data/lib/datadog/profiling/collectors/thread_context.rb +10 -5
  362. data/lib/datadog/profiling/component.rb +82 -40
  363. data/lib/datadog/profiling/exporter.rb +41 -12
  364. data/lib/datadog/profiling/ext/dir_monkey_patches.rb +24 -5
  365. data/lib/datadog/profiling/ext/exec_monkey_patch.rb +32 -0
  366. data/lib/datadog/profiling/ext.rb +0 -2
  367. data/lib/datadog/profiling/flush.rb +23 -11
  368. data/lib/datadog/profiling/http_transport.rb +21 -8
  369. data/lib/datadog/profiling/load_native_extension.rb +2 -2
  370. data/lib/datadog/profiling/profiler.rb +31 -14
  371. data/lib/datadog/profiling/scheduler.rb +10 -9
  372. data/lib/datadog/profiling/stack_recorder.rb +0 -8
  373. data/lib/datadog/profiling/tag_builder.rb +37 -3
  374. data/lib/datadog/profiling/tasks/exec.rb +8 -3
  375. data/lib/datadog/profiling/tasks/help.rb +1 -0
  376. data/lib/datadog/profiling/tasks/setup.rb +2 -2
  377. data/lib/datadog/profiling.rb +1 -3
  378. data/lib/datadog/ruby_version.rb +25 -0
  379. data/lib/datadog/single_step_instrument.rb +2 -2
  380. data/lib/datadog/symbol_database/component.rb +734 -0
  381. data/lib/datadog/symbol_database/configuration.rb +73 -0
  382. data/lib/datadog/symbol_database/extensions.rb +19 -0
  383. data/lib/datadog/symbol_database/extractor.rb +1110 -0
  384. data/lib/datadog/symbol_database/file_hash.rb +48 -0
  385. data/lib/datadog/symbol_database/logger.rb +43 -0
  386. data/lib/datadog/symbol_database/remote.rb +180 -0
  387. data/lib/datadog/symbol_database/scope.rb +102 -0
  388. data/lib/datadog/symbol_database/scope_batcher.rb +292 -0
  389. data/lib/datadog/symbol_database/service_version.rb +66 -0
  390. data/lib/datadog/symbol_database/symbol.rb +69 -0
  391. data/lib/datadog/symbol_database/transport/http/endpoint.rb +28 -0
  392. data/lib/datadog/symbol_database/transport/http.rb +45 -0
  393. data/lib/datadog/symbol_database/transport.rb +54 -0
  394. data/lib/datadog/symbol_database/uploader.rb +230 -0
  395. data/lib/datadog/symbol_database.rb +71 -0
  396. data/lib/datadog/tracing/buffer.rb +3 -3
  397. data/lib/datadog/tracing/component.rb +17 -17
  398. data/lib/datadog/tracing/configuration/dynamic.rb +2 -2
  399. data/lib/datadog/tracing/configuration/ext.rb +22 -0
  400. data/lib/datadog/tracing/configuration/settings.rb +96 -4
  401. data/lib/datadog/tracing/contrib/action_cable/events/broadcast.rb +4 -1
  402. data/lib/datadog/tracing/contrib/action_cable/events/perform_action.rb +4 -1
  403. data/lib/datadog/tracing/contrib/action_cable/events/transmit.rb +4 -1
  404. data/lib/datadog/tracing/contrib/action_cable/instrumentation.rb +4 -1
  405. data/lib/datadog/tracing/contrib/action_mailer/event.rb +4 -1
  406. data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +10 -7
  407. data/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb +28 -0
  408. data/lib/datadog/tracing/contrib/action_pack/action_dispatch/patcher.rb +3 -1
  409. data/lib/datadog/tracing/contrib/action_pack/utils.rb +1 -2
  410. data/lib/datadog/tracing/contrib/action_view/events/render_partial.rb +4 -1
  411. data/lib/datadog/tracing/contrib/action_view/events/render_template.rb +5 -2
  412. data/lib/datadog/tracing/contrib/active_job/data_streams.rb +62 -0
  413. data/lib/datadog/tracing/contrib/active_job/events/discard.rb +5 -2
  414. data/lib/datadog/tracing/contrib/active_job/events/enqueue.rb +5 -2
  415. data/lib/datadog/tracing/contrib/active_job/events/enqueue_at.rb +5 -2
  416. data/lib/datadog/tracing/contrib/active_job/events/enqueue_retry.rb +5 -2
  417. data/lib/datadog/tracing/contrib/active_job/events/perform.rb +5 -2
  418. data/lib/datadog/tracing/contrib/active_job/events/retry_stopped.rb +5 -2
  419. data/lib/datadog/tracing/contrib/active_job/log_injection.rb +21 -7
  420. data/lib/datadog/tracing/contrib/active_job/patcher.rb +17 -1
  421. data/lib/datadog/tracing/contrib/active_model_serializers/events/render.rb +1 -1
  422. data/lib/datadog/tracing/contrib/active_model_serializers/events/serialize.rb +3 -4
  423. data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +2 -2
  424. data/lib/datadog/tracing/contrib/active_record/events/instantiation.rb +1 -1
  425. data/lib/datadog/tracing/contrib/active_record/events/sql.rb +2 -5
  426. data/lib/datadog/tracing/contrib/active_record/utils.rb +1 -1
  427. data/lib/datadog/tracing/contrib/active_support/cache/events/cache.rb +2 -5
  428. data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +1 -4
  429. data/lib/datadog/tracing/contrib/active_support/notifications/subscription.rb +2 -2
  430. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +6 -8
  431. data/lib/datadog/tracing/contrib/component.rb +3 -3
  432. data/lib/datadog/tracing/contrib/configurable.rb +18 -3
  433. data/lib/datadog/tracing/contrib/configuration/resolver.rb +14 -4
  434. data/lib/datadog/tracing/contrib/dalli/instrumentation.rb +1 -5
  435. data/lib/datadog/tracing/contrib/dalli/integration.rb +4 -1
  436. data/lib/datadog/tracing/contrib/dalli/quantize.rb +1 -1
  437. data/lib/datadog/tracing/contrib/delayed_job/plugin.rb +2 -0
  438. data/lib/datadog/tracing/contrib/delayed_job/server_internal_tracer/worker.rb +1 -0
  439. data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +2 -6
  440. data/lib/datadog/tracing/contrib/elasticsearch/quantize.rb +2 -2
  441. data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +5 -1
  442. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +5 -6
  443. data/lib/datadog/tracing/contrib/ethon/ext.rb +1 -0
  444. data/lib/datadog/tracing/contrib/ethon/multi_patch.rb +1 -8
  445. data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +16 -5
  446. data/lib/datadog/tracing/contrib/excon/ext.rb +1 -0
  447. data/lib/datadog/tracing/contrib/excon/middleware.rb +3 -7
  448. data/lib/datadog/tracing/contrib/ext.rb +3 -1
  449. data/lib/datadog/tracing/contrib/extensions.rb +19 -2
  450. data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +16 -9
  451. data/lib/datadog/tracing/contrib/faraday/ext.rb +1 -0
  452. data/lib/datadog/tracing/contrib/faraday/middleware.rb +3 -7
  453. data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +7 -3
  454. data/lib/datadog/tracing/contrib/grape/endpoint.rb +10 -7
  455. data/lib/datadog/tracing/contrib/grape/instrumentation.rb +13 -8
  456. data/lib/datadog/tracing/contrib/grape/patcher.rb +6 -1
  457. data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +7 -0
  458. data/lib/datadog/tracing/contrib/graphql/ext.rb +1 -0
  459. data/lib/datadog/tracing/contrib/graphql/unified_trace.rb +75 -44
  460. data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +5 -2
  461. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +3 -7
  462. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +3 -7
  463. data/lib/datadog/tracing/contrib/grpc/distributed/propagation.rb +2 -0
  464. data/lib/datadog/tracing/contrib/grpc/ext.rb +1 -0
  465. data/lib/datadog/tracing/contrib/grpc.rb +1 -0
  466. data/lib/datadog/tracing/contrib/hanami/action_tracer.rb +1 -0
  467. data/lib/datadog/tracing/contrib/hanami/renderer_policy_tracing.rb +1 -0
  468. data/lib/datadog/tracing/contrib/hanami/router_tracing.rb +1 -0
  469. data/lib/datadog/tracing/contrib/http/configuration/settings.rb +16 -5
  470. data/lib/datadog/tracing/contrib/http/distributed/propagation.rb +2 -0
  471. data/lib/datadog/tracing/contrib/http/ext.rb +1 -0
  472. data/lib/datadog/tracing/contrib/http/instrumentation.rb +4 -8
  473. data/lib/datadog/tracing/contrib/http/integration.rb +0 -2
  474. data/lib/datadog/tracing/contrib/http.rb +1 -0
  475. data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +16 -5
  476. data/lib/datadog/tracing/contrib/httpclient/ext.rb +1 -0
  477. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +7 -7
  478. data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +16 -5
  479. data/lib/datadog/tracing/contrib/httprb/ext.rb +1 -0
  480. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +4 -8
  481. data/lib/datadog/tracing/contrib/kafka/event.rb +1 -0
  482. data/lib/datadog/tracing/contrib/kafka/instrumentation/consumer.rb +66 -0
  483. data/lib/datadog/tracing/contrib/kafka/instrumentation/producer.rb +66 -0
  484. data/lib/datadog/tracing/contrib/kafka/patcher.rb +14 -0
  485. data/lib/datadog/tracing/contrib/karafka/configuration/settings.rb +5 -1
  486. data/lib/datadog/tracing/contrib/karafka/distributed/propagation.rb +2 -0
  487. data/lib/datadog/tracing/contrib/karafka/ext.rb +1 -0
  488. data/lib/datadog/tracing/contrib/karafka/framework.rb +30 -0
  489. data/lib/datadog/tracing/contrib/karafka/monitor.rb +11 -0
  490. data/lib/datadog/tracing/contrib/karafka/patcher.rb +35 -4
  491. data/lib/datadog/tracing/contrib/karafka.rb +1 -0
  492. data/lib/datadog/tracing/contrib/mongodb/parsers.rb +5 -5
  493. data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +5 -8
  494. data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +6 -0
  495. data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +3 -6
  496. data/lib/datadog/tracing/contrib/opensearch/patcher.rb +2 -6
  497. data/lib/datadog/tracing/contrib/opensearch/quantize.rb +2 -2
  498. data/lib/datadog/tracing/contrib/pg/configuration/settings.rb +6 -0
  499. data/lib/datadog/tracing/contrib/pg/instrumentation.rb +15 -18
  500. data/lib/datadog/tracing/contrib/presto/instrumentation.rb +6 -8
  501. data/lib/datadog/tracing/contrib/propagation/sql_comment/ext.rb +13 -0
  502. data/lib/datadog/tracing/contrib/propagation/sql_comment/mode.rb +6 -2
  503. data/lib/datadog/tracing/contrib/propagation/sql_comment.rb +24 -0
  504. data/lib/datadog/tracing/contrib/que/configuration/settings.rb +5 -2
  505. data/lib/datadog/tracing/contrib/que/ext.rb +1 -0
  506. data/lib/datadog/tracing/contrib/que/tracer.rb +1 -0
  507. data/lib/datadog/tracing/contrib/racecar/event.rb +1 -5
  508. data/lib/datadog/tracing/contrib/rack/configuration/settings.rb +11 -1
  509. data/lib/datadog/tracing/contrib/rack/ext.rb +28 -0
  510. data/lib/datadog/tracing/contrib/rack/header_tagging.rb +23 -0
  511. data/lib/datadog/tracing/contrib/rack/middlewares.rb +62 -27
  512. data/lib/datadog/tracing/contrib/rack/patcher.rb +2 -2
  513. data/lib/datadog/tracing/contrib/rack/request_queue.rb +1 -1
  514. data/lib/datadog/tracing/contrib/rack/route_inference.rb +67 -0
  515. data/lib/datadog/tracing/contrib/rack/trace_proxy_middleware.rb +119 -1
  516. data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +5 -2
  517. data/lib/datadog/tracing/contrib/rails/ext.rb +1 -0
  518. data/lib/datadog/tracing/contrib/rails/log_injection.rb +1 -1
  519. data/lib/datadog/tracing/contrib/rails/middlewares.rb +2 -2
  520. data/lib/datadog/tracing/contrib/rails/patcher.rb +0 -1
  521. data/lib/datadog/tracing/contrib/rails/runner.rb +3 -1
  522. data/lib/datadog/tracing/contrib/rake/instrumentation.rb +6 -4
  523. data/lib/datadog/tracing/contrib/redis/quantize.rb +1 -1
  524. data/lib/datadog/tracing/contrib/redis/tags.rb +1 -6
  525. data/lib/datadog/tracing/contrib/redis/trace_middleware.rb +2 -0
  526. data/lib/datadog/tracing/contrib/registerable.rb +11 -0
  527. data/lib/datadog/tracing/contrib/resque/resque_job.rb +1 -0
  528. data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +5 -2
  529. data/lib/datadog/tracing/contrib/rest_client/ext.rb +1 -0
  530. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +5 -6
  531. data/lib/datadog/tracing/contrib/roda/ext.rb +1 -0
  532. data/lib/datadog/tracing/contrib/roda/instrumentation.rb +7 -2
  533. data/lib/datadog/tracing/contrib/sequel/database.rb +1 -0
  534. data/lib/datadog/tracing/contrib/sequel/dataset.rb +1 -0
  535. data/lib/datadog/tracing/contrib/sequel/utils.rb +2 -7
  536. data/lib/datadog/tracing/contrib/shoryuken/tracer.rb +1 -0
  537. data/lib/datadog/tracing/contrib/sidekiq/client_tracer.rb +1 -0
  538. data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +5 -1
  539. data/lib/datadog/tracing/contrib/sidekiq/distributed/propagation.rb +2 -0
  540. data/lib/datadog/tracing/contrib/sidekiq/ext.rb +1 -0
  541. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/heartbeat.rb +2 -0
  542. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/job_fetch.rb +1 -0
  543. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/redis_info.rb +1 -0
  544. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/scheduled_poller.rb +2 -0
  545. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/stop.rb +1 -0
  546. data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +3 -2
  547. data/lib/datadog/tracing/contrib/sidekiq/utils.rb +1 -1
  548. data/lib/datadog/tracing/contrib/sidekiq.rb +1 -0
  549. data/lib/datadog/tracing/contrib/sinatra/configuration/settings.rb +5 -1
  550. data/lib/datadog/tracing/contrib/sinatra/ext.rb +1 -0
  551. data/lib/datadog/tracing/contrib/sinatra/framework.rb +1 -1
  552. data/lib/datadog/tracing/contrib/sinatra/tracer.rb +1 -0
  553. data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +4 -1
  554. data/lib/datadog/tracing/contrib/sneakers/integration.rb +15 -4
  555. data/lib/datadog/tracing/contrib/sneakers/tracer.rb +1 -0
  556. data/lib/datadog/tracing/contrib/status_range_matcher.rb +13 -1
  557. data/lib/datadog/tracing/contrib/stripe/request.rb +1 -1
  558. data/lib/datadog/tracing/contrib/sucker_punch/instrumentation.rb +1 -0
  559. data/lib/datadog/tracing/contrib/trilogy/configuration/settings.rb +6 -0
  560. data/lib/datadog/tracing/contrib/trilogy/instrumentation.rb +4 -6
  561. data/lib/datadog/tracing/contrib/utils/quantization/{hash.rb → hash_formatter.rb} +4 -2
  562. data/lib/datadog/tracing/contrib/waterdrop/configuration/settings.rb +31 -0
  563. data/lib/datadog/tracing/contrib/waterdrop/distributed/propagation.rb +50 -0
  564. data/lib/datadog/tracing/contrib/waterdrop/ext.rb +18 -0
  565. data/lib/datadog/tracing/contrib/waterdrop/integration.rb +43 -0
  566. data/lib/datadog/tracing/contrib/waterdrop/middleware.rb +46 -0
  567. data/lib/datadog/tracing/contrib/waterdrop/patcher.rb +49 -0
  568. data/lib/datadog/tracing/contrib/waterdrop/producer.rb +50 -0
  569. data/lib/datadog/tracing/contrib/waterdrop.rb +42 -0
  570. data/lib/datadog/tracing/contrib.rb +9 -0
  571. data/lib/datadog/tracing/diagnostics/environment_logger.rb +4 -2
  572. data/lib/datadog/tracing/distributed/baggage.rb +64 -8
  573. data/lib/datadog/tracing/distributed/datadog.rb +13 -11
  574. data/lib/datadog/tracing/distributed/datadog_tags_codec.rb +1 -14
  575. data/lib/datadog/tracing/distributed/propagation.rb +35 -3
  576. data/lib/datadog/tracing/distributed/trace_context.rb +85 -62
  577. data/lib/datadog/tracing/event.rb +1 -1
  578. data/lib/datadog/tracing/ext.rb +9 -0
  579. data/lib/datadog/tracing/metadata/ext.rb +23 -1
  580. data/lib/datadog/tracing/metadata/tagging.rb +2 -2
  581. data/lib/datadog/tracing/pipeline.rb +1 -1
  582. data/lib/datadog/tracing/remote.rb +36 -13
  583. data/lib/datadog/tracing/sampling/ext.rb +2 -0
  584. data/lib/datadog/tracing/sampling/priority_sampler.rb +16 -1
  585. data/lib/datadog/tracing/sampling/rate_sampler.rb +8 -19
  586. data/lib/datadog/tracing/sampling/rule.rb +1 -1
  587. data/lib/datadog/tracing/sampling/rule_sampler.rb +54 -25
  588. data/lib/datadog/tracing/sampling/span/rule_parser.rb +2 -2
  589. data/lib/datadog/tracing/span.rb +1 -1
  590. data/lib/datadog/tracing/span_event.rb +2 -2
  591. data/lib/datadog/tracing/span_operation.rb +34 -10
  592. data/lib/datadog/tracing/sync_writer.rb +0 -1
  593. data/lib/datadog/tracing/trace_digest.rb +7 -0
  594. data/lib/datadog/tracing/trace_operation.rb +123 -16
  595. data/lib/datadog/tracing/tracer.rb +82 -23
  596. data/lib/datadog/tracing/transport/http/client.rb +12 -26
  597. data/lib/datadog/tracing/transport/http/traces.rb +2 -50
  598. data/lib/datadog/tracing/transport/http.rb +15 -9
  599. data/lib/datadog/tracing/transport/io/client.rb +6 -9
  600. data/lib/datadog/tracing/transport/io/traces.rb +28 -34
  601. data/lib/datadog/tracing/transport/trace_formatter.rb +22 -0
  602. data/lib/datadog/tracing/transport/traces.rb +13 -81
  603. data/lib/datadog/tracing/workers.rb +2 -1
  604. data/lib/datadog/tracing/writer.rb +1 -1
  605. data/lib/datadog/version.rb +2 -2
  606. data/lib/datadog.rb +8 -1
  607. metadata +185 -36
  608. data/ext/datadog_profiling_native_extension/clock_id_noop.c +0 -21
  609. data/ext/libdatadog_api/macos_development.md +0 -26
  610. data/lib/datadog/appsec/configuration/settings.rb +0 -400
  611. data/lib/datadog/appsec/contrib/rails/ext.rb +0 -13
  612. data/lib/datadog/core/remote/transport/http/api.rb +0 -53
  613. data/lib/datadog/core/remote/transport/http/client.rb +0 -49
  614. data/lib/datadog/core/telemetry/transport/http/api.rb +0 -43
  615. data/lib/datadog/core/telemetry/transport/http/client.rb +0 -49
  616. data/lib/datadog/core/transport/http/api/spec.rb +0 -36
  617. data/lib/datadog/di/configuration/settings.rb +0 -212
  618. data/lib/datadog/di/transport/http/api.rb +0 -42
  619. data/lib/datadog/di/transport/http/client.rb +0 -47
  620. data/lib/datadog/error_tracking/configuration/settings.rb +0 -63
  621. data/lib/datadog/opentelemetry/api/baggage.rbs +0 -26
  622. data/lib/datadog/tracing/transport/http/api.rb +0 -44
  623. data/lib/datadog/tracing/workers/trace_writer.rb +0 -199
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e804b0ea5131eba47b865f95a6540c84a2c20e061a9d25a9bf1f2841895c46c6
4
- data.tar.gz: 7c7b61bb061c943aad519ede1f4900351db8b79e7111368c3d85f23ac73fafb8
3
+ metadata.gz: a10640edadba480a4014cb7861ed0eaa21dac0718709266f59fc1307b8fa64bd
4
+ data.tar.gz: cb0b0bcc5423c0e0398277c3535ea52b485967879cf0ede20eedcfb513f1389f
5
5
  SHA512:
6
- metadata.gz: 669cc7248fe15fbd07ab98e71d20e3ec97d644b27ef43be9b7fe7b047c60bd8794c903db3cfe1f4580f7877f7a1491f5028743a618e649930ff10d14756ae820
7
- data.tar.gz: e5a2e28ebcc390f1e2277299b883946c4f0baec35754216bbea4da4df437fa06e8c2b6cc0aa5f7847256e0b500903076a19ec7456c7979e7759fc7a4fb8836d3
6
+ metadata.gz: c77d4b07287c8ee87feb82d541269faa5213861509b99d9e66948022f8c98c005d5b8a8205a263d1d020b8fe8b12306e89fff032d1076f652232133db5c985f2
7
+ data.tar.gz: 5799211f54f368537792d441af52dbd41403da2699f2c503d56b46a533df4b9bef6ef9abf56476f330067c8c555db79a3b1163090cc2267199d937576d210e98
data/CHANGELOG.md CHANGED
@@ -2,6 +2,376 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [2.38.0] - 2026-07-16
6
+
7
+ ### Added
8
+
9
+ * Dynamic Instrumentation: Log probes now support capture expressions as an alternative to capturing the full local/argument scope ([#5845][])
10
+ * SSI: Add support for Ruby 4.0 runtime ([#5981][])
11
+ * SSI: Add support for Bundler 4.0 and RubyGems 4.0 ([#5981][])
12
+
13
+ ### Fixed
14
+
15
+ * AppSec: Fix Rack-based and Rails request body analysis when body parsing fails ([#5993][])
16
+ * Profiling: Add workaround for crash when collecting frame information ([#6014][])
17
+ * Profiling: Fix left-over state impacting samples when profiler gets stopped and started again ([#5960][])
18
+ * Profiling: Fix Ruby 4.0.6 support by bumping minimum version of `datadog-ruby_core_source` to 3.5.3 ([#6047][])
19
+ * Profiling: Disable live heap size profiling on Ruby 4.0 due to incompatibility ([#6022][])
20
+ * Profiling: Disallow heap profiling on Ruby 4.1+ ([#6023][])
21
+ * Tracing: Fix `pg` instrumentation which raised `ArgumentError` when calling `exec_params`, `exec_prepared` without a `params` argument, or their `async_`/`sync_` variants ([#6020][])
22
+
23
+ ## [2.37.0] - 2026-07-06
24
+
25
+ ### Added
26
+
27
+ * AppSec: Add sign-up event tracking to `Datadog::Kit::AppSec::Events::V2` ([#5973][])
28
+ * AppSec: Integrations: Add normalized HTTP route for API Security Testing ([#5834][])
29
+ * 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][])
30
+
31
+ ### Changed
32
+
33
+ * Profiling: Reduce profiler overhead by sampling profiler-internal threads only once per minute ([#5955][])
34
+ * Dynamic Instrumentation: Reject method probes that target `Kernel#lambda`, which cannot be safely instrumented ([#5954][])
35
+ * Dynamic Instrumentation: Reject method probes that target classes or modules in the Datadog namespace ([#5907][])
36
+ * Dynamic Instrumentation: Enable Symbol Database by default when Dynamic Instrumentation is enabled ([#5828][])
37
+
38
+ ### Fixed
39
+
40
+ * AppSec: AI Guard: Fix endpoint configuration via `DD_SITE` environment variable ([#5940][])
41
+ * AppSec: Fix API Security schema extraction timeout and telemetry ([#5975][])
42
+ * AppSec: Fix remote configuration errors when the ruleset name changes ([#5970][])
43
+ * AppSec: Integrations: Add configurable size limit for downstream HTTP request and response body analysis ([#5990][])
44
+ * AppSec: Integrations: Fix WAF analysis for requests with cached or parsed bodies in Rack and Sinatra ([#5991][])
45
+ * AppSec: Integrations: Fix an exception for unauthorized requests when using Devise with Rails. ([#5987][])
46
+ * Tracing: Fix a `SIGSEGV` crash that could happen with experimental heap profiling enabled on Ruby 4.0 ([#5938][]) ([@navidemad][])
47
+ * Dynamic Instrumentation: Normalize Rack CGI header prefix (`HTTP_<HEADER>`) in redactor so snapshot captures redact sensitive headers like their bare names ([#5911][])
48
+ * Dynamic Instrumentation: Symbol Database and DI background threads no longer stop when application code raises a non-StandardError during introspection ([#5945][])
49
+
50
+ ## [2.36.0] - 2026-06-24
51
+
52
+ ### Added
53
+
54
+ * Tracing: Add `DD_TRACE_PROPAGATION_BEHAVIOR_EXTRACT` to control trace extraction behavior with `continue`, `restart`, and `ignore` modes ([#5844][])
55
+ * AppSec: Add `DD_APPSEC_BODY_PARSING_SIZE_LIMIT` to control processing of request and response body size; set to 0 to disable ([#5877][])
56
+ * AppSec: Detect attacks from inline fragments in GraphQL queries ([#5916][])
57
+ * Dynamic Instrumentation: Show lazily loaded classes in UI ([#5697][])
58
+
59
+ ### Changed
60
+
61
+ * Dynamic Instrumentation: Reduce peak memory usage during Symbol Database extraction ([#5883][])
62
+ * Profiling: Reduce profiler overhead by up to 50% by skipping redundant samples for threads without the GVL ([#5777][])
63
+ * Profiling: Remove overhead when cleaning up dead threads ([#5816][])
64
+
65
+ ### Fixed
66
+
67
+ * Tracing: Workaround Ruby VM bug causing segmentation faults inside CachingResolver ([#5719][], [#5890][])
68
+ * Dynamic Instrumentation: Prevent uploading stale class definitions for apps using `remove_const`-then-redefine patterns ([#5872][])
69
+ * Profiling: Fix GC profiling being incorrectly disabled on Ruby 3.2.10 and 3.2.11 ([#5894][])
70
+ * Profiling: Fix over-counting of the first allocation sample at profiler startup ([#5881][])
71
+ * Profiling: Fix rare profiler crash during shutdown in heap profiling cleanup ([#5920][])
72
+ * Core: Fix exception message formatting from native extensions ([#5857][])
73
+
74
+ ## [2.35.0] - 2026-06-03
75
+
76
+ ### Added
77
+
78
+ * Tracing: Add `dynamic_service` SQL comment propagation mode for Database Monitoring ([#5812][])
79
+ * Tracing: Prevent Datadog-generated traffic from interfering with application metrics ([#5811][])
80
+
81
+ ### Changed
82
+
83
+ * AppSec: Improve route extraction performance for Rails applications ([#5836][])
84
+
85
+ ### Fixed
86
+
87
+ * Tracing: Restore `Datadog::Tracing::Contrib::Ext::Metadata::TAG_BASE_SERVICE` constant removed in v2.34.0 ([#5830][])
88
+
89
+ ### Removed
90
+
91
+ * 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][])
92
+
93
+ ## [2.34.0] - 2026-05-27
94
+
95
+ ### Added
96
+
97
+ * Dynamic Instrumentation: Enable opt-in Symbol Database upload so Ruby services populate Live Debugger UI autocomplete when creating probes ([#5717][])
98
+ * Open Telemetry: Add OpenTelemetry logs support with OTLP export. Enable using `DD_LOGS_OTEL_ENABLED=true`; supports standard `OTEL_EXPORTER_OTLP_*` settings ([#5446][])
99
+
100
+ ### Fixed
101
+
102
+ * Core: Fix Remote configuration `TransportError` messages removing wrapper response object memory addresses ([#5762][])
103
+ * Core: Fix `TypeError` from `Process.spawn` when passing an environment Hash ([#5773][], [#5634][])
104
+ * AppSec: Prevent host application crashes when AppSec fails to initialize ([#5768][])
105
+ * Dynamic Instrumentation: Fix off-by-one in `max_capture_depth` so snapshots respect the configured nesting limit exactly ([#5753][])
106
+ * Dynamic Instrumentation: Improve line probes to match `sourceFile` case-insensitively and support Windows-style backslashes for correct installation ([#5754][])
107
+
108
+ ## [2.33.0] - 2026-05-13
109
+
110
+ ### Added
111
+
112
+ * AI Guard: Ensure client IP is always collected when AI Guard is enabled ([#5677][])
113
+ * AppSec: Add support for AWS Lambda ([#5663][])
114
+ * Tracing: Add inferred proxy spans for services behind AWS Gateway ([#5681][])
115
+ * Open Telemetry: Add support for `DD_HOSTNAME` to set trace hostname and OTel `host.name` when `DD_TRACE_REPORT_HOSTNAME` is enabled ([#5705][])
116
+
117
+ ### Changed
118
+
119
+ * Core: Collect all threads in crash reports to provide full thread context during crashes ([#5724][])
120
+ * Core: Update `libdatadog` dependency to version 33.0.0 ([#5723][])
121
+
122
+ ## [2.32.0] - 2026-05-08
123
+
124
+ ### Added
125
+
126
+ * Open Feature: Add flag evaluation metrics (`feature_flag.evaluations`) via OpenTelemetry for OpenFeature provider. ([#5599][])
127
+ * Profiling: Add metric for total time spent waiting for the GVL. ([#5569][])
128
+ * Dynamic Instrumentation: Live Debugger line probes can now target third-party and Ruby standard library code loaded before datadog gem is loaded. ([#5501][])
129
+
130
+ ### Changed
131
+
132
+ * Profiling: Print failure info when native extension setup fails ([#5657][])
133
+ * Tracing: Add parsing limits to `tracestate` and `traceparent` propagation headers and remove whitespace around list members. ([#5674][])
134
+ * Tracing: Limit extracted [baggage](https://www.w3.org/TR/2024/CR-baggage-20240530/) header parsing to 64 items and 8192 bytes. ([#5672][])
135
+
136
+ ### Fixed
137
+
138
+ * Tracing: Enforce `x-datadog-tags` propagation header size limits by byte size. ([#5687][])
139
+ * Tracing: Return empty baggage on invalid UTF-8 baggage extraction ([#5689][])
140
+
141
+ ## [2.31.0] - 2026-04-20
142
+
143
+ ### Added
144
+
145
+ * Core: Add `app-extended-heartbeat` telemetry event to resend full configuration every 24h for long-running services. ([#5531][])
146
+ * AI Guard: Add multi-model messages support to AI Guard, enabling text and image URL content parts in evaluation SDK ([#5564][])
147
+ * AI Guard: Add evaluation of images in user prompt and tool output for RubyLLM contrib. ([#5573][])
148
+ * AI Guard: Expose Sensitive Data Scanner findings in AI Guard results via `AIGuard::Evaluation::Result#sds_findings`. ([#5579][])
149
+ * AI Guard: Expose tag probabilities in AI Guard results via `AIGuard::Evaluation::Result#tag_probabilities`. ([#5580][])
150
+ * Tracing: Integrations: Add `rails.application` to the process tags. ([#5468][])
151
+ * 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][])
152
+
153
+ ### Changed
154
+
155
+ * Core: Upgrade `libdatadog` dependency to version 30.0.0 ([#5574][])
156
+ * AI Guard: **Breaking change:** AIGuard.evaluate now defaults to `allow_raise: true`. Pass `allow_raise: false` to keep the previous non-raising behavior. ([#5587][])
157
+ * Dynamic Instrumentation: Report exception messages in method probe snapshots. Require the libdatadog_api C extension for Dynamic Instrumentation. ([#5111][])
158
+
159
+ ### Fixed
160
+
161
+ * Profiling: Detect when `libdatadog` version does not match expected version. ([#5484][])
162
+ * Profiling: Log profiler initialization errors as warnings instead of raising them. ([#5509][])
163
+ * Tracing: Fix `NoMethodError` in `extract_trace_id!` caused by `extract_tags` returning `true`. ([#5499][])
164
+
165
+ ### Removed
166
+
167
+ * Core: Removed JRuby from the CI test matrix ([#5594][])
168
+
169
+ ## [2.30.0] - 2026-03-19
170
+
171
+ ### Added
172
+
173
+ * Core: Enable `libdatadog`-based features and tests on macOS ([#5351][])
174
+ * Tracing: Add `_dd.p.ksr` propagated tag to transmit Knuth sampling rate for backend resampling ([#5436][])
175
+ * Tracing: Integrations: Add `DD_TRACE_<INTEGRATION>_DISTRIBUTED_TRACING` environment variables to control distributed tracing per integration ([#5396][])
176
+ * Profiling: Add profiler setting `experimental_use_system_dns` to use system DNS resolver (defaults to true) ([#5425][], [#5449][])
177
+ * Profiling: Allow lowering CPU profiling sampling interval with `experimental_cpu_sampling_interval_ms` setting ([#5424][])
178
+
179
+ ### Changed
180
+
181
+ * 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][])
182
+ * Core: Upgrade `libdatadog` dependency to version 29.0.0 ([#5274][], [#5461][])
183
+ * Core: Remove dependency on `pkg-config` system tool for native extension builds ([#5469][])
184
+ * Profiling: Improve profiling error message when another profiler is present ([#5375][])
185
+
186
+ ### Fixed
187
+
188
+ * Tracing: Integrations: Fix `endpoint_render.grape` ActiveSupport notification instrumentation for `grape` 3.x ([#5414][])
189
+ * Tracing: Integrations: Fix compatibility with `dalli` version 5.x and later ([#5435][])
190
+ * Dynamic Instrumentation: Fix JSON serialization failures when snapshots contain binary data and invalid UTF-8 strings ([#5434][])
191
+ * Dynamic Instrumentation: Show ERROR probe status when custom serializers produce non-JSON-encodable data instead of silent failures ([#5448][])
192
+ * Data Streams: Fix Data Streams Monitoring to correctly report the configured environment instead of showing `env:none` ([#5427][])
193
+
194
+ ## [2.29.0] - 2026-02-20
195
+
196
+
197
+ ### Added
198
+
199
+ * AppSec: Add analysis for downstream request with redirects ([#5347][])
200
+ * AppSec: Add downstream request body analysis. ([#5320][])
201
+ * SSI: Add support for Bundler vendored mode (`BUNDLE_PATH`) ([#5368][])
202
+ * SSI: Default to local dependency resolution ([#5368][])
203
+ * Dynamic Instrumentation: Added circuit breaker to automatically disable probes consuming excessive CPU time ([#5335][])
204
+ * Crashtracking: Add reporting of unhandled exceptions ([#5321][])
205
+ * Tracing: Add support for the `kicks` gem ([#5305][])
206
+ * Profiling: Add heap profiling for ruby 4.x ([#5201][])
207
+ * Tracing: Add simple method tracing API ([#5294][])
208
+ * Tracing: Add `trace_singleton_class_method` for tracing singleton class methods. ([#5334][])
209
+
210
+ ### Changed
211
+
212
+ * Dynamic Instrumentation: Improve error reporting when instrumentation fails or is removed due to circuit breaker ([#5371][])
213
+ * SSI: Reduce SSI package size ([#5352][])
214
+ * Core: Change default logger output from stdout to stderr ([#5342][])
215
+ * AppSec: Make AppSec blocking page more friendly for vulnerability scanners ([#5341][])
216
+ * 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][])
217
+
218
+ ### Fixed
219
+
220
+ * Dynamic Instrumentation: Fix Live Debugger UI for forking web servers with more than one worker process ([#5304][])
221
+
222
+ ## [2.28.0] - 2026-02-04
223
+
224
+ ### Added
225
+
226
+ * AI Guard: Add instrumentation for `ruby_llm` gem. ([#5273][])
227
+
228
+ ### Changed
229
+
230
+ * Core: Bump minimum version of datadog-ruby_core_source to 3.5.2 ([#5278][])
231
+
232
+ ### Fixed
233
+
234
+ * AppSec: Fix exception in Rails contrib `:after_routes_loaded` hook when routes are reloaded. ([#5283][])
235
+
236
+ ## [2.27.0] - 2026-01-21
237
+
238
+ ### Added
239
+
240
+ * AppSec: Add analysis of the downstream requests ([#5206][])
241
+ * Telemetry: Add static error reporting for native extensions ([#5076][])
242
+
243
+ ### Changed
244
+
245
+ * SSI: Update injector to v1.2.1 ([#5254][])
246
+ * SSI: Prepare for expanded platform support ([#5254][])
247
+ * SSI: Improve remote resolution with expanded platform support via fallback to local gems ([#5254][])
248
+ * SSI: Introduce experimental fully local resolution support ([#5254][])
249
+ * Profiling: Telemetry-safe error reporting for native extensions ([#5076][])
250
+
251
+
252
+ ### Fixed
253
+
254
+ * Profiler: Fix interrupting new processes with the message `Profiling timer expired` during `exec` ([#5246][])
255
+ * Profiler: Fix rare race in profiler causing flaky spec on Ruby 2.7 ([#5247][])
256
+ * Appsec: Fix reporting of multi-method routes for Endpoint Collection ([#5240][])
257
+ * AppSec: Fix reporting of Rails routes that accept multiple request methods. ([#5240][])
258
+
259
+ ## [2.26.0] - 2026-01-16
260
+
261
+ ### Added
262
+
263
+ * Core: Add process tags to runtime metrics when `DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED` is enabled. ([#5210][])
264
+ * SSI: Add experimental dependency injection validation.
265
+
266
+ ### Changed
267
+
268
+ * Profiling: Improve profiler error reporting. ([#5237][])
269
+ * SSI: Improve injection debug error reporting. ([#5238][])
270
+
271
+ ## [2.25.0] - 2026-01-13
272
+
273
+ ### Added
274
+
275
+ AI Guard: Add SDK for evaluating the safety of user messages and assistant commands for LLM session ([#5144][])
276
+
277
+ ### Changed
278
+
279
+ Core: Bump minimum version of `datadog-ruby_core_source` dependency ([#5215][])
280
+
281
+ ### Fixed
282
+
283
+ AppSec: Fix processing of numeric data for WAF and RASP checks ([#5222][])
284
+
285
+ ## [2.24.0] - 2026-01-08
286
+
287
+ ### Added
288
+
289
+ * Core: Add support for installing the gem on Ruby 4.0.x stable ([#5157][])
290
+ * Tracing: Add origin detection using extra headers and the `DD_EXTERNAL_ENV` variable. ([#5028][])
291
+ * Dynamic Instrumentation: Add one-click enablement support ([#5150][])
292
+ * SSI: Add support for Bundler deployment mode ([#5053][])
293
+ * SSI: Report UI-oriented injection results ([#5053][])
294
+ * SSI: Guard against Bundler global force_ruby_platform ([#5053][])
295
+ * SSI: Guard against Bundler 4.0 and Bundler 2.7 in 4.0 mode ([#5053][])
296
+ * SSI: Guard against Ruby 3.5+ ([#5053][])
297
+
298
+ ### Changed
299
+
300
+ * Profiling: Remove profiler warning related to the Ractor issue ([#5194][])
301
+ * Profiling: Disable heap profiling on Ruby 4 due to incompatibility ([#5148][])
302
+ * Dynamic Instrumentation: Stop using customer-provided time provider for method duration calculation ([#5153][])
303
+ * Live Debugger / Dynamic Instrumentation: Improve probe instrumentation ([#5165][])
304
+ * Live Debugger / Dynamic Instrumentation: Improve instrumentation reliability for probes ([#5169][])
305
+
306
+ ### Fixed
307
+
308
+ * Core: Improve reliability of worker shutdown ([#5176][])
309
+ * Core: Fix RDoc error when installing the `datadog` gem ([#5145][])
310
+ * Tracing: Ensure `Tracing.continue_from!` keeps the active trace for the full block duration. ([#4941][])
311
+ * Profiling: Fix and refine profiler thread state categorization for Ruby 4 ([#5197][])
312
+ * Profiling: Fix profiler error triggering `Bundler::PermissionError` ([#5146][])
313
+ * Live Debugger / Dynamic Instrumentation: Fix Live Debugger and Dynamic Instrumentation UI for forking web servers ([#5159][])
314
+ * Live Debugger / Dynamic Instrumentation: Fix method probe leak when a referenced class loads after the probe reaches the application ([#5168][])
315
+
316
+ ## [2.23.0] - 2025-12-11
317
+
318
+ ### Added
319
+
320
+ * Tracing: Add process tags to trace payloads with `DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED` environment variable ([#5033][])
321
+ * Tracing: Integrations: Add Data Streams Monitoring (DSM) instrumentation to Waterdrop producers ([#5031][])
322
+ * Tracing: Open Telemetry: Add OpenTelemetry metrics support with OTLP exporters using `DD_METRICS_OTEL_ENABLED` and standard OpenTelemetry environment variables ([#5021][])
323
+ * 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][])
324
+ * 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][])
325
+ * Tracing: Integrations: Add Data Streams Monitoring for `ruby-kafka` and `karafka` consumers with optional manual instrumentation ([#4901][])
326
+ * Dynamic Instrumentation: Add support for Hash length operations in expression language ([#5019][])
327
+ * AppSec: Add unique security response identifier in the response body for blocked requests ([#5049][])
328
+ * AppSec: Add support for processor overrides and custom data scanners ([#5044][])
329
+ * Feature Flags: Add new component to support Open Feature SDK ([#5054][], [#5024][])
330
+
331
+ ### Changed
332
+
333
+ * Core: Update minimum `datadog-ruby_core_source` dependency to 3.4.2 ([#5122][])
334
+ * Core: Update `libdatadog` dependency to version 24.0.1 ([#5058][], [#5045][], [#5020][])
335
+ * Tracing: Treat IPs from `100.65.0.0/10` range as private. ([#4975][])
336
+
337
+ ### Fixed
338
+
339
+ * Live Debugger / Dynamic Instrumentation: Fix issues delivering large quantities of snapshots ([#5086][])
340
+ * Tracing: Integrations: Fix `NoMethodError` in GraphQL integration when error has no `locations`. ([#5025][])
341
+ * Tracing: Integrations: Fix `http.route` tag for Rack applications mounted inside Rails. ([#4988][])
342
+ * Profiling: Fix profiler support for Ruby 4.0.0-preview2 ([#5091][])
343
+ * Profiling: Fix profiler sleep and wait states not being categorized in timeline ([#5000][])
344
+ * Profiling: Fix profiler not identifying executables with gems they belong to ([#4999][])
345
+ * Stable Config: Fix potential segfault during configuration file parsing ([#5073][])
346
+ * AppSec: Fix route extraction error for Rails 8.1.1+. ([#5042][])
347
+
348
+ ## [2.22.0] - 2025-10-15
349
+
350
+ ### Added
351
+
352
+ * Tracing: Add GraphQL error tracking with OpenTelemetry semantics ([#4864][])
353
+ * AppSec: API Security: Add endpoint collection for Rails ([#4919][])
354
+ * AppSec: Updated WAF rules to add support for JWT analysis ([#4907][])
355
+ * AppSec: Enable Remote Configuration capabilities for fingerprinting, trace tagging and user auto-instrumentation ([#4965][])
356
+ * Dynamic Instrumentation: Support `[@duration][]`, `[@return][]` and `[@exception][]` in message templates ([#4914][])
357
+ * Dynamic Instrumentation: Report evaluation errors to the UI ([#4913][])
358
+ * Dynamic Instrumentation: Support conditions for method probes ([#4909][])
359
+ * Dynamic Instrumentation: Capture exceptions raised by instrumented methods in method probes ([#4906][])
360
+ * Dynamic Instrumentation: Add support for probe conditions for line probes ([#4861][])
361
+
362
+ ### Changed
363
+
364
+ * Core: Upgrade `libdatadog` dependency to 22.0.1 ([#4902][])
365
+ * Tracing: Add `Forwarded` header to the list of headers used for remote IP detection. ([#4969][])
366
+ * AppSec: Update `libbddwaf` to version 1.25.1.0.1 ([#4894][])
367
+ * AppSec: WAF rules can control whether traces are kept or sampled ([#4918][])
368
+ * Dynamic Instrumentation: Evaluate message templates when logging instrumented code ([#4908][])
369
+
370
+ ### Fixed
371
+
372
+ * Core: Improve locking code for remote configuration worker ([#4957][])
373
+ * Dynamic Instrumentation: Emit a single log event for line probes on exception-raising lines ([#4900][])
374
+
5
375
  ## [2.21.0] - 2025-09-17
6
376
 
7
377
  ### Added
@@ -3333,7 +3703,24 @@ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.3.1
3333
3703
  Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
3334
3704
 
3335
3705
 
3336
- [Unreleased]: https://github.com/DataDog/dd-trace-rb/compare/v2.21.0...master
3706
+ [Unreleased]: https://github.com/DataDog/dd-trace-rb/compare/v2.38.0...master
3707
+ [2.38.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.37.0...v2.38.0
3708
+ [2.37.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.36.0...v2.37.0
3709
+ [2.36.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.35.0...v2.36.0
3710
+ [2.35.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.34.0...v2.35.0
3711
+ [2.34.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.33.0...v2.34.0
3712
+ [2.33.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.32.0...v2.33.0
3713
+ [2.32.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.31.0...v2.32.0
3714
+ [2.31.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.30.0...v2.31.0
3715
+ [2.30.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.29.0...v2.30.0
3716
+ [2.29.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.28.0...v2.29.0
3717
+ [2.28.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.27.0...v2.28.0
3718
+ [2.27.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.26.0...v2.27.0
3719
+ [2.26.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.25.0...v2.26.0
3720
+ [2.25.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.24.0...v2.25.0
3721
+ [2.24.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.23.0...v2.24.0
3722
+ [2.23.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.22.0...v2.23.0
3723
+ [2.22.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.21.0...v2.22.0
3337
3724
  [2.21.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.20.0...v2.21.0
3338
3725
  [2.20.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.19.0...v2.20.0
3339
3726
  [2.19.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.18.0...v2.19.0
@@ -4929,12 +5316,194 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
4929
5316
  [#4838]: https://github.com/DataDog/dd-trace-rb/issues/4838
4930
5317
  [#4848]: https://github.com/DataDog/dd-trace-rb/issues/4848
4931
5318
  [#4851]: https://github.com/DataDog/dd-trace-rb/issues/4851
5319
+ [#4861]: https://github.com/DataDog/dd-trace-rb/issues/4861
4932
5320
  [#4862]: https://github.com/DataDog/dd-trace-rb/issues/4862
4933
5321
  [#4863]: https://github.com/DataDog/dd-trace-rb/issues/4863
5322
+ [#4864]: https://github.com/DataDog/dd-trace-rb/issues/4864
4934
5323
  [#4877]: https://github.com/DataDog/dd-trace-rb/issues/4877
4935
5324
  [#4884]: https://github.com/DataDog/dd-trace-rb/issues/4884
4936
5325
  [#4887]: https://github.com/DataDog/dd-trace-rb/issues/4887
4937
5326
  [#4893]: https://github.com/DataDog/dd-trace-rb/issues/4893
5327
+ [#4894]: https://github.com/DataDog/dd-trace-rb/issues/4894
5328
+ [#4900]: https://github.com/DataDog/dd-trace-rb/issues/4900
5329
+ [#4901]: https://github.com/DataDog/dd-trace-rb/issues/4901
5330
+ [#4902]: https://github.com/DataDog/dd-trace-rb/issues/4902
5331
+ [#4906]: https://github.com/DataDog/dd-trace-rb/issues/4906
5332
+ [#4907]: https://github.com/DataDog/dd-trace-rb/issues/4907
5333
+ [#4908]: https://github.com/DataDog/dd-trace-rb/issues/4908
5334
+ [#4909]: https://github.com/DataDog/dd-trace-rb/issues/4909
5335
+ [#4913]: https://github.com/DataDog/dd-trace-rb/issues/4913
5336
+ [#4914]: https://github.com/DataDog/dd-trace-rb/issues/4914
5337
+ [#4918]: https://github.com/DataDog/dd-trace-rb/issues/4918
5338
+ [#4919]: https://github.com/DataDog/dd-trace-rb/issues/4919
5339
+ [#4941]: https://github.com/DataDog/dd-trace-rb/issues/4941
5340
+ [#4957]: https://github.com/DataDog/dd-trace-rb/issues/4957
5341
+ [#4965]: https://github.com/DataDog/dd-trace-rb/issues/4965
5342
+ [#4969]: https://github.com/DataDog/dd-trace-rb/issues/4969
5343
+ [#4975]: https://github.com/DataDog/dd-trace-rb/issues/4975
5344
+ [#4988]: https://github.com/DataDog/dd-trace-rb/issues/4988
5345
+ [#4991]: https://github.com/DataDog/dd-trace-rb/issues/4991
5346
+ [#4995]: https://github.com/DataDog/dd-trace-rb/issues/4995
5347
+ [#4999]: https://github.com/DataDog/dd-trace-rb/issues/4999
5348
+ [#5000]: https://github.com/DataDog/dd-trace-rb/issues/5000
5349
+ [#5019]: https://github.com/DataDog/dd-trace-rb/issues/5019
5350
+ [#5020]: https://github.com/DataDog/dd-trace-rb/issues/5020
5351
+ [#5021]: https://github.com/DataDog/dd-trace-rb/issues/5021
5352
+ [#5024]: https://github.com/DataDog/dd-trace-rb/issues/5024
5353
+ [#5025]: https://github.com/DataDog/dd-trace-rb/issues/5025
5354
+ [#5028]: https://github.com/DataDog/dd-trace-rb/issues/5028
5355
+ [#5031]: https://github.com/DataDog/dd-trace-rb/issues/5031
5356
+ [#5033]: https://github.com/DataDog/dd-trace-rb/issues/5033
5357
+ [#5042]: https://github.com/DataDog/dd-trace-rb/issues/5042
5358
+ [#5044]: https://github.com/DataDog/dd-trace-rb/issues/5044
5359
+ [#5045]: https://github.com/DataDog/dd-trace-rb/issues/5045
5360
+ [#5049]: https://github.com/DataDog/dd-trace-rb/issues/5049
5361
+ [#5053]: https://github.com/DataDog/dd-trace-rb/issues/5053
5362
+ [#5054]: https://github.com/DataDog/dd-trace-rb/issues/5054
5363
+ [#5058]: https://github.com/DataDog/dd-trace-rb/issues/5058
5364
+ [#5073]: https://github.com/DataDog/dd-trace-rb/issues/5073
5365
+ [#5076]: https://github.com/DataDog/dd-trace-rb/issues/5076
5366
+ [#5086]: https://github.com/DataDog/dd-trace-rb/issues/5086
5367
+ [#5091]: https://github.com/DataDog/dd-trace-rb/issues/5091
5368
+ [#5111]: https://github.com/DataDog/dd-trace-rb/issues/5111
5369
+ [#5122]: https://github.com/DataDog/dd-trace-rb/issues/5122
5370
+ [#5144]: https://github.com/DataDog/dd-trace-rb/issues/5144
5371
+ [#5145]: https://github.com/DataDog/dd-trace-rb/issues/5145
5372
+ [#5146]: https://github.com/DataDog/dd-trace-rb/issues/5146
5373
+ [#5148]: https://github.com/DataDog/dd-trace-rb/issues/5148
5374
+ [#5150]: https://github.com/DataDog/dd-trace-rb/issues/5150
5375
+ [#5153]: https://github.com/DataDog/dd-trace-rb/issues/5153
5376
+ [#5157]: https://github.com/DataDog/dd-trace-rb/issues/5157
5377
+ [#5159]: https://github.com/DataDog/dd-trace-rb/issues/5159
5378
+ [#5165]: https://github.com/DataDog/dd-trace-rb/issues/5165
5379
+ [#5168]: https://github.com/DataDog/dd-trace-rb/issues/5168
5380
+ [#5169]: https://github.com/DataDog/dd-trace-rb/issues/5169
5381
+ [#5176]: https://github.com/DataDog/dd-trace-rb/issues/5176
5382
+ [#5194]: https://github.com/DataDog/dd-trace-rb/issues/5194
5383
+ [#5197]: https://github.com/DataDog/dd-trace-rb/issues/5197
5384
+ [#5201]: https://github.com/DataDog/dd-trace-rb/issues/5201
5385
+ [#5206]: https://github.com/DataDog/dd-trace-rb/issues/5206
5386
+ [#5210]: https://github.com/DataDog/dd-trace-rb/issues/5210
5387
+ [#5215]: https://github.com/DataDog/dd-trace-rb/issues/5215
5388
+ [#5222]: https://github.com/DataDog/dd-trace-rb/issues/5222
5389
+ [#5237]: https://github.com/DataDog/dd-trace-rb/issues/5237
5390
+ [#5238]: https://github.com/DataDog/dd-trace-rb/issues/5238
5391
+ [#5240]: https://github.com/DataDog/dd-trace-rb/issues/5240
5392
+ [#5246]: https://github.com/DataDog/dd-trace-rb/issues/5246
5393
+ [#5247]: https://github.com/DataDog/dd-trace-rb/issues/5247
5394
+ [#5254]: https://github.com/DataDog/dd-trace-rb/issues/5254
5395
+ [#5273]: https://github.com/DataDog/dd-trace-rb/issues/5273
5396
+ [#5274]: https://github.com/DataDog/dd-trace-rb/issues/5274
5397
+ [#5278]: https://github.com/DataDog/dd-trace-rb/issues/5278
5398
+ [#5283]: https://github.com/DataDog/dd-trace-rb/issues/5283
5399
+ [#5294]: https://github.com/DataDog/dd-trace-rb/issues/5294
5400
+ [#5304]: https://github.com/DataDog/dd-trace-rb/issues/5304
5401
+ [#5305]: https://github.com/DataDog/dd-trace-rb/issues/5305
5402
+ [#5320]: https://github.com/DataDog/dd-trace-rb/issues/5320
5403
+ [#5321]: https://github.com/DataDog/dd-trace-rb/issues/5321
5404
+ [#5334]: https://github.com/DataDog/dd-trace-rb/issues/5334
5405
+ [#5335]: https://github.com/DataDog/dd-trace-rb/issues/5335
5406
+ [#5336]: https://github.com/DataDog/dd-trace-rb/issues/5336
5407
+ [#5341]: https://github.com/DataDog/dd-trace-rb/issues/5341
5408
+ [#5342]: https://github.com/DataDog/dd-trace-rb/issues/5342
5409
+ [#5347]: https://github.com/DataDog/dd-trace-rb/issues/5347
5410
+ [#5351]: https://github.com/DataDog/dd-trace-rb/issues/5351
5411
+ [#5352]: https://github.com/DataDog/dd-trace-rb/issues/5352
5412
+ [#5368]: https://github.com/DataDog/dd-trace-rb/issues/5368
5413
+ [#5371]: https://github.com/DataDog/dd-trace-rb/issues/5371
5414
+ [#5375]: https://github.com/DataDog/dd-trace-rb/issues/5375
5415
+ [#5396]: https://github.com/DataDog/dd-trace-rb/issues/5396
5416
+ [#5414]: https://github.com/DataDog/dd-trace-rb/issues/5414
5417
+ [#5424]: https://github.com/DataDog/dd-trace-rb/issues/5424
5418
+ [#5425]: https://github.com/DataDog/dd-trace-rb/issues/5425
5419
+ [#5427]: https://github.com/DataDog/dd-trace-rb/issues/5427
5420
+ [#5432]: https://github.com/DataDog/dd-trace-rb/issues/5432
5421
+ [#5434]: https://github.com/DataDog/dd-trace-rb/issues/5434
5422
+ [#5435]: https://github.com/DataDog/dd-trace-rb/issues/5435
5423
+ [#5436]: https://github.com/DataDog/dd-trace-rb/issues/5436
5424
+ [#5446]: https://github.com/DataDog/dd-trace-rb/issues/5446
5425
+ [#5448]: https://github.com/DataDog/dd-trace-rb/issues/5448
5426
+ [#5449]: https://github.com/DataDog/dd-trace-rb/issues/5449
5427
+ [#5461]: https://github.com/DataDog/dd-trace-rb/issues/5461
5428
+ [#5468]: https://github.com/DataDog/dd-trace-rb/issues/5468
5429
+ [#5469]: https://github.com/DataDog/dd-trace-rb/issues/5469
5430
+ [#5483]: https://github.com/DataDog/dd-trace-rb/issues/5483
5431
+ [#5484]: https://github.com/DataDog/dd-trace-rb/issues/5484
5432
+ [#5499]: https://github.com/DataDog/dd-trace-rb/issues/5499
5433
+ [#5501]: https://github.com/DataDog/dd-trace-rb/issues/5501
5434
+ [#5509]: https://github.com/DataDog/dd-trace-rb/issues/5509
5435
+ [#5525]: https://github.com/DataDog/dd-trace-rb/issues/5525
5436
+ [#5531]: https://github.com/DataDog/dd-trace-rb/issues/5531
5437
+ [#5564]: https://github.com/DataDog/dd-trace-rb/issues/5564
5438
+ [#5569]: https://github.com/DataDog/dd-trace-rb/issues/5569
5439
+ [#5573]: https://github.com/DataDog/dd-trace-rb/issues/5573
5440
+ [#5574]: https://github.com/DataDog/dd-trace-rb/issues/5574
5441
+ [#5579]: https://github.com/DataDog/dd-trace-rb/issues/5579
5442
+ [#5580]: https://github.com/DataDog/dd-trace-rb/issues/5580
5443
+ [#5587]: https://github.com/DataDog/dd-trace-rb/issues/5587
5444
+ [#5594]: https://github.com/DataDog/dd-trace-rb/issues/5594
5445
+ [#5599]: https://github.com/DataDog/dd-trace-rb/issues/5599
5446
+ [#5634]: https://github.com/DataDog/dd-trace-rb/issues/5634
5447
+ [#5657]: https://github.com/DataDog/dd-trace-rb/issues/5657
5448
+ [#5663]: https://github.com/DataDog/dd-trace-rb/issues/5663
5449
+ [#5672]: https://github.com/DataDog/dd-trace-rb/issues/5672
5450
+ [#5674]: https://github.com/DataDog/dd-trace-rb/issues/5674
5451
+ [#5677]: https://github.com/DataDog/dd-trace-rb/issues/5677
5452
+ [#5681]: https://github.com/DataDog/dd-trace-rb/issues/5681
5453
+ [#5687]: https://github.com/DataDog/dd-trace-rb/issues/5687
5454
+ [#5689]: https://github.com/DataDog/dd-trace-rb/issues/5689
5455
+ [#5697]: https://github.com/DataDog/dd-trace-rb/issues/5697
5456
+ [#5705]: https://github.com/DataDog/dd-trace-rb/issues/5705
5457
+ [#5717]: https://github.com/DataDog/dd-trace-rb/issues/5717
5458
+ [#5719]: https://github.com/DataDog/dd-trace-rb/issues/5719
5459
+ [#5723]: https://github.com/DataDog/dd-trace-rb/issues/5723
5460
+ [#5724]: https://github.com/DataDog/dd-trace-rb/issues/5724
5461
+ [#5750]: https://github.com/DataDog/dd-trace-rb/issues/5750
5462
+ [#5753]: https://github.com/DataDog/dd-trace-rb/issues/5753
5463
+ [#5754]: https://github.com/DataDog/dd-trace-rb/issues/5754
5464
+ [#5762]: https://github.com/DataDog/dd-trace-rb/issues/5762
5465
+ [#5768]: https://github.com/DataDog/dd-trace-rb/issues/5768
5466
+ [#5773]: https://github.com/DataDog/dd-trace-rb/issues/5773
5467
+ [#5777]: https://github.com/DataDog/dd-trace-rb/issues/5777
5468
+ [#5811]: https://github.com/DataDog/dd-trace-rb/issues/5811
5469
+ [#5812]: https://github.com/DataDog/dd-trace-rb/issues/5812
5470
+ [#5816]: https://github.com/DataDog/dd-trace-rb/issues/5816
5471
+ [#5828]: https://github.com/DataDog/dd-trace-rb/issues/5828
5472
+ [#5830]: https://github.com/DataDog/dd-trace-rb/issues/5830
5473
+ [#5834]: https://github.com/DataDog/dd-trace-rb/issues/5834
5474
+ [#5836]: https://github.com/DataDog/dd-trace-rb/issues/5836
5475
+ [#5844]: https://github.com/DataDog/dd-trace-rb/issues/5844
5476
+ [#5845]: https://github.com/DataDog/dd-trace-rb/issues/5845
5477
+ [#5857]: https://github.com/DataDog/dd-trace-rb/issues/5857
5478
+ [#5872]: https://github.com/DataDog/dd-trace-rb/issues/5872
5479
+ [#5877]: https://github.com/DataDog/dd-trace-rb/issues/5877
5480
+ [#5881]: https://github.com/DataDog/dd-trace-rb/issues/5881
5481
+ [#5883]: https://github.com/DataDog/dd-trace-rb/issues/5883
5482
+ [#5890]: https://github.com/DataDog/dd-trace-rb/issues/5890
5483
+ [#5894]: https://github.com/DataDog/dd-trace-rb/issues/5894
5484
+ [#5907]: https://github.com/DataDog/dd-trace-rb/issues/5907
5485
+ [#5911]: https://github.com/DataDog/dd-trace-rb/issues/5911
5486
+ [#5916]: https://github.com/DataDog/dd-trace-rb/issues/5916
5487
+ [#5920]: https://github.com/DataDog/dd-trace-rb/issues/5920
5488
+ [#5938]: https://github.com/DataDog/dd-trace-rb/issues/5938
5489
+ [#5940]: https://github.com/DataDog/dd-trace-rb/issues/5940
5490
+ [#5945]: https://github.com/DataDog/dd-trace-rb/issues/5945
5491
+ [#5954]: https://github.com/DataDog/dd-trace-rb/issues/5954
5492
+ [#5955]: https://github.com/DataDog/dd-trace-rb/issues/5955
5493
+ [#5960]: https://github.com/DataDog/dd-trace-rb/issues/5960
5494
+ [#5970]: https://github.com/DataDog/dd-trace-rb/issues/5970
5495
+ [#5973]: https://github.com/DataDog/dd-trace-rb/issues/5973
5496
+ [#5975]: https://github.com/DataDog/dd-trace-rb/issues/5975
5497
+ [#5981]: https://github.com/DataDog/dd-trace-rb/issues/5981
5498
+ [#5987]: https://github.com/DataDog/dd-trace-rb/issues/5987
5499
+ [#5990]: https://github.com/DataDog/dd-trace-rb/issues/5990
5500
+ [#5991]: https://github.com/DataDog/dd-trace-rb/issues/5991
5501
+ [#5993]: https://github.com/DataDog/dd-trace-rb/issues/5993
5502
+ [#6014]: https://github.com/DataDog/dd-trace-rb/issues/6014
5503
+ [#6020]: https://github.com/DataDog/dd-trace-rb/issues/6020
5504
+ [#6022]: https://github.com/DataDog/dd-trace-rb/issues/6022
5505
+ [#6023]: https://github.com/DataDog/dd-trace-rb/issues/6023
5506
+ [#6047]: https://github.com/DataDog/dd-trace-rb/issues/6047
4938
5507
  [@AdrianLC]: https://github.com/AdrianLC
4939
5508
  [@Azure7111]: https://github.com/Azure7111
4940
5509
  [@BabyGroot]: https://github.com/BabyGroot
@@ -4993,6 +5562,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
4993
5562
  [@dorner]: https://github.com/dorner
4994
5563
  [@drcapulet]: https://github.com/drcapulet
4995
5564
  [@dudo]: https://github.com/dudo
5565
+ [@duration]: https://github.com/duration
4996
5566
  [@e1senh0rn]: https://github.com/e1senh0rn
4997
5567
  [@ecdemis123]: https://github.com/ecdemis123
4998
5568
  [@elliterate]: https://github.com/elliterate
@@ -5001,6 +5571,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
5001
5571
  [@erict-square]: https://github.com/erict-square
5002
5572
  [@errriclee]: https://github.com/errriclee
5003
5573
  [@evan-waters]: https://github.com/evan-waters
5574
+ [@exception]: https://github.com/exception
5004
5575
  [@fledman]: https://github.com/fledman
5005
5576
  [@frsantos]: https://github.com/frsantos
5006
5577
  [@fteem]: https://github.com/fteem
@@ -5047,6 +5618,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
5047
5618
  [@mscrivo]: https://github.com/mscrivo
5048
5619
  [@mstruve]: https://github.com/mstruve
5049
5620
  [@mustela]: https://github.com/mustela
5621
+ [@navidemad]: https://github.com/navidemad
5050
5622
  [@nic-lan]: https://github.com/nic-lan
5051
5623
  [@noma4i]: https://github.com/noma4i
5052
5624
  [@norbertnytko]: https://github.com/norbertnytko
@@ -5058,6 +5630,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
5058
5630
  [@rahul342]: https://github.com/rahul342
5059
5631
  [@randy-girard]: https://github.com/randy-girard
5060
5632
  [@renchap]: https://github.com/renchap
5633
+ [@return]: https://github.com/return
5061
5634
  [@ricbartm]: https://github.com/ricbartm
5062
5635
  [@roccoblues]: https://github.com/roccoblues
5063
5636
  [@rqz13]: https://github.com/rqz13
@@ -0,0 +1,3 @@
1
+ # Libdatadog development
2
+
3
+ Moved to <../docs/LibdatadogDevelopment.md>!