datadog 2.7.1 → 2.18.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 (441) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +353 -1
  3. data/ext/datadog_profiling_native_extension/clock_id.h +2 -2
  4. data/ext/datadog_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +78 -102
  5. data/ext/datadog_profiling_native_extension/collectors_discrete_dynamic_sampler.c +1 -1
  6. data/ext/datadog_profiling_native_extension/collectors_discrete_dynamic_sampler.h +1 -1
  7. data/ext/datadog_profiling_native_extension/collectors_idle_sampling_helper.c +16 -16
  8. data/ext/datadog_profiling_native_extension/collectors_stack.c +235 -57
  9. data/ext/datadog_profiling_native_extension/collectors_stack.h +21 -5
  10. data/ext/datadog_profiling_native_extension/collectors_thread_context.c +376 -156
  11. data/ext/datadog_profiling_native_extension/collectors_thread_context.h +1 -0
  12. data/ext/datadog_profiling_native_extension/datadog_ruby_common.c +1 -4
  13. data/ext/datadog_profiling_native_extension/datadog_ruby_common.h +10 -0
  14. data/ext/datadog_profiling_native_extension/encoded_profile.c +79 -0
  15. data/ext/datadog_profiling_native_extension/encoded_profile.h +8 -0
  16. data/ext/datadog_profiling_native_extension/extconf.rb +14 -8
  17. data/ext/datadog_profiling_native_extension/gvl_profiling_helper.c +2 -0
  18. data/ext/datadog_profiling_native_extension/gvl_profiling_helper.h +0 -8
  19. data/ext/datadog_profiling_native_extension/heap_recorder.c +295 -532
  20. data/ext/datadog_profiling_native_extension/heap_recorder.h +6 -8
  21. data/ext/datadog_profiling_native_extension/http_transport.c +64 -98
  22. data/ext/datadog_profiling_native_extension/libdatadog_helpers.c +22 -0
  23. data/ext/datadog_profiling_native_extension/libdatadog_helpers.h +8 -5
  24. data/ext/datadog_profiling_native_extension/private_vm_api_access.c +69 -1
  25. data/ext/datadog_profiling_native_extension/private_vm_api_access.h +16 -4
  26. data/ext/datadog_profiling_native_extension/profiling.c +19 -8
  27. data/ext/datadog_profiling_native_extension/ruby_helpers.c +9 -21
  28. data/ext/datadog_profiling_native_extension/ruby_helpers.h +2 -10
  29. data/ext/datadog_profiling_native_extension/stack_recorder.c +231 -181
  30. data/ext/datadog_profiling_native_extension/stack_recorder.h +2 -2
  31. data/ext/datadog_profiling_native_extension/time_helpers.h +1 -1
  32. data/ext/datadog_profiling_native_extension/unsafe_api_calls_check.c +47 -0
  33. data/ext/datadog_profiling_native_extension/unsafe_api_calls_check.h +31 -0
  34. data/ext/libdatadog_api/crashtracker.c +17 -15
  35. data/ext/libdatadog_api/crashtracker.h +5 -0
  36. data/ext/libdatadog_api/datadog_ruby_common.c +1 -4
  37. data/ext/libdatadog_api/datadog_ruby_common.h +10 -0
  38. data/ext/libdatadog_api/extconf.rb +2 -2
  39. data/ext/libdatadog_api/init.c +15 -0
  40. data/ext/libdatadog_api/library_config.c +164 -0
  41. data/ext/libdatadog_api/library_config.h +25 -0
  42. data/ext/libdatadog_api/macos_development.md +3 -3
  43. data/ext/libdatadog_api/process_discovery.c +112 -0
  44. data/ext/libdatadog_api/process_discovery.h +5 -0
  45. data/ext/libdatadog_extconf_helpers.rb +2 -2
  46. data/lib/datadog/appsec/actions_handler/serializable_backtrace.rb +89 -0
  47. data/lib/datadog/appsec/actions_handler.rb +49 -0
  48. data/lib/datadog/appsec/anonymizer.rb +16 -0
  49. data/lib/datadog/appsec/api_security/lru_cache.rb +56 -0
  50. data/lib/datadog/appsec/api_security/route_extractor.rb +65 -0
  51. data/lib/datadog/appsec/api_security/sampler.rb +59 -0
  52. data/lib/datadog/appsec/api_security.rb +23 -0
  53. data/lib/datadog/appsec/assets/waf_rules/README.md +50 -5
  54. data/lib/datadog/appsec/assets/waf_rules/recommended.json +623 -253
  55. data/lib/datadog/appsec/assets/waf_rules/strict.json +69 -107
  56. data/lib/datadog/appsec/autoload.rb +1 -1
  57. data/lib/datadog/appsec/component.rb +49 -65
  58. data/lib/datadog/appsec/compressed_json.rb +40 -0
  59. data/lib/datadog/appsec/configuration/settings.rb +212 -27
  60. data/lib/datadog/appsec/context.rb +74 -0
  61. data/lib/datadog/appsec/contrib/active_record/instrumentation.rb +92 -0
  62. data/lib/datadog/appsec/contrib/active_record/integration.rb +41 -0
  63. data/lib/datadog/appsec/contrib/active_record/patcher.rb +101 -0
  64. data/lib/datadog/appsec/contrib/auto_instrument.rb +1 -1
  65. data/lib/datadog/appsec/contrib/devise/configuration.rb +52 -0
  66. data/lib/datadog/appsec/contrib/devise/data_extractor.rb +78 -0
  67. data/lib/datadog/appsec/contrib/devise/ext.rb +22 -0
  68. data/lib/datadog/appsec/contrib/devise/integration.rb +1 -2
  69. data/lib/datadog/appsec/contrib/devise/patcher.rb +33 -25
  70. data/lib/datadog/appsec/contrib/devise/patches/signin_tracking_patch.rb +102 -0
  71. data/lib/datadog/appsec/contrib/devise/patches/signup_tracking_patch.rb +69 -0
  72. data/lib/datadog/appsec/contrib/devise/{patcher/rememberable_patch.rb → patches/skip_signin_tracking_patch.rb} +3 -3
  73. data/lib/datadog/appsec/contrib/devise/tracking_middleware.rb +106 -0
  74. data/lib/datadog/appsec/contrib/excon/integration.rb +41 -0
  75. data/lib/datadog/appsec/contrib/excon/patcher.rb +28 -0
  76. data/lib/datadog/appsec/contrib/excon/ssrf_detection_middleware.rb +42 -0
  77. data/lib/datadog/appsec/contrib/faraday/connection_patch.rb +22 -0
  78. data/lib/datadog/appsec/contrib/faraday/integration.rb +42 -0
  79. data/lib/datadog/appsec/contrib/faraday/patcher.rb +53 -0
  80. data/lib/datadog/appsec/contrib/faraday/rack_builder_patch.rb +22 -0
  81. data/lib/datadog/appsec/contrib/faraday/ssrf_detection_middleware.rb +41 -0
  82. data/lib/datadog/appsec/contrib/graphql/appsec_trace.rb +1 -7
  83. data/lib/datadog/appsec/contrib/graphql/gateway/watcher.rb +17 -30
  84. data/lib/datadog/appsec/contrib/graphql/integration.rb +1 -1
  85. data/lib/datadog/appsec/contrib/graphql/patcher.rb +0 -3
  86. data/lib/datadog/appsec/contrib/rack/ext.rb +34 -0
  87. data/lib/datadog/appsec/contrib/rack/gateway/response.rb +3 -3
  88. data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +78 -98
  89. data/lib/datadog/appsec/contrib/rack/integration.rb +1 -1
  90. data/lib/datadog/appsec/contrib/rack/patcher.rb +0 -3
  91. data/lib/datadog/appsec/contrib/rack/request_body_middleware.rb +10 -11
  92. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +73 -78
  93. data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +16 -33
  94. data/lib/datadog/appsec/contrib/rails/integration.rb +1 -1
  95. data/lib/datadog/appsec/contrib/rails/patcher.rb +25 -38
  96. data/lib/datadog/appsec/contrib/rest_client/integration.rb +45 -0
  97. data/lib/datadog/appsec/contrib/rest_client/patcher.rb +28 -0
  98. data/lib/datadog/appsec/contrib/rest_client/request_ssrf_detection_patch.rb +38 -0
  99. data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +31 -68
  100. data/lib/datadog/appsec/contrib/sinatra/integration.rb +1 -1
  101. data/lib/datadog/appsec/contrib/sinatra/patcher.rb +5 -31
  102. data/lib/datadog/appsec/event.rb +96 -135
  103. data/lib/datadog/appsec/ext.rb +12 -3
  104. data/lib/datadog/appsec/instrumentation/gateway/argument.rb +7 -2
  105. data/lib/datadog/appsec/instrumentation/gateway/middleware.rb +24 -0
  106. data/lib/datadog/appsec/instrumentation/gateway.rb +17 -22
  107. data/lib/datadog/appsec/metrics/collector.rb +38 -0
  108. data/lib/datadog/appsec/metrics/exporter.rb +35 -0
  109. data/lib/datadog/appsec/metrics/telemetry.rb +23 -0
  110. data/lib/datadog/appsec/metrics.rb +13 -0
  111. data/lib/datadog/appsec/monitor/gateway/watcher.rb +52 -32
  112. data/lib/datadog/appsec/processor/rule_loader.rb +30 -36
  113. data/lib/datadog/appsec/remote.rb +31 -57
  114. data/lib/datadog/appsec/response.rb +19 -85
  115. data/lib/datadog/appsec/security_engine/engine.rb +194 -0
  116. data/lib/datadog/appsec/security_engine/result.rb +67 -0
  117. data/lib/datadog/appsec/security_engine/runner.rb +87 -0
  118. data/lib/datadog/appsec/security_engine.rb +9 -0
  119. data/lib/datadog/appsec/security_event.rb +39 -0
  120. data/lib/datadog/appsec/utils.rb +0 -2
  121. data/lib/datadog/appsec.rb +22 -12
  122. data/lib/datadog/auto_instrument.rb +3 -0
  123. data/lib/datadog/core/buffer/random.rb +18 -2
  124. data/lib/datadog/core/configuration/agent_settings.rb +52 -0
  125. data/lib/datadog/core/configuration/agent_settings_resolver.rb +4 -18
  126. data/lib/datadog/core/configuration/agentless_settings_resolver.rb +176 -0
  127. data/lib/datadog/core/configuration/components.rb +74 -32
  128. data/lib/datadog/core/configuration/components_state.rb +23 -0
  129. data/lib/datadog/core/configuration/ext.rb +5 -1
  130. data/lib/datadog/core/configuration/option.rb +81 -45
  131. data/lib/datadog/core/configuration/option_definition.rb +6 -4
  132. data/lib/datadog/core/configuration/options.rb +3 -3
  133. data/lib/datadog/core/configuration/settings.rb +121 -50
  134. data/lib/datadog/core/configuration/stable_config.rb +22 -0
  135. data/lib/datadog/core/configuration.rb +43 -11
  136. data/lib/datadog/{tracing → core}/contrib/rails/utils.rb +1 -3
  137. data/lib/datadog/core/crashtracking/component.rb +4 -13
  138. data/lib/datadog/core/crashtracking/tag_builder.rb +4 -22
  139. data/lib/datadog/core/diagnostics/environment_logger.rb +1 -1
  140. data/lib/datadog/core/encoding.rb +17 -1
  141. data/lib/datadog/core/environment/agent_info.rb +78 -0
  142. data/lib/datadog/core/environment/cgroup.rb +10 -12
  143. data/lib/datadog/core/environment/container.rb +38 -40
  144. data/lib/datadog/core/environment/ext.rb +6 -6
  145. data/lib/datadog/core/environment/git.rb +1 -0
  146. data/lib/datadog/core/environment/identity.rb +3 -3
  147. data/lib/datadog/core/environment/platform.rb +3 -3
  148. data/lib/datadog/core/environment/variable_helpers.rb +1 -1
  149. data/lib/datadog/core/error.rb +11 -9
  150. data/lib/datadog/core/logger.rb +2 -2
  151. data/lib/datadog/core/metrics/client.rb +27 -27
  152. data/lib/datadog/core/metrics/logging.rb +5 -5
  153. data/lib/datadog/core/process_discovery/tracer_memfd.rb +15 -0
  154. data/lib/datadog/core/process_discovery.rb +36 -0
  155. data/lib/datadog/core/rate_limiter.rb +4 -2
  156. data/lib/datadog/core/remote/client/capabilities.rb +6 -0
  157. data/lib/datadog/core/remote/client.rb +107 -92
  158. data/lib/datadog/core/remote/component.rb +18 -19
  159. data/lib/datadog/core/remote/configuration/digest.rb +7 -7
  160. data/lib/datadog/core/remote/configuration/path.rb +1 -1
  161. data/lib/datadog/core/remote/configuration/repository.rb +14 -1
  162. data/lib/datadog/core/remote/negotiation.rb +9 -9
  163. data/lib/datadog/core/remote/transport/config.rb +4 -3
  164. data/lib/datadog/core/remote/transport/http/api.rb +13 -18
  165. data/lib/datadog/core/remote/transport/http/client.rb +5 -4
  166. data/lib/datadog/core/remote/transport/http/config.rb +27 -55
  167. data/lib/datadog/core/remote/transport/http/negotiation.rb +8 -51
  168. data/lib/datadog/core/remote/transport/http.rb +25 -94
  169. data/lib/datadog/core/remote/transport/negotiation.rb +17 -4
  170. data/lib/datadog/core/remote/worker.rb +10 -7
  171. data/lib/datadog/core/runtime/metrics.rb +12 -5
  172. data/lib/datadog/core/tag_builder.rb +56 -0
  173. data/lib/datadog/core/telemetry/component.rb +84 -49
  174. data/lib/datadog/core/telemetry/emitter.rb +23 -11
  175. data/lib/datadog/core/telemetry/event/app_client_configuration_change.rb +66 -0
  176. data/lib/datadog/core/telemetry/event/app_closing.rb +18 -0
  177. data/lib/datadog/core/telemetry/event/app_dependencies_loaded.rb +33 -0
  178. data/lib/datadog/core/telemetry/event/app_heartbeat.rb +18 -0
  179. data/lib/datadog/core/telemetry/event/app_integrations_change.rb +58 -0
  180. data/lib/datadog/core/telemetry/event/app_started.rb +269 -0
  181. data/lib/datadog/core/telemetry/event/base.rb +40 -0
  182. data/lib/datadog/core/telemetry/event/distributions.rb +18 -0
  183. data/lib/datadog/core/telemetry/event/generate_metrics.rb +43 -0
  184. data/lib/datadog/core/telemetry/event/log.rb +76 -0
  185. data/lib/datadog/core/telemetry/event/message_batch.rb +42 -0
  186. data/lib/datadog/core/telemetry/event/synth_app_client_configuration_change.rb +43 -0
  187. data/lib/datadog/core/telemetry/event.rb +17 -383
  188. data/lib/datadog/core/telemetry/ext.rb +1 -0
  189. data/lib/datadog/core/telemetry/http/adapters/net.rb +12 -97
  190. data/lib/datadog/core/telemetry/logger.rb +5 -4
  191. data/lib/datadog/core/telemetry/logging.rb +12 -6
  192. data/lib/datadog/core/telemetry/metric.rb +28 -6
  193. data/lib/datadog/core/telemetry/request.rb +4 -4
  194. data/lib/datadog/core/telemetry/transport/http/api.rb +43 -0
  195. data/lib/datadog/core/telemetry/transport/http/client.rb +49 -0
  196. data/lib/datadog/core/telemetry/transport/http/telemetry.rb +92 -0
  197. data/lib/datadog/core/telemetry/transport/http.rb +63 -0
  198. data/lib/datadog/core/telemetry/transport/telemetry.rb +51 -0
  199. data/lib/datadog/core/telemetry/worker.rb +128 -25
  200. data/lib/datadog/core/transport/http/adapters/net.rb +17 -2
  201. data/lib/datadog/core/transport/http/adapters/test.rb +2 -1
  202. data/lib/datadog/core/transport/http/adapters/unix_socket.rb +1 -1
  203. data/lib/datadog/{tracing → core}/transport/http/api/instance.rb +18 -1
  204. data/lib/datadog/core/transport/http/api/spec.rb +36 -0
  205. data/lib/datadog/{tracing → core}/transport/http/builder.rb +53 -31
  206. data/lib/datadog/core/transport/http/env.rb +8 -0
  207. data/lib/datadog/core/transport/http.rb +75 -0
  208. data/lib/datadog/core/transport/response.rb +4 -0
  209. data/lib/datadog/core/utils/at_fork_monkey_patch.rb +6 -6
  210. data/lib/datadog/core/utils/duration.rb +32 -32
  211. data/lib/datadog/core/utils/forking.rb +2 -2
  212. data/lib/datadog/core/utils/network.rb +6 -6
  213. data/lib/datadog/core/utils/only_once_successful.rb +16 -5
  214. data/lib/datadog/core/utils/time.rb +20 -0
  215. data/lib/datadog/core/utils/truncation.rb +21 -0
  216. data/lib/datadog/core/utils.rb +7 -0
  217. data/lib/datadog/core/vendor/multipart-post/multipart/post/composite_read_io.rb +1 -1
  218. data/lib/datadog/core/vendor/multipart-post/multipart/post/multipartable.rb +8 -8
  219. data/lib/datadog/core/vendor/multipart-post/multipart/post/parts.rb +7 -7
  220. data/lib/datadog/core/worker.rb +1 -1
  221. data/lib/datadog/core/workers/async.rb +29 -12
  222. data/lib/datadog/core/workers/interval_loop.rb +12 -1
  223. data/lib/datadog/core/workers/runtime_metrics.rb +2 -2
  224. data/lib/datadog/core.rb +8 -0
  225. data/lib/datadog/di/base.rb +115 -0
  226. data/lib/datadog/di/boot.rb +34 -0
  227. data/lib/datadog/di/code_tracker.rb +26 -15
  228. data/lib/datadog/di/component.rb +23 -14
  229. data/lib/datadog/di/configuration/settings.rb +25 -1
  230. data/lib/datadog/di/contrib/active_record.rb +1 -0
  231. data/lib/datadog/di/contrib/railtie.rb +15 -0
  232. data/lib/datadog/di/contrib.rb +28 -0
  233. data/lib/datadog/di/error.rb +5 -0
  234. data/lib/datadog/di/instrumenter.rb +162 -21
  235. data/lib/datadog/di/logger.rb +30 -0
  236. data/lib/datadog/di/preload.rb +18 -0
  237. data/lib/datadog/di/probe.rb +14 -7
  238. data/lib/datadog/di/probe_builder.rb +1 -0
  239. data/lib/datadog/di/probe_manager.rb +11 -5
  240. data/lib/datadog/di/probe_notification_builder.rb +54 -38
  241. data/lib/datadog/di/probe_notifier_worker.rb +60 -26
  242. data/lib/datadog/di/redactor.rb +0 -1
  243. data/lib/datadog/di/remote.rb +147 -0
  244. data/lib/datadog/di/serializer.rb +19 -8
  245. data/lib/datadog/di/transport/diagnostics.rb +62 -0
  246. data/lib/datadog/di/transport/http/api.rb +42 -0
  247. data/lib/datadog/di/transport/http/client.rb +47 -0
  248. data/lib/datadog/di/transport/http/diagnostics.rb +65 -0
  249. data/lib/datadog/di/transport/http/input.rb +77 -0
  250. data/lib/datadog/di/transport/http.rb +57 -0
  251. data/lib/datadog/di/transport/input.rb +70 -0
  252. data/lib/datadog/di/utils.rb +103 -0
  253. data/lib/datadog/di.rb +14 -76
  254. data/lib/datadog/error_tracking/collector.rb +87 -0
  255. data/lib/datadog/error_tracking/component.rb +167 -0
  256. data/lib/datadog/error_tracking/configuration/settings.rb +63 -0
  257. data/lib/datadog/error_tracking/configuration.rb +11 -0
  258. data/lib/datadog/error_tracking/ext.rb +18 -0
  259. data/lib/datadog/error_tracking/extensions.rb +16 -0
  260. data/lib/datadog/error_tracking/filters.rb +77 -0
  261. data/lib/datadog/error_tracking.rb +18 -0
  262. data/lib/datadog/kit/appsec/events.rb +15 -3
  263. data/lib/datadog/kit/identity.rb +9 -5
  264. data/lib/datadog/opentelemetry/api/baggage.rb +90 -0
  265. data/lib/datadog/opentelemetry/api/baggage.rbs +26 -0
  266. data/lib/datadog/opentelemetry/api/context.rb +16 -2
  267. data/lib/datadog/opentelemetry/sdk/trace/span.rb +1 -1
  268. data/lib/datadog/opentelemetry.rb +2 -1
  269. data/lib/datadog/profiling/collectors/code_provenance.rb +18 -9
  270. data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +4 -0
  271. data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +1 -0
  272. data/lib/datadog/profiling/collectors/info.rb +3 -0
  273. data/lib/datadog/profiling/collectors/thread_context.rb +17 -2
  274. data/lib/datadog/profiling/component.rb +64 -82
  275. data/lib/datadog/profiling/encoded_profile.rb +11 -0
  276. data/lib/datadog/profiling/exporter.rb +3 -4
  277. data/lib/datadog/profiling/ext.rb +0 -14
  278. data/lib/datadog/profiling/flush.rb +5 -8
  279. data/lib/datadog/profiling/http_transport.rb +8 -87
  280. data/lib/datadog/profiling/load_native_extension.rb +1 -33
  281. data/lib/datadog/profiling/profiler.rb +2 -0
  282. data/lib/datadog/profiling/scheduler.rb +10 -2
  283. data/lib/datadog/profiling/stack_recorder.rb +9 -9
  284. data/lib/datadog/profiling/tag_builder.rb +5 -41
  285. data/lib/datadog/profiling/tasks/setup.rb +2 -0
  286. data/lib/datadog/profiling.rb +6 -2
  287. data/lib/datadog/tracing/analytics.rb +1 -1
  288. data/lib/datadog/tracing/component.rb +16 -12
  289. data/lib/datadog/tracing/configuration/ext.rb +8 -1
  290. data/lib/datadog/tracing/configuration/settings.rb +22 -10
  291. data/lib/datadog/tracing/context_provider.rb +1 -1
  292. data/lib/datadog/tracing/contrib/action_cable/integration.rb +5 -2
  293. data/lib/datadog/tracing/contrib/action_mailer/integration.rb +6 -2
  294. data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +15 -0
  295. data/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb +19 -12
  296. data/lib/datadog/tracing/contrib/action_pack/ext.rb +2 -0
  297. data/lib/datadog/tracing/contrib/action_pack/integration.rb +5 -2
  298. data/lib/datadog/tracing/contrib/action_view/integration.rb +5 -2
  299. data/lib/datadog/tracing/contrib/active_job/integration.rb +5 -2
  300. data/lib/datadog/tracing/contrib/active_record/integration.rb +7 -3
  301. data/lib/datadog/tracing/contrib/active_support/cache/events/cache.rb +7 -2
  302. data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +36 -1
  303. data/lib/datadog/tracing/contrib/active_support/cache/patcher.rb +4 -0
  304. data/lib/datadog/tracing/contrib/active_support/cache/redis.rb +14 -4
  305. data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +10 -0
  306. data/lib/datadog/tracing/contrib/active_support/integration.rb +5 -2
  307. data/lib/datadog/tracing/contrib/auto_instrument.rb +2 -2
  308. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +10 -0
  309. data/lib/datadog/tracing/contrib/aws/integration.rb +3 -0
  310. data/lib/datadog/tracing/contrib/aws/parsed_context.rb +5 -1
  311. data/lib/datadog/tracing/contrib/concurrent_ruby/integration.rb +3 -0
  312. data/lib/datadog/tracing/contrib/configuration/settings.rb +1 -1
  313. data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +4 -0
  314. data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +6 -1
  315. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +4 -5
  316. data/lib/datadog/tracing/contrib/excon/middleware.rb +5 -3
  317. data/lib/datadog/tracing/contrib/ext.rb +1 -0
  318. data/lib/datadog/tracing/contrib/extensions.rb +29 -3
  319. data/lib/datadog/tracing/contrib/faraday/middleware.rb +5 -3
  320. data/lib/datadog/tracing/contrib/graphql/configuration/error_extension_env_parser.rb +21 -0
  321. data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +11 -0
  322. data/lib/datadog/tracing/contrib/graphql/ext.rb +5 -0
  323. data/lib/datadog/tracing/contrib/graphql/unified_trace.rb +102 -11
  324. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +7 -1
  325. data/lib/datadog/tracing/contrib/grpc/distributed/propagation.rb +3 -0
  326. data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +0 -15
  327. data/lib/datadog/tracing/contrib/http/distributed/propagation.rb +4 -1
  328. data/lib/datadog/tracing/contrib/http/instrumentation.rb +6 -10
  329. data/lib/datadog/tracing/contrib/http/integration.rb +3 -0
  330. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +6 -16
  331. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +7 -15
  332. data/lib/datadog/tracing/contrib/httprb/integration.rb +3 -0
  333. data/lib/datadog/tracing/contrib/kafka/integration.rb +3 -0
  334. data/lib/datadog/tracing/contrib/karafka/configuration/settings.rb +27 -0
  335. data/lib/datadog/tracing/contrib/karafka/distributed/propagation.rb +48 -0
  336. data/lib/datadog/tracing/contrib/karafka/ext.rb +27 -0
  337. data/lib/datadog/tracing/contrib/karafka/integration.rb +45 -0
  338. data/lib/datadog/tracing/contrib/karafka/monitor.rb +66 -0
  339. data/lib/datadog/tracing/contrib/karafka/patcher.rb +71 -0
  340. data/lib/datadog/tracing/contrib/karafka.rb +37 -0
  341. data/lib/datadog/tracing/contrib/lograge/patcher.rb +4 -2
  342. data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +8 -0
  343. data/lib/datadog/tracing/contrib/mongodb/ext.rb +1 -0
  344. data/lib/datadog/tracing/contrib/mongodb/integration.rb +3 -0
  345. data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +18 -1
  346. data/lib/datadog/tracing/contrib/opensearch/configuration/settings.rb +17 -0
  347. data/lib/datadog/tracing/contrib/opensearch/ext.rb +9 -0
  348. data/lib/datadog/tracing/contrib/opensearch/integration.rb +3 -0
  349. data/lib/datadog/tracing/contrib/opensearch/patcher.rb +5 -1
  350. data/lib/datadog/tracing/contrib/patcher.rb +5 -2
  351. data/lib/datadog/tracing/contrib/presto/integration.rb +3 -0
  352. data/lib/datadog/tracing/contrib/rack/header_collection.rb +11 -1
  353. data/lib/datadog/tracing/contrib/rack/integration.rb +2 -2
  354. data/lib/datadog/tracing/contrib/rack/middlewares.rb +1 -1
  355. data/lib/datadog/tracing/contrib/rack/request_queue.rb +1 -1
  356. data/lib/datadog/tracing/contrib/rails/framework.rb +2 -2
  357. data/lib/datadog/tracing/contrib/rails/patcher.rb +1 -1
  358. data/lib/datadog/tracing/contrib/rest_client/integration.rb +3 -0
  359. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +5 -3
  360. data/lib/datadog/tracing/contrib/sidekiq/client_tracer.rb +6 -1
  361. data/lib/datadog/tracing/contrib/sidekiq/distributed/propagation.rb +3 -0
  362. data/lib/datadog/tracing/contrib/sidekiq/ext.rb +1 -0
  363. data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +5 -2
  364. data/lib/datadog/tracing/contrib/span_attribute_schema.rb +6 -1
  365. data/lib/datadog/tracing/contrib/support.rb +28 -0
  366. data/lib/datadog/tracing/contrib.rb +1 -0
  367. data/lib/datadog/tracing/correlation.rb +9 -2
  368. data/lib/datadog/tracing/distributed/b3_multi.rb +1 -1
  369. data/lib/datadog/tracing/distributed/b3_single.rb +1 -1
  370. data/lib/datadog/tracing/distributed/baggage.rb +131 -0
  371. data/lib/datadog/tracing/distributed/datadog.rb +4 -2
  372. data/lib/datadog/tracing/distributed/propagation.rb +25 -4
  373. data/lib/datadog/tracing/distributed/propagation_policy.rb +42 -0
  374. data/lib/datadog/tracing/metadata/errors.rb +4 -4
  375. data/lib/datadog/tracing/metadata/ext.rb +5 -0
  376. data/lib/datadog/tracing/metadata/metastruct.rb +36 -0
  377. data/lib/datadog/tracing/metadata/metastruct_tagging.rb +42 -0
  378. data/lib/datadog/tracing/metadata.rb +2 -0
  379. data/lib/datadog/tracing/sampling/rate_sampler.rb +2 -1
  380. data/lib/datadog/tracing/sampling/span/rule.rb +0 -1
  381. data/lib/datadog/tracing/span.rb +22 -5
  382. data/lib/datadog/tracing/span_event.rb +124 -4
  383. data/lib/datadog/tracing/span_operation.rb +52 -16
  384. data/lib/datadog/tracing/sync_writer.rb +10 -6
  385. data/lib/datadog/tracing/trace_digest.rb +9 -2
  386. data/lib/datadog/tracing/trace_operation.rb +55 -27
  387. data/lib/datadog/tracing/trace_segment.rb +6 -4
  388. data/lib/datadog/tracing/tracer.rb +66 -14
  389. data/lib/datadog/tracing/transport/http/api.rb +5 -4
  390. data/lib/datadog/tracing/transport/http/client.rb +5 -4
  391. data/lib/datadog/tracing/transport/http/traces.rb +13 -44
  392. data/lib/datadog/tracing/transport/http.rb +13 -70
  393. data/lib/datadog/tracing/transport/serializable_trace.rb +31 -7
  394. data/lib/datadog/tracing/transport/trace_formatter.rb +7 -0
  395. data/lib/datadog/tracing/transport/traces.rb +47 -13
  396. data/lib/datadog/tracing/utils.rb +1 -1
  397. data/lib/datadog/tracing/workers/trace_writer.rb +8 -5
  398. data/lib/datadog/tracing/workers.rb +5 -4
  399. data/lib/datadog/tracing/writer.rb +10 -6
  400. data/lib/datadog/tracing.rb +16 -3
  401. data/lib/datadog/version.rb +2 -2
  402. data/lib/datadog.rb +2 -0
  403. metadata +149 -54
  404. data/ext/datadog_profiling_loader/datadog_profiling_loader.c +0 -142
  405. data/ext/datadog_profiling_loader/extconf.rb +0 -60
  406. data/lib/datadog/appsec/assets/waf_rules/processors.json +0 -92
  407. data/lib/datadog/appsec/assets/waf_rules/scanners.json +0 -114
  408. data/lib/datadog/appsec/contrib/devise/event.rb +0 -57
  409. data/lib/datadog/appsec/contrib/devise/patcher/authenticatable_patch.rb +0 -77
  410. data/lib/datadog/appsec/contrib/devise/patcher/registration_controller_patch.rb +0 -54
  411. data/lib/datadog/appsec/contrib/devise/resource.rb +0 -35
  412. data/lib/datadog/appsec/contrib/devise/tracking.rb +0 -57
  413. data/lib/datadog/appsec/contrib/graphql/reactive/multiplex.rb +0 -46
  414. data/lib/datadog/appsec/contrib/patcher.rb +0 -12
  415. data/lib/datadog/appsec/contrib/rack/reactive/request.rb +0 -69
  416. data/lib/datadog/appsec/contrib/rack/reactive/request_body.rb +0 -47
  417. data/lib/datadog/appsec/contrib/rack/reactive/response.rb +0 -53
  418. data/lib/datadog/appsec/contrib/rails/reactive/action.rb +0 -53
  419. data/lib/datadog/appsec/contrib/sinatra/ext.rb +0 -14
  420. data/lib/datadog/appsec/contrib/sinatra/reactive/routed.rb +0 -48
  421. data/lib/datadog/appsec/monitor/reactive/set_user.rb +0 -45
  422. data/lib/datadog/appsec/processor/actions.rb +0 -49
  423. data/lib/datadog/appsec/processor/context.rb +0 -107
  424. data/lib/datadog/appsec/processor/rule_merger.rb +0 -170
  425. data/lib/datadog/appsec/processor.rb +0 -106
  426. data/lib/datadog/appsec/reactive/address_hash.rb +0 -22
  427. data/lib/datadog/appsec/reactive/engine.rb +0 -47
  428. data/lib/datadog/appsec/reactive/operation.rb +0 -68
  429. data/lib/datadog/appsec/reactive/subscriber.rb +0 -19
  430. data/lib/datadog/appsec/scope.rb +0 -58
  431. data/lib/datadog/appsec/utils/trace_operation.rb +0 -15
  432. data/lib/datadog/core/crashtracking/agent_base_url.rb +0 -21
  433. data/lib/datadog/core/remote/transport/http/api/instance.rb +0 -39
  434. data/lib/datadog/core/remote/transport/http/api/spec.rb +0 -21
  435. data/lib/datadog/core/remote/transport/http/builder.rb +0 -219
  436. data/lib/datadog/core/telemetry/http/env.rb +0 -20
  437. data/lib/datadog/core/telemetry/http/ext.rb +0 -28
  438. data/lib/datadog/core/telemetry/http/response.rb +0 -70
  439. data/lib/datadog/core/telemetry/http/transport.rb +0 -90
  440. data/lib/datadog/di/transport.rb +0 -81
  441. data/lib/datadog/tracing/transport/http/api/spec.rb +0 -19
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '00617590b3381113b74dde6671802aad74e6ffee0a96737fbc04149515c6a79d'
4
- data.tar.gz: 5bed675aca238d308051ba0a728209e2a4a5ba17f2dc11a52eacee8aaf55a123
3
+ metadata.gz: a05fd61c1cac65f510b1e6d180ce2bc0552d63218f4fb837284ab9e509b071cb
4
+ data.tar.gz: 29b4e928bb96d57d3fa4820e91ec030ea21973868cfdb906ebce5304c0955f22
5
5
  SHA512:
6
- metadata.gz: 4097896d2d8126418f0827b9c4ad916a003e71ead0919fae2b3586415540f869d58f140865d4c625d20fd4de6a76bcf667156893e7c01f0fee981b7fcb6cafe9
7
- data.tar.gz: ce91b73f91a97db31570bd92dab0ca26bf7a6b849d67b774a4efacea0ec93e19f19c27a3dc3f0f232f2adce6cf5ed13b510c30651c529a6b402137944a6b2e87
6
+ metadata.gz: 9590ee74f91ecf5cf304627790069b6347f63ae050acfc6d79ad29d9155b5e8dde3243a47049eed5c023ad2b1dd6dc78ff4a0813d16d942d83df2db981b5511c
7
+ data.tar.gz: 22892adf3a7520629a4907738aa31125f00a97cdf263fb2edc85568f86096031de8038e78b6933e3a859d0f52aff3b67955e00109bbdc18a2e7e2d3f66602497
data/CHANGELOG.md CHANGED
@@ -2,6 +2,239 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [2.18.0] - 2025-07-03
6
+
7
+ ### Added
8
+
9
+ * AppSec: Add API Security with new sampling algorithm to the Rack, Rails, Sinatra and Grape frameworks ([#4699][])
10
+ * Core: Add support for tracer configuration through Fleet Automation ([#4651][])
11
+ * Tracing: Add Rails view render times and database query times to the spans, when available ([#4697][])
12
+ * Core: Add Service Discovery capability, enabling the tracer to reliably determine which process are instrumented
13
+
14
+ ### Changed
15
+
16
+ * AppSec: Enable API Security feature by default ([#4756][])
17
+ * AppSec: Improve overall threat detection ([#4757][])
18
+ * AppSec: Deprecate `config.appsec.ip_passlist`, `config.appsec.ip_denylist`, and `config.appsec.user_id_denylist` ([#4757][])
19
+ * Profiling: Graduate Heap Profiling from alpha to preview ([#4401][], [#4460][])
20
+ * Dynamic Instrumentation: Add instance variable capture to method and line probes ([#4668][])
21
+ * Profiling: Add capturing of native filenames in backtraces ([#4745][])
22
+ * Profiling: Clean up profiler logging ([#4728][])
23
+ Tracing: Add support for `DD_RUNTIME_METRICS_RUNTIME_ID_ENABLED` to tag runtime metrics with the current runtime ID, allowing correlation across processes ([#4718][])
24
+ * Tracing: Improve performance of `http.route` tag computation for Rails ([#4688][])
25
+
26
+ ### Fixed
27
+
28
+ * AppSec: Fix authenticated users tracking in anonymization mode for Devise ([#4731][])
29
+ * Dynamic Instrumentation: Fix source code display in dynamic instrumentation/live debugger ([#4743][])
30
+ * Profiling: Fix profiler stopping due to bug in heap profiling serialization ([#4721][])
31
+
32
+ ## [2.17.0] - 2025-06-02
33
+
34
+ ### Added
35
+
36
+ * Tracing: Add support for Rails 8.0. ([#4455][])
37
+
38
+ ### Changed
39
+
40
+ * Core: Improve tracer error reporting when agent responds with error responses to remote configuration requests ([#4669][])
41
+ * Core: Profiling: Upgrade libdatadog dependency to version 18.1 ([#4577][])
42
+ * Dynamic Instrumentation: Improve UI reporting of application and host status ([#4678][])
43
+ * Tracing: Mark AWS integration spans as errored when AWS requests fail ([#4672][])
44
+
45
+ ### Fixed
46
+
47
+ * Error Tracking: remove error tracking support on Ruby 2.6 ([#4665][])
48
+ * Profiling: Fix profiling scheduler reporting corner case during shutdown ([#4679][])
49
+ * Tracing: Fix: The `on_error` warning for HTTP instrumentations ([#4673][])
50
+
51
+ ## [2.16.0] - 2025-05-19
52
+
53
+ ### Added
54
+
55
+ * Core: Add new configuration precedence value `environment` ([#4610][])
56
+ * Core: Add Source Code Integration (SCI) tags in Telemetry app-started event and in each Remote Config request ([#4653][])
57
+ * Core: Tracing: ErrorTracking: Add automatic reporting of handled errors ([#4604][])
58
+ * AppSec: Integrations: Add session tracking and attacker fingerprinting to `devise` and `rails` ([#4644][], [#4625][])
59
+ * Profiling: Add support for Ruby 3.5.0-preview1 ([#4600][])
60
+ * Tracing: Add warning when `on_error` handler is not a `Proc` ([#4611][])
61
+ * Tracing: Integrations: Add option to serialize MongoDB command as JSON ([#4403][])
62
+ * Tracing: Integrations: Add baggage to `karafka` list of propagation styles ([#4614][])
63
+
64
+ ### Changed
65
+
66
+ * Tracing: Adjust trace sampling formula ([#4616][])
67
+ * Profiling: Replace `JSON.fast_generate` with `JSON.generate` ([#4602][])
68
+
69
+ ### Fixed
70
+
71
+ * Core: Fix Ruby warnings when providing a custom time provider ([#4613][])
72
+ * Core: Fix Telemetry configuration in agentless mode to respect the timeout specified for the Agent ([#4590][])
73
+ * Profiling: Fix profiler compatibility with ruby-head (3.5) ([#4656][])
74
+
75
+ ### Removed
76
+
77
+ * Core: Remove duplicated classes from Telemetry transport ([#4575][])
78
+
79
+ ## [2.15.0] - 2025-04-17
80
+
81
+ ### Added
82
+
83
+ * AppSec: Add auto-patching for `activerecord` with sql injection detection ([#4581][])
84
+ * Tracing: Add option for `opensearch` to set resource with relative path ([#4509][])
85
+
86
+ ### Changed
87
+
88
+ * AppSec: Update In-App WAF rules, processors, and scanners ([#4568][])
89
+
90
+ ### Fixed
91
+
92
+ * AppSec: Fix blocked requests not marked correctly when using custom redirect blocking action ([#4580][])
93
+ * AppSec: Fix UTF-8 unsafe payloads in InApp-WAF causing runtime exceptions ([#4573][])
94
+
95
+ ## [2.14.0] - 2025-04-04
96
+
97
+ ### Added
98
+
99
+ * Tracing: Add `karafka` instrumentation with 2.3.0 as the minimum supported version. ([#4147][])
100
+
101
+ ### Fixed
102
+
103
+ * Core: Tracing: default logger arguments for compatibility with previous dd-trace-rb versions ([#4558][])
104
+ * AppSec: Fix `Datadog::Kit::AppSec::Events` SDK methods to correctly handle given string key `usr.login`. ([#4552][])
105
+
106
+ ## [2.13.0] - 2025-04-02
107
+
108
+ ### Added
109
+
110
+ * Core: Add `DD_TRACE_EXPERIMENTAL_RUNTIME_ID_ENABLED` experimental option to enable runtime ID collection for runtime metrics. ([#4473][])
111
+ * Tracing: Add support for W3C Baggage API along with automatic extraction and injection, and OpenTelemetry support. ([#4493][], [#4505][])
112
+ * Tracing: Add `DD_APM_TRACING_ENABLED` option to disable APM tracing while keeping other products traces. ([#4498][])
113
+ * Tracing: Add `DD_TRACE_NATIVE_SPAN_EVENTS` option to override span events serialization for agent-less environments. ([#4507][])
114
+ * AppSec: Add stack trace reporting for security events. ([#4526][])
115
+ * AppSec: Improve `devise` instrumentation to support latest Account Takeover (ATO) detection. ([#4433][])
116
+
117
+ ### Changed
118
+
119
+ * Core: Improve `DD_TAGS` configuration handling to be more consistent across Datadog libraries and Agent. ([#4530][])
120
+ * Tracing: Enable by default 128-bit trace ID logging so that trace IDs are consistent across logs and the Datadog UI. ([#4528][])
121
+
122
+ ### Fixed
123
+
124
+ * Core: Fix initialization when the library is partially loaded. ([#4498][])
125
+ * 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][])
126
+ * Tracing: Profiling: Fix warnings printed by `ruby -w`. ([#4547][], [#4549][])
127
+
128
+ ## [2.12.2] - 2025-03-17
129
+
130
+ ### Fixed
131
+
132
+ * AppSec: Fix custom In-App WAF blocking response that was configured in the UI is now applied correctly ([#4497][])
133
+
134
+ ## [2.12.1] - 2025-03-05
135
+
136
+ ### Fixed
137
+
138
+ * AppSec: Fix `ArgumentError` from ActiveRecord for Ruby < 2.7 ([#4437][])
139
+
140
+ ## [2.12.0] - 2025-02-27
141
+
142
+ ### Added
143
+
144
+ * AppSec: Add detection of Server-Side Request Forgery attacks for `rest-client` ([#4424][])
145
+ * Dynamic Instrumentation: Add support for unix domain sockets ([#4426][])
146
+
147
+ ## [2.11.0] - 2025-02-24
148
+
149
+ ### Added
150
+
151
+ * Tracing: Support `graphql` multiple query errors report via Span Events ([#4177][])
152
+ * Profiling: Enable GVL profiling by default on Ruby 3.2+ ([#4406][])
153
+ * Profiling: Support correlating profiling with OTel API 1.5+ ([#4425][])
154
+ * AppSec: Add detection of Server-Side Request Forgery attacks for `excon` ([#4399][])
155
+ * AppSec: Add detection of Server-Side Request Forgery attacks for `faraday` ([#4391][])
156
+ * AppSec: Deprecate `appsec.track_user_events` configuration setting in favor of `appsec.auto_user_instrumentation` ([#4352][])
157
+ * Dynamic Instrumentation: Add optional trace logging ([#4283][])
158
+
159
+ ### Changed
160
+
161
+ * Increase default timeout for unix domain socket to 30 seconds ([#4411][])
162
+ * Upgrade `libdatadog` to `16.0.1` ([#4353][])
163
+ * Dynamic Instrumentation: Improve path matching with prefixes of probe paths ([#4346][])
164
+ * Dynamic Instrumentation: Improve event reporting with combing status and snapshot events ([#4360][])
165
+
166
+ ### Fixed
167
+
168
+ * Tracing: Fix `rack` to continue trace if only distributed trace is present ([#4398][])
169
+ * AppSec: Fix a memory leak issue for RASP ([#4422][])
170
+ * Dynamic Instrumentation: Fix event submission on forked servers ([#4363][])
171
+
172
+ ### Removed
173
+
174
+ * Tracing: Remove peer services by default ([#3846][])
175
+
176
+ ## [2.10.0] - 2025-02-04
177
+
178
+ ### Added
179
+
180
+ * AppSec: Add configuration option(`Datadog.configuration.appsec.rasp_enabled`) to enable/disable Runtime Application Self-Protection checks ([#4311][])
181
+ * AppSec: Add stack trace when SQL Injection attack is detected ([#4321][])
182
+
183
+ ### Changed
184
+
185
+ * Add `logger` gem as dependency ([#4257][])
186
+ * Bump minimum version of `datadog-ruby_core_source` to 3.4 ([#4323][])
187
+
188
+ ### Fixed
189
+
190
+ * Dynamic instrumentation: Fix report probe status when dynamic instrumentation probes fail to instrument ([#4301][])
191
+ * Dynamic instrumentation: Include variables named `env` in probe snapshots ([#4292][])
192
+ * Fix a concurrency issue during application boot ([#4303][])
193
+
194
+ ## [2.9.0] - 2025-01-15
195
+
196
+ ### Added
197
+
198
+ * Core: add support for Ruby 3.4 ([#4249][])
199
+ * Integrations: add a new option for `ActiveSupport` to disable adding the `cache_key` as a Span Tag with the `cache_key_enabled` option ([#4022][])
200
+
201
+ ### Changed
202
+
203
+ * Dynamic instrumentation: move DI preloading to `datadog/di/preload` ([#4288][])
204
+ * Dynamic instrumentation: dd-trace-rb now reports whether dynamic instrumentation is enabled in startup summary report ([#4285][])
205
+ * Dynamic instrumentation: improve loading of DI components ([#4272][], [#4239][])
206
+ * Dynamic instrumentation: logging of internal conditions is now done on debug level ([#4266][])
207
+ * Dynamic instrumentation: report instrumentation error for line probes when the target file is loaded but not in code tracker registry ([#4208][])
208
+ * Profiling: require datadog-ruby_core_source >= 3.3.7 to ensure Ruby 3.4 support ([#4228][])
209
+
210
+ ### Fixed
211
+
212
+ * Core: fix a crash in crashtracker when agent hostname is an IPv6 address ([#4237][])
213
+ * Profiling: fix allocation profiling + otel tracing causing Ruby crash ([#4240][])
214
+ * Profiling: fix profiling warnings being really hard to silence ([#4232][])
215
+
216
+ ## [2.8.0] - 2024-12-10
217
+
218
+ ### Added
219
+
220
+ * DI: Dynamic instrumentation is now available in Ruby as a Preview
221
+ * AppSec: Add SQL injection detection for ActiveRecord for following adapters: `mysql2`, `postgresql`, and `sqlite3` ([#4167][])
222
+ * Telemetry: Add environment variable to disable logs ([#4153][])
223
+ * Integrations: Add configuration option `on_error` to Elasticsearch tracing ([#4066][])
224
+
225
+ ### Changed
226
+
227
+ * Upgrade libdatadog dependency to 14.3.1 ([#4196][])
228
+ * Profiling: Require Ruby 3.1+ for heap profiling ([#4178][])
229
+ * AppSec: Update libddwaf to 1.18.0.0.0 ([#4164][])
230
+ * Single-step: Lower SSI GLIBC requirements down to 2.17 ([#4137][])
231
+
232
+ ### Fixed
233
+
234
+ * 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][])
235
+ * Profiling: Fix unsafe initialization when using profiler with otel tracing ([#4195][])
236
+ * Single-step: Add safe NOOP injection script for very old rubies ([#4140][])
237
+
5
238
  ## [2.7.1] - 2024-11-28
6
239
 
7
240
  ### Fixed
@@ -3035,7 +3268,20 @@ Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.3.1
3035
3268
  Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
3036
3269
 
3037
3270
 
3038
- [Unreleased]: https://github.com/DataDog/dd-trace-rb/compare/v2.7.0...master
3271
+ [Unreleased]: https://github.com/DataDog/dd-trace-rb/compare/v2.18.0...master
3272
+ [2.18.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.17.0...v2.18.0
3273
+ [2.17.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.16.0...v2.17.0
3274
+ [2.16.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.15.0...v2.16.0
3275
+ [2.15.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.14.0...v2.15.0
3276
+ [2.14.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.13.0...v2.14.0
3277
+ [2.13.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.12.2...v2.13.0
3278
+ [2.12.2]: https://github.com/DataDog/dd-trace-rb/compare/v2.12.1...v2.12.2
3279
+ [2.12.1]: https://github.com/DataDog/dd-trace-rb/compare/v2.12.0...v2.12.1
3280
+ [2.12.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.11.0...v2.12.0
3281
+ [2.11.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.10.0...v2.11.0
3282
+ [2.10.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.9.0...v2.10.0
3283
+ [2.9.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.8.0...v2.9.0
3284
+ [2.8.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.7.1...v2.8.0
3039
3285
  [2.7.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.6.0...v2.7.0
3040
3286
  [2.6.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.5.0...v2.6.0
3041
3287
  [2.5.0]: https://github.com/DataDog/dd-trace-rb/compare/v2.4.0...v2.5.0
@@ -4460,6 +4706,7 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
4460
4706
  [#3837]: https://github.com/DataDog/dd-trace-rb/issues/3837
4461
4707
  [#3839]: https://github.com/DataDog/dd-trace-rb/issues/3839
4462
4708
  [#3841]: https://github.com/DataDog/dd-trace-rb/issues/3841
4709
+ [#3846]: https://github.com/DataDog/dd-trace-rb/issues/3846
4463
4710
  [#3849]: https://github.com/DataDog/dd-trace-rb/issues/3849
4464
4711
  [#3852]: https://github.com/DataDog/dd-trace-rb/issues/3852
4465
4712
  [#3857]: https://github.com/DataDog/dd-trace-rb/issues/3857
@@ -4476,16 +4723,121 @@ Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
4476
4723
  [#3997]: https://github.com/DataDog/dd-trace-rb/issues/3997
4477
4724
  [#4014]: https://github.com/DataDog/dd-trace-rb/issues/4014
4478
4725
  [#4020]: https://github.com/DataDog/dd-trace-rb/issues/4020
4726
+ [#4022]: https://github.com/DataDog/dd-trace-rb/issues/4022
4479
4727
  [#4024]: https://github.com/DataDog/dd-trace-rb/issues/4024
4480
4728
  [#4027]: https://github.com/DataDog/dd-trace-rb/issues/4027
4481
4729
  [#4033]: https://github.com/DataDog/dd-trace-rb/issues/4033
4482
4730
  [#4065]: https://github.com/DataDog/dd-trace-rb/issues/4065
4731
+ [#4066]: https://github.com/DataDog/dd-trace-rb/issues/4066
4483
4732
  [#4075]: https://github.com/DataDog/dd-trace-rb/issues/4075
4484
4733
  [#4078]: https://github.com/DataDog/dd-trace-rb/issues/4078
4485
4734
  [#4082]: https://github.com/DataDog/dd-trace-rb/issues/4082
4486
4735
  [#4083]: https://github.com/DataDog/dd-trace-rb/issues/4083
4487
4736
  [#4085]: https://github.com/DataDog/dd-trace-rb/issues/4085
4737
+ [#4137]: https://github.com/DataDog/dd-trace-rb/issues/4137
4738
+ [#4140]: https://github.com/DataDog/dd-trace-rb/issues/4140
4739
+ [#4147]: https://github.com/DataDog/dd-trace-rb/issues/4147
4740
+ [#4153]: https://github.com/DataDog/dd-trace-rb/issues/4153
4488
4741
  [#4161]: https://github.com/DataDog/dd-trace-rb/issues/4161
4742
+ [#4164]: https://github.com/DataDog/dd-trace-rb/issues/4164
4743
+ [#4167]: https://github.com/DataDog/dd-trace-rb/issues/4167
4744
+ [#4177]: https://github.com/DataDog/dd-trace-rb/issues/4177
4745
+ [#4178]: https://github.com/DataDog/dd-trace-rb/issues/4178
4746
+ [#4195]: https://github.com/DataDog/dd-trace-rb/issues/4195
4747
+ [#4196]: https://github.com/DataDog/dd-trace-rb/issues/4196
4748
+ [#4197]: https://github.com/DataDog/dd-trace-rb/issues/4197
4749
+ [#4208]: https://github.com/DataDog/dd-trace-rb/issues/4208
4750
+ [#4228]: https://github.com/DataDog/dd-trace-rb/issues/4228
4751
+ [#4232]: https://github.com/DataDog/dd-trace-rb/issues/4232
4752
+ [#4237]: https://github.com/DataDog/dd-trace-rb/issues/4237
4753
+ [#4239]: https://github.com/DataDog/dd-trace-rb/issues/4239
4754
+ [#4240]: https://github.com/DataDog/dd-trace-rb/issues/4240
4755
+ [#4249]: https://github.com/DataDog/dd-trace-rb/issues/4249
4756
+ [#4257]: https://github.com/DataDog/dd-trace-rb/issues/4257
4757
+ [#4266]: https://github.com/DataDog/dd-trace-rb/issues/4266
4758
+ [#4272]: https://github.com/DataDog/dd-trace-rb/issues/4272
4759
+ [#4283]: https://github.com/DataDog/dd-trace-rb/issues/4283
4760
+ [#4285]: https://github.com/DataDog/dd-trace-rb/issues/4285
4761
+ [#4288]: https://github.com/DataDog/dd-trace-rb/issues/4288
4762
+ [#4292]: https://github.com/DataDog/dd-trace-rb/issues/4292
4763
+ [#4301]: https://github.com/DataDog/dd-trace-rb/issues/4301
4764
+ [#4303]: https://github.com/DataDog/dd-trace-rb/issues/4303
4765
+ [#4311]: https://github.com/DataDog/dd-trace-rb/issues/4311
4766
+ [#4321]: https://github.com/DataDog/dd-trace-rb/issues/4321
4767
+ [#4323]: https://github.com/DataDog/dd-trace-rb/issues/4323
4768
+ [#4346]: https://github.com/DataDog/dd-trace-rb/issues/4346
4769
+ [#4352]: https://github.com/DataDog/dd-trace-rb/issues/4352
4770
+ [#4353]: https://github.com/DataDog/dd-trace-rb/issues/4353
4771
+ [#4360]: https://github.com/DataDog/dd-trace-rb/issues/4360
4772
+ [#4363]: https://github.com/DataDog/dd-trace-rb/issues/4363
4773
+ [#4391]: https://github.com/DataDog/dd-trace-rb/issues/4391
4774
+ [#4398]: https://github.com/DataDog/dd-trace-rb/issues/4398
4775
+ [#4399]: https://github.com/DataDog/dd-trace-rb/issues/4399
4776
+ [#4401]: https://github.com/DataDog/dd-trace-rb/issues/4401
4777
+ [#4403]: https://github.com/DataDog/dd-trace-rb/issues/4403
4778
+ [#4406]: https://github.com/DataDog/dd-trace-rb/issues/4406
4779
+ [#4411]: https://github.com/DataDog/dd-trace-rb/issues/4411
4780
+ [#4422]: https://github.com/DataDog/dd-trace-rb/issues/4422
4781
+ [#4424]: https://github.com/DataDog/dd-trace-rb/issues/4424
4782
+ [#4425]: https://github.com/DataDog/dd-trace-rb/issues/4425
4783
+ [#4426]: https://github.com/DataDog/dd-trace-rb/issues/4426
4784
+ [#4433]: https://github.com/DataDog/dd-trace-rb/issues/4433
4785
+ [#4437]: https://github.com/DataDog/dd-trace-rb/issues/4437
4786
+ [#4455]: https://github.com/DataDog/dd-trace-rb/issues/4455
4787
+ [#4460]: https://github.com/DataDog/dd-trace-rb/issues/4460
4788
+ [#4473]: https://github.com/DataDog/dd-trace-rb/issues/4473
4789
+ [#4493]: https://github.com/DataDog/dd-trace-rb/issues/4493
4790
+ [#4497]: https://github.com/DataDog/dd-trace-rb/issues/4497
4791
+ [#4498]: https://github.com/DataDog/dd-trace-rb/issues/4498
4792
+ [#4505]: https://github.com/DataDog/dd-trace-rb/issues/4505
4793
+ [#4507]: https://github.com/DataDog/dd-trace-rb/issues/4507
4794
+ [#4509]: https://github.com/DataDog/dd-trace-rb/issues/4509
4795
+ [#4526]: https://github.com/DataDog/dd-trace-rb/issues/4526
4796
+ [#4528]: https://github.com/DataDog/dd-trace-rb/issues/4528
4797
+ [#4530]: https://github.com/DataDog/dd-trace-rb/issues/4530
4798
+ [#4534]: https://github.com/DataDog/dd-trace-rb/issues/4534
4799
+ [#4547]: https://github.com/DataDog/dd-trace-rb/issues/4547
4800
+ [#4549]: https://github.com/DataDog/dd-trace-rb/issues/4549
4801
+ [#4552]: https://github.com/DataDog/dd-trace-rb/issues/4552
4802
+ [#4558]: https://github.com/DataDog/dd-trace-rb/issues/4558
4803
+ [#4568]: https://github.com/DataDog/dd-trace-rb/issues/4568
4804
+ [#4573]: https://github.com/DataDog/dd-trace-rb/issues/4573
4805
+ [#4575]: https://github.com/DataDog/dd-trace-rb/issues/4575
4806
+ [#4577]: https://github.com/DataDog/dd-trace-rb/issues/4577
4807
+ [#4580]: https://github.com/DataDog/dd-trace-rb/issues/4580
4808
+ [#4581]: https://github.com/DataDog/dd-trace-rb/issues/4581
4809
+ [#4590]: https://github.com/DataDog/dd-trace-rb/issues/4590
4810
+ [#4600]: https://github.com/DataDog/dd-trace-rb/issues/4600
4811
+ [#4602]: https://github.com/DataDog/dd-trace-rb/issues/4602
4812
+ [#4604]: https://github.com/DataDog/dd-trace-rb/issues/4604
4813
+ [#4610]: https://github.com/DataDog/dd-trace-rb/issues/4610
4814
+ [#4611]: https://github.com/DataDog/dd-trace-rb/issues/4611
4815
+ [#4613]: https://github.com/DataDog/dd-trace-rb/issues/4613
4816
+ [#4614]: https://github.com/DataDog/dd-trace-rb/issues/4614
4817
+ [#4616]: https://github.com/DataDog/dd-trace-rb/issues/4616
4818
+ [#4625]: https://github.com/DataDog/dd-trace-rb/issues/4625
4819
+ [#4644]: https://github.com/DataDog/dd-trace-rb/issues/4644
4820
+ [#4651]: https://github.com/DataDog/dd-trace-rb/issues/4651
4821
+ [#4653]: https://github.com/DataDog/dd-trace-rb/issues/4653
4822
+ [#4656]: https://github.com/DataDog/dd-trace-rb/issues/4656
4823
+ [#4665]: https://github.com/DataDog/dd-trace-rb/issues/4665
4824
+ [#4668]: https://github.com/DataDog/dd-trace-rb/issues/4668
4825
+ [#4669]: https://github.com/DataDog/dd-trace-rb/issues/4669
4826
+ [#4672]: https://github.com/DataDog/dd-trace-rb/issues/4672
4827
+ [#4673]: https://github.com/DataDog/dd-trace-rb/issues/4673
4828
+ [#4678]: https://github.com/DataDog/dd-trace-rb/issues/4678
4829
+ [#4679]: https://github.com/DataDog/dd-trace-rb/issues/4679
4830
+ [#4688]: https://github.com/DataDog/dd-trace-rb/issues/4688
4831
+ [#4697]: https://github.com/DataDog/dd-trace-rb/issues/4697
4832
+ [#4699]: https://github.com/DataDog/dd-trace-rb/issues/4699
4833
+ [#4718]: https://github.com/DataDog/dd-trace-rb/issues/4718
4834
+ [#4721]: https://github.com/DataDog/dd-trace-rb/issues/4721
4835
+ [#4728]: https://github.com/DataDog/dd-trace-rb/issues/4728
4836
+ [#4731]: https://github.com/DataDog/dd-trace-rb/issues/4731
4837
+ [#4743]: https://github.com/DataDog/dd-trace-rb/issues/4743
4838
+ [#4745]: https://github.com/DataDog/dd-trace-rb/issues/4745
4839
+ [#4756]: https://github.com/DataDog/dd-trace-rb/issues/4756
4840
+ [#4757]: https://github.com/DataDog/dd-trace-rb/issues/4757
4489
4841
  [@AdrianLC]: https://github.com/AdrianLC
4490
4842
  [@Azure7111]: https://github.com/Azure7111
4491
4843
  [@BabyGroot]: https://github.com/BabyGroot
@@ -5,13 +5,13 @@
5
5
  #include <ruby.h>
6
6
 
7
7
  // Contains the operating-system specific identifier needed to fetch CPU-time, and a flag to indicate if we failed to fetch it
8
- typedef struct thread_cpu_time_id {
8
+ typedef struct {
9
9
  bool valid;
10
10
  clockid_t clock_id;
11
11
  } thread_cpu_time_id;
12
12
 
13
13
  // Contains the current cpu time, and a flag to indicate if we failed to fetch it
14
- typedef struct thread_cpu_time {
14
+ typedef struct {
15
15
  bool valid;
16
16
  long result_ns;
17
17
  } thread_cpu_time;