datadog 2.21.0 → 2.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (623) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +574 -1
  3. data/ext/LIBDATADOG_DEVELOPMENT.md +3 -0
  4. data/ext/datadog_profiling_native_extension/clock_id.h +9 -1
  5. data/ext/datadog_profiling_native_extension/clock_id_from_mach.c +66 -0
  6. data/ext/datadog_profiling_native_extension/clock_id_from_pthread.c +3 -2
  7. data/ext/datadog_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +301 -82
  8. data/ext/datadog_profiling_native_extension/collectors_discrete_dynamic_sampler.c +4 -4
  9. data/ext/datadog_profiling_native_extension/collectors_gc_profiling_helper.c +3 -2
  10. data/ext/datadog_profiling_native_extension/collectors_idle_sampling_helper.c +18 -4
  11. data/ext/datadog_profiling_native_extension/collectors_stack.c +63 -32
  12. data/ext/datadog_profiling_native_extension/collectors_stack.h +7 -2
  13. data/ext/datadog_profiling_native_extension/collectors_thread_context.c +728 -436
  14. data/ext/datadog_profiling_native_extension/collectors_thread_context.h +19 -6
  15. data/ext/datadog_profiling_native_extension/crashtracking_runtime_stacks.c +239 -0
  16. data/ext/datadog_profiling_native_extension/datadog_ruby_common.c +65 -1
  17. data/ext/datadog_profiling_native_extension/datadog_ruby_common.h +40 -1
  18. data/ext/datadog_profiling_native_extension/encoded_profile.c +2 -1
  19. data/ext/datadog_profiling_native_extension/extconf.rb +41 -37
  20. data/ext/datadog_profiling_native_extension/gvl_profiling_helper.c +4 -43
  21. data/ext/datadog_profiling_native_extension/gvl_profiling_helper.h +15 -47
  22. data/ext/datadog_profiling_native_extension/heap_recorder.c +252 -103
  23. data/ext/datadog_profiling_native_extension/heap_recorder.h +12 -1
  24. data/ext/datadog_profiling_native_extension/http_transport.c +66 -68
  25. data/ext/datadog_profiling_native_extension/libdatadog_helpers.c +3 -22
  26. data/ext/datadog_profiling_native_extension/libdatadog_helpers.h +0 -5
  27. data/ext/datadog_profiling_native_extension/macos_sampler_thread.h +55 -0
  28. data/ext/datadog_profiling_native_extension/native_extension_helpers.rb +0 -13
  29. data/ext/datadog_profiling_native_extension/private_vm_api_access.c +40 -43
  30. data/ext/datadog_profiling_native_extension/private_vm_api_access.h +6 -0
  31. data/ext/datadog_profiling_native_extension/profiling.c +65 -19
  32. data/ext/datadog_profiling_native_extension/ruby_helpers.c +63 -46
  33. data/ext/datadog_profiling_native_extension/ruby_helpers.h +17 -5
  34. data/ext/datadog_profiling_native_extension/setup_signal_handler.c +32 -10
  35. data/ext/datadog_profiling_native_extension/setup_signal_handler.h +2 -1
  36. data/ext/datadog_profiling_native_extension/stack_recorder.c +110 -85
  37. data/ext/datadog_profiling_native_extension/stack_recorder.h +3 -1
  38. data/ext/datadog_profiling_native_extension/time_helpers.h +13 -7
  39. data/ext/datadog_profiling_native_extension/unsafe_api_calls_check.c +2 -1
  40. data/ext/datadog_profiling_native_extension/unsafe_api_calls_check.h +9 -4
  41. data/ext/libdatadog_api/crashtracker.c +16 -15
  42. data/ext/libdatadog_api/crashtracker_report_exception.c +126 -0
  43. data/ext/libdatadog_api/datadog_ruby_common.c +65 -1
  44. data/ext/libdatadog_api/datadog_ruby_common.h +40 -1
  45. data/ext/libdatadog_api/ddsketch.c +102 -0
  46. data/ext/libdatadog_api/di.c +203 -0
  47. data/ext/libdatadog_api/extconf.rb +18 -24
  48. data/ext/libdatadog_api/feature_flags.c +554 -0
  49. data/ext/libdatadog_api/feature_flags.h +5 -0
  50. data/ext/libdatadog_api/helpers.h +27 -0
  51. data/ext/libdatadog_api/init.c +13 -1
  52. data/ext/libdatadog_api/library_config.c +34 -25
  53. data/ext/libdatadog_api/process_discovery.c +19 -13
  54. data/ext/libdatadog_extconf_helpers.rb +94 -11
  55. data/lib/datadog/ai_guard/api_client.rb +84 -0
  56. data/lib/datadog/ai_guard/autoload.rb +10 -0
  57. data/lib/datadog/ai_guard/component.rb +44 -0
  58. data/lib/datadog/ai_guard/configuration/ext.rb +17 -0
  59. data/lib/datadog/ai_guard/configuration.rb +115 -0
  60. data/lib/datadog/ai_guard/contrib/auto_instrument.rb +24 -0
  61. data/lib/datadog/ai_guard/contrib/integration.rb +37 -0
  62. data/lib/datadog/ai_guard/contrib/rack/integration.rb +42 -0
  63. data/lib/datadog/ai_guard/contrib/rack/patcher.rb +26 -0
  64. data/lib/datadog/ai_guard/contrib/rack/request_middleware.rb +97 -0
  65. data/lib/datadog/ai_guard/contrib/rails/integration.rb +41 -0
  66. data/lib/datadog/ai_guard/contrib/rails/patcher.rb +97 -0
  67. data/lib/datadog/ai_guard/contrib/ruby_llm/chat_instrumentation.rb +80 -0
  68. data/lib/datadog/ai_guard/contrib/ruby_llm/integration.rb +41 -0
  69. data/lib/datadog/ai_guard/contrib/ruby_llm/patcher.rb +30 -0
  70. data/lib/datadog/ai_guard/evaluation/content_builder.rb +31 -0
  71. data/lib/datadog/ai_guard/evaluation/content_part.rb +36 -0
  72. data/lib/datadog/ai_guard/evaluation/message.rb +25 -0
  73. data/lib/datadog/ai_guard/evaluation/no_op_result.rb +36 -0
  74. data/lib/datadog/ai_guard/evaluation/request.rb +86 -0
  75. data/lib/datadog/ai_guard/evaluation/result.rb +45 -0
  76. data/lib/datadog/ai_guard/evaluation/tool_call.rb +18 -0
  77. data/lib/datadog/ai_guard/evaluation.rb +108 -0
  78. data/lib/datadog/ai_guard/ext.rb +29 -0
  79. data/lib/datadog/ai_guard.rb +181 -0
  80. data/lib/datadog/appsec/api_security/endpoint_collection/grape_route_serializer.rb +26 -0
  81. data/lib/datadog/appsec/api_security/endpoint_collection/rails_collector.rb +66 -0
  82. data/lib/datadog/appsec/api_security/endpoint_collection/rails_route_serializer.rb +36 -0
  83. data/lib/datadog/appsec/api_security/endpoint_collection/sinatra_route_serializer.rb +26 -0
  84. data/lib/datadog/appsec/api_security/endpoint_collection.rb +10 -0
  85. data/lib/datadog/appsec/api_security/route_extractor.rb +38 -9
  86. data/lib/datadog/appsec/api_security/sampler.rb +7 -4
  87. data/lib/datadog/appsec/assets/blocked.html +10 -1
  88. data/lib/datadog/appsec/assets/blocked.json +1 -1
  89. data/lib/datadog/appsec/assets/blocked.text +3 -1
  90. data/lib/datadog/appsec/assets/waf_rules/README.md +30 -36
  91. data/lib/datadog/appsec/assets/waf_rules/recommended.json +359 -4
  92. data/lib/datadog/appsec/assets/waf_rules/strict.json +43 -2
  93. data/lib/datadog/appsec/assets.rb +1 -1
  94. data/lib/datadog/appsec/autoload.rb +1 -1
  95. data/lib/datadog/appsec/component.rb +16 -9
  96. data/lib/datadog/appsec/compressed_json.rb +3 -3
  97. data/lib/datadog/appsec/configuration.rb +427 -1
  98. data/lib/datadog/appsec/context.rb +51 -13
  99. data/lib/datadog/appsec/contrib/active_record/instrumentation.rb +3 -1
  100. data/lib/datadog/appsec/contrib/active_record/integration.rb +1 -1
  101. data/lib/datadog/appsec/contrib/active_record/patcher.rb +4 -1
  102. data/lib/datadog/appsec/contrib/aws_lambda/gateway/watcher.rb +75 -0
  103. data/lib/datadog/appsec/contrib/aws_lambda/integration.rb +39 -0
  104. data/lib/datadog/appsec/contrib/aws_lambda/patcher.rb +30 -0
  105. data/lib/datadog/appsec/contrib/aws_lambda/waf_addresses.rb +144 -0
  106. data/lib/datadog/appsec/contrib/devise/integration.rb +1 -1
  107. data/lib/datadog/appsec/contrib/devise/patches/signin_tracking_patch.rb +2 -1
  108. data/lib/datadog/appsec/contrib/excon/integration.rb +1 -1
  109. data/lib/datadog/appsec/contrib/excon/patcher.rb +3 -1
  110. data/lib/datadog/appsec/contrib/excon/ssrf_detection_middleware.rb +152 -12
  111. data/lib/datadog/appsec/contrib/faraday/integration.rb +1 -1
  112. data/lib/datadog/appsec/contrib/faraday/patcher.rb +1 -1
  113. data/lib/datadog/appsec/contrib/faraday/ssrf_detection_middleware.rb +138 -12
  114. data/lib/datadog/appsec/contrib/graphql/gateway/multiplex.rb +74 -24
  115. data/lib/datadog/appsec/contrib/graphql/gateway/watcher.rb +4 -2
  116. data/lib/datadog/appsec/contrib/graphql/integration.rb +2 -1
  117. data/lib/datadog/appsec/contrib/rack/buffered_input.rb +83 -0
  118. data/lib/datadog/appsec/contrib/rack/ext.rb +1 -1
  119. data/lib/datadog/appsec/contrib/rack/gateway/request.rb +52 -13
  120. data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +40 -19
  121. data/lib/datadog/appsec/contrib/rack/input_peeker.rb +79 -0
  122. data/lib/datadog/appsec/contrib/rack/integration.rb +1 -1
  123. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +48 -33
  124. data/lib/datadog/appsec/contrib/rack/response_body.rb +36 -0
  125. data/lib/datadog/appsec/contrib/rails/gateway/request.rb +40 -1
  126. data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +26 -5
  127. data/lib/datadog/appsec/contrib/rails/integration.rb +1 -1
  128. data/lib/datadog/appsec/contrib/rails/patcher.rb +38 -0
  129. data/lib/datadog/appsec/contrib/rails/patches/process_action_patch.rb +2 -0
  130. data/lib/datadog/appsec/contrib/rest_client/integration.rb +1 -1
  131. data/lib/datadog/appsec/contrib/rest_client/patcher.rb +3 -1
  132. data/lib/datadog/appsec/contrib/rest_client/request_ssrf_detection_patch.rb +167 -11
  133. data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +43 -13
  134. data/lib/datadog/appsec/contrib/sinatra/integration.rb +1 -1
  135. data/lib/datadog/appsec/contrib/sinatra/patcher.rb +4 -4
  136. data/lib/datadog/appsec/contrib/sinatra/patches/json_patch.rb +1 -1
  137. data/lib/datadog/appsec/counter_sampler.rb +25 -0
  138. data/lib/datadog/appsec/default_header_tags.rb +52 -0
  139. data/lib/datadog/appsec/event.rb +13 -31
  140. data/lib/datadog/appsec/ext.rb +3 -0
  141. data/lib/datadog/appsec/instrumentation/gateway/middleware.rb +2 -3
  142. data/lib/datadog/appsec/instrumentation/gateway.rb +2 -15
  143. data/lib/datadog/appsec/metrics/collector.rb +43 -5
  144. data/lib/datadog/appsec/metrics/exporter.rb +16 -3
  145. data/lib/datadog/appsec/metrics/telemetry.rb +20 -3
  146. data/lib/datadog/appsec/metrics/telemetry_exporter.rb +20 -1
  147. data/lib/datadog/appsec/metrics.rb +5 -5
  148. data/lib/datadog/appsec/monitor/gateway/watcher.rb +8 -6
  149. data/lib/datadog/appsec/remote.rb +44 -29
  150. data/lib/datadog/appsec/response.rb +18 -4
  151. data/lib/datadog/appsec/route_normalizer/rails_route_pattern.rb +176 -0
  152. data/lib/datadog/appsec/route_normalizer/route_pattern.rb +378 -0
  153. data/lib/datadog/appsec/route_normalizer/route_text.rb +57 -0
  154. data/lib/datadog/appsec/route_normalizer.rb +80 -0
  155. data/lib/datadog/appsec/security_engine/engine.rb +26 -5
  156. data/lib/datadog/appsec/security_engine/result.rb +29 -9
  157. data/lib/datadog/appsec/security_engine/runner.rb +20 -10
  158. data/lib/datadog/appsec/security_event.rb +5 -7
  159. data/lib/datadog/appsec/trace_keeper.rb +18 -6
  160. data/lib/datadog/appsec/utils/http/body.rb +38 -0
  161. data/lib/datadog/appsec/utils/http/body_reader.rb +61 -0
  162. data/lib/datadog/appsec/utils/http/media_range.rb +2 -1
  163. data/lib/datadog/appsec/utils/http/media_type.rb +32 -26
  164. data/lib/datadog/appsec/utils/http/url_encoded.rb +52 -0
  165. data/lib/datadog/appsec.rb +6 -3
  166. data/lib/datadog/core/configuration/agentless_settings_resolver.rb +2 -2
  167. data/lib/datadog/core/configuration/base.rb +17 -5
  168. data/lib/datadog/core/configuration/components.rb +185 -17
  169. data/lib/datadog/core/configuration/components_state.rb +6 -1
  170. data/lib/datadog/core/configuration/config_helper.rb +11 -2
  171. data/lib/datadog/core/configuration/deprecations.rb +2 -2
  172. data/lib/datadog/core/configuration/option.rb +32 -6
  173. data/lib/datadog/core/configuration/option_definition.rb +42 -14
  174. data/lib/datadog/core/configuration/options.rb +49 -12
  175. data/lib/datadog/core/configuration/settings.rb +115 -16
  176. data/lib/datadog/core/configuration/stable_config.rb +10 -0
  177. data/lib/datadog/core/configuration/supported_configurations.rb +379 -300
  178. data/lib/datadog/core/configuration.rb +3 -3
  179. data/lib/datadog/core/contrib/rails/railtie.rb +32 -0
  180. data/lib/datadog/core/contrib/rails/utils.rb +7 -3
  181. data/lib/datadog/core/crashtracking/component.rb +73 -21
  182. data/lib/datadog/core/crashtracking/tag_builder.rb +6 -0
  183. data/lib/datadog/core/ddsketch.rb +19 -0
  184. data/lib/datadog/core/diagnostics/environment_logger.rb +3 -1
  185. data/lib/datadog/core/environment/agent_info.rb +65 -1
  186. data/lib/datadog/core/environment/cgroup.rb +52 -25
  187. data/lib/datadog/core/environment/container.rb +140 -46
  188. data/lib/datadog/core/environment/ext.rb +13 -0
  189. data/lib/datadog/core/environment/identity.rb +40 -4
  190. data/lib/datadog/core/environment/process.rb +122 -0
  191. data/lib/datadog/core/environment/socket.rb +13 -0
  192. data/lib/datadog/core/environment/yjit.rb +2 -1
  193. data/lib/datadog/core/error.rb +6 -6
  194. data/lib/datadog/core/evp.rb +11 -0
  195. data/lib/datadog/core/feature_flags.rb +61 -0
  196. data/lib/datadog/core/knuth_sampler.rb +59 -0
  197. data/lib/datadog/core/logger.rb +1 -1
  198. data/lib/datadog/core/metrics/client.rb +6 -6
  199. data/lib/datadog/core/metrics/logging.rb +1 -1
  200. data/lib/datadog/core/pin.rb +8 -8
  201. data/lib/datadog/core/process_discovery.rb +21 -18
  202. data/lib/datadog/core/rate_limiter.rb +11 -1
  203. data/lib/datadog/core/remote/client/capabilities.rb +49 -6
  204. data/lib/datadog/core/remote/client.rb +15 -7
  205. data/lib/datadog/core/remote/component.rb +64 -36
  206. data/lib/datadog/core/remote/configuration/content.rb +15 -2
  207. data/lib/datadog/core/remote/configuration/digest.rb +14 -7
  208. data/lib/datadog/core/remote/configuration/repository.rb +1 -1
  209. data/lib/datadog/core/remote/configuration/target.rb +13 -6
  210. data/lib/datadog/core/remote/transport/config.rb +9 -36
  211. data/lib/datadog/core/remote/transport/http/config.rb +15 -55
  212. data/lib/datadog/core/remote/transport/http/negotiation.rb +14 -44
  213. data/lib/datadog/core/remote/transport/http.rb +15 -24
  214. data/lib/datadog/core/remote/transport/negotiation.rb +8 -33
  215. data/lib/datadog/core/remote/worker.rb +25 -37
  216. data/lib/datadog/core/runtime/metrics.rb +11 -2
  217. data/lib/datadog/core/semaphore.rb +1 -4
  218. data/lib/datadog/core/tag_builder.rb +0 -4
  219. data/lib/datadog/core/tag_normalizer.rb +84 -0
  220. data/lib/datadog/core/telemetry/component.rb +59 -15
  221. data/lib/datadog/core/telemetry/emitter.rb +6 -6
  222. data/lib/datadog/core/telemetry/event/app_client_configuration_change.rb +2 -3
  223. data/lib/datadog/core/telemetry/event/app_endpoints_loaded.rb +30 -0
  224. data/lib/datadog/core/telemetry/event/app_extended_heartbeat.rb +32 -0
  225. data/lib/datadog/core/telemetry/event/app_started.rb +177 -171
  226. data/lib/datadog/core/telemetry/event/synth_app_client_configuration_change.rb +27 -4
  227. data/lib/datadog/core/telemetry/event.rb +2 -7
  228. data/lib/datadog/core/telemetry/ext.rb +1 -0
  229. data/lib/datadog/core/telemetry/logger.rb +4 -2
  230. data/lib/datadog/core/telemetry/logging.rb +17 -5
  231. data/lib/datadog/core/telemetry/metrics_manager.rb +9 -0
  232. data/lib/datadog/core/telemetry/request.rb +17 -5
  233. data/lib/datadog/core/telemetry/transport/http/telemetry.rb +8 -34
  234. data/lib/datadog/core/telemetry/transport/http.rb +21 -16
  235. data/lib/datadog/core/telemetry/transport/telemetry.rb +8 -17
  236. data/lib/datadog/core/telemetry/worker.rb +108 -32
  237. data/lib/datadog/core/transport/ext.rb +3 -0
  238. data/lib/datadog/core/transport/http/api/endpoint.rb +9 -4
  239. data/lib/datadog/core/transport/http/api/instance.rb +4 -21
  240. data/lib/datadog/core/transport/http/builder.rb +10 -6
  241. data/lib/datadog/core/transport/http/client.rb +80 -0
  242. data/lib/datadog/core/transport/http/response.rb +4 -0
  243. data/lib/datadog/core/transport/http.rb +24 -19
  244. data/lib/datadog/core/transport/parcel.rb +61 -9
  245. data/lib/datadog/core/transport/response.rb +16 -2
  246. data/lib/datadog/core/transport/transport.rb +90 -0
  247. data/lib/datadog/core/utils/at_fork_monkey_patch.rb +2 -2
  248. data/lib/datadog/core/utils/{base64.rb → base64_codec.rb} +4 -3
  249. data/lib/datadog/core/utils/enumerable_compat.rb +29 -0
  250. data/lib/datadog/core/utils/fnv.rb +26 -0
  251. data/lib/datadog/core/utils/forking.rb +3 -1
  252. data/lib/datadog/core/utils/hash.rb +0 -23
  253. data/lib/datadog/{appsec/api_security → core/utils}/lru_cache.rb +10 -21
  254. data/lib/datadog/core/utils/network.rb +22 -1
  255. data/lib/datadog/core/utils/only_once.rb +1 -1
  256. data/lib/datadog/core/utils/only_once_successful.rb +8 -2
  257. data/lib/datadog/core/utils/safe_dup.rb +2 -2
  258. data/lib/datadog/core/utils/sequence.rb +2 -0
  259. data/lib/datadog/core/utils/spawn_monkey_patch.rb +68 -0
  260. data/lib/datadog/core/utils/time.rb +6 -2
  261. data/lib/datadog/core/utils.rb +3 -1
  262. data/lib/datadog/core/workers/async.rb +11 -2
  263. data/lib/datadog/core/workers/interval_loop.rb +51 -3
  264. data/lib/datadog/core/workers/polling.rb +2 -0
  265. data/lib/datadog/core/workers/queue.rb +96 -1
  266. data/lib/datadog/core/workers/runtime_metrics.rb +9 -1
  267. data/lib/datadog/core.rb +10 -3
  268. data/lib/datadog/data_streams/configuration.rb +50 -0
  269. data/lib/datadog/data_streams/ext.rb +11 -0
  270. data/lib/datadog/data_streams/extensions.rb +16 -0
  271. data/lib/datadog/data_streams/pathway_context.rb +169 -0
  272. data/lib/datadog/data_streams/processor.rb +511 -0
  273. data/lib/datadog/data_streams/transport/http/stats.rb +58 -0
  274. data/lib/datadog/data_streams/transport/http.rb +36 -0
  275. data/lib/datadog/data_streams/transport/stats.rb +39 -0
  276. data/lib/datadog/data_streams.rb +100 -0
  277. data/lib/datadog/di/base.rb +15 -7
  278. data/lib/datadog/di/boot.rb +7 -2
  279. data/lib/datadog/di/capture_expression.rb +21 -0
  280. data/lib/datadog/di/capture_expression_evaluator.rb +71 -0
  281. data/lib/datadog/di/capture_limits.rb +41 -0
  282. data/lib/datadog/di/code_tracker.rb +217 -15
  283. data/lib/datadog/di/component.rb +139 -51
  284. data/lib/datadog/di/configuration.rb +241 -2
  285. data/lib/datadog/di/context.rb +82 -0
  286. data/lib/datadog/di/contrib/active_record.rb +34 -5
  287. data/lib/datadog/di/el/compiler.rb +168 -0
  288. data/lib/datadog/di/el/evaluator.rb +159 -0
  289. data/lib/datadog/di/el/expression.rb +42 -0
  290. data/lib/datadog/di/el.rb +5 -0
  291. data/lib/datadog/di/error.rb +44 -0
  292. data/lib/datadog/di/fatal_exceptions.rb +26 -0
  293. data/lib/datadog/di/instrumenter.rb +623 -147
  294. data/lib/datadog/di/logger.rb +2 -2
  295. data/lib/datadog/di/probe.rb +122 -14
  296. data/lib/datadog/di/probe_builder.rb +124 -3
  297. data/lib/datadog/di/probe_file_loader/railtie.rb +1 -1
  298. data/lib/datadog/di/probe_file_loader.rb +12 -7
  299. data/lib/datadog/di/probe_manager.rb +195 -100
  300. data/lib/datadog/di/probe_notification_builder.rb +321 -90
  301. data/lib/datadog/di/probe_notifier_worker.rb +112 -36
  302. data/lib/datadog/di/probe_repository.rb +198 -0
  303. data/lib/datadog/di/proc_responder.rb +36 -0
  304. data/lib/datadog/di/redactor.rb +24 -2
  305. data/lib/datadog/di/remote.rb +258 -93
  306. data/lib/datadog/di/serializer.rb +310 -29
  307. data/lib/datadog/di/transport/diagnostics.rb +12 -42
  308. data/lib/datadog/di/transport/http/diagnostics.rb +4 -34
  309. data/lib/datadog/di/transport/http/input.rb +2 -34
  310. data/lib/datadog/di/transport/http.rb +43 -19
  311. data/lib/datadog/di/transport/input.rb +112 -38
  312. data/lib/datadog/di/utils.rb +42 -14
  313. data/lib/datadog/di.rb +204 -4
  314. data/lib/datadog/error_tracking/collector.rb +2 -1
  315. data/lib/datadog/error_tracking/component.rb +2 -2
  316. data/lib/datadog/error_tracking/configuration.rb +55 -2
  317. data/lib/datadog/error_tracking/filters.rb +2 -2
  318. data/lib/datadog/kit/appsec/events/v2.rb +60 -3
  319. data/lib/datadog/kit/enable_core_dumps.rb +1 -1
  320. data/lib/datadog/kit/tracing/method_tracer.rb +135 -0
  321. data/lib/datadog/open_feature/component.rb +100 -0
  322. data/lib/datadog/open_feature/configuration.rb +37 -0
  323. data/lib/datadog/open_feature/evaluation_engine.rb +70 -0
  324. data/lib/datadog/open_feature/exposures/batch_builder.rb +32 -0
  325. data/lib/datadog/open_feature/exposures/buffer.rb +43 -0
  326. data/lib/datadog/open_feature/exposures/deduplicator.rb +30 -0
  327. data/lib/datadog/open_feature/exposures/event.rb +60 -0
  328. data/lib/datadog/open_feature/exposures/reporter.rb +40 -0
  329. data/lib/datadog/open_feature/exposures/worker.rb +116 -0
  330. data/lib/datadog/open_feature/ext.rb +16 -0
  331. data/lib/datadog/open_feature/flag_evaluation/aggregator.rb +286 -0
  332. data/lib/datadog/open_feature/flag_evaluation/writer.rb +433 -0
  333. data/lib/datadog/open_feature/hooks/flag_eval_evp_hook.rb +101 -0
  334. data/lib/datadog/open_feature/hooks/flag_eval_metrics_hook.rb +49 -0
  335. data/lib/datadog/open_feature/metrics/flag_eval_metrics.rb +149 -0
  336. data/lib/datadog/open_feature/native_evaluator.rb +60 -0
  337. data/lib/datadog/open_feature/noop_evaluator.rb +26 -0
  338. data/lib/datadog/open_feature/provider.rb +191 -0
  339. data/lib/datadog/open_feature/remote.rb +67 -0
  340. data/lib/datadog/open_feature/resolution_details.rb +35 -0
  341. data/lib/datadog/open_feature/transport.rb +121 -0
  342. data/lib/datadog/open_feature.rb +19 -0
  343. data/lib/datadog/opentelemetry/api/baggage.rb +1 -1
  344. data/lib/datadog/opentelemetry/configuration/settings.rb +226 -0
  345. data/lib/datadog/opentelemetry/ext.rb +9 -0
  346. data/lib/datadog/opentelemetry/logs.rb +98 -0
  347. data/lib/datadog/opentelemetry/metrics.rb +90 -0
  348. data/lib/datadog/opentelemetry/sdk/configurator.rb +65 -1
  349. data/lib/datadog/opentelemetry/sdk/id_generator.rb +16 -10
  350. data/lib/datadog/opentelemetry/sdk/logs_exporter.rb +30 -0
  351. data/lib/datadog/opentelemetry/sdk/metrics_exporter.rb +28 -0
  352. data/lib/datadog/opentelemetry/sdk/propagator.rb +9 -3
  353. data/lib/datadog/opentelemetry/sdk/span_processor.rb +4 -1
  354. data/lib/datadog/opentelemetry/sdk.rb +19 -0
  355. data/lib/datadog/opentelemetry/signal_configuration.rb +53 -0
  356. data/lib/datadog/opentelemetry.rb +4 -0
  357. data/lib/datadog/profiling/collectors/code_provenance.rb +71 -12
  358. data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +52 -4
  359. data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +13 -5
  360. data/lib/datadog/profiling/collectors/info.rb +18 -4
  361. data/lib/datadog/profiling/collectors/thread_context.rb +10 -5
  362. data/lib/datadog/profiling/component.rb +82 -40
  363. data/lib/datadog/profiling/exporter.rb +41 -12
  364. data/lib/datadog/profiling/ext/dir_monkey_patches.rb +24 -5
  365. data/lib/datadog/profiling/ext/exec_monkey_patch.rb +32 -0
  366. data/lib/datadog/profiling/ext.rb +0 -2
  367. data/lib/datadog/profiling/flush.rb +23 -11
  368. data/lib/datadog/profiling/http_transport.rb +21 -8
  369. data/lib/datadog/profiling/load_native_extension.rb +2 -2
  370. data/lib/datadog/profiling/profiler.rb +31 -14
  371. data/lib/datadog/profiling/scheduler.rb +10 -9
  372. data/lib/datadog/profiling/stack_recorder.rb +0 -8
  373. data/lib/datadog/profiling/tag_builder.rb +37 -3
  374. data/lib/datadog/profiling/tasks/exec.rb +8 -3
  375. data/lib/datadog/profiling/tasks/help.rb +1 -0
  376. data/lib/datadog/profiling/tasks/setup.rb +2 -2
  377. data/lib/datadog/profiling.rb +1 -3
  378. data/lib/datadog/ruby_version.rb +25 -0
  379. data/lib/datadog/single_step_instrument.rb +2 -2
  380. data/lib/datadog/symbol_database/component.rb +734 -0
  381. data/lib/datadog/symbol_database/configuration.rb +73 -0
  382. data/lib/datadog/symbol_database/extensions.rb +19 -0
  383. data/lib/datadog/symbol_database/extractor.rb +1110 -0
  384. data/lib/datadog/symbol_database/file_hash.rb +48 -0
  385. data/lib/datadog/symbol_database/logger.rb +43 -0
  386. data/lib/datadog/symbol_database/remote.rb +180 -0
  387. data/lib/datadog/symbol_database/scope.rb +102 -0
  388. data/lib/datadog/symbol_database/scope_batcher.rb +292 -0
  389. data/lib/datadog/symbol_database/service_version.rb +66 -0
  390. data/lib/datadog/symbol_database/symbol.rb +69 -0
  391. data/lib/datadog/symbol_database/transport/http/endpoint.rb +28 -0
  392. data/lib/datadog/symbol_database/transport/http.rb +45 -0
  393. data/lib/datadog/symbol_database/transport.rb +54 -0
  394. data/lib/datadog/symbol_database/uploader.rb +230 -0
  395. data/lib/datadog/symbol_database.rb +71 -0
  396. data/lib/datadog/tracing/buffer.rb +3 -3
  397. data/lib/datadog/tracing/component.rb +17 -17
  398. data/lib/datadog/tracing/configuration/dynamic.rb +2 -2
  399. data/lib/datadog/tracing/configuration/ext.rb +22 -0
  400. data/lib/datadog/tracing/configuration/settings.rb +96 -4
  401. data/lib/datadog/tracing/contrib/action_cable/events/broadcast.rb +4 -1
  402. data/lib/datadog/tracing/contrib/action_cable/events/perform_action.rb +4 -1
  403. data/lib/datadog/tracing/contrib/action_cable/events/transmit.rb +4 -1
  404. data/lib/datadog/tracing/contrib/action_cable/instrumentation.rb +4 -1
  405. data/lib/datadog/tracing/contrib/action_mailer/event.rb +4 -1
  406. data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +10 -7
  407. data/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb +28 -0
  408. data/lib/datadog/tracing/contrib/action_pack/action_dispatch/patcher.rb +3 -1
  409. data/lib/datadog/tracing/contrib/action_pack/utils.rb +1 -2
  410. data/lib/datadog/tracing/contrib/action_view/events/render_partial.rb +4 -1
  411. data/lib/datadog/tracing/contrib/action_view/events/render_template.rb +5 -2
  412. data/lib/datadog/tracing/contrib/active_job/data_streams.rb +62 -0
  413. data/lib/datadog/tracing/contrib/active_job/events/discard.rb +5 -2
  414. data/lib/datadog/tracing/contrib/active_job/events/enqueue.rb +5 -2
  415. data/lib/datadog/tracing/contrib/active_job/events/enqueue_at.rb +5 -2
  416. data/lib/datadog/tracing/contrib/active_job/events/enqueue_retry.rb +5 -2
  417. data/lib/datadog/tracing/contrib/active_job/events/perform.rb +5 -2
  418. data/lib/datadog/tracing/contrib/active_job/events/retry_stopped.rb +5 -2
  419. data/lib/datadog/tracing/contrib/active_job/log_injection.rb +21 -7
  420. data/lib/datadog/tracing/contrib/active_job/patcher.rb +17 -1
  421. data/lib/datadog/tracing/contrib/active_model_serializers/events/render.rb +1 -1
  422. data/lib/datadog/tracing/contrib/active_model_serializers/events/serialize.rb +3 -4
  423. data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +2 -2
  424. data/lib/datadog/tracing/contrib/active_record/events/instantiation.rb +1 -1
  425. data/lib/datadog/tracing/contrib/active_record/events/sql.rb +2 -5
  426. data/lib/datadog/tracing/contrib/active_record/utils.rb +1 -1
  427. data/lib/datadog/tracing/contrib/active_support/cache/events/cache.rb +2 -5
  428. data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +1 -4
  429. data/lib/datadog/tracing/contrib/active_support/notifications/subscription.rb +2 -2
  430. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +6 -8
  431. data/lib/datadog/tracing/contrib/component.rb +3 -3
  432. data/lib/datadog/tracing/contrib/configurable.rb +18 -3
  433. data/lib/datadog/tracing/contrib/configuration/resolver.rb +14 -4
  434. data/lib/datadog/tracing/contrib/dalli/instrumentation.rb +1 -5
  435. data/lib/datadog/tracing/contrib/dalli/integration.rb +4 -1
  436. data/lib/datadog/tracing/contrib/dalli/quantize.rb +1 -1
  437. data/lib/datadog/tracing/contrib/delayed_job/plugin.rb +2 -0
  438. data/lib/datadog/tracing/contrib/delayed_job/server_internal_tracer/worker.rb +1 -0
  439. data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +2 -6
  440. data/lib/datadog/tracing/contrib/elasticsearch/quantize.rb +2 -2
  441. data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +5 -1
  442. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +5 -6
  443. data/lib/datadog/tracing/contrib/ethon/ext.rb +1 -0
  444. data/lib/datadog/tracing/contrib/ethon/multi_patch.rb +1 -8
  445. data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +16 -5
  446. data/lib/datadog/tracing/contrib/excon/ext.rb +1 -0
  447. data/lib/datadog/tracing/contrib/excon/middleware.rb +3 -7
  448. data/lib/datadog/tracing/contrib/ext.rb +3 -1
  449. data/lib/datadog/tracing/contrib/extensions.rb +19 -2
  450. data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +16 -9
  451. data/lib/datadog/tracing/contrib/faraday/ext.rb +1 -0
  452. data/lib/datadog/tracing/contrib/faraday/middleware.rb +3 -7
  453. data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +7 -3
  454. data/lib/datadog/tracing/contrib/grape/endpoint.rb +10 -7
  455. data/lib/datadog/tracing/contrib/grape/instrumentation.rb +13 -8
  456. data/lib/datadog/tracing/contrib/grape/patcher.rb +6 -1
  457. data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +7 -0
  458. data/lib/datadog/tracing/contrib/graphql/ext.rb +1 -0
  459. data/lib/datadog/tracing/contrib/graphql/unified_trace.rb +75 -44
  460. data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +5 -2
  461. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +3 -7
  462. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +3 -7
  463. data/lib/datadog/tracing/contrib/grpc/distributed/propagation.rb +2 -0
  464. data/lib/datadog/tracing/contrib/grpc/ext.rb +1 -0
  465. data/lib/datadog/tracing/contrib/grpc.rb +1 -0
  466. data/lib/datadog/tracing/contrib/hanami/action_tracer.rb +1 -0
  467. data/lib/datadog/tracing/contrib/hanami/renderer_policy_tracing.rb +1 -0
  468. data/lib/datadog/tracing/contrib/hanami/router_tracing.rb +1 -0
  469. data/lib/datadog/tracing/contrib/http/configuration/settings.rb +16 -5
  470. data/lib/datadog/tracing/contrib/http/distributed/propagation.rb +2 -0
  471. data/lib/datadog/tracing/contrib/http/ext.rb +1 -0
  472. data/lib/datadog/tracing/contrib/http/instrumentation.rb +4 -8
  473. data/lib/datadog/tracing/contrib/http/integration.rb +0 -2
  474. data/lib/datadog/tracing/contrib/http.rb +1 -0
  475. data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +16 -5
  476. data/lib/datadog/tracing/contrib/httpclient/ext.rb +1 -0
  477. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +7 -7
  478. data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +16 -5
  479. data/lib/datadog/tracing/contrib/httprb/ext.rb +1 -0
  480. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +4 -8
  481. data/lib/datadog/tracing/contrib/kafka/event.rb +1 -0
  482. data/lib/datadog/tracing/contrib/kafka/instrumentation/consumer.rb +66 -0
  483. data/lib/datadog/tracing/contrib/kafka/instrumentation/producer.rb +66 -0
  484. data/lib/datadog/tracing/contrib/kafka/patcher.rb +14 -0
  485. data/lib/datadog/tracing/contrib/karafka/configuration/settings.rb +5 -1
  486. data/lib/datadog/tracing/contrib/karafka/distributed/propagation.rb +2 -0
  487. data/lib/datadog/tracing/contrib/karafka/ext.rb +1 -0
  488. data/lib/datadog/tracing/contrib/karafka/framework.rb +30 -0
  489. data/lib/datadog/tracing/contrib/karafka/monitor.rb +11 -0
  490. data/lib/datadog/tracing/contrib/karafka/patcher.rb +35 -4
  491. data/lib/datadog/tracing/contrib/karafka.rb +1 -0
  492. data/lib/datadog/tracing/contrib/mongodb/parsers.rb +5 -5
  493. data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +5 -8
  494. data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +6 -0
  495. data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +3 -6
  496. data/lib/datadog/tracing/contrib/opensearch/patcher.rb +2 -6
  497. data/lib/datadog/tracing/contrib/opensearch/quantize.rb +2 -2
  498. data/lib/datadog/tracing/contrib/pg/configuration/settings.rb +6 -0
  499. data/lib/datadog/tracing/contrib/pg/instrumentation.rb +15 -18
  500. data/lib/datadog/tracing/contrib/presto/instrumentation.rb +6 -8
  501. data/lib/datadog/tracing/contrib/propagation/sql_comment/ext.rb +13 -0
  502. data/lib/datadog/tracing/contrib/propagation/sql_comment/mode.rb +6 -2
  503. data/lib/datadog/tracing/contrib/propagation/sql_comment.rb +24 -0
  504. data/lib/datadog/tracing/contrib/que/configuration/settings.rb +5 -2
  505. data/lib/datadog/tracing/contrib/que/ext.rb +1 -0
  506. data/lib/datadog/tracing/contrib/que/tracer.rb +1 -0
  507. data/lib/datadog/tracing/contrib/racecar/event.rb +1 -5
  508. data/lib/datadog/tracing/contrib/rack/configuration/settings.rb +11 -1
  509. data/lib/datadog/tracing/contrib/rack/ext.rb +28 -0
  510. data/lib/datadog/tracing/contrib/rack/header_tagging.rb +23 -0
  511. data/lib/datadog/tracing/contrib/rack/middlewares.rb +62 -27
  512. data/lib/datadog/tracing/contrib/rack/patcher.rb +2 -2
  513. data/lib/datadog/tracing/contrib/rack/request_queue.rb +1 -1
  514. data/lib/datadog/tracing/contrib/rack/route_inference.rb +67 -0
  515. data/lib/datadog/tracing/contrib/rack/trace_proxy_middleware.rb +119 -1
  516. data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +5 -2
  517. data/lib/datadog/tracing/contrib/rails/ext.rb +1 -0
  518. data/lib/datadog/tracing/contrib/rails/log_injection.rb +1 -1
  519. data/lib/datadog/tracing/contrib/rails/middlewares.rb +2 -2
  520. data/lib/datadog/tracing/contrib/rails/patcher.rb +0 -1
  521. data/lib/datadog/tracing/contrib/rails/runner.rb +3 -1
  522. data/lib/datadog/tracing/contrib/rake/instrumentation.rb +6 -4
  523. data/lib/datadog/tracing/contrib/redis/quantize.rb +1 -1
  524. data/lib/datadog/tracing/contrib/redis/tags.rb +1 -6
  525. data/lib/datadog/tracing/contrib/redis/trace_middleware.rb +2 -0
  526. data/lib/datadog/tracing/contrib/registerable.rb +11 -0
  527. data/lib/datadog/tracing/contrib/resque/resque_job.rb +1 -0
  528. data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +5 -2
  529. data/lib/datadog/tracing/contrib/rest_client/ext.rb +1 -0
  530. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +5 -6
  531. data/lib/datadog/tracing/contrib/roda/ext.rb +1 -0
  532. data/lib/datadog/tracing/contrib/roda/instrumentation.rb +7 -2
  533. data/lib/datadog/tracing/contrib/sequel/database.rb +1 -0
  534. data/lib/datadog/tracing/contrib/sequel/dataset.rb +1 -0
  535. data/lib/datadog/tracing/contrib/sequel/utils.rb +2 -7
  536. data/lib/datadog/tracing/contrib/shoryuken/tracer.rb +1 -0
  537. data/lib/datadog/tracing/contrib/sidekiq/client_tracer.rb +1 -0
  538. data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +5 -1
  539. data/lib/datadog/tracing/contrib/sidekiq/distributed/propagation.rb +2 -0
  540. data/lib/datadog/tracing/contrib/sidekiq/ext.rb +1 -0
  541. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/heartbeat.rb +2 -0
  542. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/job_fetch.rb +1 -0
  543. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/redis_info.rb +1 -0
  544. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/scheduled_poller.rb +2 -0
  545. data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/stop.rb +1 -0
  546. data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +3 -2
  547. data/lib/datadog/tracing/contrib/sidekiq/utils.rb +1 -1
  548. data/lib/datadog/tracing/contrib/sidekiq.rb +1 -0
  549. data/lib/datadog/tracing/contrib/sinatra/configuration/settings.rb +5 -1
  550. data/lib/datadog/tracing/contrib/sinatra/ext.rb +1 -0
  551. data/lib/datadog/tracing/contrib/sinatra/framework.rb +1 -1
  552. data/lib/datadog/tracing/contrib/sinatra/tracer.rb +1 -0
  553. data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +4 -1
  554. data/lib/datadog/tracing/contrib/sneakers/integration.rb +15 -4
  555. data/lib/datadog/tracing/contrib/sneakers/tracer.rb +1 -0
  556. data/lib/datadog/tracing/contrib/status_range_matcher.rb +13 -1
  557. data/lib/datadog/tracing/contrib/stripe/request.rb +1 -1
  558. data/lib/datadog/tracing/contrib/sucker_punch/instrumentation.rb +1 -0
  559. data/lib/datadog/tracing/contrib/trilogy/configuration/settings.rb +6 -0
  560. data/lib/datadog/tracing/contrib/trilogy/instrumentation.rb +4 -6
  561. data/lib/datadog/tracing/contrib/utils/quantization/{hash.rb → hash_formatter.rb} +4 -2
  562. data/lib/datadog/tracing/contrib/waterdrop/configuration/settings.rb +31 -0
  563. data/lib/datadog/tracing/contrib/waterdrop/distributed/propagation.rb +50 -0
  564. data/lib/datadog/tracing/contrib/waterdrop/ext.rb +18 -0
  565. data/lib/datadog/tracing/contrib/waterdrop/integration.rb +43 -0
  566. data/lib/datadog/tracing/contrib/waterdrop/middleware.rb +46 -0
  567. data/lib/datadog/tracing/contrib/waterdrop/patcher.rb +49 -0
  568. data/lib/datadog/tracing/contrib/waterdrop/producer.rb +50 -0
  569. data/lib/datadog/tracing/contrib/waterdrop.rb +42 -0
  570. data/lib/datadog/tracing/contrib.rb +9 -0
  571. data/lib/datadog/tracing/diagnostics/environment_logger.rb +4 -2
  572. data/lib/datadog/tracing/distributed/baggage.rb +64 -8
  573. data/lib/datadog/tracing/distributed/datadog.rb +13 -11
  574. data/lib/datadog/tracing/distributed/datadog_tags_codec.rb +1 -14
  575. data/lib/datadog/tracing/distributed/propagation.rb +35 -3
  576. data/lib/datadog/tracing/distributed/trace_context.rb +85 -62
  577. data/lib/datadog/tracing/event.rb +1 -1
  578. data/lib/datadog/tracing/ext.rb +9 -0
  579. data/lib/datadog/tracing/metadata/ext.rb +23 -1
  580. data/lib/datadog/tracing/metadata/tagging.rb +2 -2
  581. data/lib/datadog/tracing/pipeline.rb +1 -1
  582. data/lib/datadog/tracing/remote.rb +36 -13
  583. data/lib/datadog/tracing/sampling/ext.rb +2 -0
  584. data/lib/datadog/tracing/sampling/priority_sampler.rb +16 -1
  585. data/lib/datadog/tracing/sampling/rate_sampler.rb +8 -19
  586. data/lib/datadog/tracing/sampling/rule.rb +1 -1
  587. data/lib/datadog/tracing/sampling/rule_sampler.rb +54 -25
  588. data/lib/datadog/tracing/sampling/span/rule_parser.rb +2 -2
  589. data/lib/datadog/tracing/span.rb +1 -1
  590. data/lib/datadog/tracing/span_event.rb +2 -2
  591. data/lib/datadog/tracing/span_operation.rb +34 -10
  592. data/lib/datadog/tracing/sync_writer.rb +0 -1
  593. data/lib/datadog/tracing/trace_digest.rb +7 -0
  594. data/lib/datadog/tracing/trace_operation.rb +123 -16
  595. data/lib/datadog/tracing/tracer.rb +82 -23
  596. data/lib/datadog/tracing/transport/http/client.rb +12 -26
  597. data/lib/datadog/tracing/transport/http/traces.rb +2 -50
  598. data/lib/datadog/tracing/transport/http.rb +15 -9
  599. data/lib/datadog/tracing/transport/io/client.rb +6 -9
  600. data/lib/datadog/tracing/transport/io/traces.rb +28 -34
  601. data/lib/datadog/tracing/transport/trace_formatter.rb +22 -0
  602. data/lib/datadog/tracing/transport/traces.rb +13 -81
  603. data/lib/datadog/tracing/workers.rb +2 -1
  604. data/lib/datadog/tracing/writer.rb +1 -1
  605. data/lib/datadog/version.rb +2 -2
  606. data/lib/datadog.rb +8 -1
  607. metadata +185 -36
  608. data/ext/datadog_profiling_native_extension/clock_id_noop.c +0 -21
  609. data/ext/libdatadog_api/macos_development.md +0 -26
  610. data/lib/datadog/appsec/configuration/settings.rb +0 -400
  611. data/lib/datadog/appsec/contrib/rails/ext.rb +0 -13
  612. data/lib/datadog/core/remote/transport/http/api.rb +0 -53
  613. data/lib/datadog/core/remote/transport/http/client.rb +0 -49
  614. data/lib/datadog/core/telemetry/transport/http/api.rb +0 -43
  615. data/lib/datadog/core/telemetry/transport/http/client.rb +0 -49
  616. data/lib/datadog/core/transport/http/api/spec.rb +0 -36
  617. data/lib/datadog/di/configuration/settings.rb +0 -212
  618. data/lib/datadog/di/transport/http/api.rb +0 -42
  619. data/lib/datadog/di/transport/http/client.rb +0 -47
  620. data/lib/datadog/error_tracking/configuration/settings.rb +0 -63
  621. data/lib/datadog/opentelemetry/api/baggage.rbs +0 -26
  622. data/lib/datadog/tracing/transport/http/api.rb +0 -44
  623. data/lib/datadog/tracing/workers/trace_writer.rb +0 -199
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datadog
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.21.0
4
+ version: 2.38.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Datadog, Inc.
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2025-09-17 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: msgpack
@@ -30,48 +29,48 @@ dependencies:
30
29
  requirements:
31
30
  - - "~>"
32
31
  - !ruby/object:Gem::Version
33
- version: '3.4'
32
+ version: '3.5'
34
33
  - - ">="
35
34
  - !ruby/object:Gem::Version
36
- version: 3.4.1
35
+ version: 3.5.3
37
36
  type: :runtime
38
37
  prerelease: false
39
38
  version_requirements: !ruby/object:Gem::Requirement
40
39
  requirements:
41
40
  - - "~>"
42
41
  - !ruby/object:Gem::Version
43
- version: '3.4'
42
+ version: '3.5'
44
43
  - - ">="
45
44
  - !ruby/object:Gem::Version
46
- version: 3.4.1
45
+ version: 3.5.3
47
46
  - !ruby/object:Gem::Dependency
48
47
  name: libddwaf
49
48
  requirement: !ruby/object:Gem::Requirement
50
49
  requirements:
51
50
  - - "~>"
52
51
  - !ruby/object:Gem::Version
53
- version: 1.24.1.2.1
52
+ version: 1.30.0.0.0
54
53
  type: :runtime
55
54
  prerelease: false
56
55
  version_requirements: !ruby/object:Gem::Requirement
57
56
  requirements:
58
57
  - - "~>"
59
58
  - !ruby/object:Gem::Version
60
- version: 1.24.1.2.1
59
+ version: 1.30.0.0.0
61
60
  - !ruby/object:Gem::Dependency
62
61
  name: libdatadog
63
62
  requirement: !ruby/object:Gem::Requirement
64
63
  requirements:
65
64
  - - "~>"
66
65
  - !ruby/object:Gem::Version
67
- version: 18.1.0.1.0
66
+ version: 36.0.0.1.0
68
67
  type: :runtime
69
68
  prerelease: false
70
69
  version_requirements: !ruby/object:Gem::Requirement
71
70
  requirements:
72
71
  - - "~>"
73
72
  - !ruby/object:Gem::Version
74
- version: 18.1.0.1.0
73
+ version: 36.0.0.1.0
75
74
  - !ruby/object:Gem::Dependency
76
75
  name: logger
77
76
  requirement: !ruby/object:Gem::Requirement
@@ -86,6 +85,20 @@ dependencies:
86
85
  - - ">="
87
86
  - !ruby/object:Gem::Version
88
87
  version: '0'
88
+ - !ruby/object:Gem::Dependency
89
+ name: cgi
90
+ requirement: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ type: :runtime
96
+ prerelease: false
97
+ version_requirements: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
89
102
  description: |
90
103
  datadog is Datadog's client library for Ruby. It includes a suite of tools
91
104
  which provide visibility into the performance and security of Ruby applications,
@@ -107,10 +120,11 @@ files:
107
120
  - NOTICE
108
121
  - README.md
109
122
  - bin/ddprofrb
123
+ - ext/LIBDATADOG_DEVELOPMENT.md
110
124
  - ext/datadog_profiling_native_extension/NativeExtensionDesign.md
111
125
  - ext/datadog_profiling_native_extension/clock_id.h
126
+ - ext/datadog_profiling_native_extension/clock_id_from_mach.c
112
127
  - ext/datadog_profiling_native_extension/clock_id_from_pthread.c
113
- - ext/datadog_profiling_native_extension/clock_id_noop.c
114
128
  - ext/datadog_profiling_native_extension/collectors_cpu_and_wall_time_worker.c
115
129
  - ext/datadog_profiling_native_extension/collectors_discrete_dynamic_sampler.c
116
130
  - ext/datadog_profiling_native_extension/collectors_discrete_dynamic_sampler.h
@@ -124,6 +138,7 @@ files:
124
138
  - ext/datadog_profiling_native_extension/collectors_stack.h
125
139
  - ext/datadog_profiling_native_extension/collectors_thread_context.c
126
140
  - ext/datadog_profiling_native_extension/collectors_thread_context.h
141
+ - ext/datadog_profiling_native_extension/crashtracking_runtime_stacks.c
127
142
  - ext/datadog_profiling_native_extension/datadog_ruby_common.c
128
143
  - ext/datadog_profiling_native_extension/datadog_ruby_common.h
129
144
  - ext/datadog_profiling_native_extension/encoded_profile.c
@@ -137,6 +152,7 @@ files:
137
152
  - ext/datadog_profiling_native_extension/http_transport.c
138
153
  - ext/datadog_profiling_native_extension/libdatadog_helpers.c
139
154
  - ext/datadog_profiling_native_extension/libdatadog_helpers.h
155
+ - ext/datadog_profiling_native_extension/macos_sampler_thread.h
140
156
  - ext/datadog_profiling_native_extension/native_extension_helpers.rb
141
157
  - ext/datadog_profiling_native_extension/private_vm_api_access.c
142
158
  - ext/datadog_profiling_native_extension/private_vm_api_access.h
@@ -153,23 +169,57 @@ files:
153
169
  - ext/datadog_profiling_native_extension/unsafe_api_calls_check.h
154
170
  - ext/libdatadog_api/crashtracker.c
155
171
  - ext/libdatadog_api/crashtracker.h
172
+ - ext/libdatadog_api/crashtracker_report_exception.c
156
173
  - ext/libdatadog_api/datadog_ruby_common.c
157
174
  - ext/libdatadog_api/datadog_ruby_common.h
175
+ - ext/libdatadog_api/ddsketch.c
176
+ - ext/libdatadog_api/di.c
158
177
  - ext/libdatadog_api/extconf.rb
178
+ - ext/libdatadog_api/feature_flags.c
179
+ - ext/libdatadog_api/feature_flags.h
180
+ - ext/libdatadog_api/helpers.h
159
181
  - ext/libdatadog_api/init.c
160
182
  - ext/libdatadog_api/library_config.c
161
183
  - ext/libdatadog_api/library_config.h
162
- - ext/libdatadog_api/macos_development.md
163
184
  - ext/libdatadog_api/process_discovery.c
164
185
  - ext/libdatadog_api/process_discovery.h
165
186
  - ext/libdatadog_extconf_helpers.rb
166
187
  - lib/datadog.rb
188
+ - lib/datadog/ai_guard.rb
189
+ - lib/datadog/ai_guard/api_client.rb
190
+ - lib/datadog/ai_guard/autoload.rb
191
+ - lib/datadog/ai_guard/component.rb
192
+ - lib/datadog/ai_guard/configuration.rb
193
+ - lib/datadog/ai_guard/configuration/ext.rb
194
+ - lib/datadog/ai_guard/contrib/auto_instrument.rb
195
+ - lib/datadog/ai_guard/contrib/integration.rb
196
+ - lib/datadog/ai_guard/contrib/rack/integration.rb
197
+ - lib/datadog/ai_guard/contrib/rack/patcher.rb
198
+ - lib/datadog/ai_guard/contrib/rack/request_middleware.rb
199
+ - lib/datadog/ai_guard/contrib/rails/integration.rb
200
+ - lib/datadog/ai_guard/contrib/rails/patcher.rb
201
+ - lib/datadog/ai_guard/contrib/ruby_llm/chat_instrumentation.rb
202
+ - lib/datadog/ai_guard/contrib/ruby_llm/integration.rb
203
+ - lib/datadog/ai_guard/contrib/ruby_llm/patcher.rb
204
+ - lib/datadog/ai_guard/evaluation.rb
205
+ - lib/datadog/ai_guard/evaluation/content_builder.rb
206
+ - lib/datadog/ai_guard/evaluation/content_part.rb
207
+ - lib/datadog/ai_guard/evaluation/message.rb
208
+ - lib/datadog/ai_guard/evaluation/no_op_result.rb
209
+ - lib/datadog/ai_guard/evaluation/request.rb
210
+ - lib/datadog/ai_guard/evaluation/result.rb
211
+ - lib/datadog/ai_guard/evaluation/tool_call.rb
212
+ - lib/datadog/ai_guard/ext.rb
167
213
  - lib/datadog/appsec.rb
168
214
  - lib/datadog/appsec/actions_handler.rb
169
215
  - lib/datadog/appsec/actions_handler/serializable_backtrace.rb
170
216
  - lib/datadog/appsec/anonymizer.rb
171
217
  - lib/datadog/appsec/api_security.rb
172
- - lib/datadog/appsec/api_security/lru_cache.rb
218
+ - lib/datadog/appsec/api_security/endpoint_collection.rb
219
+ - lib/datadog/appsec/api_security/endpoint_collection/grape_route_serializer.rb
220
+ - lib/datadog/appsec/api_security/endpoint_collection/rails_collector.rb
221
+ - lib/datadog/appsec/api_security/endpoint_collection/rails_route_serializer.rb
222
+ - lib/datadog/appsec/api_security/endpoint_collection/sinatra_route_serializer.rb
173
223
  - lib/datadog/appsec/api_security/route_extractor.rb
174
224
  - lib/datadog/appsec/api_security/sampler.rb
175
225
  - lib/datadog/appsec/assets.rb
@@ -183,12 +233,15 @@ files:
183
233
  - lib/datadog/appsec/component.rb
184
234
  - lib/datadog/appsec/compressed_json.rb
185
235
  - lib/datadog/appsec/configuration.rb
186
- - lib/datadog/appsec/configuration/settings.rb
187
236
  - lib/datadog/appsec/context.rb
188
237
  - lib/datadog/appsec/contrib/active_record/instrumentation.rb
189
238
  - lib/datadog/appsec/contrib/active_record/integration.rb
190
239
  - lib/datadog/appsec/contrib/active_record/patcher.rb
191
240
  - lib/datadog/appsec/contrib/auto_instrument.rb
241
+ - lib/datadog/appsec/contrib/aws_lambda/gateway/watcher.rb
242
+ - lib/datadog/appsec/contrib/aws_lambda/integration.rb
243
+ - lib/datadog/appsec/contrib/aws_lambda/patcher.rb
244
+ - lib/datadog/appsec/contrib/aws_lambda/waf_addresses.rb
192
245
  - lib/datadog/appsec/contrib/devise/configuration.rb
193
246
  - lib/datadog/appsec/contrib/devise/data_extractor.rb
194
247
  - lib/datadog/appsec/contrib/devise/ext.rb
@@ -212,15 +265,17 @@ files:
212
265
  - lib/datadog/appsec/contrib/graphql/integration.rb
213
266
  - lib/datadog/appsec/contrib/graphql/patcher.rb
214
267
  - lib/datadog/appsec/contrib/integration.rb
268
+ - lib/datadog/appsec/contrib/rack/buffered_input.rb
215
269
  - lib/datadog/appsec/contrib/rack/ext.rb
216
270
  - lib/datadog/appsec/contrib/rack/gateway/request.rb
217
271
  - lib/datadog/appsec/contrib/rack/gateway/response.rb
218
272
  - lib/datadog/appsec/contrib/rack/gateway/watcher.rb
273
+ - lib/datadog/appsec/contrib/rack/input_peeker.rb
219
274
  - lib/datadog/appsec/contrib/rack/integration.rb
220
275
  - lib/datadog/appsec/contrib/rack/patcher.rb
221
276
  - lib/datadog/appsec/contrib/rack/request_body_middleware.rb
222
277
  - lib/datadog/appsec/contrib/rack/request_middleware.rb
223
- - lib/datadog/appsec/contrib/rails/ext.rb
278
+ - lib/datadog/appsec/contrib/rack/response_body.rb
224
279
  - lib/datadog/appsec/contrib/rails/framework.rb
225
280
  - lib/datadog/appsec/contrib/rails/gateway/request.rb
226
281
  - lib/datadog/appsec/contrib/rails/gateway/watcher.rb
@@ -241,6 +296,8 @@ files:
241
296
  - lib/datadog/appsec/contrib/sinatra/patcher.rb
242
297
  - lib/datadog/appsec/contrib/sinatra/patches/json_patch.rb
243
298
  - lib/datadog/appsec/contrib/sinatra/request_middleware.rb
299
+ - lib/datadog/appsec/counter_sampler.rb
300
+ - lib/datadog/appsec/default_header_tags.rb
244
301
  - lib/datadog/appsec/event.rb
245
302
  - lib/datadog/appsec/ext.rb
246
303
  - lib/datadog/appsec/extensions.rb
@@ -259,6 +316,10 @@ files:
259
316
  - lib/datadog/appsec/rate_limiter.rb
260
317
  - lib/datadog/appsec/remote.rb
261
318
  - lib/datadog/appsec/response.rb
319
+ - lib/datadog/appsec/route_normalizer.rb
320
+ - lib/datadog/appsec/route_normalizer/rails_route_pattern.rb
321
+ - lib/datadog/appsec/route_normalizer/route_pattern.rb
322
+ - lib/datadog/appsec/route_normalizer/route_text.rb
262
323
  - lib/datadog/appsec/sample_rate.rb
263
324
  - lib/datadog/appsec/security_engine.rb
264
325
  - lib/datadog/appsec/security_engine/engine.rb
@@ -270,8 +331,11 @@ files:
270
331
  - lib/datadog/appsec/utils.rb
271
332
  - lib/datadog/appsec/utils/hash_coercion.rb
272
333
  - lib/datadog/appsec/utils/http.rb
334
+ - lib/datadog/appsec/utils/http/body.rb
335
+ - lib/datadog/appsec/utils/http/body_reader.rb
273
336
  - lib/datadog/appsec/utils/http/media_range.rb
274
337
  - lib/datadog/appsec/utils/http/media_type.rb
338
+ - lib/datadog/appsec/utils/http/url_encoded.rb
275
339
  - lib/datadog/auto_instrument.rb
276
340
  - lib/datadog/auto_instrument_base.rb
277
341
  - lib/datadog/core.rb
@@ -295,9 +359,11 @@ files:
295
359
  - lib/datadog/core/configuration/settings.rb
296
360
  - lib/datadog/core/configuration/stable_config.rb
297
361
  - lib/datadog/core/configuration/supported_configurations.rb
362
+ - lib/datadog/core/contrib/rails/railtie.rb
298
363
  - lib/datadog/core/contrib/rails/utils.rb
299
364
  - lib/datadog/core/crashtracking/component.rb
300
365
  - lib/datadog/core/crashtracking/tag_builder.rb
366
+ - lib/datadog/core/ddsketch.rb
301
367
  - lib/datadog/core/deprecations.rb
302
368
  - lib/datadog/core/diagnostics/environment_logger.rb
303
369
  - lib/datadog/core/diagnostics/health.rb
@@ -312,15 +378,19 @@ files:
312
378
  - lib/datadog/core/environment/git.rb
313
379
  - lib/datadog/core/environment/identity.rb
314
380
  - lib/datadog/core/environment/platform.rb
381
+ - lib/datadog/core/environment/process.rb
315
382
  - lib/datadog/core/environment/socket.rb
316
383
  - lib/datadog/core/environment/thread_count.rb
317
384
  - lib/datadog/core/environment/variable_helpers.rb
318
385
  - lib/datadog/core/environment/vm_cache.rb
319
386
  - lib/datadog/core/environment/yjit.rb
320
387
  - lib/datadog/core/error.rb
388
+ - lib/datadog/core/evp.rb
321
389
  - lib/datadog/core/extensions.rb
390
+ - lib/datadog/core/feature_flags.rb
322
391
  - lib/datadog/core/git/ext.rb
323
392
  - lib/datadog/core/header_collection.rb
393
+ - lib/datadog/core/knuth_sampler.rb
324
394
  - lib/datadog/core/logger.rb
325
395
  - lib/datadog/core/logging/ext.rb
326
396
  - lib/datadog/core/metrics/client.rb
@@ -350,8 +420,6 @@ files:
350
420
  - lib/datadog/core/remote/tie/tracing.rb
351
421
  - lib/datadog/core/remote/transport/config.rb
352
422
  - lib/datadog/core/remote/transport/http.rb
353
- - lib/datadog/core/remote/transport/http/api.rb
354
- - lib/datadog/core/remote/transport/http/client.rb
355
423
  - lib/datadog/core/remote/transport/http/config.rb
356
424
  - lib/datadog/core/remote/transport/http/negotiation.rb
357
425
  - lib/datadog/core/remote/transport/negotiation.rb
@@ -360,12 +428,15 @@ files:
360
428
  - lib/datadog/core/runtime/metrics.rb
361
429
  - lib/datadog/core/semaphore.rb
362
430
  - lib/datadog/core/tag_builder.rb
431
+ - lib/datadog/core/tag_normalizer.rb
363
432
  - lib/datadog/core/telemetry/component.rb
364
433
  - lib/datadog/core/telemetry/emitter.rb
365
434
  - lib/datadog/core/telemetry/event.rb
366
435
  - lib/datadog/core/telemetry/event/app_client_configuration_change.rb
367
436
  - lib/datadog/core/telemetry/event/app_closing.rb
368
437
  - lib/datadog/core/telemetry/event/app_dependencies_loaded.rb
438
+ - lib/datadog/core/telemetry/event/app_endpoints_loaded.rb
439
+ - lib/datadog/core/telemetry/event/app_extended_heartbeat.rb
369
440
  - lib/datadog/core/telemetry/event/app_heartbeat.rb
370
441
  - lib/datadog/core/telemetry/event/app_integrations_change.rb
371
442
  - lib/datadog/core/telemetry/event/app_started.rb
@@ -384,8 +455,6 @@ files:
384
455
  - lib/datadog/core/telemetry/metrics_manager.rb
385
456
  - lib/datadog/core/telemetry/request.rb
386
457
  - lib/datadog/core/telemetry/transport/http.rb
387
- - lib/datadog/core/telemetry/transport/http/api.rb
388
- - lib/datadog/core/telemetry/transport/http/client.rb
389
458
  - lib/datadog/core/telemetry/transport/http/telemetry.rb
390
459
  - lib/datadog/core/telemetry/transport/telemetry.rb
391
460
  - lib/datadog/core/telemetry/worker.rb
@@ -399,24 +468,29 @@ files:
399
468
  - lib/datadog/core/transport/http/api/fallbacks.rb
400
469
  - lib/datadog/core/transport/http/api/instance.rb
401
470
  - lib/datadog/core/transport/http/api/map.rb
402
- - lib/datadog/core/transport/http/api/spec.rb
403
471
  - lib/datadog/core/transport/http/builder.rb
472
+ - lib/datadog/core/transport/http/client.rb
404
473
  - lib/datadog/core/transport/http/env.rb
405
474
  - lib/datadog/core/transport/http/response.rb
406
475
  - lib/datadog/core/transport/parcel.rb
407
476
  - lib/datadog/core/transport/request.rb
408
477
  - lib/datadog/core/transport/response.rb
478
+ - lib/datadog/core/transport/transport.rb
409
479
  - lib/datadog/core/utils.rb
410
480
  - lib/datadog/core/utils/at_fork_monkey_patch.rb
411
- - lib/datadog/core/utils/base64.rb
481
+ - lib/datadog/core/utils/base64_codec.rb
412
482
  - lib/datadog/core/utils/duration.rb
483
+ - lib/datadog/core/utils/enumerable_compat.rb
484
+ - lib/datadog/core/utils/fnv.rb
413
485
  - lib/datadog/core/utils/forking.rb
414
486
  - lib/datadog/core/utils/hash.rb
487
+ - lib/datadog/core/utils/lru_cache.rb
415
488
  - lib/datadog/core/utils/network.rb
416
489
  - lib/datadog/core/utils/only_once.rb
417
490
  - lib/datadog/core/utils/only_once_successful.rb
418
491
  - lib/datadog/core/utils/safe_dup.rb
419
492
  - lib/datadog/core/utils/sequence.rb
493
+ - lib/datadog/core/utils/spawn_monkey_patch.rb
420
494
  - lib/datadog/core/utils/time.rb
421
495
  - lib/datadog/core/utils/truncation.rb
422
496
  - lib/datadog/core/utils/url.rb
@@ -434,18 +508,35 @@ files:
434
508
  - lib/datadog/core/workers/polling.rb
435
509
  - lib/datadog/core/workers/queue.rb
436
510
  - lib/datadog/core/workers/runtime_metrics.rb
511
+ - lib/datadog/data_streams.rb
512
+ - lib/datadog/data_streams/configuration.rb
513
+ - lib/datadog/data_streams/ext.rb
514
+ - lib/datadog/data_streams/extensions.rb
515
+ - lib/datadog/data_streams/pathway_context.rb
516
+ - lib/datadog/data_streams/processor.rb
517
+ - lib/datadog/data_streams/transport/http.rb
518
+ - lib/datadog/data_streams/transport/http/stats.rb
519
+ - lib/datadog/data_streams/transport/stats.rb
437
520
  - lib/datadog/di.rb
438
521
  - lib/datadog/di/base.rb
439
522
  - lib/datadog/di/boot.rb
523
+ - lib/datadog/di/capture_expression.rb
524
+ - lib/datadog/di/capture_expression_evaluator.rb
525
+ - lib/datadog/di/capture_limits.rb
440
526
  - lib/datadog/di/code_tracker.rb
441
527
  - lib/datadog/di/component.rb
442
528
  - lib/datadog/di/configuration.rb
443
- - lib/datadog/di/configuration/settings.rb
529
+ - lib/datadog/di/context.rb
444
530
  - lib/datadog/di/contrib.rb
445
531
  - lib/datadog/di/contrib/active_record.rb
446
532
  - lib/datadog/di/contrib/railtie.rb
533
+ - lib/datadog/di/el.rb
534
+ - lib/datadog/di/el/compiler.rb
535
+ - lib/datadog/di/el/evaluator.rb
536
+ - lib/datadog/di/el/expression.rb
447
537
  - lib/datadog/di/error.rb
448
538
  - lib/datadog/di/extensions.rb
539
+ - lib/datadog/di/fatal_exceptions.rb
449
540
  - lib/datadog/di/instrumenter.rb
450
541
  - lib/datadog/di/logger.rb
451
542
  - lib/datadog/di/preload.rb
@@ -456,13 +547,13 @@ files:
456
547
  - lib/datadog/di/probe_manager.rb
457
548
  - lib/datadog/di/probe_notification_builder.rb
458
549
  - lib/datadog/di/probe_notifier_worker.rb
550
+ - lib/datadog/di/probe_repository.rb
551
+ - lib/datadog/di/proc_responder.rb
459
552
  - lib/datadog/di/redactor.rb
460
553
  - lib/datadog/di/remote.rb
461
554
  - lib/datadog/di/serializer.rb
462
555
  - lib/datadog/di/transport/diagnostics.rb
463
556
  - lib/datadog/di/transport/http.rb
464
- - lib/datadog/di/transport/http/api.rb
465
- - lib/datadog/di/transport/http/client.rb
466
557
  - lib/datadog/di/transport/http/diagnostics.rb
467
558
  - lib/datadog/di/transport/http/input.rb
468
559
  - lib/datadog/di/transport/input.rb
@@ -471,7 +562,6 @@ files:
471
562
  - lib/datadog/error_tracking/collector.rb
472
563
  - lib/datadog/error_tracking/component.rb
473
564
  - lib/datadog/error_tracking/configuration.rb
474
- - lib/datadog/error_tracking/configuration/settings.rb
475
565
  - lib/datadog/error_tracking/ext.rb
476
566
  - lib/datadog/error_tracking/extensions.rb
477
567
  - lib/datadog/error_tracking/filters.rb
@@ -480,16 +570,46 @@ files:
480
570
  - lib/datadog/kit/appsec/events/v2.rb
481
571
  - lib/datadog/kit/enable_core_dumps.rb
482
572
  - lib/datadog/kit/identity.rb
573
+ - lib/datadog/kit/tracing/method_tracer.rb
574
+ - lib/datadog/open_feature.rb
575
+ - lib/datadog/open_feature/component.rb
576
+ - lib/datadog/open_feature/configuration.rb
577
+ - lib/datadog/open_feature/evaluation_engine.rb
578
+ - lib/datadog/open_feature/exposures/batch_builder.rb
579
+ - lib/datadog/open_feature/exposures/buffer.rb
580
+ - lib/datadog/open_feature/exposures/deduplicator.rb
581
+ - lib/datadog/open_feature/exposures/event.rb
582
+ - lib/datadog/open_feature/exposures/reporter.rb
583
+ - lib/datadog/open_feature/exposures/worker.rb
584
+ - lib/datadog/open_feature/ext.rb
585
+ - lib/datadog/open_feature/flag_evaluation/aggregator.rb
586
+ - lib/datadog/open_feature/flag_evaluation/writer.rb
587
+ - lib/datadog/open_feature/hooks/flag_eval_evp_hook.rb
588
+ - lib/datadog/open_feature/hooks/flag_eval_metrics_hook.rb
589
+ - lib/datadog/open_feature/metrics/flag_eval_metrics.rb
590
+ - lib/datadog/open_feature/native_evaluator.rb
591
+ - lib/datadog/open_feature/noop_evaluator.rb
592
+ - lib/datadog/open_feature/provider.rb
593
+ - lib/datadog/open_feature/remote.rb
594
+ - lib/datadog/open_feature/resolution_details.rb
595
+ - lib/datadog/open_feature/transport.rb
483
596
  - lib/datadog/opentelemetry.rb
484
597
  - lib/datadog/opentelemetry/api/baggage.rb
485
- - lib/datadog/opentelemetry/api/baggage.rbs
486
598
  - lib/datadog/opentelemetry/api/context.rb
487
599
  - lib/datadog/opentelemetry/api/trace/span.rb
600
+ - lib/datadog/opentelemetry/configuration/settings.rb
601
+ - lib/datadog/opentelemetry/ext.rb
602
+ - lib/datadog/opentelemetry/logs.rb
603
+ - lib/datadog/opentelemetry/metrics.rb
604
+ - lib/datadog/opentelemetry/sdk.rb
488
605
  - lib/datadog/opentelemetry/sdk/configurator.rb
489
606
  - lib/datadog/opentelemetry/sdk/id_generator.rb
607
+ - lib/datadog/opentelemetry/sdk/logs_exporter.rb
608
+ - lib/datadog/opentelemetry/sdk/metrics_exporter.rb
490
609
  - lib/datadog/opentelemetry/sdk/propagator.rb
491
610
  - lib/datadog/opentelemetry/sdk/span_processor.rb
492
611
  - lib/datadog/opentelemetry/sdk/trace/span.rb
612
+ - lib/datadog/opentelemetry/signal_configuration.rb
493
613
  - lib/datadog/opentelemetry/trace.rb
494
614
  - lib/datadog/profiling.rb
495
615
  - lib/datadog/profiling/collectors/code_provenance.rb
@@ -504,6 +624,7 @@ files:
504
624
  - lib/datadog/profiling/exporter.rb
505
625
  - lib/datadog/profiling/ext.rb
506
626
  - lib/datadog/profiling/ext/dir_monkey_patches.rb
627
+ - lib/datadog/profiling/ext/exec_monkey_patch.rb
507
628
  - lib/datadog/profiling/flush.rb
508
629
  - lib/datadog/profiling/http_transport.rb
509
630
  - lib/datadog/profiling/load_native_extension.rb
@@ -517,7 +638,24 @@ files:
517
638
  - lib/datadog/profiling/tasks/exec.rb
518
639
  - lib/datadog/profiling/tasks/help.rb
519
640
  - lib/datadog/profiling/tasks/setup.rb
641
+ - lib/datadog/ruby_version.rb
520
642
  - lib/datadog/single_step_instrument.rb
643
+ - lib/datadog/symbol_database.rb
644
+ - lib/datadog/symbol_database/component.rb
645
+ - lib/datadog/symbol_database/configuration.rb
646
+ - lib/datadog/symbol_database/extensions.rb
647
+ - lib/datadog/symbol_database/extractor.rb
648
+ - lib/datadog/symbol_database/file_hash.rb
649
+ - lib/datadog/symbol_database/logger.rb
650
+ - lib/datadog/symbol_database/remote.rb
651
+ - lib/datadog/symbol_database/scope.rb
652
+ - lib/datadog/symbol_database/scope_batcher.rb
653
+ - lib/datadog/symbol_database/service_version.rb
654
+ - lib/datadog/symbol_database/symbol.rb
655
+ - lib/datadog/symbol_database/transport.rb
656
+ - lib/datadog/symbol_database/transport/http.rb
657
+ - lib/datadog/symbol_database/transport/http/endpoint.rb
658
+ - lib/datadog/symbol_database/uploader.rb
521
659
  - lib/datadog/tracing.rb
522
660
  - lib/datadog/tracing/analytics.rb
523
661
  - lib/datadog/tracing/buffer.rb
@@ -568,6 +706,7 @@ files:
568
706
  - lib/datadog/tracing/contrib/action_view/patcher.rb
569
707
  - lib/datadog/tracing/contrib/action_view/utils.rb
570
708
  - lib/datadog/tracing/contrib/active_job/configuration/settings.rb
709
+ - lib/datadog/tracing/contrib/active_job/data_streams.rb
571
710
  - lib/datadog/tracing/contrib/active_job/event.rb
572
711
  - lib/datadog/tracing/contrib/active_job/events.rb
573
712
  - lib/datadog/tracing/contrib/active_job/events/discard.rb
@@ -750,12 +889,15 @@ files:
750
889
  - lib/datadog/tracing/contrib/kafka/events/produce_operation/send_messages.rb
751
890
  - lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb
752
891
  - lib/datadog/tracing/contrib/kafka/ext.rb
892
+ - lib/datadog/tracing/contrib/kafka/instrumentation/consumer.rb
893
+ - lib/datadog/tracing/contrib/kafka/instrumentation/producer.rb
753
894
  - lib/datadog/tracing/contrib/kafka/integration.rb
754
895
  - lib/datadog/tracing/contrib/kafka/patcher.rb
755
896
  - lib/datadog/tracing/contrib/karafka.rb
756
897
  - lib/datadog/tracing/contrib/karafka/configuration/settings.rb
757
898
  - lib/datadog/tracing/contrib/karafka/distributed/propagation.rb
758
899
  - lib/datadog/tracing/contrib/karafka/ext.rb
900
+ - lib/datadog/tracing/contrib/karafka/framework.rb
759
901
  - lib/datadog/tracing/contrib/karafka/integration.rb
760
902
  - lib/datadog/tracing/contrib/karafka/monitor.rb
761
903
  - lib/datadog/tracing/contrib/karafka/patcher.rb
@@ -819,6 +961,7 @@ files:
819
961
  - lib/datadog/tracing/contrib/rack/middlewares.rb
820
962
  - lib/datadog/tracing/contrib/rack/patcher.rb
821
963
  - lib/datadog/tracing/contrib/rack/request_queue.rb
964
+ - lib/datadog/tracing/contrib/rack/route_inference.rb
822
965
  - lib/datadog/tracing/contrib/rack/trace_proxy_middleware.rb
823
966
  - lib/datadog/tracing/contrib/rails/auto_instrument_railtie.rb
824
967
  - lib/datadog/tracing/contrib/rails/configuration/settings.rb
@@ -928,8 +1071,16 @@ files:
928
1071
  - lib/datadog/tracing/contrib/trilogy/integration.rb
929
1072
  - lib/datadog/tracing/contrib/trilogy/patcher.rb
930
1073
  - lib/datadog/tracing/contrib/utils/database.rb
931
- - lib/datadog/tracing/contrib/utils/quantization/hash.rb
1074
+ - lib/datadog/tracing/contrib/utils/quantization/hash_formatter.rb
932
1075
  - lib/datadog/tracing/contrib/utils/quantization/http.rb
1076
+ - lib/datadog/tracing/contrib/waterdrop.rb
1077
+ - lib/datadog/tracing/contrib/waterdrop/configuration/settings.rb
1078
+ - lib/datadog/tracing/contrib/waterdrop/distributed/propagation.rb
1079
+ - lib/datadog/tracing/contrib/waterdrop/ext.rb
1080
+ - lib/datadog/tracing/contrib/waterdrop/integration.rb
1081
+ - lib/datadog/tracing/contrib/waterdrop/middleware.rb
1082
+ - lib/datadog/tracing/contrib/waterdrop/patcher.rb
1083
+ - lib/datadog/tracing/contrib/waterdrop/producer.rb
933
1084
  - lib/datadog/tracing/correlation.rb
934
1085
  - lib/datadog/tracing/diagnostics/environment_logger.rb
935
1086
  - lib/datadog/tracing/diagnostics/ext.rb
@@ -946,6 +1097,7 @@ files:
946
1097
  - lib/datadog/tracing/distributed/propagation_policy.rb
947
1098
  - lib/datadog/tracing/distributed/trace_context.rb
948
1099
  - lib/datadog/tracing/event.rb
1100
+ - lib/datadog/tracing/ext.rb
949
1101
  - lib/datadog/tracing/flush.rb
950
1102
  - lib/datadog/tracing/metadata.rb
951
1103
  - lib/datadog/tracing/metadata/analytics.rb
@@ -984,7 +1136,6 @@ files:
984
1136
  - lib/datadog/tracing/trace_segment.rb
985
1137
  - lib/datadog/tracing/tracer.rb
986
1138
  - lib/datadog/tracing/transport/http.rb
987
- - lib/datadog/tracing/transport/http/api.rb
988
1139
  - lib/datadog/tracing/transport/http/client.rb
989
1140
  - lib/datadog/tracing/transport/http/statistics.rb
990
1141
  - lib/datadog/tracing/transport/http/traces.rb
@@ -998,7 +1149,6 @@ files:
998
1149
  - lib/datadog/tracing/transport/traces.rb
999
1150
  - lib/datadog/tracing/utils.rb
1000
1151
  - lib/datadog/tracing/workers.rb
1001
- - lib/datadog/tracing/workers/trace_writer.rb
1002
1152
  - lib/datadog/tracing/writer.rb
1003
1153
  - lib/datadog/version.rb
1004
1154
  homepage: https://github.com/DataDog/dd-trace-rb
@@ -1007,9 +1157,9 @@ licenses:
1007
1157
  - Apache-2.0
1008
1158
  metadata:
1009
1159
  allowed_push_host: https://rubygems.org
1010
- changelog_uri: https://github.com/DataDog/dd-trace-rb/blob/v2.21.0/CHANGELOG.md
1011
- source_code_uri: https://github.com/DataDog/dd-trace-rb/tree/v2.21.0
1012
- post_install_message:
1160
+ changelog_uri: https://github.com/DataDog/dd-trace-rb/blob/v2.38.0/CHANGELOG.md
1161
+ source_code_uri: https://github.com/DataDog/dd-trace-rb/tree/v2.38.0
1162
+ post_install_message: 'JRuby support in the datadog gem is deprecated. Details: https://dtdg.co/jruby-deprecation'
1013
1163
  rdoc_options: []
1014
1164
  require_paths:
1015
1165
  - lib
@@ -1020,15 +1170,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
1020
1170
  version: 2.5.0
1021
1171
  - - "<"
1022
1172
  - !ruby/object:Gem::Version
1023
- version: '3.5'
1173
+ version: '4.1'
1024
1174
  required_rubygems_version: !ruby/object:Gem::Requirement
1025
1175
  requirements:
1026
1176
  - - ">="
1027
1177
  - !ruby/object:Gem::Version
1028
1178
  version: 2.0.0
1029
1179
  requirements: []
1030
- rubygems_version: 3.5.22
1031
- signing_key:
1180
+ rubygems_version: 4.0.3
1032
1181
  specification_version: 4
1033
1182
  summary: Datadog tracing code for your Ruby applications
1034
1183
  test_files: []
@@ -1,21 +0,0 @@
1
- #include "extconf.h"
2
-
3
- // This file is the dual of clock_id_from_pthread.c for systems where that info
4
- // is not available.
5
- #ifndef HAVE_PTHREAD_GETCPUCLOCKID
6
-
7
- #include "clock_id.h"
8
- #include "helpers.h"
9
- #include "datadog_ruby_common.h"
10
-
11
- void self_test_clock_id(void) { } // Nothing to check
12
-
13
- thread_cpu_time_id thread_cpu_time_id_for(DDTRACE_UNUSED VALUE _thread) {
14
- return (thread_cpu_time_id) {.valid = false};
15
- }
16
-
17
- thread_cpu_time thread_cpu_time_for(DDTRACE_UNUSED thread_cpu_time_id _time_id) {
18
- return (thread_cpu_time) {.valid = false};
19
- }
20
-
21
- #endif
@@ -1,26 +0,0 @@
1
- # Developing on macOS
2
-
3
- As of this writing (August 2024), the libdatadog builds on rubygems.org only support Linux.
4
-
5
- We don't officially support using libdatadog for Ruby on other platforms yet, but it is possible to use it for local development on macOS.
6
- (**Note that you don't need these instructions if you develop inside docker.**)
7
-
8
- Here's how you can do so:
9
-
10
- 1. [Install rust](https://www.rust-lang.org/tools/install)
11
- 2. Install `cbindgen`: `cargo install cbindgen`
12
- 3. Clone [libdatadog](https://github.com/datadog/libdatadog)
13
- 4. Create a folder for building into based on your ruby platform:
14
-
15
- ```
16
- export DD_RUBY_PLATFORM=`ruby -e 'puts Gem::Platform.local.to_s'`
17
- mkdir -p my-libdatadog-build/$DD_RUBY_PLATFORM
18
- ```
19
-
20
- 5. From inside of the libdatadog repo, build libdatadog into this folder: `./build-profiling-ffi.sh my-libdatadog-build/$DD_RUBY_PLATFORM`
21
- 6. Tell Ruby where to find libdatadog: `export LIBDATADOG_VENDOR_OVERRIDE=/full/path/to/my-libdatadog-build/` (Notice no platform here)
22
- 7. From dd-trace-rb, run `bundle exec rake clean compile`
23
-
24
- If you additionally want to run the profiler test suite, also remember to `export DD_PROFILING_MACOS_TESTING=true` and re-run `rake clean compile`.
25
-
26
- These instructions can quickly get outdated, so feel free to open an issue if they're not working (and/or ping @ivoanjo).