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
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datadog
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.7.1
4
+ version: 2.18.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Datadog, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-11-28 00:00:00.000000000 Z
11
+ date: 2025-07-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: msgpack
@@ -30,42 +30,62 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '3.3'
33
+ version: '3.4'
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 3.4.1
34
37
  type: :runtime
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
37
40
  requirements:
38
41
  - - "~>"
39
42
  - !ruby/object:Gem::Version
40
- version: '3.3'
43
+ version: '3.4'
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 3.4.1
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: libddwaf
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
51
  - - "~>"
46
52
  - !ruby/object:Gem::Version
47
- version: 1.15.0.0.0
53
+ version: 1.24.1.0.0
48
54
  type: :runtime
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
51
57
  requirements:
52
58
  - - "~>"
53
59
  - !ruby/object:Gem::Version
54
- version: 1.15.0.0.0
60
+ version: 1.24.1.0.0
55
61
  - !ruby/object:Gem::Dependency
56
62
  name: libdatadog
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
65
  - - "~>"
60
66
  - !ruby/object:Gem::Version
61
- version: 14.1.0.1.0
67
+ version: 18.1.0.1.0
62
68
  type: :runtime
63
69
  prerelease: false
64
70
  version_requirements: !ruby/object:Gem::Requirement
65
71
  requirements:
66
72
  - - "~>"
67
73
  - !ruby/object:Gem::Version
68
- version: 14.1.0.1.0
74
+ version: 18.1.0.1.0
75
+ - !ruby/object:Gem::Dependency
76
+ name: logger
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ type: :runtime
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
69
89
  description: |
70
90
  datadog is Datadog's client library for Ruby. It includes a suite of tools
71
91
  which provide visibility into the performance and security of Ruby applications,
@@ -76,7 +96,6 @@ executables:
76
96
  - ddprofrb
77
97
  extensions:
78
98
  - ext/datadog_profiling_native_extension/extconf.rb
79
- - ext/datadog_profiling_loader/extconf.rb
80
99
  - ext/libdatadog_api/extconf.rb
81
100
  extra_rdoc_files: []
82
101
  files:
@@ -88,8 +107,6 @@ files:
88
107
  - NOTICE
89
108
  - README.md
90
109
  - bin/ddprofrb
91
- - ext/datadog_profiling_loader/datadog_profiling_loader.c
92
- - ext/datadog_profiling_loader/extconf.rb
93
110
  - ext/datadog_profiling_native_extension/NativeExtensionDesign.md
94
111
  - ext/datadog_profiling_native_extension/clock_id.h
95
112
  - ext/datadog_profiling_native_extension/clock_id_from_pthread.c
@@ -109,6 +126,8 @@ files:
109
126
  - ext/datadog_profiling_native_extension/collectors_thread_context.h
110
127
  - ext/datadog_profiling_native_extension/datadog_ruby_common.c
111
128
  - ext/datadog_profiling_native_extension/datadog_ruby_common.h
129
+ - ext/datadog_profiling_native_extension/encoded_profile.c
130
+ - ext/datadog_profiling_native_extension/encoded_profile.h
112
131
  - ext/datadog_profiling_native_extension/extconf.rb
113
132
  - ext/datadog_profiling_native_extension/gvl_profiling_helper.c
114
133
  - ext/datadog_profiling_native_extension/gvl_profiling_helper.h
@@ -130,54 +149,75 @@ files:
130
149
  - ext/datadog_profiling_native_extension/stack_recorder.h
131
150
  - ext/datadog_profiling_native_extension/time_helpers.c
132
151
  - ext/datadog_profiling_native_extension/time_helpers.h
152
+ - ext/datadog_profiling_native_extension/unsafe_api_calls_check.c
153
+ - ext/datadog_profiling_native_extension/unsafe_api_calls_check.h
133
154
  - ext/libdatadog_api/crashtracker.c
155
+ - ext/libdatadog_api/crashtracker.h
134
156
  - ext/libdatadog_api/datadog_ruby_common.c
135
157
  - ext/libdatadog_api/datadog_ruby_common.h
136
158
  - ext/libdatadog_api/extconf.rb
159
+ - ext/libdatadog_api/init.c
160
+ - ext/libdatadog_api/library_config.c
161
+ - ext/libdatadog_api/library_config.h
137
162
  - ext/libdatadog_api/macos_development.md
163
+ - ext/libdatadog_api/process_discovery.c
164
+ - ext/libdatadog_api/process_discovery.h
138
165
  - ext/libdatadog_extconf_helpers.rb
139
166
  - lib/datadog.rb
140
167
  - lib/datadog/appsec.rb
168
+ - lib/datadog/appsec/actions_handler.rb
169
+ - lib/datadog/appsec/actions_handler/serializable_backtrace.rb
170
+ - lib/datadog/appsec/anonymizer.rb
171
+ - lib/datadog/appsec/api_security.rb
172
+ - lib/datadog/appsec/api_security/lru_cache.rb
173
+ - lib/datadog/appsec/api_security/route_extractor.rb
174
+ - lib/datadog/appsec/api_security/sampler.rb
141
175
  - lib/datadog/appsec/assets.rb
142
176
  - lib/datadog/appsec/assets/blocked.html
143
177
  - lib/datadog/appsec/assets/blocked.json
144
178
  - lib/datadog/appsec/assets/blocked.text
145
179
  - lib/datadog/appsec/assets/waf_rules/README.md
146
- - lib/datadog/appsec/assets/waf_rules/processors.json
147
180
  - lib/datadog/appsec/assets/waf_rules/recommended.json
148
- - lib/datadog/appsec/assets/waf_rules/scanners.json
149
181
  - lib/datadog/appsec/assets/waf_rules/strict.json
150
182
  - lib/datadog/appsec/autoload.rb
151
183
  - lib/datadog/appsec/component.rb
184
+ - lib/datadog/appsec/compressed_json.rb
152
185
  - lib/datadog/appsec/configuration.rb
153
186
  - lib/datadog/appsec/configuration/settings.rb
187
+ - lib/datadog/appsec/context.rb
188
+ - lib/datadog/appsec/contrib/active_record/instrumentation.rb
189
+ - lib/datadog/appsec/contrib/active_record/integration.rb
190
+ - lib/datadog/appsec/contrib/active_record/patcher.rb
154
191
  - lib/datadog/appsec/contrib/auto_instrument.rb
155
- - lib/datadog/appsec/contrib/devise/event.rb
192
+ - lib/datadog/appsec/contrib/devise/configuration.rb
193
+ - lib/datadog/appsec/contrib/devise/data_extractor.rb
156
194
  - lib/datadog/appsec/contrib/devise/ext.rb
157
195
  - lib/datadog/appsec/contrib/devise/integration.rb
158
196
  - lib/datadog/appsec/contrib/devise/patcher.rb
159
- - lib/datadog/appsec/contrib/devise/patcher/authenticatable_patch.rb
160
- - lib/datadog/appsec/contrib/devise/patcher/registration_controller_patch.rb
161
- - lib/datadog/appsec/contrib/devise/patcher/rememberable_patch.rb
162
- - lib/datadog/appsec/contrib/devise/resource.rb
163
- - lib/datadog/appsec/contrib/devise/tracking.rb
197
+ - lib/datadog/appsec/contrib/devise/patches/signin_tracking_patch.rb
198
+ - lib/datadog/appsec/contrib/devise/patches/signup_tracking_patch.rb
199
+ - lib/datadog/appsec/contrib/devise/patches/skip_signin_tracking_patch.rb
200
+ - lib/datadog/appsec/contrib/devise/tracking_middleware.rb
201
+ - lib/datadog/appsec/contrib/excon/integration.rb
202
+ - lib/datadog/appsec/contrib/excon/patcher.rb
203
+ - lib/datadog/appsec/contrib/excon/ssrf_detection_middleware.rb
204
+ - lib/datadog/appsec/contrib/faraday/connection_patch.rb
205
+ - lib/datadog/appsec/contrib/faraday/integration.rb
206
+ - lib/datadog/appsec/contrib/faraday/patcher.rb
207
+ - lib/datadog/appsec/contrib/faraday/rack_builder_patch.rb
208
+ - lib/datadog/appsec/contrib/faraday/ssrf_detection_middleware.rb
164
209
  - lib/datadog/appsec/contrib/graphql/appsec_trace.rb
165
210
  - lib/datadog/appsec/contrib/graphql/gateway/multiplex.rb
166
211
  - lib/datadog/appsec/contrib/graphql/gateway/watcher.rb
167
212
  - lib/datadog/appsec/contrib/graphql/integration.rb
168
213
  - lib/datadog/appsec/contrib/graphql/patcher.rb
169
- - lib/datadog/appsec/contrib/graphql/reactive/multiplex.rb
170
214
  - lib/datadog/appsec/contrib/integration.rb
171
- - lib/datadog/appsec/contrib/patcher.rb
172
215
  - lib/datadog/appsec/contrib/rack/ext.rb
173
216
  - lib/datadog/appsec/contrib/rack/gateway/request.rb
174
217
  - lib/datadog/appsec/contrib/rack/gateway/response.rb
175
218
  - lib/datadog/appsec/contrib/rack/gateway/watcher.rb
176
219
  - lib/datadog/appsec/contrib/rack/integration.rb
177
220
  - lib/datadog/appsec/contrib/rack/patcher.rb
178
- - lib/datadog/appsec/contrib/rack/reactive/request.rb
179
- - lib/datadog/appsec/contrib/rack/reactive/request_body.rb
180
- - lib/datadog/appsec/contrib/rack/reactive/response.rb
181
221
  - lib/datadog/appsec/contrib/rack/request_body_middleware.rb
182
222
  - lib/datadog/appsec/contrib/rack/request_middleware.rb
183
223
  - lib/datadog/appsec/contrib/rails/ext.rb
@@ -186,17 +226,17 @@ files:
186
226
  - lib/datadog/appsec/contrib/rails/gateway/watcher.rb
187
227
  - lib/datadog/appsec/contrib/rails/integration.rb
188
228
  - lib/datadog/appsec/contrib/rails/patcher.rb
189
- - lib/datadog/appsec/contrib/rails/reactive/action.rb
190
229
  - lib/datadog/appsec/contrib/rails/request.rb
191
230
  - lib/datadog/appsec/contrib/rails/request_middleware.rb
192
- - lib/datadog/appsec/contrib/sinatra/ext.rb
231
+ - lib/datadog/appsec/contrib/rest_client/integration.rb
232
+ - lib/datadog/appsec/contrib/rest_client/patcher.rb
233
+ - lib/datadog/appsec/contrib/rest_client/request_ssrf_detection_patch.rb
193
234
  - lib/datadog/appsec/contrib/sinatra/framework.rb
194
235
  - lib/datadog/appsec/contrib/sinatra/gateway/request.rb
195
236
  - lib/datadog/appsec/contrib/sinatra/gateway/route_params.rb
196
237
  - lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb
197
238
  - lib/datadog/appsec/contrib/sinatra/integration.rb
198
239
  - lib/datadog/appsec/contrib/sinatra/patcher.rb
199
- - lib/datadog/appsec/contrib/sinatra/reactive/routed.rb
200
240
  - lib/datadog/appsec/contrib/sinatra/request_middleware.rb
201
241
  - lib/datadog/appsec/event.rb
202
242
  - lib/datadog/appsec/ext.rb
@@ -204,28 +244,27 @@ files:
204
244
  - lib/datadog/appsec/instrumentation.rb
205
245
  - lib/datadog/appsec/instrumentation/gateway.rb
206
246
  - lib/datadog/appsec/instrumentation/gateway/argument.rb
247
+ - lib/datadog/appsec/instrumentation/gateway/middleware.rb
248
+ - lib/datadog/appsec/metrics.rb
249
+ - lib/datadog/appsec/metrics/collector.rb
250
+ - lib/datadog/appsec/metrics/exporter.rb
251
+ - lib/datadog/appsec/metrics/telemetry.rb
207
252
  - lib/datadog/appsec/monitor.rb
208
253
  - lib/datadog/appsec/monitor/gateway/watcher.rb
209
- - lib/datadog/appsec/monitor/reactive/set_user.rb
210
- - lib/datadog/appsec/processor.rb
211
- - lib/datadog/appsec/processor/actions.rb
212
- - lib/datadog/appsec/processor/context.rb
213
254
  - lib/datadog/appsec/processor/rule_loader.rb
214
- - lib/datadog/appsec/processor/rule_merger.rb
215
255
  - lib/datadog/appsec/rate_limiter.rb
216
- - lib/datadog/appsec/reactive/address_hash.rb
217
- - lib/datadog/appsec/reactive/engine.rb
218
- - lib/datadog/appsec/reactive/operation.rb
219
- - lib/datadog/appsec/reactive/subscriber.rb
220
256
  - lib/datadog/appsec/remote.rb
221
257
  - lib/datadog/appsec/response.rb
222
258
  - lib/datadog/appsec/sample_rate.rb
223
- - lib/datadog/appsec/scope.rb
259
+ - lib/datadog/appsec/security_engine.rb
260
+ - lib/datadog/appsec/security_engine/engine.rb
261
+ - lib/datadog/appsec/security_engine/result.rb
262
+ - lib/datadog/appsec/security_engine/runner.rb
263
+ - lib/datadog/appsec/security_event.rb
224
264
  - lib/datadog/appsec/utils.rb
225
265
  - lib/datadog/appsec/utils/http.rb
226
266
  - lib/datadog/appsec/utils/http/media_range.rb
227
267
  - lib/datadog/appsec/utils/http/media_type.rb
228
- - lib/datadog/appsec/utils/trace_operation.rb
229
268
  - lib/datadog/auto_instrument.rb
230
269
  - lib/datadog/auto_instrument_base.rb
231
270
  - lib/datadog/core.rb
@@ -234,21 +273,26 @@ files:
234
273
  - lib/datadog/core/buffer/thread_safe.rb
235
274
  - lib/datadog/core/chunker.rb
236
275
  - lib/datadog/core/configuration.rb
276
+ - lib/datadog/core/configuration/agent_settings.rb
237
277
  - lib/datadog/core/configuration/agent_settings_resolver.rb
278
+ - lib/datadog/core/configuration/agentless_settings_resolver.rb
238
279
  - lib/datadog/core/configuration/base.rb
239
280
  - lib/datadog/core/configuration/components.rb
281
+ - lib/datadog/core/configuration/components_state.rb
240
282
  - lib/datadog/core/configuration/ext.rb
241
283
  - lib/datadog/core/configuration/option.rb
242
284
  - lib/datadog/core/configuration/option_definition.rb
243
285
  - lib/datadog/core/configuration/options.rb
244
286
  - lib/datadog/core/configuration/settings.rb
245
- - lib/datadog/core/crashtracking/agent_base_url.rb
287
+ - lib/datadog/core/configuration/stable_config.rb
288
+ - lib/datadog/core/contrib/rails/utils.rb
246
289
  - lib/datadog/core/crashtracking/component.rb
247
290
  - lib/datadog/core/crashtracking/tag_builder.rb
248
291
  - lib/datadog/core/deprecations.rb
249
292
  - lib/datadog/core/diagnostics/environment_logger.rb
250
293
  - lib/datadog/core/diagnostics/health.rb
251
294
  - lib/datadog/core/encoding.rb
295
+ - lib/datadog/core/environment/agent_info.rb
252
296
  - lib/datadog/core/environment/cgroup.rb
253
297
  - lib/datadog/core/environment/class_count.rb
254
298
  - lib/datadog/core/environment/container.rb
@@ -276,6 +320,8 @@ files:
276
320
  - lib/datadog/core/metrics/metric.rb
277
321
  - lib/datadog/core/metrics/options.rb
278
322
  - lib/datadog/core/pin.rb
323
+ - lib/datadog/core/process_discovery.rb
324
+ - lib/datadog/core/process_discovery/tracer_memfd.rb
279
325
  - lib/datadog/core/rate_limiter.rb
280
326
  - lib/datadog/core/remote.rb
281
327
  - lib/datadog/core/remote/client.rb
@@ -295,9 +341,6 @@ files:
295
341
  - lib/datadog/core/remote/transport/config.rb
296
342
  - lib/datadog/core/remote/transport/http.rb
297
343
  - lib/datadog/core/remote/transport/http/api.rb
298
- - lib/datadog/core/remote/transport/http/api/instance.rb
299
- - lib/datadog/core/remote/transport/http/api/spec.rb
300
- - lib/datadog/core/remote/transport/http/builder.rb
301
344
  - lib/datadog/core/remote/transport/http/client.rb
302
345
  - lib/datadog/core/remote/transport/http/config.rb
303
346
  - lib/datadog/core/remote/transport/http/negotiation.rb
@@ -306,30 +349,48 @@ files:
306
349
  - lib/datadog/core/runtime/ext.rb
307
350
  - lib/datadog/core/runtime/metrics.rb
308
351
  - lib/datadog/core/semaphore.rb
352
+ - lib/datadog/core/tag_builder.rb
309
353
  - lib/datadog/core/telemetry/component.rb
310
354
  - lib/datadog/core/telemetry/emitter.rb
311
355
  - lib/datadog/core/telemetry/event.rb
356
+ - lib/datadog/core/telemetry/event/app_client_configuration_change.rb
357
+ - lib/datadog/core/telemetry/event/app_closing.rb
358
+ - lib/datadog/core/telemetry/event/app_dependencies_loaded.rb
359
+ - lib/datadog/core/telemetry/event/app_heartbeat.rb
360
+ - lib/datadog/core/telemetry/event/app_integrations_change.rb
361
+ - lib/datadog/core/telemetry/event/app_started.rb
362
+ - lib/datadog/core/telemetry/event/base.rb
363
+ - lib/datadog/core/telemetry/event/distributions.rb
364
+ - lib/datadog/core/telemetry/event/generate_metrics.rb
365
+ - lib/datadog/core/telemetry/event/log.rb
366
+ - lib/datadog/core/telemetry/event/message_batch.rb
367
+ - lib/datadog/core/telemetry/event/synth_app_client_configuration_change.rb
312
368
  - lib/datadog/core/telemetry/ext.rb
313
369
  - lib/datadog/core/telemetry/http/adapters/net.rb
314
- - lib/datadog/core/telemetry/http/env.rb
315
- - lib/datadog/core/telemetry/http/ext.rb
316
- - lib/datadog/core/telemetry/http/response.rb
317
- - lib/datadog/core/telemetry/http/transport.rb
318
370
  - lib/datadog/core/telemetry/logger.rb
319
371
  - lib/datadog/core/telemetry/logging.rb
320
372
  - lib/datadog/core/telemetry/metric.rb
321
373
  - lib/datadog/core/telemetry/metrics_collection.rb
322
374
  - lib/datadog/core/telemetry/metrics_manager.rb
323
375
  - lib/datadog/core/telemetry/request.rb
376
+ - lib/datadog/core/telemetry/transport/http.rb
377
+ - lib/datadog/core/telemetry/transport/http/api.rb
378
+ - lib/datadog/core/telemetry/transport/http/client.rb
379
+ - lib/datadog/core/telemetry/transport/http/telemetry.rb
380
+ - lib/datadog/core/telemetry/transport/telemetry.rb
324
381
  - lib/datadog/core/telemetry/worker.rb
325
382
  - lib/datadog/core/transport/ext.rb
383
+ - lib/datadog/core/transport/http.rb
326
384
  - lib/datadog/core/transport/http/adapters/net.rb
327
385
  - lib/datadog/core/transport/http/adapters/registry.rb
328
386
  - lib/datadog/core/transport/http/adapters/test.rb
329
387
  - lib/datadog/core/transport/http/adapters/unix_socket.rb
330
388
  - lib/datadog/core/transport/http/api/endpoint.rb
331
389
  - lib/datadog/core/transport/http/api/fallbacks.rb
390
+ - lib/datadog/core/transport/http/api/instance.rb
332
391
  - lib/datadog/core/transport/http/api/map.rb
392
+ - lib/datadog/core/transport/http/api/spec.rb
393
+ - lib/datadog/core/transport/http/builder.rb
333
394
  - lib/datadog/core/transport/http/env.rb
334
395
  - lib/datadog/core/transport/http/response.rb
335
396
  - lib/datadog/core/transport/parcel.rb
@@ -347,6 +408,7 @@ files:
347
408
  - lib/datadog/core/utils/safe_dup.rb
348
409
  - lib/datadog/core/utils/sequence.rb
349
410
  - lib/datadog/core/utils/time.rb
411
+ - lib/datadog/core/utils/truncation.rb
350
412
  - lib/datadog/core/utils/url.rb
351
413
  - lib/datadog/core/vendor/multipart-post/LICENSE
352
414
  - lib/datadog/core/vendor/multipart-post/multipart.rb
@@ -363,28 +425,51 @@ files:
363
425
  - lib/datadog/core/workers/queue.rb
364
426
  - lib/datadog/core/workers/runtime_metrics.rb
365
427
  - lib/datadog/di.rb
428
+ - lib/datadog/di/base.rb
429
+ - lib/datadog/di/boot.rb
366
430
  - lib/datadog/di/code_tracker.rb
367
431
  - lib/datadog/di/component.rb
368
432
  - lib/datadog/di/configuration.rb
369
433
  - lib/datadog/di/configuration/settings.rb
434
+ - lib/datadog/di/contrib.rb
370
435
  - lib/datadog/di/contrib/active_record.rb
436
+ - lib/datadog/di/contrib/railtie.rb
371
437
  - lib/datadog/di/error.rb
372
438
  - lib/datadog/di/extensions.rb
373
439
  - lib/datadog/di/instrumenter.rb
440
+ - lib/datadog/di/logger.rb
441
+ - lib/datadog/di/preload.rb
374
442
  - lib/datadog/di/probe.rb
375
443
  - lib/datadog/di/probe_builder.rb
376
444
  - lib/datadog/di/probe_manager.rb
377
445
  - lib/datadog/di/probe_notification_builder.rb
378
446
  - lib/datadog/di/probe_notifier_worker.rb
379
447
  - lib/datadog/di/redactor.rb
448
+ - lib/datadog/di/remote.rb
380
449
  - lib/datadog/di/serializer.rb
381
- - lib/datadog/di/transport.rb
450
+ - lib/datadog/di/transport/diagnostics.rb
451
+ - lib/datadog/di/transport/http.rb
452
+ - lib/datadog/di/transport/http/api.rb
453
+ - lib/datadog/di/transport/http/client.rb
454
+ - lib/datadog/di/transport/http/diagnostics.rb
455
+ - lib/datadog/di/transport/http/input.rb
456
+ - lib/datadog/di/transport/input.rb
382
457
  - lib/datadog/di/utils.rb
458
+ - lib/datadog/error_tracking.rb
459
+ - lib/datadog/error_tracking/collector.rb
460
+ - lib/datadog/error_tracking/component.rb
461
+ - lib/datadog/error_tracking/configuration.rb
462
+ - lib/datadog/error_tracking/configuration/settings.rb
463
+ - lib/datadog/error_tracking/ext.rb
464
+ - lib/datadog/error_tracking/extensions.rb
465
+ - lib/datadog/error_tracking/filters.rb
383
466
  - lib/datadog/kit.rb
384
467
  - lib/datadog/kit/appsec/events.rb
385
468
  - lib/datadog/kit/enable_core_dumps.rb
386
469
  - lib/datadog/kit/identity.rb
387
470
  - lib/datadog/opentelemetry.rb
471
+ - lib/datadog/opentelemetry/api/baggage.rb
472
+ - lib/datadog/opentelemetry/api/baggage.rbs
388
473
  - lib/datadog/opentelemetry/api/context.rb
389
474
  - lib/datadog/opentelemetry/api/trace/span.rb
390
475
  - lib/datadog/opentelemetry/sdk/configurator.rb
@@ -402,6 +487,7 @@ files:
402
487
  - lib/datadog/profiling/collectors/stack.rb
403
488
  - lib/datadog/profiling/collectors/thread_context.rb
404
489
  - lib/datadog/profiling/component.rb
490
+ - lib/datadog/profiling/encoded_profile.rb
405
491
  - lib/datadog/profiling/exporter.rb
406
492
  - lib/datadog/profiling/ext.rb
407
493
  - lib/datadog/profiling/ext/dir_monkey_patches.rb
@@ -585,6 +671,7 @@ files:
585
671
  - lib/datadog/tracing/contrib/grape/instrumentation.rb
586
672
  - lib/datadog/tracing/contrib/grape/integration.rb
587
673
  - lib/datadog/tracing/contrib/grape/patcher.rb
674
+ - lib/datadog/tracing/contrib/graphql/configuration/error_extension_env_parser.rb
588
675
  - lib/datadog/tracing/contrib/graphql/configuration/settings.rb
589
676
  - lib/datadog/tracing/contrib/graphql/ext.rb
590
677
  - lib/datadog/tracing/contrib/graphql/integration.rb
@@ -651,6 +738,13 @@ files:
651
738
  - lib/datadog/tracing/contrib/kafka/ext.rb
652
739
  - lib/datadog/tracing/contrib/kafka/integration.rb
653
740
  - lib/datadog/tracing/contrib/kafka/patcher.rb
741
+ - lib/datadog/tracing/contrib/karafka.rb
742
+ - lib/datadog/tracing/contrib/karafka/configuration/settings.rb
743
+ - lib/datadog/tracing/contrib/karafka/distributed/propagation.rb
744
+ - lib/datadog/tracing/contrib/karafka/ext.rb
745
+ - lib/datadog/tracing/contrib/karafka/integration.rb
746
+ - lib/datadog/tracing/contrib/karafka/monitor.rb
747
+ - lib/datadog/tracing/contrib/karafka/patcher.rb
654
748
  - lib/datadog/tracing/contrib/lograge/configuration/settings.rb
655
749
  - lib/datadog/tracing/contrib/lograge/ext.rb
656
750
  - lib/datadog/tracing/contrib/lograge/instrumentation.rb
@@ -722,7 +816,6 @@ files:
722
816
  - lib/datadog/tracing/contrib/rails/patcher.rb
723
817
  - lib/datadog/tracing/contrib/rails/railtie.rb
724
818
  - lib/datadog/tracing/contrib/rails/runner.rb
725
- - lib/datadog/tracing/contrib/rails/utils.rb
726
819
  - lib/datadog/tracing/contrib/rake/configuration/settings.rb
727
820
  - lib/datadog/tracing/contrib/rake/ext.rb
728
821
  - lib/datadog/tracing/contrib/rake/instrumentation.rb
@@ -814,6 +907,7 @@ files:
814
907
  - lib/datadog/tracing/contrib/sucker_punch/instrumentation.rb
815
908
  - lib/datadog/tracing/contrib/sucker_punch/integration.rb
816
909
  - lib/datadog/tracing/contrib/sucker_punch/patcher.rb
910
+ - lib/datadog/tracing/contrib/support.rb
817
911
  - lib/datadog/tracing/contrib/trilogy/configuration/settings.rb
818
912
  - lib/datadog/tracing/contrib/trilogy/ext.rb
819
913
  - lib/datadog/tracing/contrib/trilogy/instrumentation.rb
@@ -828,12 +922,14 @@ files:
828
922
  - lib/datadog/tracing/diagnostics/health.rb
829
923
  - lib/datadog/tracing/distributed/b3_multi.rb
830
924
  - lib/datadog/tracing/distributed/b3_single.rb
925
+ - lib/datadog/tracing/distributed/baggage.rb
831
926
  - lib/datadog/tracing/distributed/datadog.rb
832
927
  - lib/datadog/tracing/distributed/datadog_tags_codec.rb
833
928
  - lib/datadog/tracing/distributed/fetcher.rb
834
929
  - lib/datadog/tracing/distributed/helpers.rb
835
930
  - lib/datadog/tracing/distributed/none.rb
836
931
  - lib/datadog/tracing/distributed/propagation.rb
932
+ - lib/datadog/tracing/distributed/propagation_policy.rb
837
933
  - lib/datadog/tracing/distributed/trace_context.rb
838
934
  - lib/datadog/tracing/event.rb
839
935
  - lib/datadog/tracing/flush.rb
@@ -841,6 +937,8 @@ files:
841
937
  - lib/datadog/tracing/metadata/analytics.rb
842
938
  - lib/datadog/tracing/metadata/errors.rb
843
939
  - lib/datadog/tracing/metadata/ext.rb
940
+ - lib/datadog/tracing/metadata/metastruct.rb
941
+ - lib/datadog/tracing/metadata/metastruct_tagging.rb
844
942
  - lib/datadog/tracing/metadata/tagging.rb
845
943
  - lib/datadog/tracing/pipeline.rb
846
944
  - lib/datadog/tracing/pipeline/span_filter.rb
@@ -873,9 +971,6 @@ files:
873
971
  - lib/datadog/tracing/tracer.rb
874
972
  - lib/datadog/tracing/transport/http.rb
875
973
  - lib/datadog/tracing/transport/http/api.rb
876
- - lib/datadog/tracing/transport/http/api/instance.rb
877
- - lib/datadog/tracing/transport/http/api/spec.rb
878
- - lib/datadog/tracing/transport/http/builder.rb
879
974
  - lib/datadog/tracing/transport/http/client.rb
880
975
  - lib/datadog/tracing/transport/http/statistics.rb
881
976
  - lib/datadog/tracing/transport/http/traces.rb
@@ -898,8 +993,8 @@ licenses:
898
993
  - Apache-2.0
899
994
  metadata:
900
995
  allowed_push_host: https://rubygems.org
901
- changelog_uri: https://github.com/DataDog/dd-trace-rb/blob/v2.7.1/CHANGELOG.md
902
- source_code_uri: https://github.com/DataDog/dd-trace-rb/tree/v2.7.1
996
+ changelog_uri: https://github.com/DataDog/dd-trace-rb/blob/v2.18.0/CHANGELOG.md
997
+ source_code_uri: https://github.com/DataDog/dd-trace-rb/tree/v2.18.0
903
998
  post_install_message:
904
999
  rdoc_options: []
905
1000
  require_paths:
@@ -918,7 +1013,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
918
1013
  - !ruby/object:Gem::Version
919
1014
  version: 2.0.0
920
1015
  requirements: []
921
- rubygems_version: 3.5.16
1016
+ rubygems_version: 3.5.22
922
1017
  signing_key:
923
1018
  specification_version: 4
924
1019
  summary: Datadog tracing code for your Ruby applications
@@ -1,142 +0,0 @@
1
- #include <stdbool.h>
2
- #include <dlfcn.h>
3
- #include <ruby.h>
4
-
5
- // Why this exists:
6
- //
7
- // The Datadog::Profiling::Loader exists because when Ruby loads a native extension (using `require`), it uses
8
- // `dlopen(..., RTLD_LAZY | RTLD_GLOBAL)` (https://github.com/ruby/ruby/blob/67950a4c0a884bdb78d9beb4405ebf7459229b21/dln.c#L362).
9
- // This means that every symbol exposed directly or indirectly by that native extension becomes visible to every other
10
- // extension in the Ruby process. This can cause issues, see https://github.com/rubyjs/mini_racer/pull/179.
11
- //
12
- // Instead of `RTLD_LAZY | RTLD_GLOBAL`, we want to call `dlopen` with `RTLD_LAZY | RTLD_LOCAL | RTLD_DEEPBIND` when
13
- // loading the profiling native extension, to avoid leaking any unintended symbols (`RTLD_LOCAL`) and avoid picking
14
- // up other's symbols (`RTLD_DEEPBIND`).
15
- //
16
- // But Ruby's extension loading mechanism is not configurable -- there's no way to tell it to use different flags when
17
- // calling `dlopen`. To get around this, this file (datadog_profiling_loader.c) introduces another extension
18
- // (profiling loader) which has only a single responsibility: mimic Ruby's extension loading mechanism, but when calling
19
- // `dlopen` use a different set of flags.
20
- // This idea was shamelessly stolen from @lloeki's work in https://github.com/rubyjs/mini_racer/pull/179, big thanks!
21
- //
22
- // Extra note: Currently (May 2022), that we know of, the profiling native extension only exposes one potentially
23
- // problematic symbol: `rust_eh_personality` (coming from libdatadog).
24
- // Future versions of Rust have been patched not to expose this
25
- // (see https://github.com/rust-lang/rust/pull/95604#issuecomment-1108563434) so we may want to revisit the need
26
- // for this loader in the future, and perhaps delete it if we no longer require its services :)
27
-
28
- #ifndef RTLD_DEEPBIND
29
- #define RTLD_DEEPBIND 0
30
- #endif
31
-
32
- // Used to mark function arguments that are deliberately left unused
33
- #ifdef __GNUC__
34
- #define DDTRACE_UNUSED __attribute__((unused))
35
- #else
36
- #define DDTRACE_UNUSED
37
- #endif
38
-
39
- static VALUE ok_symbol = Qnil; // :ok in Ruby
40
- static VALUE error_symbol = Qnil; // :error in Ruby
41
-
42
- static VALUE _native_load(DDTRACE_UNUSED VALUE self, VALUE ruby_path, VALUE ruby_init_name);
43
- static bool failed_to_load(void *handle, VALUE *failure_details);
44
- static bool incompatible_library(void *handle, VALUE *failure_details);
45
- static bool failed_to_initialize(void *handle, char *init_name, VALUE *failure_details);
46
- static void set_failure_from_dlerror(VALUE *failure_details);
47
- static void unload_failed_library(void *handle);
48
-
49
- #define DDTRACE_EXPORT __attribute__ ((visibility ("default")))
50
-
51
- void DDTRACE_EXPORT Init_datadog_profiling_loader(void) {
52
- VALUE datadog_module = rb_define_module("Datadog");
53
- VALUE profiling_module = rb_define_module_under(datadog_module, "Profiling");
54
- VALUE loader_module = rb_define_module_under(profiling_module, "Loader");
55
- rb_define_singleton_method(loader_module, "_native_load", _native_load, 2);
56
-
57
- ok_symbol = ID2SYM(rb_intern_const("ok"));
58
- error_symbol = ID2SYM(rb_intern_const("error"));
59
- }
60
-
61
- static VALUE _native_load(DDTRACE_UNUSED VALUE self, VALUE ruby_path, VALUE ruby_init_name) {
62
- Check_Type(ruby_path, T_STRING);
63
- Check_Type(ruby_init_name, T_STRING);
64
-
65
- char *path = StringValueCStr(ruby_path);
66
- char *init_name = StringValueCStr(ruby_init_name);
67
-
68
- int dlopen_flags = RTLD_LAZY | RTLD_LOCAL | RTLD_DEEPBIND;
69
-
70
- #if defined(__has_feature)
71
- #if __has_feature(address_sanitizer)
72
- dlopen_flags &= ~RTLD_DEEPBIND; // Not supported by ASAN
73
- #endif
74
- #endif
75
-
76
- void *handle = dlopen(path, dlopen_flags);
77
-
78
- VALUE failure_details = Qnil;
79
-
80
- if (
81
- failed_to_load(handle, &failure_details) ||
82
- incompatible_library(handle, &failure_details) ||
83
- failed_to_initialize(handle, init_name, &failure_details)
84
- ) {
85
- return rb_ary_new_from_args(2, error_symbol, failure_details);
86
- }
87
-
88
- return rb_ary_new_from_args(2, ok_symbol, Qnil);
89
- }
90
-
91
- static bool failed_to_load(void *handle, VALUE *failure_details) {
92
- if (handle == NULL) {
93
- set_failure_from_dlerror(failure_details);
94
- return true;
95
- } else {
96
- return false;
97
- }
98
- }
99
-
100
- static bool incompatible_library(void *handle, VALUE *failure_details) {
101
- // The library being loaded may be linked to a different libruby than the current executing Ruby.
102
- // We check if this is the case by checking if a well-known symbol resolves to a common address.
103
-
104
- void *xmalloc_from_library = dlsym(handle, "ruby_xmalloc");
105
-
106
- if (xmalloc_from_library == NULL) {
107
- // This happens when ruby is built without a `libruby.so` by using `--disable-shared` at compilation time.
108
- // In this situation, no conflict between libruby version is possible.
109
- return false;
110
- }
111
-
112
- if (xmalloc_from_library != &ruby_xmalloc) {
113
- *failure_details = rb_str_new_cstr("library was compiled and linked to a different Ruby version");
114
- unload_failed_library(handle);
115
- return true;
116
- } else {
117
- return false;
118
- }
119
- }
120
-
121
- static bool failed_to_initialize(void *handle, char *init_name, VALUE *failure_details) {
122
- void (*initialization_function)(void) = dlsym(handle, init_name);
123
-
124
- if (initialization_function == NULL) {
125
- set_failure_from_dlerror(failure_details);
126
- unload_failed_library(handle);
127
- return true;
128
- } else {
129
- (*initialization_function)();
130
- return false;
131
- }
132
- }
133
-
134
- static void set_failure_from_dlerror(VALUE *failure_details) {
135
- char *failure = dlerror();
136
- *failure_details = failure == NULL ? Qnil : rb_str_new_cstr(failure);
137
- }
138
-
139
- static void unload_failed_library(void *handle) {
140
- // Note: According to the Ruby VM sources, this may fail with a segfault on really old versions of macOS (< 10.11)
141
- dlclose(handle);
142
- }