datadog 2.46.0 → 2.48.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 (286) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +56 -2
  3. data/LICENSE-3rdparty.csv +1 -0
  4. data/ext/datadog_profiling_native_extension/collectors_stack.c +143 -86
  5. data/ext/datadog_profiling_native_extension/collectors_stack.h +9 -1
  6. data/ext/datadog_profiling_native_extension/collectors_thread_context.c +6 -1
  7. data/ext/datadog_profiling_native_extension/extconf.rb +7 -13
  8. data/ext/datadog_profiling_native_extension/native_extension_helpers.rb +3 -3
  9. data/ext/datadog_profiling_native_extension/private_vm_api_access.c +67 -14
  10. data/ext/datadog_profiling_native_extension/private_vm_api_access.h +8 -1
  11. data/ext/datadog_profiling_native_extension/profiling.c +1 -1
  12. data/ext/libdatadog_api/extconf.rb +9 -7
  13. data/ext/libdatadog_api/trace_exporter.c +34 -7
  14. data/ext/libdatadog_extconf_helpers.rb +2 -2
  15. data/lib/datadog/ai_guard/component.rb +1 -1
  16. data/lib/datadog/ai_guard/contrib/rack/request_middleware.rb +1 -9
  17. data/lib/datadog/ai_guard/contrib/rails/patcher.rb +1 -1
  18. data/lib/datadog/ai_guard/contrib/ruby_llm/message_adapter.rb +1 -1
  19. data/lib/datadog/ai_guard/contrib/ruby_llm/redaction_change_set.rb +3 -3
  20. data/lib/datadog/ai_guard/evaluation/client.rb +3 -3
  21. data/lib/datadog/ai_guard/evaluation.rb +2 -2
  22. data/lib/datadog/ai_guard/http_client.rb +3 -2
  23. data/lib/datadog/ai_guard/redaction.rb +1 -1
  24. data/lib/datadog/appsec/api_security/endpoint_collection/rails_collector.rb +1 -1
  25. data/lib/datadog/appsec/assets/waf_rules/README.md +3 -3
  26. data/lib/datadog/appsec/assets/waf_rules/recommended.json +5366 -1517
  27. data/lib/datadog/appsec/assets/waf_rules/strict.json +2 -2
  28. data/lib/datadog/appsec/autoload.rb +1 -1
  29. data/lib/datadog/appsec/component.rb +1 -1
  30. data/lib/datadog/appsec/compressed_json.rb +1 -1
  31. data/lib/datadog/appsec/configuration.rb +3 -3
  32. data/lib/datadog/appsec/context.rb +1 -1
  33. data/lib/datadog/appsec/contrib/active_record/instrumentation.rb +11 -1
  34. data/lib/datadog/appsec/contrib/active_record/patcher.rb +12 -4
  35. data/lib/datadog/appsec/contrib/aws_lambda/gateway/watcher.rb +2 -2
  36. data/lib/datadog/appsec/contrib/aws_lambda/waf_addresses.rb +1 -1
  37. data/lib/datadog/appsec/contrib/devise/configuration.rb +1 -1
  38. data/lib/datadog/appsec/contrib/devise/patches/signin_tracking_patch.rb +1 -1
  39. data/lib/datadog/appsec/contrib/devise/patches/signup_tracking_patch.rb +1 -1
  40. data/lib/datadog/appsec/contrib/devise/tracking_middleware.rb +1 -1
  41. data/lib/datadog/appsec/contrib/excon/ssrf_detection_middleware.rb +1 -1
  42. data/lib/datadog/appsec/contrib/faraday/ssrf_detection_middleware.rb +1 -1
  43. data/lib/datadog/appsec/contrib/graphql/gateway/multiplex.rb +7 -7
  44. data/lib/datadog/appsec/contrib/graphql/gateway/watcher.rb +1 -1
  45. data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +3 -3
  46. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +5 -5
  47. data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +31 -4
  48. data/lib/datadog/appsec/contrib/rails/patcher.rb +2 -2
  49. data/lib/datadog/appsec/contrib/rails/patches/render_to_body_patch.rb +8 -7
  50. data/lib/datadog/appsec/contrib/rest_client/request_ssrf_detection_patch.rb +1 -1
  51. data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +17 -5
  52. data/lib/datadog/appsec/contrib/sinatra/patcher.rb +1 -1
  53. data/lib/datadog/appsec/contrib/sinatra/patches/json_patch.rb +8 -7
  54. data/lib/datadog/appsec/metrics/collector.rb +5 -5
  55. data/lib/datadog/appsec/metrics/telemetry_exporter.rb +3 -3
  56. data/lib/datadog/appsec/monitor/gateway/watcher.rb +2 -2
  57. data/lib/datadog/appsec/processor/rule_loader.rb +1 -1
  58. data/lib/datadog/appsec/response.rb +1 -1
  59. data/lib/datadog/appsec/security_engine/engine.rb +8 -7
  60. data/lib/datadog/appsec/security_engine/runner.rb +2 -2
  61. data/lib/datadog/appsec/trace_keeper.rb +1 -1
  62. data/lib/datadog/appsec.rb +1 -1
  63. data/lib/datadog/core/configuration/agent_settings_resolver.rb +14 -13
  64. data/lib/datadog/core/configuration/agentless_settings_resolver.rb +2 -2
  65. data/lib/datadog/core/configuration/components.rb +12 -11
  66. data/lib/datadog/core/configuration/components_state.rb +8 -1
  67. data/lib/datadog/core/configuration/settings.rb +5 -2
  68. data/lib/datadog/core/configuration/supported_configurations.rb +3 -0
  69. data/lib/datadog/core/configuration.rb +2 -2
  70. data/lib/datadog/core/crashtracking/component.rb +1 -1
  71. data/lib/datadog/core/diagnostics/environment_logger.rb +1 -1
  72. data/lib/datadog/core/environment/cgroup.rb +2 -2
  73. data/lib/datadog/core/environment/container.rb +3 -3
  74. data/lib/datadog/core/metrics/client.rb +6 -6
  75. data/lib/datadog/core/process_discovery.rb +1 -1
  76. data/lib/datadog/core/remote/client.rb +44 -3
  77. data/lib/datadog/core/remote/dispatcher.rb +34 -3
  78. data/lib/datadog/core/remote/tie/tracing.rb +4 -3
  79. data/lib/datadog/core/remote/transport/http.rb +2 -2
  80. data/lib/datadog/core/runtime/metrics.rb +14 -14
  81. data/lib/datadog/core/semaphore.rb +3 -1
  82. data/lib/datadog/core/telemetry/event/app_started.rb +9 -9
  83. data/lib/datadog/core/telemetry/logger.rb +1 -1
  84. data/lib/datadog/core/telemetry/logging.rb +1 -1
  85. data/lib/datadog/core/telemetry/request.rb +9 -3
  86. data/lib/datadog/core/telemetry/transport/http.rb +2 -2
  87. data/lib/datadog/core/telemetry/worker.rb +1 -1
  88. data/lib/datadog/core/transport/http/adapters/net.rb +1 -1
  89. data/lib/datadog/core/transport/http/adapters/unix_socket.rb +1 -1
  90. data/lib/datadog/core/transport/http/builder.rb +1 -1
  91. data/lib/datadog/core/transport/http.rb +3 -3
  92. data/lib/datadog/core/utils/at_fork_monkey_patch.rb +2 -2
  93. data/lib/datadog/core/workers/async.rb +1 -1
  94. data/lib/datadog/core/workers/runtime_metrics.rb +2 -2
  95. data/lib/datadog/data_streams/pathway_context.rb +1 -1
  96. data/lib/datadog/data_streams/processor.rb +48 -27
  97. data/lib/datadog/data_streams/transport/http.rb +1 -1
  98. data/lib/datadog/data_streams.rb +16 -0
  99. data/lib/datadog/di/capture_expression_evaluator.rb +48 -11
  100. data/lib/datadog/di/component.rb +73 -2
  101. data/lib/datadog/di/configuration.rb +19 -0
  102. data/lib/datadog/di/contrib/active_record.rb +1 -1
  103. data/lib/datadog/di/el/compiler.rb +4 -4
  104. data/lib/datadog/di/el/evaluator.rb +247 -43
  105. data/lib/datadog/di/el/expression.rb +36 -6
  106. data/lib/datadog/di/error.rb +16 -0
  107. data/lib/datadog/di/guardrails_telemetry/reason.rb +3 -2
  108. data/lib/datadog/di/instrumenter.rb +39 -10
  109. data/lib/datadog/di/probe_notification_builder.rb +58 -10
  110. data/lib/datadog/di/probe_notifier_worker.rb +1 -1
  111. data/lib/datadog/di/remote.rb +46 -2
  112. data/lib/datadog/di/serializer.rb +47 -13
  113. data/lib/datadog/di.rb +27 -0
  114. data/lib/datadog/error_tracking/component.rb +1 -1
  115. data/lib/datadog/error_tracking/configuration.rb +1 -1
  116. data/lib/datadog/kit/appsec/events/v2.rb +6 -6
  117. data/lib/datadog/kit/appsec/events.rb +1 -1
  118. data/lib/datadog/kit/enable_core_dumps.rb +1 -1
  119. data/lib/datadog/kit/identity.rb +1 -1
  120. data/lib/datadog/open_feature/activation.rb +26 -1
  121. data/lib/datadog/open_feature/agentless/configuration_source.rb +94 -15
  122. data/lib/datadog/open_feature/component.rb +22 -2
  123. data/lib/datadog/open_feature/configuration/agentless_endpoint.rb +6 -0
  124. data/lib/datadog/open_feature/configuration.rb +10 -4
  125. data/lib/datadog/open_feature/evaluation_engine.rb +62 -4
  126. data/lib/datadog/open_feature/exposures/buffer.rb +4 -0
  127. data/lib/datadog/open_feature/exposures/reporter.rb +17 -4
  128. data/lib/datadog/open_feature/exposures/worker.rb +37 -6
  129. data/lib/datadog/open_feature/flag_evaluation/aggregator.rb +5 -5
  130. data/lib/datadog/open_feature/flag_evaluation/writer.rb +1 -1
  131. data/lib/datadog/open_feature/hooks/debug_logging_hook.rb +56 -0
  132. data/lib/datadog/open_feature/hooks/evaluation_telemetry_opt_out_hook.rb +25 -0
  133. data/lib/datadog/open_feature/hooks/span_enrichment_hook.rb +2 -2
  134. data/lib/datadog/open_feature/metrics/flag_eval_metrics.rb +1 -1
  135. data/lib/datadog/open_feature/native_evaluator.rb +1 -1
  136. data/lib/datadog/open_feature/noop_evaluator.rb +1 -1
  137. data/lib/datadog/open_feature/provider.rb +69 -12
  138. data/lib/datadog/open_feature/remote.rb +8 -1
  139. data/lib/datadog/open_feature/resolution_details.rb +2 -2
  140. data/lib/datadog/open_feature/transport.rb +6 -6
  141. data/lib/datadog/opentelemetry/api/context.rb +3 -3
  142. data/lib/datadog/opentelemetry/logs.rb +5 -5
  143. data/lib/datadog/opentelemetry/metrics.rb +3 -3
  144. data/lib/datadog/opentelemetry/sdk/propagator.rb +3 -3
  145. data/lib/datadog/opentelemetry/sdk/span_processor.rb +2 -2
  146. data/lib/datadog/opentelemetry/sdk/trace/span.rb +1 -1
  147. data/lib/datadog/profiling/collectors/code_provenance.rb +3 -3
  148. data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +4 -4
  149. data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +1 -1
  150. data/lib/datadog/profiling/collectors/info.rb +37 -6
  151. data/lib/datadog/profiling/collectors/thread_context.rb +1 -1
  152. data/lib/datadog/profiling/component.rb +41 -39
  153. data/lib/datadog/profiling/exporter.rb +4 -6
  154. data/lib/datadog/profiling/http_transport.rb +3 -3
  155. data/lib/datadog/profiling/profiler.rb +2 -2
  156. data/lib/datadog/profiling/scheduler.rb +2 -2
  157. data/lib/datadog/profiling/tag_builder.rb +1 -1
  158. data/lib/datadog/symbol_database/extractor.rb +8 -8
  159. data/lib/datadog/symbol_database/uploader.rb +1 -1
  160. data/lib/datadog/tracing/buffer.rb +3 -3
  161. data/lib/datadog/tracing/client_ip.rb +1 -1
  162. data/lib/datadog/tracing/component.rb +15 -10
  163. data/lib/datadog/tracing/configuration/dynamic/option.rb +2 -2
  164. data/lib/datadog/tracing/configuration/ext.rb +2 -0
  165. data/lib/datadog/tracing/configuration/settings.rb +14 -3
  166. data/lib/datadog/tracing/context.rb +1 -1
  167. data/lib/datadog/tracing/context_provider.rb +8 -0
  168. data/lib/datadog/tracing/contrib/action_cable/instrumentation.rb +2 -2
  169. data/lib/datadog/tracing/contrib/active_job/data_streams.rb +27 -2
  170. data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +2 -2
  171. data/lib/datadog/tracing/contrib/active_record/configuration/settings.rb +1 -1
  172. data/lib/datadog/tracing/contrib/active_record/utils.rb +1 -1
  173. data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +1 -1
  174. data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +1 -1
  175. data/lib/datadog/tracing/contrib/active_support/notifications/subscriber.rb +2 -2
  176. data/lib/datadog/tracing/contrib/active_support/notifications/subscription.rb +2 -2
  177. data/lib/datadog/tracing/contrib/aws/configuration/settings.rb +1 -1
  178. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +1 -1
  179. data/lib/datadog/tracing/contrib/dalli/configuration/settings.rb +1 -1
  180. data/lib/datadog/tracing/contrib/dalli/instrumentation.rb +1 -1
  181. data/lib/datadog/tracing/contrib/delayed_job/plugin.rb +2 -2
  182. data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +1 -1
  183. data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +3 -3
  184. data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +1 -1
  185. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +17 -12
  186. data/lib/datadog/tracing/contrib/ethon/multi_patch.rb +1 -1
  187. data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +1 -1
  188. data/lib/datadog/tracing/contrib/excon/middleware.rb +16 -9
  189. data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +1 -1
  190. data/lib/datadog/tracing/contrib/faraday/middleware.rb +14 -8
  191. data/lib/datadog/tracing/contrib/grape/endpoint.rb +4 -4
  192. data/lib/datadog/tracing/contrib/graphql/patcher.rb +1 -1
  193. data/lib/datadog/tracing/contrib/graphql/unified_trace.rb +3 -3
  194. data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +1 -1
  195. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +2 -2
  196. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +1 -1
  197. data/lib/datadog/tracing/contrib/grpc.rb +1 -1
  198. data/lib/datadog/tracing/contrib/hanami/action_tracer.rb +1 -1
  199. data/lib/datadog/tracing/contrib/hanami/plugin.rb +1 -1
  200. data/lib/datadog/tracing/contrib/hanami/renderer_policy_tracing.rb +1 -1
  201. data/lib/datadog/tracing/contrib/hanami/router_tracing.rb +1 -1
  202. data/lib/datadog/tracing/contrib/http/configuration/settings.rb +1 -1
  203. data/lib/datadog/tracing/contrib/http/instrumentation.rb +21 -6
  204. data/lib/datadog/tracing/contrib/http.rb +1 -1
  205. data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +1 -1
  206. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +14 -8
  207. data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +1 -1
  208. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +14 -8
  209. data/lib/datadog/tracing/contrib/kafka/instrumentation/consumer.rb +2 -2
  210. data/lib/datadog/tracing/contrib/kafka/instrumentation/producer.rb +2 -2
  211. data/lib/datadog/tracing/contrib/karafka/monitor.rb +1 -1
  212. data/lib/datadog/tracing/contrib/karafka/patcher.rb +1 -1
  213. data/lib/datadog/tracing/contrib/karafka.rb +1 -1
  214. data/lib/datadog/tracing/contrib/lograge/patcher.rb +1 -1
  215. data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +1 -1
  216. data/lib/datadog/tracing/contrib/mongodb/parsers.rb +1 -1
  217. data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +1 -1
  218. data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +1 -1
  219. data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +3 -3
  220. data/lib/datadog/tracing/contrib/opensearch/configuration/settings.rb +2 -2
  221. data/lib/datadog/tracing/contrib/opensearch/patcher.rb +3 -3
  222. data/lib/datadog/tracing/contrib/pg/configuration/settings.rb +1 -1
  223. data/lib/datadog/tracing/contrib/pg/instrumentation.rb +4 -4
  224. data/lib/datadog/tracing/contrib/presto/configuration/settings.rb +1 -1
  225. data/lib/datadog/tracing/contrib/presto/instrumentation.rb +4 -4
  226. data/lib/datadog/tracing/contrib/propagation/sql_comment.rb +1 -1
  227. data/lib/datadog/tracing/contrib/que/tracer.rb +1 -1
  228. data/lib/datadog/tracing/contrib/racecar/configuration/settings.rb +1 -1
  229. data/lib/datadog/tracing/contrib/racecar/events/batch.rb +1 -1
  230. data/lib/datadog/tracing/contrib/racecar/events/message.rb +1 -1
  231. data/lib/datadog/tracing/contrib/rack/middlewares.rb +3 -3
  232. data/lib/datadog/tracing/contrib/rack/patcher.rb +1 -1
  233. data/lib/datadog/tracing/contrib/rails/framework.rb +7 -7
  234. data/lib/datadog/tracing/contrib/rails/log_injection.rb +1 -1
  235. data/lib/datadog/tracing/contrib/rails/runner.rb +4 -4
  236. data/lib/datadog/tracing/contrib/redis/configuration/settings.rb +1 -1
  237. data/lib/datadog/tracing/contrib/redis/quantize.rb +1 -1
  238. data/lib/datadog/tracing/contrib/redis/tags.rb +1 -1
  239. data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +1 -1
  240. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +17 -10
  241. data/lib/datadog/tracing/contrib/sequel/database.rb +1 -1
  242. data/lib/datadog/tracing/contrib/sequel/dataset.rb +1 -1
  243. data/lib/datadog/tracing/contrib/shoryuken/tracer.rb +1 -1
  244. data/lib/datadog/tracing/contrib/sidekiq/client_tracer.rb +2 -2
  245. data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +2 -2
  246. data/lib/datadog/tracing/contrib/sidekiq.rb +1 -1
  247. data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +1 -1
  248. data/lib/datadog/tracing/contrib/status_range_env_parser.rb +1 -1
  249. data/lib/datadog/tracing/contrib/sucker_punch/instrumentation.rb +1 -1
  250. data/lib/datadog/tracing/contrib/trilogy/configuration/settings.rb +1 -1
  251. data/lib/datadog/tracing/contrib/trilogy/instrumentation.rb +3 -3
  252. data/lib/datadog/tracing/contrib/utils/quantization/http.rb +102 -0
  253. data/lib/datadog/tracing/contrib/waterdrop/middleware.rb +2 -2
  254. data/lib/datadog/tracing/contrib/waterdrop.rb +1 -1
  255. data/lib/datadog/tracing/diagnostics/environment_logger.rb +1 -1
  256. data/lib/datadog/tracing/distributed/b3_multi.rb +1 -1
  257. data/lib/datadog/tracing/distributed/b3_single.rb +1 -1
  258. data/lib/datadog/tracing/distributed/baggage.rb +3 -3
  259. data/lib/datadog/tracing/distributed/datadog.rb +3 -3
  260. data/lib/datadog/tracing/distributed/propagation.rb +7 -7
  261. data/lib/datadog/tracing/distributed/trace_context.rb +1 -1
  262. data/lib/datadog/tracing/distributed/trace_state/open_telemetry.rb +1 -1
  263. data/lib/datadog/tracing/otel_thread_context.rb +3 -3
  264. data/lib/datadog/tracing/pipeline.rb +1 -1
  265. data/lib/datadog/tracing/remote.rb +50 -19
  266. data/lib/datadog/tracing/sampling/priority_sampler.rb +1 -1
  267. data/lib/datadog/tracing/sampling/rule.rb +1 -1
  268. data/lib/datadog/tracing/sampling/rule_sampler.rb +1 -1
  269. data/lib/datadog/tracing/sampling/span/rule_parser.rb +2 -2
  270. data/lib/datadog/tracing/span_operation.rb +1 -1
  271. data/lib/datadog/tracing/trace_digest.rb +1 -1
  272. data/lib/datadog/tracing/trace_operation.rb +6 -6
  273. data/lib/datadog/tracing/tracer.rb +6 -6
  274. data/lib/datadog/tracing/transport/http/telemetry.rb +1 -1
  275. data/lib/datadog/tracing/transport/http.rb +2 -2
  276. data/lib/datadog/tracing/transport/io.rb +1 -1
  277. data/lib/datadog/tracing/transport/native.rb +3 -3
  278. data/lib/datadog/tracing/transport/statistics.rb +2 -2
  279. data/lib/datadog/tracing/transport/telemetry.rb +3 -1
  280. data/lib/datadog/tracing/transport/trace_formatter.rb +12 -12
  281. data/lib/datadog/tracing/transport/traces.rb +1 -1
  282. data/lib/datadog/tracing/utils.rb +1 -1
  283. data/lib/datadog/tracing/workers.rb +1 -1
  284. data/lib/datadog/version.rb +1 -1
  285. metadata +9 -8
  286. data/lib/datadog/appsec/utils/hash_coercion.rb +0 -23
@@ -15,7 +15,7 @@ module Datadog
15
15
  V4 = Traces::API::Endpoint.new(
16
16
  "/v0.4/traces",
17
17
  Core::Encoding::MsgpackEncoder,
18
- service_rates: true
18
+ service_rates: true,
19
19
  )
20
20
 
21
21
  V3 = Traces::API::Endpoint.new(
@@ -35,7 +35,7 @@ module Datadog
35
35
  Core::Transport::HTTP.build(
36
36
  agent_settings: agent_settings,
37
37
  logger: logger,
38
- headers: headers
38
+ headers: headers,
39
39
  ) do |transport|
40
40
  transport.api "v0.4", V4, fallback: "v0.3", default: true
41
41
  transport.api "v0.3", V3
@@ -21,7 +21,7 @@ module Datadog
21
21
  def default(options = {})
22
22
  new(
23
23
  options.fetch(:out, $stdout),
24
- options.fetch(:encoder, Core::Encoding::JSONEncoder)
24
+ options.fetch(:encoder, Core::Encoding::JSONEncoder),
25
25
  )
26
26
  end
27
27
  end
@@ -104,7 +104,7 @@ module Datadog
104
104
  env: env,
105
105
  service: service,
106
106
  version: version,
107
- client_computed_stats: !Datadog.configuration.apm.tracing.enabled
107
+ client_computed_stats: !Datadog.configuration.apm.tracing.enabled,
108
108
  )
109
109
  @exporter = exporter
110
110
 
@@ -208,7 +208,7 @@ module Datadog
208
208
  @fork_hooks = Core::Utils::AtForkMonkeyPatch.at_fork_blocks(
209
209
  before: before_hook,
210
210
  parent: parent_hook,
211
- child: child_hook
211
+ child: child_hook,
212
212
  )
213
213
  remove_fork_hooks = self.class.send(:fork_hooks_remover, @fork_hooks)
214
214
 
@@ -221,7 +221,7 @@ module Datadog
221
221
  # them through its matching completion stage.
222
222
  ObjectSpace.define_finalizer(
223
223
  self,
224
- remove_fork_hooks
224
+ remove_fork_hooks,
225
225
  )
226
226
  end
227
227
 
@@ -25,7 +25,7 @@ module Datadog
25
25
 
26
26
  # Send health metrics
27
27
  Datadog.health_metrics.send_metrics(
28
- metrics_for_response(response).values
28
+ metrics_for_response(response).values,
29
29
  )
30
30
  end
31
31
 
@@ -42,7 +42,7 @@ module Datadog
42
42
 
43
43
  # Send health metrics
44
44
  Datadog.health_metrics.send_metrics(
45
- metrics_for_exception(exception).values
45
+ metrics_for_exception(exception).values,
46
46
  )
47
47
  end
48
48
 
@@ -21,10 +21,12 @@ module Datadog
21
21
  chunks_dropped_serialization_error: ["trace_chunks_dropped", ["reason:serialization_error"]],
22
22
  chunks_dropped_send_failure: ["trace_chunks_dropped", ["reason:send_failure"]],
23
23
  chunks_dropped_payload_too_large: ["trace_chunks_dropped", ["reason:payload_too_large"]],
24
+ chunks_dropped_cancelled: ["trace_chunks_dropped", ["reason:cancelled"]],
24
25
  spans_enqueued_for_serialization: ["spans_enqueued_for_serialization", []],
25
26
  spans_dropped_serialization_error: ["spans_dropped", ["reason:serialization_error"]],
26
27
  spans_dropped_api_error: ["spans_dropped", ["reason:api_error"]],
27
28
  spans_dropped_payload_too_large: ["spans_dropped", ["reason:payload_too_large"]],
29
+ spans_dropped_cancelled: ["spans_dropped", ["reason:cancelled"]],
28
30
  }.freeze #: Hash[Symbol, [String, Array[String]]]
29
31
 
30
32
  attr_writer :client
@@ -50,7 +52,7 @@ module Datadog
50
52
  responses = observations.fetch(:responses_count, 0)
51
53
  if responses > 0
52
54
  client.inc("tracers", "trace_api.responses", responses,
53
- tags: @source_tags + ["status_code:#{observations.fetch(:status_code)}"],)
55
+ tags: @source_tags + ["status_code:#{observations.fetch(:status_code)}"])
54
56
  end
55
57
  nil
56
58
  rescue
@@ -101,7 +101,7 @@ module Datadog
101
101
 
102
102
  root_span.set_tag(
103
103
  Tracing::Metadata::Ext::Sampling::TAG_AGENT_RATE,
104
- trace.agent_sample_rate
104
+ trace.agent_sample_rate,
105
105
  )
106
106
  end
107
107
 
@@ -110,7 +110,7 @@ module Datadog
110
110
 
111
111
  root_span.set_tag(
112
112
  Tracing::Metadata::Ext::NET::TAG_HOSTNAME,
113
- trace.hostname
113
+ trace.hostname,
114
114
  )
115
115
  end
116
116
 
@@ -120,7 +120,7 @@ module Datadog
120
120
 
121
121
  root_span.set_tag(
122
122
  Tracing::Metadata::Ext::Distributed::TAG_KNUTH_SAMPLING_RATE,
123
- format("%.6f", (rate * 1e6).round / 1e6).sub(/\.?0+\z/, "")
123
+ format("%.6f", (rate * 1e6).round / 1e6).sub(/\.?0+\z/, ""),
124
124
  )
125
125
  end
126
126
 
@@ -129,7 +129,7 @@ module Datadog
129
129
 
130
130
  root_span.set_tag(
131
131
  Core::Runtime::Ext::TAG_LANG,
132
- trace.lang
132
+ trace.lang,
133
133
  )
134
134
  end
135
135
 
@@ -138,7 +138,7 @@ module Datadog
138
138
 
139
139
  root_span.set_tag(
140
140
  Tracing::Metadata::Ext::Distributed::TAG_ORIGIN,
141
- trace.origin
141
+ trace.origin,
142
142
  )
143
143
  end
144
144
 
@@ -153,7 +153,7 @@ module Datadog
153
153
 
154
154
  root_span.set_tag(
155
155
  Tracing::Metadata::Ext::Sampling::TAG_RATE_LIMITER_RATE,
156
- trace.rate_limiter_rate
156
+ trace.rate_limiter_rate,
157
157
  )
158
158
  end
159
159
 
@@ -162,7 +162,7 @@ module Datadog
162
162
 
163
163
  root_span.set_tag(
164
164
  Tracing::Metadata::Ext::Sampling::TAG_RULE_SAMPLE_RATE,
165
- trace.rule_sample_rate
165
+ trace.rule_sample_rate,
166
166
  )
167
167
  end
168
168
 
@@ -171,7 +171,7 @@ module Datadog
171
171
 
172
172
  root_span.set_tag(
173
173
  Core::Runtime::Ext::TAG_ID,
174
- trace.runtime_id
174
+ trace.runtime_id,
175
175
  )
176
176
  end
177
177
 
@@ -180,7 +180,7 @@ module Datadog
180
180
 
181
181
  root_span.set_tag(
182
182
  Tracing::Metadata::Ext::Sampling::TAG_SAMPLE_RATE,
183
- trace.sample_rate
183
+ trace.sample_rate,
184
184
  )
185
185
  end
186
186
 
@@ -195,7 +195,7 @@ module Datadog
195
195
 
196
196
  root_span.set_metric(
197
197
  Tracing::Metadata::Ext::Distributed::TAG_SAMPLING_PRIORITY,
198
- trace.sampling_priority
198
+ trace.sampling_priority,
199
199
  )
200
200
  end
201
201
 
@@ -209,7 +209,7 @@ module Datadog
209
209
  return if trace.profiling_enabled.nil?
210
210
 
211
211
  root_span.set_tag(
212
- Tracing::Metadata::Ext::TAG_PROFILING_ENABLED, trace.profiling_enabled ? 1 : 0
212
+ Tracing::Metadata::Ext::TAG_PROFILING_ENABLED, trace.profiling_enabled ? 1 : 0,
213
213
  )
214
214
  end
215
215
 
@@ -236,7 +236,7 @@ module Datadog
236
236
 
237
237
  first_span.set_tag(
238
238
  Core::Environment::Ext::TAG_PROCESS_TAGS,
239
- Core::Environment::Process.serialized
239
+ Core::Environment::Process.serialized,
240
240
  )
241
241
  end
242
242
 
@@ -120,7 +120,7 @@ module Datadog
120
120
  encoder,
121
121
  trace,
122
122
  logger: logger,
123
- native_events_supported: @native_events_supported
123
+ native_events_supported: @native_events_supported,
124
124
  )
125
125
  rescue
126
126
  @batch&.serialization_failed
@@ -78,7 +78,7 @@ module Datadog
78
78
 
79
79
  concatenate(
80
80
  Core::Utils::Time.now.to_i << 32,
81
- Utils.next_id
81
+ Utils.next_id,
82
82
  )
83
83
  end
84
84
 
@@ -59,7 +59,7 @@ module Datadog
59
59
  # a fatal exception
60
60
  logger.warn(
61
61
  "Error during traces flush: dropped #{traces.length} items. " \
62
- "Cause: #{e.class}: #{e.message} Location: #{Array(e.backtrace).first}"
62
+ "Cause: #{e.class}: #{e.message} Location: #{Array(e.backtrace).first}",
63
63
  )
64
64
  end
65
65
  end
@@ -3,7 +3,7 @@
3
3
  module Datadog
4
4
  module VERSION
5
5
  MAJOR = 2
6
- MINOR = 46
6
+ MINOR = 48
7
7
  PATCH = 0
8
8
  PRE = nil
9
9
  BUILD = nil
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datadog
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.46.0
4
+ version: 2.48.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Datadog, Inc.
@@ -49,28 +49,28 @@ dependencies:
49
49
  requirements:
50
50
  - - "~>"
51
51
  - !ruby/object:Gem::Version
52
- version: 1.30.0.0.0
52
+ version: 1.30.0.1.0
53
53
  type: :runtime
54
54
  prerelease: false
55
55
  version_requirements: !ruby/object:Gem::Requirement
56
56
  requirements:
57
57
  - - "~>"
58
58
  - !ruby/object:Gem::Version
59
- version: 1.30.0.0.0
59
+ version: 1.30.0.1.0
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: libdatadog
62
62
  requirement: !ruby/object:Gem::Requirement
63
63
  requirements:
64
64
  - - "~>"
65
65
  - !ruby/object:Gem::Version
66
- version: 46.0.0.1.1
66
+ version: 46.1.0.1.1
67
67
  type: :runtime
68
68
  prerelease: false
69
69
  version_requirements: !ruby/object:Gem::Requirement
70
70
  requirements:
71
71
  - - "~>"
72
72
  - !ruby/object:Gem::Version
73
- version: 46.0.0.1.1
73
+ version: 46.1.0.1.1
74
74
  - !ruby/object:Gem::Dependency
75
75
  name: logger
76
76
  requirement: !ruby/object:Gem::Requirement
@@ -342,7 +342,6 @@ files:
342
342
  - lib/datadog/appsec/thread_safe_ref.rb
343
343
  - lib/datadog/appsec/trace_keeper.rb
344
344
  - lib/datadog/appsec/utils.rb
345
- - lib/datadog/appsec/utils/hash_coercion.rb
346
345
  - lib/datadog/appsec/utils/http.rb
347
346
  - lib/datadog/appsec/utils/http/body.rb
348
347
  - lib/datadog/appsec/utils/http/body_reader.rb
@@ -611,6 +610,8 @@ files:
611
610
  - lib/datadog/open_feature/ext.rb
612
611
  - lib/datadog/open_feature/flag_evaluation/aggregator.rb
613
612
  - lib/datadog/open_feature/flag_evaluation/writer.rb
613
+ - lib/datadog/open_feature/hooks/debug_logging_hook.rb
614
+ - lib/datadog/open_feature/hooks/evaluation_telemetry_opt_out_hook.rb
614
615
  - lib/datadog/open_feature/hooks/flag_eval_evp_hook.rb
615
616
  - lib/datadog/open_feature/hooks/flag_eval_metrics_hook.rb
616
617
  - lib/datadog/open_feature/hooks/span_enrichment_hook.rb
@@ -1199,8 +1200,8 @@ licenses:
1199
1200
  - Apache-2.0
1200
1201
  metadata:
1201
1202
  allowed_push_host: https://rubygems.org
1202
- changelog_uri: https://github.com/DataDog/dd-trace-rb/blob/v2.46.0/CHANGELOG.md
1203
- source_code_uri: https://github.com/DataDog/dd-trace-rb/tree/v2.46.0
1203
+ changelog_uri: https://github.com/DataDog/dd-trace-rb/blob/v2.48.0/CHANGELOG.md
1204
+ source_code_uri: https://github.com/DataDog/dd-trace-rb/tree/v2.48.0
1204
1205
  post_install_message: 'JRuby support in the datadog gem is deprecated. Details: https://dtdg.co/jruby-deprecation'
1205
1206
  rdoc_options: []
1206
1207
  require_paths:
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Datadog
4
- module AppSec
5
- module Utils
6
- # A module for coercing arbitrary objects into hashes.
7
- module HashCoercion
8
- # A best effort to coerce an object to a hash with methods known to various
9
- # frameworks with a fallback to standard library.
10
- #
11
- # @param object [Object] The object to coerce.
12
- # @return [Hash, nil] The coerced `Hash` or `nil` if the object is not coercible.
13
- def self.coerce(object)
14
- return object.as_json if object.respond_to?(:as_json)
15
- return object.to_hash if object.respond_to?(:to_hash)
16
- return object.to_h if object.respond_to?(:to_h)
17
-
18
- nil
19
- end
20
- end
21
- end
22
- end
23
- end