datadog 2.12.1 → 2.19.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 (346) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +243 -2
  3. data/ext/datadog_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +63 -56
  4. data/ext/datadog_profiling_native_extension/collectors_stack.c +263 -76
  5. data/ext/datadog_profiling_native_extension/collectors_stack.h +20 -3
  6. data/ext/datadog_profiling_native_extension/collectors_thread_context.c +78 -26
  7. data/ext/datadog_profiling_native_extension/collectors_thread_context.h +1 -0
  8. data/ext/datadog_profiling_native_extension/datadog_ruby_common.c +1 -4
  9. data/ext/datadog_profiling_native_extension/datadog_ruby_common.h +10 -0
  10. data/ext/datadog_profiling_native_extension/encoded_profile.c +79 -0
  11. data/ext/datadog_profiling_native_extension/encoded_profile.h +8 -0
  12. data/ext/datadog_profiling_native_extension/extconf.rb +10 -0
  13. data/ext/datadog_profiling_native_extension/heap_recorder.c +247 -364
  14. data/ext/datadog_profiling_native_extension/heap_recorder.h +4 -6
  15. data/ext/datadog_profiling_native_extension/http_transport.c +60 -94
  16. data/ext/datadog_profiling_native_extension/libdatadog_helpers.c +22 -0
  17. data/ext/datadog_profiling_native_extension/libdatadog_helpers.h +8 -5
  18. data/ext/datadog_profiling_native_extension/private_vm_api_access.c +41 -21
  19. data/ext/datadog_profiling_native_extension/private_vm_api_access.h +6 -4
  20. data/ext/datadog_profiling_native_extension/profiling.c +2 -0
  21. data/ext/datadog_profiling_native_extension/ruby_helpers.c +1 -13
  22. data/ext/datadog_profiling_native_extension/ruby_helpers.h +3 -11
  23. data/ext/datadog_profiling_native_extension/stack_recorder.c +173 -76
  24. data/ext/libdatadog_api/crashtracker.c +11 -12
  25. data/ext/libdatadog_api/crashtracker.h +5 -0
  26. data/ext/libdatadog_api/datadog_ruby_common.c +1 -4
  27. data/ext/libdatadog_api/datadog_ruby_common.h +10 -0
  28. data/ext/libdatadog_api/extconf.rb +2 -2
  29. data/ext/libdatadog_api/init.c +15 -0
  30. data/ext/libdatadog_api/library_config.c +164 -0
  31. data/ext/libdatadog_api/library_config.h +25 -0
  32. data/ext/libdatadog_api/macos_development.md +3 -3
  33. data/ext/libdatadog_api/process_discovery.c +112 -0
  34. data/ext/libdatadog_api/process_discovery.h +5 -0
  35. data/ext/libdatadog_extconf_helpers.rb +2 -2
  36. data/lib/datadog/appsec/actions_handler/serializable_backtrace.rb +89 -0
  37. data/lib/datadog/appsec/actions_handler.rb +24 -2
  38. data/lib/datadog/appsec/anonymizer.rb +16 -0
  39. data/lib/datadog/appsec/api_security/lru_cache.rb +56 -0
  40. data/lib/datadog/appsec/api_security/route_extractor.rb +71 -0
  41. data/lib/datadog/appsec/api_security/sampler.rb +59 -0
  42. data/lib/datadog/appsec/api_security.rb +23 -0
  43. data/lib/datadog/appsec/assets/waf_rules/README.md +50 -5
  44. data/lib/datadog/appsec/assets/waf_rules/recommended.json +257 -85
  45. data/lib/datadog/appsec/assets/waf_rules/strict.json +10 -78
  46. data/lib/datadog/appsec/autoload.rb +1 -1
  47. data/lib/datadog/appsec/component.rb +46 -61
  48. data/lib/datadog/appsec/compressed_json.rb +40 -0
  49. data/lib/datadog/appsec/configuration/settings.rb +153 -30
  50. data/lib/datadog/appsec/context.rb +7 -7
  51. data/lib/datadog/appsec/contrib/active_record/instrumentation.rb +10 -12
  52. data/lib/datadog/appsec/contrib/active_record/integration.rb +2 -2
  53. data/lib/datadog/appsec/contrib/active_record/patcher.rb +22 -22
  54. data/lib/datadog/appsec/contrib/auto_instrument.rb +1 -1
  55. data/lib/datadog/appsec/contrib/devise/configuration.rb +7 -31
  56. data/lib/datadog/appsec/contrib/devise/data_extractor.rb +78 -0
  57. data/lib/datadog/appsec/contrib/devise/ext.rb +22 -0
  58. data/lib/datadog/appsec/contrib/devise/integration.rb +1 -2
  59. data/lib/datadog/appsec/contrib/devise/patcher.rb +34 -23
  60. data/lib/datadog/appsec/contrib/devise/patches/signin_tracking_patch.rb +102 -0
  61. data/lib/datadog/appsec/contrib/devise/patches/signup_tracking_patch.rb +69 -0
  62. data/lib/datadog/appsec/contrib/devise/{patcher/rememberable_patch.rb → patches/skip_signin_tracking_patch.rb} +2 -2
  63. data/lib/datadog/appsec/contrib/devise/tracking_middleware.rb +106 -0
  64. data/lib/datadog/appsec/contrib/excon/integration.rb +1 -1
  65. data/lib/datadog/appsec/contrib/excon/ssrf_detection_middleware.rb +9 -10
  66. data/lib/datadog/appsec/contrib/faraday/integration.rb +1 -1
  67. data/lib/datadog/appsec/contrib/faraday/ssrf_detection_middleware.rb +8 -9
  68. data/lib/datadog/appsec/contrib/graphql/gateway/watcher.rb +8 -9
  69. data/lib/datadog/appsec/contrib/graphql/integration.rb +1 -1
  70. data/lib/datadog/appsec/contrib/rack/ext.rb +34 -0
  71. data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +49 -32
  72. data/lib/datadog/appsec/contrib/rack/integration.rb +1 -1
  73. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +42 -30
  74. data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +11 -13
  75. data/lib/datadog/appsec/contrib/rails/integration.rb +1 -1
  76. data/lib/datadog/appsec/contrib/rails/patcher.rb +21 -21
  77. data/lib/datadog/appsec/contrib/rest_client/integration.rb +1 -1
  78. data/lib/datadog/appsec/contrib/rest_client/request_ssrf_detection_patch.rb +10 -11
  79. data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +17 -23
  80. data/lib/datadog/appsec/contrib/sinatra/integration.rb +1 -1
  81. data/lib/datadog/appsec/event.rb +96 -135
  82. data/lib/datadog/appsec/ext.rb +4 -2
  83. data/lib/datadog/appsec/instrumentation/gateway/argument.rb +7 -2
  84. data/lib/datadog/appsec/instrumentation/gateway/middleware.rb +24 -0
  85. data/lib/datadog/appsec/instrumentation/gateway.rb +17 -22
  86. data/lib/datadog/appsec/metrics/telemetry.rb +1 -1
  87. data/lib/datadog/appsec/monitor/gateway/watcher.rb +49 -14
  88. data/lib/datadog/appsec/processor/rule_loader.rb +30 -33
  89. data/lib/datadog/appsec/remote.rb +31 -59
  90. data/lib/datadog/appsec/response.rb +6 -6
  91. data/lib/datadog/appsec/security_engine/engine.rb +194 -0
  92. data/lib/datadog/appsec/security_engine/runner.rb +13 -14
  93. data/lib/datadog/appsec/security_event.rb +39 -0
  94. data/lib/datadog/appsec/utils.rb +0 -2
  95. data/lib/datadog/appsec.rb +5 -8
  96. data/lib/datadog/core/buffer/random.rb +18 -2
  97. data/lib/datadog/core/configuration/agent_settings.rb +52 -0
  98. data/lib/datadog/core/configuration/agent_settings_resolver.rb +4 -46
  99. data/lib/datadog/core/configuration/agentless_settings_resolver.rb +176 -0
  100. data/lib/datadog/core/configuration/components.rb +48 -31
  101. data/lib/datadog/core/configuration/components_state.rb +23 -0
  102. data/lib/datadog/core/configuration/ext.rb +4 -0
  103. data/lib/datadog/core/configuration/option.rb +81 -45
  104. data/lib/datadog/core/configuration/option_definition.rb +4 -4
  105. data/lib/datadog/core/configuration/options.rb +3 -3
  106. data/lib/datadog/core/configuration/settings.rb +109 -44
  107. data/lib/datadog/core/configuration/stable_config.rb +22 -0
  108. data/lib/datadog/core/configuration.rb +40 -16
  109. data/lib/datadog/core/crashtracking/component.rb +3 -10
  110. data/lib/datadog/core/crashtracking/tag_builder.rb +4 -22
  111. data/lib/datadog/core/diagnostics/environment_logger.rb +1 -1
  112. data/lib/datadog/core/encoding.rb +1 -1
  113. data/lib/datadog/core/environment/agent_info.rb +4 -3
  114. data/lib/datadog/core/environment/cgroup.rb +10 -12
  115. data/lib/datadog/core/environment/container.rb +38 -40
  116. data/lib/datadog/core/environment/ext.rb +6 -6
  117. data/lib/datadog/core/environment/git.rb +1 -0
  118. data/lib/datadog/core/environment/identity.rb +3 -3
  119. data/lib/datadog/core/environment/platform.rb +3 -3
  120. data/lib/datadog/core/environment/variable_helpers.rb +1 -1
  121. data/lib/datadog/core/error.rb +11 -9
  122. data/lib/datadog/core/logger.rb +2 -2
  123. data/lib/datadog/core/metrics/client.rb +20 -21
  124. data/lib/datadog/core/metrics/logging.rb +5 -5
  125. data/lib/datadog/core/process_discovery/tracer_memfd.rb +15 -0
  126. data/lib/datadog/core/process_discovery.rb +36 -0
  127. data/lib/datadog/core/rate_limiter.rb +4 -2
  128. data/lib/datadog/core/remote/client.rb +40 -32
  129. data/lib/datadog/core/remote/component.rb +6 -9
  130. data/lib/datadog/core/remote/configuration/digest.rb +7 -7
  131. data/lib/datadog/core/remote/configuration/path.rb +1 -1
  132. data/lib/datadog/core/remote/configuration/repository.rb +14 -1
  133. data/lib/datadog/core/remote/negotiation.rb +9 -9
  134. data/lib/datadog/core/remote/transport/config.rb +4 -3
  135. data/lib/datadog/core/remote/transport/http/client.rb +5 -4
  136. data/lib/datadog/core/remote/transport/http/config.rb +27 -37
  137. data/lib/datadog/core/remote/transport/http/negotiation.rb +7 -33
  138. data/lib/datadog/core/remote/transport/http.rb +22 -57
  139. data/lib/datadog/core/remote/transport/negotiation.rb +4 -3
  140. data/lib/datadog/core/runtime/metrics.rb +12 -5
  141. data/lib/datadog/core/tag_builder.rb +56 -0
  142. data/lib/datadog/core/telemetry/component.rb +81 -52
  143. data/lib/datadog/core/telemetry/emitter.rb +23 -11
  144. data/lib/datadog/core/telemetry/event/app_client_configuration_change.rb +66 -0
  145. data/lib/datadog/core/telemetry/event/app_closing.rb +18 -0
  146. data/lib/datadog/core/telemetry/event/app_dependencies_loaded.rb +33 -0
  147. data/lib/datadog/core/telemetry/event/app_heartbeat.rb +18 -0
  148. data/lib/datadog/core/telemetry/event/app_integrations_change.rb +58 -0
  149. data/lib/datadog/core/telemetry/event/app_started.rb +287 -0
  150. data/lib/datadog/core/telemetry/event/base.rb +40 -0
  151. data/lib/datadog/core/telemetry/event/distributions.rb +18 -0
  152. data/lib/datadog/core/telemetry/event/generate_metrics.rb +43 -0
  153. data/lib/datadog/core/telemetry/event/log.rb +76 -0
  154. data/lib/datadog/core/telemetry/event/message_batch.rb +42 -0
  155. data/lib/datadog/core/telemetry/event/synth_app_client_configuration_change.rb +43 -0
  156. data/lib/datadog/core/telemetry/event.rb +17 -472
  157. data/lib/datadog/core/telemetry/http/adapters/net.rb +12 -97
  158. data/lib/datadog/core/telemetry/logger.rb +5 -4
  159. data/lib/datadog/core/telemetry/logging.rb +11 -5
  160. data/lib/datadog/core/telemetry/metric.rb +8 -8
  161. data/lib/datadog/core/telemetry/request.rb +4 -4
  162. data/lib/datadog/core/telemetry/transport/http/api.rb +43 -0
  163. data/lib/datadog/core/telemetry/transport/http/client.rb +49 -0
  164. data/lib/datadog/core/telemetry/transport/http/telemetry.rb +92 -0
  165. data/lib/datadog/core/telemetry/transport/http.rb +63 -0
  166. data/lib/datadog/core/telemetry/transport/telemetry.rb +51 -0
  167. data/lib/datadog/core/telemetry/worker.rb +90 -24
  168. data/lib/datadog/core/transport/http/adapters/net.rb +17 -2
  169. data/lib/datadog/core/transport/http/adapters/test.rb +2 -1
  170. data/lib/datadog/core/transport/http/api/instance.rb +17 -0
  171. data/lib/datadog/core/transport/http/api/spec.rb +17 -0
  172. data/lib/datadog/core/transport/http/builder.rb +19 -17
  173. data/lib/datadog/core/transport/http/env.rb +8 -0
  174. data/lib/datadog/core/transport/http.rb +39 -2
  175. data/lib/datadog/core/utils/at_fork_monkey_patch.rb +6 -6
  176. data/lib/datadog/core/utils/duration.rb +32 -32
  177. data/lib/datadog/core/utils/forking.rb +2 -2
  178. data/lib/datadog/core/utils/network.rb +6 -6
  179. data/lib/datadog/core/utils/only_once_successful.rb +16 -5
  180. data/lib/datadog/core/utils/time.rb +20 -0
  181. data/lib/datadog/core/utils/truncation.rb +21 -0
  182. data/lib/datadog/core/utils.rb +7 -0
  183. data/lib/datadog/core/vendor/multipart-post/multipart/post/composite_read_io.rb +1 -1
  184. data/lib/datadog/core/vendor/multipart-post/multipart/post/multipartable.rb +8 -8
  185. data/lib/datadog/core/vendor/multipart-post/multipart/post/parts.rb +7 -7
  186. data/lib/datadog/core/worker.rb +1 -1
  187. data/lib/datadog/core/workers/async.rb +29 -12
  188. data/lib/datadog/core/workers/interval_loop.rb +12 -1
  189. data/lib/datadog/core/workers/runtime_metrics.rb +2 -2
  190. data/lib/datadog/core.rb +8 -0
  191. data/lib/datadog/di/boot.rb +34 -0
  192. data/lib/datadog/di/component.rb +0 -2
  193. data/lib/datadog/di/instrumenter.rb +48 -5
  194. data/lib/datadog/di/probe_notification_builder.rb +38 -43
  195. data/lib/datadog/di/probe_notifier_worker.rb +25 -17
  196. data/lib/datadog/di/remote.rb +2 -0
  197. data/lib/datadog/di/serializer.rb +10 -2
  198. data/lib/datadog/di/transport/diagnostics.rb +4 -3
  199. data/lib/datadog/di/transport/http/api.rb +2 -12
  200. data/lib/datadog/di/transport/http/client.rb +4 -3
  201. data/lib/datadog/di/transport/http/diagnostics.rb +7 -34
  202. data/lib/datadog/di/transport/http/input.rb +18 -35
  203. data/lib/datadog/di/transport/http.rb +14 -62
  204. data/lib/datadog/di/transport/input.rb +14 -5
  205. data/lib/datadog/di/utils.rb +5 -0
  206. data/lib/datadog/di.rb +0 -33
  207. data/lib/datadog/error_tracking/collector.rb +87 -0
  208. data/lib/datadog/error_tracking/component.rb +167 -0
  209. data/lib/datadog/error_tracking/configuration/settings.rb +63 -0
  210. data/lib/datadog/error_tracking/configuration.rb +11 -0
  211. data/lib/datadog/error_tracking/ext.rb +18 -0
  212. data/lib/datadog/error_tracking/extensions.rb +16 -0
  213. data/lib/datadog/error_tracking/filters.rb +77 -0
  214. data/lib/datadog/error_tracking.rb +18 -0
  215. data/lib/datadog/kit/appsec/events/v2.rb +195 -0
  216. data/lib/datadog/kit/appsec/events.rb +12 -0
  217. data/lib/datadog/kit/identity.rb +5 -1
  218. data/lib/datadog/opentelemetry/api/baggage.rb +90 -0
  219. data/lib/datadog/opentelemetry/api/baggage.rbs +26 -0
  220. data/lib/datadog/opentelemetry/api/context.rb +16 -2
  221. data/lib/datadog/opentelemetry/sdk/trace/span.rb +1 -1
  222. data/lib/datadog/opentelemetry.rb +2 -1
  223. data/lib/datadog/profiling/collectors/code_provenance.rb +18 -9
  224. data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +6 -0
  225. data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +1 -0
  226. data/lib/datadog/profiling/collectors/info.rb +44 -0
  227. data/lib/datadog/profiling/collectors/thread_context.rb +17 -2
  228. data/lib/datadog/profiling/component.rb +8 -9
  229. data/lib/datadog/profiling/encoded_profile.rb +11 -0
  230. data/lib/datadog/profiling/exporter.rb +12 -7
  231. data/lib/datadog/profiling/ext.rb +0 -14
  232. data/lib/datadog/profiling/flush.rb +5 -8
  233. data/lib/datadog/profiling/http_transport.rb +7 -61
  234. data/lib/datadog/profiling/profiler.rb +2 -0
  235. data/lib/datadog/profiling/scheduler.rb +10 -2
  236. data/lib/datadog/profiling/sequence_tracker.rb +44 -0
  237. data/lib/datadog/profiling/stack_recorder.rb +9 -9
  238. data/lib/datadog/profiling/tag_builder.rb +7 -41
  239. data/lib/datadog/profiling/tasks/setup.rb +2 -0
  240. data/lib/datadog/profiling.rb +7 -2
  241. data/lib/datadog/single_step_instrument.rb +9 -0
  242. data/lib/datadog/tracing/analytics.rb +1 -1
  243. data/lib/datadog/tracing/component.rb +15 -12
  244. data/lib/datadog/tracing/configuration/ext.rb +7 -1
  245. data/lib/datadog/tracing/configuration/settings.rb +18 -2
  246. data/lib/datadog/tracing/context_provider.rb +1 -1
  247. data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +15 -0
  248. data/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb +19 -12
  249. data/lib/datadog/tracing/contrib/action_pack/ext.rb +2 -0
  250. data/lib/datadog/tracing/contrib/active_record/integration.rb +1 -1
  251. data/lib/datadog/tracing/contrib/active_support/cache/events/cache.rb +11 -2
  252. data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +33 -0
  253. data/lib/datadog/tracing/contrib/active_support/cache/patcher.rb +4 -0
  254. data/lib/datadog/tracing/contrib/active_support/cache/redis.rb +2 -4
  255. data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +13 -0
  256. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +10 -0
  257. data/lib/datadog/tracing/contrib/aws/parsed_context.rb +5 -1
  258. data/lib/datadog/tracing/contrib/configuration/settings.rb +1 -1
  259. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +4 -5
  260. data/lib/datadog/tracing/contrib/excon/middleware.rb +5 -3
  261. data/lib/datadog/tracing/contrib/ext.rb +1 -0
  262. data/lib/datadog/tracing/contrib/faraday/middleware.rb +5 -3
  263. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +7 -1
  264. data/lib/datadog/tracing/contrib/grpc/distributed/propagation.rb +3 -0
  265. data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +0 -15
  266. data/lib/datadog/tracing/contrib/http/distributed/propagation.rb +4 -1
  267. data/lib/datadog/tracing/contrib/http/instrumentation.rb +6 -10
  268. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +6 -16
  269. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +7 -15
  270. data/lib/datadog/tracing/contrib/karafka/configuration/settings.rb +27 -0
  271. data/lib/datadog/tracing/contrib/karafka/distributed/propagation.rb +48 -0
  272. data/lib/datadog/tracing/contrib/karafka/ext.rb +27 -0
  273. data/lib/datadog/tracing/contrib/karafka/integration.rb +45 -0
  274. data/lib/datadog/tracing/contrib/karafka/monitor.rb +66 -0
  275. data/lib/datadog/tracing/contrib/karafka/patcher.rb +71 -0
  276. data/lib/datadog/tracing/contrib/karafka.rb +37 -0
  277. data/lib/datadog/tracing/contrib/lograge/patcher.rb +4 -2
  278. data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +8 -0
  279. data/lib/datadog/tracing/contrib/mongodb/ext.rb +1 -0
  280. data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +18 -1
  281. data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +16 -6
  282. data/lib/datadog/tracing/contrib/opensearch/configuration/settings.rb +17 -0
  283. data/lib/datadog/tracing/contrib/opensearch/ext.rb +9 -0
  284. data/lib/datadog/tracing/contrib/opensearch/patcher.rb +5 -1
  285. data/lib/datadog/tracing/contrib/patcher.rb +5 -2
  286. data/lib/datadog/tracing/contrib/rack/request_queue.rb +1 -1
  287. data/lib/datadog/tracing/contrib/rails/patcher.rb +4 -1
  288. data/lib/datadog/tracing/contrib/rails/runner.rb +61 -40
  289. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +5 -3
  290. data/lib/datadog/tracing/contrib/sidekiq/client_tracer.rb +6 -1
  291. data/lib/datadog/tracing/contrib/sidekiq/distributed/propagation.rb +3 -0
  292. data/lib/datadog/tracing/contrib/sidekiq/ext.rb +1 -0
  293. data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +5 -2
  294. data/lib/datadog/tracing/contrib/support.rb +28 -0
  295. data/lib/datadog/tracing/contrib.rb +1 -0
  296. data/lib/datadog/tracing/correlation.rb +9 -2
  297. data/lib/datadog/tracing/diagnostics/environment_logger.rb +3 -1
  298. data/lib/datadog/tracing/distributed/b3_multi.rb +1 -1
  299. data/lib/datadog/tracing/distributed/b3_single.rb +1 -1
  300. data/lib/datadog/tracing/distributed/baggage.rb +131 -0
  301. data/lib/datadog/tracing/distributed/datadog.rb +4 -2
  302. data/lib/datadog/tracing/distributed/propagation.rb +25 -4
  303. data/lib/datadog/tracing/distributed/propagation_policy.rb +42 -0
  304. data/lib/datadog/tracing/metadata/errors.rb +4 -4
  305. data/lib/datadog/tracing/metadata/ext.rb +5 -0
  306. data/lib/datadog/tracing/metadata/metastruct.rb +36 -0
  307. data/lib/datadog/tracing/metadata/metastruct_tagging.rb +42 -0
  308. data/lib/datadog/tracing/metadata.rb +2 -0
  309. data/lib/datadog/tracing/sampling/rate_sampler.rb +2 -1
  310. data/lib/datadog/tracing/sampling/span/rule.rb +0 -1
  311. data/lib/datadog/tracing/span.rb +10 -1
  312. data/lib/datadog/tracing/span_event.rb +2 -2
  313. data/lib/datadog/tracing/span_operation.rb +68 -16
  314. data/lib/datadog/tracing/sync_writer.rb +2 -3
  315. data/lib/datadog/tracing/trace_digest.rb +9 -2
  316. data/lib/datadog/tracing/trace_operation.rb +55 -27
  317. data/lib/datadog/tracing/trace_segment.rb +6 -4
  318. data/lib/datadog/tracing/tracer.rb +51 -7
  319. data/lib/datadog/tracing/transport/http/api.rb +2 -10
  320. data/lib/datadog/tracing/transport/http/client.rb +5 -4
  321. data/lib/datadog/tracing/transport/http/traces.rb +13 -41
  322. data/lib/datadog/tracing/transport/http.rb +11 -44
  323. data/lib/datadog/tracing/transport/serializable_trace.rb +3 -1
  324. data/lib/datadog/tracing/transport/trace_formatter.rb +7 -0
  325. data/lib/datadog/tracing/transport/traces.rb +26 -9
  326. data/lib/datadog/tracing/utils.rb +1 -1
  327. data/lib/datadog/tracing/workers/trace_writer.rb +2 -6
  328. data/lib/datadog/tracing/writer.rb +2 -6
  329. data/lib/datadog/tracing.rb +16 -3
  330. data/lib/datadog/version.rb +2 -2
  331. data/lib/datadog.rb +8 -2
  332. metadata +88 -23
  333. data/lib/datadog/appsec/assets/waf_rules/processors.json +0 -92
  334. data/lib/datadog/appsec/assets/waf_rules/scanners.json +0 -114
  335. data/lib/datadog/appsec/contrib/devise/event.rb +0 -54
  336. data/lib/datadog/appsec/contrib/devise/patcher/authenticatable_patch.rb +0 -72
  337. data/lib/datadog/appsec/contrib/devise/patcher/registration_controller_patch.rb +0 -47
  338. data/lib/datadog/appsec/contrib/devise/resource.rb +0 -35
  339. data/lib/datadog/appsec/contrib/devise/tracking.rb +0 -57
  340. data/lib/datadog/appsec/processor/rule_merger.rb +0 -170
  341. data/lib/datadog/appsec/processor.rb +0 -107
  342. data/lib/datadog/appsec/utils/trace_operation.rb +0 -15
  343. data/lib/datadog/core/telemetry/http/env.rb +0 -20
  344. data/lib/datadog/core/telemetry/http/ext.rb +0 -28
  345. data/lib/datadog/core/telemetry/http/response.rb +0 -70
  346. data/lib/datadog/core/telemetry/http/transport.rb +0 -90
@@ -43,15 +43,17 @@ module Datadog
43
43
  # We set the value to a conservative 5 MiB, in case network speed is slow.
44
44
  DEFAULT_MAX_PAYLOAD_SIZE = 5 * 1024 * 1024
45
45
 
46
- attr_reader :encoder, :max_size
46
+ attr_reader :encoder, :max_size, :logger
47
47
 
48
48
  #
49
49
  # Single traces larger than +max_size+ will be discarded.
50
50
  #
51
51
  # @param encoder [Datadog::Core::Encoding::Encoder]
52
+ # @param logger [Datadog::Core::Logger]
52
53
  # @param max_size [String] maximum acceptable payload size
53
- def initialize(encoder, native_events_supported:, max_size: DEFAULT_MAX_PAYLOAD_SIZE)
54
+ def initialize(encoder, logger:, native_events_supported:, max_size: DEFAULT_MAX_PAYLOAD_SIZE)
54
55
  @encoder = encoder
56
+ @logger = logger
55
57
  @native_events_supported = native_events_supported
56
58
  @max_size = max_size
57
59
  end
@@ -78,11 +80,16 @@ module Datadog
78
80
  private
79
81
 
80
82
  def encode_one(trace)
81
- encoded = Encoder.encode_trace(encoder, trace, native_events_supported: @native_events_supported)
83
+ encoded = Encoder.encode_trace(
84
+ encoder,
85
+ trace,
86
+ logger: logger,
87
+ native_events_supported: @native_events_supported
88
+ )
82
89
 
83
90
  if encoded.size > max_size
84
91
  # This single trace is too large, we can't flush it
85
- Datadog.logger.debug { "Dropping trace. Payload too large: '#{trace.inspect}'" }
92
+ logger.debug { "Dropping trace. Payload too large: '#{trace.inspect}'" }
86
93
  Datadog.health_metrics.transport_trace_too_large(1)
87
94
 
88
95
  return nil
@@ -96,7 +103,7 @@ module Datadog
96
103
  module Encoder
97
104
  module_function
98
105
 
99
- def encode_trace(encoder, trace, native_events_supported:)
106
+ def encode_trace(encoder, trace, logger:, native_events_supported:)
100
107
  # Format the trace for transport
101
108
  TraceFormatter.format!(trace)
102
109
 
@@ -106,7 +113,7 @@ module Datadog
106
113
  # Encode the trace
107
114
  encoder.encode(serializable_trace).tap do |encoded|
108
115
  # Print the actual serialized trace, since the encoder can change make non-trivial changes
109
- Datadog.logger.debug { "Flushing trace: #{encoder.decode(encoded)}" }
116
+ logger.debug { "Flushing trace: #{encoder.decode(encoded)}" }
110
117
  end
111
118
  end
112
119
  end
@@ -117,11 +124,12 @@ module Datadog
117
124
  # batches of traces into smaller chunks and handles
118
125
  # API version downgrade handshake.
119
126
  class Transport
120
- attr_reader :client, :apis, :default_api, :current_api_id
127
+ attr_reader :client, :apis, :default_api, :current_api_id, :logger
121
128
 
122
- def initialize(apis, default_api)
129
+ def initialize(apis, default_api, logger: Datadog.logger)
123
130
  @apis = apis
124
131
  @default_api = default_api
132
+ @logger = logger
125
133
 
126
134
  change_api!(default_api)
127
135
  end
@@ -130,6 +138,7 @@ module Datadog
130
138
  encoder = current_api.encoder
131
139
  chunker = Datadog::Tracing::Transport::Traces::Chunker.new(
132
140
  encoder,
141
+ logger: logger,
133
142
  native_events_supported: native_events_supported?
134
143
  )
135
144
 
@@ -190,7 +199,7 @@ module Datadog
190
199
  raise UnknownApiVersionError, api_id unless apis.key?(api_id)
191
200
 
192
201
  @current_api_id = api_id
193
- @client = HTTP::Client.new(current_api)
202
+ @client = HTTP::Client.new(current_api, logger: logger)
194
203
  end
195
204
 
196
205
  # Queries the agent for native span events serialization support.
@@ -198,6 +207,14 @@ module Datadog
198
207
  def native_events_supported?
199
208
  return @native_events_supported if defined?(@native_events_supported)
200
209
 
210
+ # Check for an explicit override
211
+ option = Datadog.configuration.tracing.native_span_events
212
+ unless option.nil?
213
+ @native_events_supported = option
214
+ return option
215
+ end
216
+
217
+ # Otherwise, check for agent support, to ensure a configuration-less setup.
201
218
  if (res = Datadog.send(:components).agent_info.fetch)
202
219
  @native_events_supported = res.span_events == true
203
220
  else
@@ -24,7 +24,7 @@ module Datadog
24
24
 
25
25
  # While we only generate 63-bit integers due to limitations in other languages, we support
26
26
  # parsing 64-bit integers for distributed tracing since an upstream system may generate one
27
- EXTERNAL_MAX_ID = 1 << 64
27
+ EXTERNAL_MAX_ID = (1 << 64) - 1
28
28
 
29
29
  # We use a custom random number generator because we want no interference
30
30
  # with the default one. Using the default prng, we could break code that
@@ -26,14 +26,10 @@ module Datadog
26
26
  @logger = options[:logger] || Datadog.logger
27
27
 
28
28
  transport_options = options.fetch(:transport_options, {})
29
-
30
- if options.key?(:agent_settings)
31
- @agent_settings = options[:agent_settings]
32
- transport_options = transport_options.merge(agent_settings: @agent_settings)
33
- end
29
+ @agent_settings = options[:agent_settings]
34
30
 
35
31
  @transport = options.fetch(:transport) do
36
- Datadog::Tracing::Transport::HTTP.default(**transport_options)
32
+ Datadog::Tracing::Transport::HTTP.default(agent_settings: agent_settings, logger: logger, **transport_options)
37
33
  end
38
34
  end
39
35
  # rubocop:enable Lint/MissingSuper
@@ -26,15 +26,11 @@ module Datadog
26
26
  @buff_size = options.fetch(:buffer_size, Workers::AsyncTransport::DEFAULT_BUFFER_MAX_SIZE)
27
27
  @flush_interval = options.fetch(:flush_interval, Workers::AsyncTransport::DEFAULT_FLUSH_INTERVAL)
28
28
  transport_options = options.fetch(:transport_options, {})
29
-
30
- if options.key?(:agent_settings)
31
- @agent_settings = options[:agent_settings]
32
- transport_options = transport_options.merge(agent_settings: @agent_settings)
33
- end
29
+ @agent_settings = options[:agent_settings]
34
30
 
35
31
  # transport and buffers
36
32
  @transport = options.fetch(:transport) do
37
- Transport::HTTP.default(**transport_options)
33
+ Transport::HTTP.default(agent_settings: agent_settings, logger: logger, **transport_options)
38
34
  end
39
35
 
40
36
  @shutdown_timeout = options.fetch(:shutdown_timeout, Workers::AsyncTransport::DEFAULT_SHUTDOWN_TIMEOUT)
@@ -26,7 +26,6 @@ module Datadog
26
26
  id: nil,
27
27
  &block
28
28
  )
29
-
30
29
  tracer.trace(
31
30
  name,
32
31
  continue_from: continue_from,
@@ -82,7 +81,7 @@ module Datadog
82
81
  # @public_api
83
82
  def keep!
84
83
  trace = active_trace
85
- active_trace.keep! if trace
84
+ trace.keep! if trace
86
85
  end
87
86
 
88
87
  # (see Datadog::Tracing::TraceSegment#reject!)
@@ -90,7 +89,7 @@ module Datadog
90
89
  # @public_api
91
90
  def reject!
92
91
  trace = active_trace
93
- active_trace.reject! if trace
92
+ trace.reject! if trace
94
93
  end
95
94
 
96
95
  # (see Datadog::Tracing::Tracer#active_correlation)
@@ -127,6 +126,20 @@ module Datadog
127
126
  correlation.to_log_format
128
127
  end
129
128
 
129
+ # Returns the baggage for the current trace.
130
+ #
131
+ # If there is no active trace, a new one is created.
132
+ #
133
+ # @return [Datadog::Tracing::Distributed::Baggage] The baggage for the current trace.
134
+ # @public_api
135
+ def baggage
136
+ # Baggage should not be dependent on there being an active trace.
137
+ # So we create a new TraceOperation if there isn't one.
138
+ active_trace = self.active_trace || tracer.continue_trace!(nil)
139
+ active_trace.baggage ||= {}
140
+ active_trace.baggage
141
+ end
142
+
130
143
  # Gracefully shuts down the tracer.
131
144
  #
132
145
  # The public tracing API will still respond to method calls as usual
@@ -3,8 +3,8 @@
3
3
  module Datadog
4
4
  module VERSION
5
5
  MAJOR = 2
6
- MINOR = 12
7
- PATCH = 1
6
+ MINOR = 19
7
+ PATCH = 0
8
8
  PRE = nil
9
9
  BUILD = nil
10
10
  # PRE and BUILD above are modified for dev gems during gem build GHA workflow
data/lib/datadog.rb CHANGED
@@ -7,7 +7,13 @@ require_relative 'datadog/tracing/contrib'
7
7
  # Load other products (must follow tracing)
8
8
  require_relative 'datadog/profiling'
9
9
  require_relative 'datadog/appsec'
10
+ require_relative 'datadog/di'
11
+
10
12
  # Line probes will not work on Ruby < 2.6 because of lack of :script_compiled
11
- # trace point. Only load DI on supported Ruby versions.
12
- require_relative 'datadog/di' if RUBY_VERSION >= '2.6'
13
+ # trace point. Activate DI automatically on supported Ruby versions but
14
+ # always load its settings so that, for example, turning DI off when
15
+ # we are on Ruby 2.5 does not produce exceptions.
16
+ require_relative 'datadog/di/boot' if RUBY_VERSION >= '2.6' && RUBY_ENGINE != 'jruby'
17
+
18
+ require_relative 'datadog/error_tracking'
13
19
  require_relative 'datadog/kit'
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.12.1
4
+ version: 2.19.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: 2025-03-06 00:00:00.000000000 Z
11
+ date: 2025-07-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: msgpack
@@ -31,6 +31,9 @@ dependencies:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
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
@@ -38,34 +41,37 @@ dependencies:
38
41
  - - "~>"
39
42
  - !ruby/object:Gem::Version
40
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.18.0.0.1
53
+ version: 1.24.1.0.3
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.18.0.0.1
60
+ version: 1.24.1.0.3
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: 16.0.1.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: 16.0.1.1.0
74
+ version: 18.1.0.1.0
69
75
  - !ruby/object:Gem::Dependency
70
76
  name: logger
71
77
  requirement: !ruby/object:Gem::Requirement
@@ -120,6 +126,8 @@ files:
120
126
  - ext/datadog_profiling_native_extension/collectors_thread_context.h
121
127
  - ext/datadog_profiling_native_extension/datadog_ruby_common.c
122
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
123
131
  - ext/datadog_profiling_native_extension/extconf.rb
124
132
  - ext/datadog_profiling_native_extension/gvl_profiling_helper.c
125
133
  - ext/datadog_profiling_native_extension/gvl_profiling_helper.h
@@ -144,25 +152,36 @@ files:
144
152
  - ext/datadog_profiling_native_extension/unsafe_api_calls_check.c
145
153
  - ext/datadog_profiling_native_extension/unsafe_api_calls_check.h
146
154
  - ext/libdatadog_api/crashtracker.c
155
+ - ext/libdatadog_api/crashtracker.h
147
156
  - ext/libdatadog_api/datadog_ruby_common.c
148
157
  - ext/libdatadog_api/datadog_ruby_common.h
149
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
150
162
  - ext/libdatadog_api/macos_development.md
163
+ - ext/libdatadog_api/process_discovery.c
164
+ - ext/libdatadog_api/process_discovery.h
151
165
  - ext/libdatadog_extconf_helpers.rb
152
166
  - lib/datadog.rb
153
167
  - lib/datadog/appsec.rb
154
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
155
175
  - lib/datadog/appsec/assets.rb
156
176
  - lib/datadog/appsec/assets/blocked.html
157
177
  - lib/datadog/appsec/assets/blocked.json
158
178
  - lib/datadog/appsec/assets/blocked.text
159
179
  - lib/datadog/appsec/assets/waf_rules/README.md
160
- - lib/datadog/appsec/assets/waf_rules/processors.json
161
180
  - lib/datadog/appsec/assets/waf_rules/recommended.json
162
- - lib/datadog/appsec/assets/waf_rules/scanners.json
163
181
  - lib/datadog/appsec/assets/waf_rules/strict.json
164
182
  - lib/datadog/appsec/autoload.rb
165
183
  - lib/datadog/appsec/component.rb
184
+ - lib/datadog/appsec/compressed_json.rb
166
185
  - lib/datadog/appsec/configuration.rb
167
186
  - lib/datadog/appsec/configuration/settings.rb
168
187
  - lib/datadog/appsec/context.rb
@@ -171,15 +190,14 @@ files:
171
190
  - lib/datadog/appsec/contrib/active_record/patcher.rb
172
191
  - lib/datadog/appsec/contrib/auto_instrument.rb
173
192
  - lib/datadog/appsec/contrib/devise/configuration.rb
174
- - lib/datadog/appsec/contrib/devise/event.rb
193
+ - lib/datadog/appsec/contrib/devise/data_extractor.rb
175
194
  - lib/datadog/appsec/contrib/devise/ext.rb
176
195
  - lib/datadog/appsec/contrib/devise/integration.rb
177
196
  - lib/datadog/appsec/contrib/devise/patcher.rb
178
- - lib/datadog/appsec/contrib/devise/patcher/authenticatable_patch.rb
179
- - lib/datadog/appsec/contrib/devise/patcher/registration_controller_patch.rb
180
- - lib/datadog/appsec/contrib/devise/patcher/rememberable_patch.rb
181
- - lib/datadog/appsec/contrib/devise/resource.rb
182
- - 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
183
201
  - lib/datadog/appsec/contrib/excon/integration.rb
184
202
  - lib/datadog/appsec/contrib/excon/patcher.rb
185
203
  - lib/datadog/appsec/contrib/excon/ssrf_detection_middleware.rb
@@ -226,27 +244,27 @@ files:
226
244
  - lib/datadog/appsec/instrumentation.rb
227
245
  - lib/datadog/appsec/instrumentation/gateway.rb
228
246
  - lib/datadog/appsec/instrumentation/gateway/argument.rb
247
+ - lib/datadog/appsec/instrumentation/gateway/middleware.rb
229
248
  - lib/datadog/appsec/metrics.rb
230
249
  - lib/datadog/appsec/metrics/collector.rb
231
250
  - lib/datadog/appsec/metrics/exporter.rb
232
251
  - lib/datadog/appsec/metrics/telemetry.rb
233
252
  - lib/datadog/appsec/monitor.rb
234
253
  - lib/datadog/appsec/monitor/gateway/watcher.rb
235
- - lib/datadog/appsec/processor.rb
236
254
  - lib/datadog/appsec/processor/rule_loader.rb
237
- - lib/datadog/appsec/processor/rule_merger.rb
238
255
  - lib/datadog/appsec/rate_limiter.rb
239
256
  - lib/datadog/appsec/remote.rb
240
257
  - lib/datadog/appsec/response.rb
241
258
  - lib/datadog/appsec/sample_rate.rb
242
259
  - lib/datadog/appsec/security_engine.rb
260
+ - lib/datadog/appsec/security_engine/engine.rb
243
261
  - lib/datadog/appsec/security_engine/result.rb
244
262
  - lib/datadog/appsec/security_engine/runner.rb
263
+ - lib/datadog/appsec/security_event.rb
245
264
  - lib/datadog/appsec/utils.rb
246
265
  - lib/datadog/appsec/utils/http.rb
247
266
  - lib/datadog/appsec/utils/http/media_range.rb
248
267
  - lib/datadog/appsec/utils/http/media_type.rb
249
- - lib/datadog/appsec/utils/trace_operation.rb
250
268
  - lib/datadog/auto_instrument.rb
251
269
  - lib/datadog/auto_instrument_base.rb
252
270
  - lib/datadog/core.rb
@@ -255,14 +273,18 @@ files:
255
273
  - lib/datadog/core/buffer/thread_safe.rb
256
274
  - lib/datadog/core/chunker.rb
257
275
  - lib/datadog/core/configuration.rb
276
+ - lib/datadog/core/configuration/agent_settings.rb
258
277
  - lib/datadog/core/configuration/agent_settings_resolver.rb
278
+ - lib/datadog/core/configuration/agentless_settings_resolver.rb
259
279
  - lib/datadog/core/configuration/base.rb
260
280
  - lib/datadog/core/configuration/components.rb
281
+ - lib/datadog/core/configuration/components_state.rb
261
282
  - lib/datadog/core/configuration/ext.rb
262
283
  - lib/datadog/core/configuration/option.rb
263
284
  - lib/datadog/core/configuration/option_definition.rb
264
285
  - lib/datadog/core/configuration/options.rb
265
286
  - lib/datadog/core/configuration/settings.rb
287
+ - lib/datadog/core/configuration/stable_config.rb
266
288
  - lib/datadog/core/contrib/rails/utils.rb
267
289
  - lib/datadog/core/crashtracking/component.rb
268
290
  - lib/datadog/core/crashtracking/tag_builder.rb
@@ -298,6 +320,8 @@ files:
298
320
  - lib/datadog/core/metrics/metric.rb
299
321
  - lib/datadog/core/metrics/options.rb
300
322
  - lib/datadog/core/pin.rb
323
+ - lib/datadog/core/process_discovery.rb
324
+ - lib/datadog/core/process_discovery/tracer_memfd.rb
301
325
  - lib/datadog/core/rate_limiter.rb
302
326
  - lib/datadog/core/remote.rb
303
327
  - lib/datadog/core/remote/client.rb
@@ -325,21 +349,35 @@ files:
325
349
  - lib/datadog/core/runtime/ext.rb
326
350
  - lib/datadog/core/runtime/metrics.rb
327
351
  - lib/datadog/core/semaphore.rb
352
+ - lib/datadog/core/tag_builder.rb
328
353
  - lib/datadog/core/telemetry/component.rb
329
354
  - lib/datadog/core/telemetry/emitter.rb
330
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
331
368
  - lib/datadog/core/telemetry/ext.rb
332
369
  - lib/datadog/core/telemetry/http/adapters/net.rb
333
- - lib/datadog/core/telemetry/http/env.rb
334
- - lib/datadog/core/telemetry/http/ext.rb
335
- - lib/datadog/core/telemetry/http/response.rb
336
- - lib/datadog/core/telemetry/http/transport.rb
337
370
  - lib/datadog/core/telemetry/logger.rb
338
371
  - lib/datadog/core/telemetry/logging.rb
339
372
  - lib/datadog/core/telemetry/metric.rb
340
373
  - lib/datadog/core/telemetry/metrics_collection.rb
341
374
  - lib/datadog/core/telemetry/metrics_manager.rb
342
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
343
381
  - lib/datadog/core/telemetry/worker.rb
344
382
  - lib/datadog/core/transport/ext.rb
345
383
  - lib/datadog/core/transport/http.rb
@@ -370,6 +408,7 @@ files:
370
408
  - lib/datadog/core/utils/safe_dup.rb
371
409
  - lib/datadog/core/utils/sequence.rb
372
410
  - lib/datadog/core/utils/time.rb
411
+ - lib/datadog/core/utils/truncation.rb
373
412
  - lib/datadog/core/utils/url.rb
374
413
  - lib/datadog/core/vendor/multipart-post/LICENSE
375
414
  - lib/datadog/core/vendor/multipart-post/multipart.rb
@@ -387,6 +426,7 @@ files:
387
426
  - lib/datadog/core/workers/runtime_metrics.rb
388
427
  - lib/datadog/di.rb
389
428
  - lib/datadog/di/base.rb
429
+ - lib/datadog/di/boot.rb
390
430
  - lib/datadog/di/code_tracker.rb
391
431
  - lib/datadog/di/component.rb
392
432
  - lib/datadog/di/configuration.rb
@@ -415,11 +455,22 @@ files:
415
455
  - lib/datadog/di/transport/http/input.rb
416
456
  - lib/datadog/di/transport/input.rb
417
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
418
466
  - lib/datadog/kit.rb
419
467
  - lib/datadog/kit/appsec/events.rb
468
+ - lib/datadog/kit/appsec/events/v2.rb
420
469
  - lib/datadog/kit/enable_core_dumps.rb
421
470
  - lib/datadog/kit/identity.rb
422
471
  - lib/datadog/opentelemetry.rb
472
+ - lib/datadog/opentelemetry/api/baggage.rb
473
+ - lib/datadog/opentelemetry/api/baggage.rbs
423
474
  - lib/datadog/opentelemetry/api/context.rb
424
475
  - lib/datadog/opentelemetry/api/trace/span.rb
425
476
  - lib/datadog/opentelemetry/sdk/configurator.rb
@@ -437,6 +488,7 @@ files:
437
488
  - lib/datadog/profiling/collectors/stack.rb
438
489
  - lib/datadog/profiling/collectors/thread_context.rb
439
490
  - lib/datadog/profiling/component.rb
491
+ - lib/datadog/profiling/encoded_profile.rb
440
492
  - lib/datadog/profiling/exporter.rb
441
493
  - lib/datadog/profiling/ext.rb
442
494
  - lib/datadog/profiling/ext/dir_monkey_patches.rb
@@ -447,6 +499,7 @@ files:
447
499
  - lib/datadog/profiling/preload.rb
448
500
  - lib/datadog/profiling/profiler.rb
449
501
  - lib/datadog/profiling/scheduler.rb
502
+ - lib/datadog/profiling/sequence_tracker.rb
450
503
  - lib/datadog/profiling/stack_recorder.rb
451
504
  - lib/datadog/profiling/tag_builder.rb
452
505
  - lib/datadog/profiling/tasks/exec.rb
@@ -687,6 +740,13 @@ files:
687
740
  - lib/datadog/tracing/contrib/kafka/ext.rb
688
741
  - lib/datadog/tracing/contrib/kafka/integration.rb
689
742
  - lib/datadog/tracing/contrib/kafka/patcher.rb
743
+ - lib/datadog/tracing/contrib/karafka.rb
744
+ - lib/datadog/tracing/contrib/karafka/configuration/settings.rb
745
+ - lib/datadog/tracing/contrib/karafka/distributed/propagation.rb
746
+ - lib/datadog/tracing/contrib/karafka/ext.rb
747
+ - lib/datadog/tracing/contrib/karafka/integration.rb
748
+ - lib/datadog/tracing/contrib/karafka/monitor.rb
749
+ - lib/datadog/tracing/contrib/karafka/patcher.rb
690
750
  - lib/datadog/tracing/contrib/lograge/configuration/settings.rb
691
751
  - lib/datadog/tracing/contrib/lograge/ext.rb
692
752
  - lib/datadog/tracing/contrib/lograge/instrumentation.rb
@@ -849,6 +909,7 @@ files:
849
909
  - lib/datadog/tracing/contrib/sucker_punch/instrumentation.rb
850
910
  - lib/datadog/tracing/contrib/sucker_punch/integration.rb
851
911
  - lib/datadog/tracing/contrib/sucker_punch/patcher.rb
912
+ - lib/datadog/tracing/contrib/support.rb
852
913
  - lib/datadog/tracing/contrib/trilogy/configuration/settings.rb
853
914
  - lib/datadog/tracing/contrib/trilogy/ext.rb
854
915
  - lib/datadog/tracing/contrib/trilogy/instrumentation.rb
@@ -863,12 +924,14 @@ files:
863
924
  - lib/datadog/tracing/diagnostics/health.rb
864
925
  - lib/datadog/tracing/distributed/b3_multi.rb
865
926
  - lib/datadog/tracing/distributed/b3_single.rb
927
+ - lib/datadog/tracing/distributed/baggage.rb
866
928
  - lib/datadog/tracing/distributed/datadog.rb
867
929
  - lib/datadog/tracing/distributed/datadog_tags_codec.rb
868
930
  - lib/datadog/tracing/distributed/fetcher.rb
869
931
  - lib/datadog/tracing/distributed/helpers.rb
870
932
  - lib/datadog/tracing/distributed/none.rb
871
933
  - lib/datadog/tracing/distributed/propagation.rb
934
+ - lib/datadog/tracing/distributed/propagation_policy.rb
872
935
  - lib/datadog/tracing/distributed/trace_context.rb
873
936
  - lib/datadog/tracing/event.rb
874
937
  - lib/datadog/tracing/flush.rb
@@ -876,6 +939,8 @@ files:
876
939
  - lib/datadog/tracing/metadata/analytics.rb
877
940
  - lib/datadog/tracing/metadata/errors.rb
878
941
  - lib/datadog/tracing/metadata/ext.rb
942
+ - lib/datadog/tracing/metadata/metastruct.rb
943
+ - lib/datadog/tracing/metadata/metastruct_tagging.rb
879
944
  - lib/datadog/tracing/metadata/tagging.rb
880
945
  - lib/datadog/tracing/pipeline.rb
881
946
  - lib/datadog/tracing/pipeline/span_filter.rb
@@ -930,8 +995,8 @@ licenses:
930
995
  - Apache-2.0
931
996
  metadata:
932
997
  allowed_push_host: https://rubygems.org
933
- changelog_uri: https://github.com/DataDog/dd-trace-rb/blob/v2.12.1/CHANGELOG.md
934
- source_code_uri: https://github.com/DataDog/dd-trace-rb/tree/v2.12.1
998
+ changelog_uri: https://github.com/DataDog/dd-trace-rb/blob/v2.19.0/CHANGELOG.md
999
+ source_code_uri: https://github.com/DataDog/dd-trace-rb/tree/v2.19.0
935
1000
  post_install_message:
936
1001
  rdoc_options: []
937
1002
  require_paths:
@@ -1,92 +0,0 @@
1
- [
2
- {
3
- "id": "processor-001",
4
- "generator": "extract_schema",
5
- "conditions": [
6
- {
7
- "operator": "equals",
8
- "parameters": {
9
- "inputs": [
10
- {
11
- "address": "waf.context.processor",
12
- "key_path": [
13
- "extract-schema"
14
- ]
15
- }
16
- ],
17
- "type": "boolean",
18
- "value": true
19
- }
20
- }
21
- ],
22
- "parameters": {
23
- "mappings": [
24
- {
25
- "inputs": [
26
- {
27
- "address": "server.request.body"
28
- }
29
- ],
30
- "output": "_dd.appsec.s.req.body"
31
- },
32
- {
33
- "inputs": [
34
- {
35
- "address": "server.request.headers.no_cookies"
36
- }
37
- ],
38
- "output": "_dd.appsec.s.req.headers"
39
- },
40
- {
41
- "inputs": [
42
- {
43
- "address": "server.request.query"
44
- }
45
- ],
46
- "output": "_dd.appsec.s.req.query"
47
- },
48
- {
49
- "inputs": [
50
- {
51
- "address": "server.request.path_params"
52
- }
53
- ],
54
- "output": "_dd.appsec.s.req.params"
55
- },
56
- {
57
- "inputs": [
58
- {
59
- "address": "server.request.cookies"
60
- }
61
- ],
62
- "output": "_dd.appsec.s.req.cookies"
63
- },
64
- {
65
- "inputs": [
66
- {
67
- "address": "server.response.headers.no_cookies"
68
- }
69
- ],
70
- "output": "_dd.appsec.s.res.headers"
71
- },
72
- {
73
- "inputs": [
74
- {
75
- "address": "server.response.body"
76
- }
77
- ],
78
- "output": "_dd.appsec.s.res.body"
79
- }
80
- ],
81
- "scanners": [
82
- {
83
- "tags": {
84
- "category": "pii"
85
- }
86
- }
87
- ]
88
- },
89
- "evaluate": false,
90
- "output": true
91
- }
92
- ]