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
@@ -7,6 +7,7 @@ require_relative "../http"
7
7
  require_relative "../analytics"
8
8
  require_relative "ext"
9
9
  require_relative "../http_annotation_helper"
10
+ require_relative "../utils/quantization/http"
10
11
  require_relative "../../../core/telemetry/logger"
11
12
 
12
13
  module Datadog
@@ -31,7 +32,7 @@ module Datadog
31
32
  annotate!(span, env, request_options)
32
33
  if Tracing::Distributed::PropagationPolicy.enabled?(
33
34
  global_config: request_options,
34
- trace: trace
35
+ trace: trace,
35
36
  )
36
37
  propagate!(trace, span, env)
37
38
  end
@@ -45,7 +46,8 @@ module Datadog
45
46
 
46
47
  # rubocop:disable Metrics/AbcSize
47
48
  def annotate!(span, env, options)
48
- span.resource = resource_name(env)
49
+ path = env[:url].path
50
+ span.resource = resource_name(env, path)
49
51
  span.service = service_name(env[:url].host, options)
50
52
  span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
51
53
  span.type = Tracing::Metadata::Ext::HTTP::TYPE_OUTBOUND
@@ -53,7 +55,7 @@ module Datadog
53
55
  if options[:peer_service]
54
56
  span.set_tag(
55
57
  Tracing::Metadata::Ext::TAG_PEER_SERVICE,
56
- options[:peer_service]
58
+ options[:peer_service],
57
59
  )
58
60
  end
59
61
 
@@ -69,12 +71,12 @@ module Datadog
69
71
  Contrib::Analytics.set_sample_rate(span, options[:analytics_sample_rate])
70
72
  end
71
73
 
72
- span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_URL, env[:url].path)
74
+ span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_URL, path)
73
75
  span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_METHOD, env[:method].to_s.upcase)
74
76
  span.set_tag(Tracing::Metadata::Ext::NET::TAG_TARGET_HOST, env[:url].host)
75
77
  span.set_tag(Tracing::Metadata::Ext::NET::TAG_TARGET_PORT, env[:url].port)
76
78
  span.set_tags(
77
- Datadog.configuration.tracing.header_tags.request_tags(env[:request_headers])
79
+ Datadog.configuration.tracing.header_tags.request_tags(env[:request_headers]),
78
80
  )
79
81
 
80
82
  Contrib::SpanAttributeSchema.set_peer_service!(span, Ext::PEER_SERVICE_SOURCES)
@@ -91,7 +93,7 @@ module Datadog
91
93
  span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_STATUS_CODE, env[:status])
92
94
 
93
95
  span.set_tags(
94
- Datadog.configuration.tracing.header_tags.response_tags(env[:response_headers])
96
+ Datadog.configuration.tracing.header_tags.response_tags(env[:response_headers]),
95
97
  )
96
98
  rescue => e
97
99
  Datadog.logger.error("#{e.class}: #{e.message}")
@@ -103,8 +105,12 @@ module Datadog
103
105
  Contrib::HTTP.inject(trace, env[:request_headers])
104
106
  end
105
107
 
106
- def resource_name(env)
107
- env[:method].to_s.upcase
108
+ def resource_name(env, path)
109
+ Contrib::Utils::Quantization::HTTP.client_resource(
110
+ env[:method].to_s.upcase,
111
+ path,
112
+ enabled: Datadog.configuration.tracing.http_client_resource_name_quantize,
113
+ )
108
114
  end
109
115
 
110
116
  def build_request_options!(env)
@@ -54,7 +54,7 @@ module Datadog
54
54
  Ext::SPAN_ENDPOINT_RUN,
55
55
  service: service_name,
56
56
  type: Tracing::Metadata::Ext::HTTP::TYPE_INBOUND,
57
- resource: resource
57
+ resource: resource,
58
58
  )
59
59
  trace = Tracing.active_trace
60
60
 
@@ -75,7 +75,7 @@ module Datadog
75
75
  # here we are removing the format from the path:
76
76
  # e.g. /path/to/resource(.json) => /path/to/resource
77
77
  # e.g. /path/to/resource(.:format) => /path/to/resource
78
- route_path&.gsub(FORMAT_SEGMENT, "")
78
+ route_path&.gsub(FORMAT_SEGMENT, ""),
79
79
  )
80
80
 
81
81
  trace.set_tag(Tracing::Metadata::Ext::HTTP::TAG_ROUTE_PATH, env["SCRIPT_NAME"])
@@ -163,7 +163,7 @@ module Datadog
163
163
  span = Tracing.trace(
164
164
  Ext::SPAN_ENDPOINT_RENDER,
165
165
  service: service_name,
166
- type: Tracing::Metadata::Ext::HTTP::TYPE_TEMPLATE
166
+ type: Tracing::Metadata::Ext::HTTP::TYPE_TEMPLATE,
167
167
  )
168
168
 
169
169
  span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
@@ -214,7 +214,7 @@ module Datadog
214
214
  Ext::SPAN_ENDPOINT_RUN_FILTERS,
215
215
  service: service_name,
216
216
  type: Tracing::Metadata::Ext::HTTP::TYPE_INBOUND,
217
- start_time: start
217
+ start_time: start,
218
218
  )
219
219
 
220
220
  begin
@@ -38,7 +38,7 @@ module Datadog
38
38
  Datadog.logger.warn(
39
39
  "GraphQL version (#{target_version}) does not support GraphQL::Tracing::DataDogTrace" \
40
40
  "or Datadog::Tracing::Contrib::GraphQL::UnifiedTrace." \
41
- "Falling back to GraphQL::Tracing::DataDogTracing."
41
+ "Falling back to GraphQL::Tracing::DataDogTracing.",
42
42
  )
43
43
  TracingPatcher.patch!(schemas)
44
44
  end
@@ -94,7 +94,7 @@ module Datadog
94
94
  if query.selected_operation_name
95
95
  span.set_tag(
96
96
  "graphql.operation.name",
97
- query.selected_operation_name
97
+ query.selected_operation_name,
98
98
  )
99
99
  end
100
100
  query.variables.instance_variable_get(:@storage).each do |key, value|
@@ -212,7 +212,7 @@ module Datadog
212
212
  "graphql.#{trace_key}",
213
213
  type: "graphql",
214
214
  resource: resource,
215
- service: @service_name
215
+ service: @service_name,
216
216
  ) do |span|
217
217
  span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
218
218
  if Contrib::Analytics.enabled?(@analytics_enabled)
@@ -292,7 +292,7 @@ module Datadog
292
292
  @locations_key =>
293
293
  Datadog::Tracing::Contrib::GraphQL::UnifiedTrace.serialize_error_locations(graphql_error["locations"]),
294
294
  @path_key => graphql_error["path"],
295
- )
295
+ ),
296
296
  )
297
297
  end
298
298
  end
@@ -40,7 +40,7 @@ module Datadog
40
40
  o.default do
41
41
  Contrib::SpanAttributeSchema.fetch_service_name(
42
42
  Ext::ENV_SERVICE_NAME,
43
- Ext::DEFAULT_PEER_SERVICE_NAME
43
+ Ext::DEFAULT_PEER_SERVICE_NAME,
44
44
  )
45
45
  end
46
46
  end
@@ -56,7 +56,7 @@ module Datadog
56
56
  if datadog_configuration[:peer_service]
57
57
  span.set_tag(
58
58
  Tracing::Metadata::Ext::TAG_PEER_SERVICE,
59
- datadog_configuration[:peer_service]
59
+ datadog_configuration[:peer_service],
60
60
  )
61
61
  end
62
62
 
@@ -80,7 +80,7 @@ module Datadog
80
80
  if Tracing::Distributed::PropagationPolicy.enabled?(
81
81
  pin_config: Datadog.configuration_for(self),
82
82
  global_config: datadog_configuration,
83
- trace: trace
83
+ trace: trace,
84
84
  )
85
85
  GRPC.inject(trace, metadata)
86
86
  end
@@ -55,7 +55,7 @@ module Datadog
55
55
  Tracing.continue_trace!(GRPC.extract(metadata))
56
56
  rescue => e
57
57
  Datadog.logger.debug(
58
- "unable to propagate GRPC metadata to context: #{e.class}: #{e.message}"
58
+ "unable to propagate GRPC metadata to context: #{e.class}: #{e.message}",
59
59
  )
60
60
  end
61
61
 
@@ -37,7 +37,7 @@ module Datadog
37
37
  propagation_style_inject: tracing.propagation_style_inject,
38
38
  propagation_style_extract: tracing.propagation_style_extract,
39
39
  propagation_behavior_extract: tracing.propagation_behavior_extract,
40
- propagation_extract_first: tracing.propagation_extract_first
40
+ propagation_extract_first: tracing.propagation_extract_first,
41
41
  )
42
42
  end
43
43
  end
@@ -20,7 +20,7 @@ module Datadog
20
20
  Ext::SPAN_ACTION,
21
21
  resource: @action.to_s,
22
22
  service: configuration[:service_name],
23
- type: Tracing::Metadata::Ext::HTTP::TYPE_INBOUND
23
+ type: Tracing::Metadata::Ext::HTTP::TYPE_INBOUND,
24
24
  ) do |span_op, trace_op|
25
25
  span_op.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
26
26
  span_op.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
@@ -19,5 +19,5 @@ end
19
19
  end
20
20
  end
21
21
  end
22
- end
22
+ end,
23
23
  )
@@ -22,7 +22,7 @@ module Datadog
22
22
  Ext::SPAN_RENDER,
23
23
  service: configuration[:service_name],
24
24
  resource: action_klass.to_s,
25
- type: Tracing::Metadata::Ext::HTTP::TYPE_INBOUND
25
+ type: Tracing::Metadata::Ext::HTTP::TYPE_INBOUND,
26
26
  ) do |span_op, _trace_op|
27
27
  span_op.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
28
28
  span_op.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
@@ -16,7 +16,7 @@ module Datadog
16
16
  Tracing.trace(
17
17
  Ext::SPAN_ROUTING,
18
18
  service: configuration[:service_name],
19
- type: Tracing::Metadata::Ext::HTTP::TYPE_INBOUND
19
+ type: Tracing::Metadata::Ext::HTTP::TYPE_INBOUND,
20
20
  ) do |span_op, trace_op|
21
21
  span_op.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
22
22
  span_op.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
@@ -42,7 +42,7 @@ module Datadog
42
42
  o.default do
43
43
  Contrib::SpanAttributeSchema.fetch_service_name(
44
44
  Ext::ENV_SERVICE_NAME,
45
- Ext::DEFAULT_PEER_SERVICE_NAME
45
+ Ext::DEFAULT_PEER_SERVICE_NAME,
46
46
  )
47
47
  end
48
48
  end
@@ -34,12 +34,17 @@ module Datadog
34
34
  span.service = service_name(host, request_options, client_config)
35
35
  span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
36
36
  span.type = Tracing::Metadata::Ext::HTTP::TYPE_OUTBOUND
37
- span.resource = req.method
37
+ quantize_resource = Datadog.configuration.tracing.http_client_resource_name_quantize
38
+ span.resource = Contrib::Utils::Quantization::HTTP.client_resource(
39
+ req.method,
40
+ quantize_resource ? request_uri_path(req) : nil,
41
+ enabled: quantize_resource,
42
+ )
38
43
 
39
44
  if Tracing::Distributed::PropagationPolicy.enabled?(
40
45
  pin_config: client_config,
41
46
  global_config: request_options,
42
- trace: trace
47
+ trace: trace,
43
48
  )
44
49
  Contrib::HTTP.inject(trace, req)
45
50
  end
@@ -60,7 +65,7 @@ module Datadog
60
65
  if request_options[:peer_service]
61
66
  span.set_tag(
62
67
  Tracing::Metadata::Ext::TAG_PEER_SERVICE,
63
- request_options[:peer_service]
68
+ request_options[:peer_service],
64
69
  )
65
70
  end
66
71
 
@@ -70,7 +75,7 @@ module Datadog
70
75
  span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_REQUEST)
71
76
  span.set_tag(
72
77
  Tracing::Metadata::Ext::HTTP::TAG_URL,
73
- Contrib::Utils::Quantization::HTTP.url(request.path, {query: {exclude: :all}})
78
+ Contrib::Utils::Quantization::HTTP.url(request.path, {query: {exclude: :all}}),
74
79
  )
75
80
  span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_METHOD, request.method)
76
81
 
@@ -84,7 +89,7 @@ module Datadog
84
89
  set_analytics_sample_rate(span, request_options)
85
90
 
86
91
  span.set_tags(
87
- Datadog.configuration.tracing.header_tags.request_tags(request)
92
+ Datadog.configuration.tracing.header_tags.request_tags(request),
88
93
  )
89
94
 
90
95
  Contrib::SpanAttributeSchema.set_peer_service!(span, Ext::PEER_SERVICE_SOURCES)
@@ -101,7 +106,7 @@ module Datadog
101
106
  span.set_error(response) if request_options[:error_status_codes].include? response.code.to_i
102
107
 
103
108
  span.set_tags(
104
- Datadog.configuration.tracing.header_tags.response_tags(response)
109
+ Datadog.configuration.tracing.header_tags.response_tags(response),
105
110
  )
106
111
  rescue => e
107
112
  Datadog.logger.error("error preparing span from http response: #{e.class}: #{e.message}")
@@ -116,6 +121,16 @@ module Datadog
116
121
 
117
122
  private
118
123
 
124
+ def request_uri_path(request)
125
+ uri = request.uri if request.respond_to?(:uri)
126
+ return uri.path if uri
127
+ return request.path.split(/[?#]/, 2).first if request.path.start_with?("/")
128
+
129
+ URI.parse(request.path).path
130
+ rescue URI::InvalidURIError
131
+ nil
132
+ end
133
+
119
134
  def host_and_port(request)
120
135
  if request.respond_to?(:uri) && request.uri
121
136
  [request.uri.host, request.uri.port]
@@ -37,7 +37,7 @@ module Datadog
37
37
  propagation_style_inject: tracing.propagation_style_inject,
38
38
  propagation_style_extract: tracing.propagation_style_extract,
39
39
  propagation_behavior_extract: tracing.propagation_behavior_extract,
40
- propagation_extract_first: tracing.propagation_extract_first
40
+ propagation_extract_first: tracing.propagation_extract_first,
41
41
  )
42
42
  end
43
43
  end
@@ -41,7 +41,7 @@ module Datadog
41
41
  o.default do
42
42
  Contrib::SpanAttributeSchema.fetch_service_name(
43
43
  Ext::ENV_SERVICE_NAME,
44
- Ext::DEFAULT_PEER_SERVICE_NAME
44
+ Ext::DEFAULT_PEER_SERVICE_NAME,
45
45
  )
46
46
  end
47
47
  end
@@ -4,6 +4,7 @@ require_relative "../../metadata/ext"
4
4
  require_relative "../http"
5
5
  require_relative "../analytics"
6
6
  require_relative "../http_annotation_helper"
7
+ require_relative "../utils/quantization/http"
7
8
  require_relative "../../../core/telemetry/logger"
8
9
 
9
10
  module Datadog
@@ -34,7 +35,7 @@ module Datadog
34
35
  if Tracing::Distributed::PropagationPolicy.enabled?(
35
36
  pin_config: client_config,
36
37
  global_config: Datadog.configuration.tracing[:httpclient],
37
- trace: trace
38
+ trace: trace,
38
39
  )
39
40
  Contrib::HTTP.inject(trace, req.header)
40
41
  end
@@ -43,7 +44,7 @@ module Datadog
43
44
  annotate_span_with_request!(span, req, request_options)
44
45
  rescue => e
45
46
  Datadog.logger.error(
46
- "error preparing span for httpclient request: #{e.class}: #{e.message}, Source: #{e.backtrace}"
47
+ "error preparing span for httpclient request: #{e.class}: #{e.message}, Source: #{e.backtrace}",
47
48
  )
48
49
  Datadog::Core::Telemetry::Logger.report(e)
49
50
  ensure
@@ -65,7 +66,7 @@ module Datadog
65
66
  if req_options[:peer_service]
66
67
  span.set_tag(
67
68
  Tracing::Metadata::Ext::TAG_PEER_SERVICE,
68
- req_options[:peer_service]
69
+ req_options[:peer_service],
69
70
  )
70
71
  end
71
72
 
@@ -74,10 +75,15 @@ module Datadog
74
75
 
75
76
  http_method = req.header.request_method.upcase
76
77
  uri = req.header.request_uri
78
+ path = uri.path
77
79
 
78
- span.resource = http_method
80
+ span.resource = Contrib::Utils::Quantization::HTTP.client_resource(
81
+ http_method,
82
+ path,
83
+ enabled: Datadog.configuration.tracing.http_client_resource_name_quantize,
84
+ )
79
85
  span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_METHOD, http_method)
80
- span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_URL, uri.path)
86
+ span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_URL, path)
81
87
  span.set_tag(Tracing::Metadata::Ext::NET::TAG_TARGET_HOST, uri.host)
82
88
  span.set_tag(Tracing::Metadata::Ext::NET::TAG_TARGET_PORT, uri.port)
83
89
 
@@ -86,7 +92,7 @@ module Datadog
86
92
  set_analytics_sample_rate(span, req_options)
87
93
 
88
94
  span.set_tags(
89
- Datadog.configuration.tracing.header_tags.request_tags(req.http_header)
95
+ Datadog.configuration.tracing.header_tags.request_tags(req.http_header),
90
96
  )
91
97
 
92
98
  Contrib::SpanAttributeSchema.set_peer_service!(span, Ext::PEER_SERVICE_SOURCES)
@@ -102,11 +108,11 @@ module Datadog
102
108
  end
103
109
 
104
110
  span.set_tags(
105
- Datadog.configuration.tracing.header_tags.response_tags(response.header)
111
+ Datadog.configuration.tracing.header_tags.response_tags(response.header),
106
112
  )
107
113
  rescue => e
108
114
  Datadog.logger.error(
109
- "error preparing span from httpclient response: #{e.class}: #{e.message}, Source: #{e.backtrace}"
115
+ "error preparing span from httpclient response: #{e.class}: #{e.message}, Source: #{e.backtrace}",
110
116
  )
111
117
  Datadog::Core::Telemetry::Logger.report(e)
112
118
  end
@@ -41,7 +41,7 @@ module Datadog
41
41
  o.default do
42
42
  Contrib::SpanAttributeSchema.fetch_service_name(
43
43
  Ext::ENV_SERVICE_NAME,
44
- Ext::DEFAULT_PEER_SERVICE_NAME
44
+ Ext::DEFAULT_PEER_SERVICE_NAME,
45
45
  )
46
46
  end
47
47
  end
@@ -4,6 +4,7 @@ require_relative "../../metadata/ext"
4
4
  require_relative "../http"
5
5
  require_relative "../analytics"
6
6
  require_relative "../http_annotation_helper"
7
+ require_relative "../utils/quantization/http"
7
8
  require_relative "../../../core/telemetry/logger"
8
9
 
9
10
  module Datadog
@@ -34,7 +35,7 @@ module Datadog
34
35
  if Tracing::Distributed::PropagationPolicy.enabled?(
35
36
  pin_config: client_config,
36
37
  global_config: Datadog.configuration.tracing[:httprb],
37
- trace: trace
38
+ trace: trace,
38
39
  )
39
40
  Contrib::HTTP.inject(trace, req.headers)
40
41
  end
@@ -63,24 +64,29 @@ module Datadog
63
64
  if req_options[:peer_service]
64
65
  span.set_tag(
65
66
  Tracing::Metadata::Ext::TAG_PEER_SERVICE,
66
- req_options[:peer_service]
67
+ req_options[:peer_service],
67
68
  )
68
69
  end
69
70
 
70
71
  span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
71
72
  span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_REQUEST)
72
73
 
74
+ uri = req.uri
75
+ path = uri&.path
73
76
  if req.verb&.is_a?(String) || req.verb.is_a?(Symbol)
74
77
  http_method = req.verb.to_s.upcase
75
- span.resource = http_method
78
+ span.resource = Contrib::Utils::Quantization::HTTP.client_resource(
79
+ http_method,
80
+ path,
81
+ enabled: Datadog.configuration.tracing.http_client_resource_name_quantize,
82
+ )
76
83
  span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_METHOD, http_method)
77
84
  else
78
85
  logger.debug("service #{req_options[:service_name]} span #{Ext::SPAN_REQUEST} missing request verb")
79
86
  end
80
87
 
81
- if req.uri
82
- uri = req.uri
83
- span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_URL, uri.path)
88
+ if uri
89
+ span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_URL, path)
84
90
  span.set_tag(Tracing::Metadata::Ext::NET::TAG_TARGET_HOST, uri.host)
85
91
  span.set_tag(Tracing::Metadata::Ext::NET::TAG_TARGET_PORT, uri.port)
86
92
 
@@ -92,7 +98,7 @@ module Datadog
92
98
  set_analytics_sample_rate(span, req_options)
93
99
 
94
100
  span.set_tags(
95
- Datadog.configuration.tracing.header_tags.request_tags(req.headers)
101
+ Datadog.configuration.tracing.header_tags.request_tags(req.headers),
96
102
  )
97
103
 
98
104
  Contrib::SpanAttributeSchema.set_peer_service!(span, Ext::PEER_SERVICE_SOURCES)
@@ -110,7 +116,7 @@ module Datadog
110
116
  end
111
117
 
112
118
  span.set_tags(
113
- Datadog.configuration.tracing.header_tags.response_tags(response.headers)
119
+ Datadog.configuration.tracing.header_tags.response_tags(response.headers),
114
120
  )
115
121
  rescue => e
116
122
  logger.error("error preparing span from http.rb response: #{e.class}: #{e.message}, Source: #{e.backtrace}")
@@ -24,7 +24,7 @@ module Datadog
24
24
  Datadog::DataStreams.set_consume_checkpoint(
25
25
  type: "kafka",
26
26
  source: message.topic,
27
- auto_instrumentation: true
27
+ auto_instrumentation: true,
28
28
  ) { |key| headers[key] }
29
29
  rescue => e
30
30
  Datadog.logger.debug("Error setting DSM checkpoint: #{e.class}: #{e.message}")
@@ -46,7 +46,7 @@ module Datadog
46
46
  Datadog::DataStreams.set_consume_checkpoint(
47
47
  type: "kafka",
48
48
  source: batch.topic,
49
- auto_instrumentation: true
49
+ auto_instrumentation: true,
50
50
  )
51
51
  rescue => e
52
52
  Datadog.logger.debug("Error setting DSM checkpoint: #{e.class}: #{e.message}")
@@ -23,7 +23,7 @@ module Datadog
23
23
  Datadog::DataStreams.set_produce_checkpoint(
24
24
  type: "kafka",
25
25
  destination: message.topic,
26
- auto_instrumentation: true
26
+ auto_instrumentation: true,
27
27
  ) do |key, value|
28
28
  message.headers[key] = value
29
29
  end
@@ -45,7 +45,7 @@ module Datadog
45
45
  Datadog::DataStreams.set_produce_checkpoint(
46
46
  type: "kafka",
47
47
  destination: message[:topic],
48
- auto_instrumentation: true
48
+ auto_instrumentation: true,
49
49
  ) do |key, value|
50
50
  message[:headers][key] = value
51
51
  end
@@ -54,7 +54,7 @@ module Datadog
54
54
  Datadog::DataStreams.track_kafka_consume(
55
55
  job.executor.topic.name,
56
56
  job.executor.partition,
57
- message.metadata.offset
57
+ message.metadata.offset,
58
58
  )
59
59
  end
60
60
  end
@@ -46,7 +46,7 @@ module Datadog
46
46
  Datadog::DataStreams.set_consume_checkpoint(
47
47
  type: "kafka",
48
48
  source: message.topic,
49
- auto_instrumentation: true
49
+ auto_instrumentation: true,
50
50
  ) { |key| headers[key] }
51
51
  rescue => e
52
52
  Datadog.logger.debug("Error setting DSM checkpoint: #{e.class}: #{e.message}")
@@ -29,7 +29,7 @@ module Datadog
29
29
  propagation_style_inject: tracing.propagation_style_inject,
30
30
  propagation_style_extract: tracing.propagation_style_extract,
31
31
  propagation_behavior_extract: tracing.propagation_behavior_extract,
32
- propagation_extract_first: tracing.propagation_extract_first
32
+ propagation_extract_first: tracing.propagation_extract_first,
33
33
  )
34
34
  end
35
35
  end
@@ -33,7 +33,7 @@ module Datadog
33
33
  "Either: 1. Disable tagged logging in your Rails configuration " \
34
34
  "`config.logger = ActiveSupport::Logger.new(STDOUT); " \
35
35
  "config.active_job.logger = ActiveSupport::Logger.new(STDOUT)` " \
36
- "or 2. Use the `semantic_logger` gem instead of `lograge`."
36
+ "or 2. Use the `semantic_logger` gem instead of `lograge`.",
37
37
  )
38
38
  end
39
39
 
@@ -39,7 +39,7 @@ module Datadog
39
39
  o.default do
40
40
  Contrib::SpanAttributeSchema.fetch_service_name(
41
41
  Ext::ENV_SERVICE_NAME,
42
- Ext::DEFAULT_PEER_SERVICE_NAME
42
+ Ext::DEFAULT_PEER_SERVICE_NAME,
43
43
  )
44
44
  end
45
45
  end
@@ -30,7 +30,7 @@ module Datadog
30
30
  "database" => database_name,
31
31
  "collection" => command.values.first,
32
32
  },
33
- options
33
+ options,
34
34
  )
35
35
 
36
36
  base_info.merge(Contrib::Utils::Quantization::HashFormatter.format(command, options))
@@ -39,7 +39,7 @@ module Datadog
39
39
  if datadog_configuration[:peer_service]
40
40
  span.set_tag(
41
41
  Tracing::Metadata::Ext::TAG_PEER_SERVICE,
42
- datadog_configuration[:peer_service]
42
+ datadog_configuration[:peer_service],
43
43
  )
44
44
  end
45
45
 
@@ -37,7 +37,7 @@ module Datadog
37
37
  o.default do
38
38
  Contrib::SpanAttributeSchema.fetch_service_name(
39
39
  Ext::ENV_SERVICE_NAME,
40
- Ext::DEFAULT_PEER_SERVICE_NAME
40
+ Ext::DEFAULT_PEER_SERVICE_NAME,
41
41
  )
42
42
  end
43
43
  end
@@ -31,7 +31,7 @@ module Datadog
31
31
  if datadog_configuration[:peer_service]
32
32
  span.set_tag(
33
33
  Tracing::Metadata::Ext::TAG_PEER_SERVICE,
34
- datadog_configuration[:peer_service]
34
+ datadog_configuration[:peer_service],
35
35
  )
36
36
  end
37
37
 
@@ -62,7 +62,7 @@ module Datadog
62
62
  propagation_mode = Contrib::Propagation::SqlComment::Mode.new(
63
63
  datadog_configuration[:comment_propagation],
64
64
  datadog_configuration[:append_comment],
65
- datadog_configuration[:inject_sql_basehash]
65
+ datadog_configuration[:inject_sql_basehash],
66
66
  )
67
67
 
68
68
  Contrib::Propagation::SqlComment.annotate!(span, propagation_mode)
@@ -70,7 +70,7 @@ module Datadog
70
70
  sql,
71
71
  span,
72
72
  trace_op,
73
- propagation_mode
73
+ propagation_mode,
74
74
  )
75
75
  end
76
76