datadog 2.19.0 → 2.21.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 (302) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +52 -1
  3. data/README.md +0 -1
  4. data/ext/libdatadog_api/extconf.rb +3 -1
  5. data/ext/libdatadog_api/process_discovery.c +5 -5
  6. data/ext/libdatadog_extconf_helpers.rb +13 -3
  7. data/lib/datadog/appsec/api_security/route_extractor.rb +6 -2
  8. data/lib/datadog/appsec/autoload.rb +1 -1
  9. data/lib/datadog/appsec/component.rb +3 -13
  10. data/lib/datadog/appsec/context.rb +23 -0
  11. data/lib/datadog/appsec/contrib/devise/patches/signin_tracking_patch.rb +2 -1
  12. data/lib/datadog/appsec/contrib/devise/patches/signup_tracking_patch.rb +2 -1
  13. data/lib/datadog/appsec/contrib/excon/ssrf_detection_middleware.rb +0 -1
  14. data/lib/datadog/appsec/contrib/faraday/ssrf_detection_middleware.rb +0 -1
  15. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +14 -22
  16. data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +23 -2
  17. data/lib/datadog/appsec/contrib/rails/patcher.rb +14 -26
  18. data/lib/datadog/appsec/contrib/rails/patches/process_action_patch.rb +27 -0
  19. data/lib/datadog/appsec/contrib/rails/patches/render_to_body_patch.rb +33 -0
  20. data/lib/datadog/appsec/contrib/rest_client/request_ssrf_detection_patch.rb +0 -1
  21. data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +23 -0
  22. data/lib/datadog/appsec/contrib/sinatra/patcher.rb +8 -18
  23. data/lib/datadog/appsec/contrib/sinatra/patches/json_patch.rb +31 -0
  24. data/lib/datadog/appsec/event.rb +3 -18
  25. data/lib/datadog/appsec/instrumentation/gateway/argument.rb +16 -0
  26. data/lib/datadog/appsec/metrics/collector.rb +7 -3
  27. data/lib/datadog/appsec/metrics/telemetry.rb +1 -1
  28. data/lib/datadog/appsec/metrics/telemetry_exporter.rb +28 -0
  29. data/lib/datadog/appsec/metrics.rb +1 -0
  30. data/lib/datadog/appsec/security_engine/engine.rb +14 -32
  31. data/lib/datadog/appsec/security_engine/result.rb +16 -0
  32. data/lib/datadog/appsec/security_engine/runner.rb +18 -4
  33. data/lib/datadog/appsec/thread_safe_ref.rb +61 -0
  34. data/lib/datadog/appsec/trace_keeper.rb +24 -0
  35. data/lib/datadog/appsec/utils/hash_coercion.rb +23 -0
  36. data/lib/datadog/appsec.rb +0 -7
  37. data/lib/datadog/auto_instrument_base.rb +2 -1
  38. data/lib/datadog/core/configuration/agent_settings_resolver.rb +4 -4
  39. data/lib/datadog/core/configuration/components.rb +8 -2
  40. data/lib/datadog/core/configuration/config_helper.rb +100 -0
  41. data/lib/datadog/core/configuration/deprecations.rb +36 -0
  42. data/lib/datadog/core/configuration/ext.rb +0 -1
  43. data/lib/datadog/core/configuration/option.rb +55 -51
  44. data/lib/datadog/core/configuration/option_definition.rb +2 -11
  45. data/lib/datadog/core/configuration/options.rb +14 -12
  46. data/lib/datadog/core/configuration/settings.rb +10 -6
  47. data/lib/datadog/core/configuration/supported_configurations.rb +335 -0
  48. data/lib/datadog/core/configuration.rb +1 -1
  49. data/lib/datadog/core/deprecations.rb +2 -2
  50. data/lib/datadog/core/environment/ext.rb +0 -2
  51. data/lib/datadog/core/environment/git.rb +2 -2
  52. data/lib/datadog/core/environment/variable_helpers.rb +3 -3
  53. data/lib/datadog/core/metrics/client.rb +2 -2
  54. data/lib/datadog/core/process_discovery/tracer_memfd.rb +2 -4
  55. data/lib/datadog/core/process_discovery.rb +46 -23
  56. data/lib/datadog/core/runtime/ext.rb +0 -1
  57. data/lib/datadog/core/telemetry/event/app_started.rb +2 -2
  58. data/lib/datadog/core.rb +2 -0
  59. data/lib/datadog/di/boot.rb +9 -1
  60. data/lib/datadog/di/component.rb +7 -0
  61. data/lib/datadog/di/probe_file_loader/railtie.rb +15 -0
  62. data/lib/datadog/di/probe_file_loader.rb +82 -0
  63. data/lib/datadog/di/probe_notification_builder.rb +1 -1
  64. data/lib/datadog/di/remote.rb +3 -5
  65. data/lib/datadog/di.rb +0 -1
  66. data/lib/datadog/kit/appsec/events/v2.rb +5 -4
  67. data/lib/datadog/kit/appsec/events.rb +11 -10
  68. data/lib/datadog/kit/identity.rb +17 -11
  69. data/lib/datadog/opentelemetry/api/baggage.rb +2 -2
  70. data/lib/datadog/opentelemetry/api/context.rb +10 -9
  71. data/lib/datadog/opentelemetry/sdk/configurator.rb +1 -1
  72. data/lib/datadog/opentelemetry/sdk/propagator.rb +4 -4
  73. data/lib/datadog/opentelemetry/sdk/span_processor.rb +8 -8
  74. data/lib/datadog/opentelemetry/sdk/trace/span.rb +14 -10
  75. data/lib/datadog/opentelemetry/trace.rb +4 -4
  76. data/lib/datadog/profiling/collectors/info.rb +1 -1
  77. data/lib/datadog/profiling/ext.rb +2 -1
  78. data/lib/datadog/profiling/http_transport.rb +1 -1
  79. data/lib/datadog/profiling/tasks/exec.rb +2 -2
  80. data/lib/datadog/profiling.rb +6 -8
  81. data/lib/datadog/tracing/analytics.rb +1 -1
  82. data/lib/datadog/tracing/buffer.rb +7 -7
  83. data/lib/datadog/tracing/configuration/dynamic.rb +4 -6
  84. data/lib/datadog/tracing/configuration/ext.rb +3 -5
  85. data/lib/datadog/tracing/configuration/settings.rb +29 -7
  86. data/lib/datadog/tracing/context.rb +2 -2
  87. data/lib/datadog/tracing/contrib/action_cable/event.rb +1 -1
  88. data/lib/datadog/tracing/contrib/action_cable/integration.rb +1 -1
  89. data/lib/datadog/tracing/contrib/action_mailer/integration.rb +1 -1
  90. data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +4 -4
  91. data/lib/datadog/tracing/contrib/action_pack/integration.rb +1 -1
  92. data/lib/datadog/tracing/contrib/action_view/events/render_template.rb +1 -1
  93. data/lib/datadog/tracing/contrib/active_job/event.rb +8 -8
  94. data/lib/datadog/tracing/contrib/active_job/events/discard.rb +1 -1
  95. data/lib/datadog/tracing/contrib/active_job/events/enqueue.rb +1 -1
  96. data/lib/datadog/tracing/contrib/active_job/events/enqueue_at.rb +1 -1
  97. data/lib/datadog/tracing/contrib/active_job/events/enqueue_retry.rb +1 -1
  98. data/lib/datadog/tracing/contrib/active_job/events/perform.rb +1 -1
  99. data/lib/datadog/tracing/contrib/active_job/events/retry_stopped.rb +1 -1
  100. data/lib/datadog/tracing/contrib/active_job/integration.rb +1 -1
  101. data/lib/datadog/tracing/contrib/active_model_serializers/events/render.rb +1 -1
  102. data/lib/datadog/tracing/contrib/active_model_serializers/events/serialize.rb +3 -3
  103. data/lib/datadog/tracing/contrib/active_model_serializers/integration.rb +1 -2
  104. data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +1 -1
  105. data/lib/datadog/tracing/contrib/active_record/events/instantiation.rb +1 -1
  106. data/lib/datadog/tracing/contrib/active_record/events/sql.rb +5 -5
  107. data/lib/datadog/tracing/contrib/active_record/integration.rb +1 -1
  108. data/lib/datadog/tracing/contrib/active_record/utils.rb +15 -15
  109. data/lib/datadog/tracing/contrib/active_support/cache/events/cache.rb +6 -6
  110. data/lib/datadog/tracing/contrib/active_support/integration.rb +1 -1
  111. data/lib/datadog/tracing/contrib/active_support/notifications/event.rb +2 -1
  112. data/lib/datadog/tracing/contrib/active_support/notifications/subscription.rb +7 -9
  113. data/lib/datadog/tracing/contrib/aws/ext.rb +1 -1
  114. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +2 -2
  115. data/lib/datadog/tracing/contrib/aws/parsed_context.rb +3 -1
  116. data/lib/datadog/tracing/contrib/aws/patcher.rb +5 -1
  117. data/lib/datadog/tracing/contrib/aws/service/base.rb +2 -1
  118. data/lib/datadog/tracing/contrib/aws/service/dynamodb.rb +1 -1
  119. data/lib/datadog/tracing/contrib/aws/service/eventbridge.rb +1 -1
  120. data/lib/datadog/tracing/contrib/aws/service/kinesis.rb +1 -1
  121. data/lib/datadog/tracing/contrib/aws/service/s3.rb +1 -1
  122. data/lib/datadog/tracing/contrib/aws/service/sns.rb +1 -1
  123. data/lib/datadog/tracing/contrib/aws/service/sqs.rb +1 -1
  124. data/lib/datadog/tracing/contrib/aws/service/states.rb +1 -1
  125. data/lib/datadog/tracing/contrib/aws/services.rb +7 -7
  126. data/lib/datadog/tracing/contrib/concurrent_ruby/async_patch.rb +1 -1
  127. data/lib/datadog/tracing/contrib/concurrent_ruby/context_composite_executor_service.rb +1 -1
  128. data/lib/datadog/tracing/contrib/concurrent_ruby/future_patch.rb +1 -1
  129. data/lib/datadog/tracing/contrib/concurrent_ruby/integration.rb +1 -1
  130. data/lib/datadog/tracing/contrib/concurrent_ruby/promises_future_patch.rb +1 -1
  131. data/lib/datadog/tracing/contrib/configurable.rb +6 -6
  132. data/lib/datadog/tracing/contrib/configuration/resolvers/pattern_resolver.rb +4 -4
  133. data/lib/datadog/tracing/contrib/dalli/ext.rb +3 -2
  134. data/lib/datadog/tracing/contrib/dalli/integration.rb +1 -1
  135. data/lib/datadog/tracing/contrib/delayed_job/integration.rb +1 -1
  136. data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +3 -2
  137. data/lib/datadog/tracing/contrib/elasticsearch/integration.rb +4 -4
  138. data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +51 -53
  139. data/lib/datadog/tracing/contrib/elasticsearch/quantize.rb +5 -5
  140. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +2 -2
  141. data/lib/datadog/tracing/contrib/ethon/ext.rb +3 -2
  142. data/lib/datadog/tracing/contrib/ethon/integration.rb +1 -1
  143. data/lib/datadog/tracing/contrib/excon/ext.rb +3 -2
  144. data/lib/datadog/tracing/contrib/excon/integration.rb +1 -1
  145. data/lib/datadog/tracing/contrib/excon/middleware.rb +2 -2
  146. data/lib/datadog/tracing/contrib/ext.rb +3 -3
  147. data/lib/datadog/tracing/contrib/extensions.rb +9 -9
  148. data/lib/datadog/tracing/contrib/faraday/ext.rb +3 -2
  149. data/lib/datadog/tracing/contrib/faraday/integration.rb +1 -1
  150. data/lib/datadog/tracing/contrib/faraday/middleware.rb +4 -2
  151. data/lib/datadog/tracing/contrib/grape/endpoint.rb +8 -8
  152. data/lib/datadog/tracing/contrib/grape/integration.rb +1 -1
  153. data/lib/datadog/tracing/contrib/graphql/integration.rb +1 -1
  154. data/lib/datadog/tracing/contrib/graphql/patcher.rb +2 -2
  155. data/lib/datadog/tracing/contrib/graphql/unified_trace.rb +36 -25
  156. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +8 -8
  157. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +3 -3
  158. data/lib/datadog/tracing/contrib/grpc/distributed/fetcher.rb +1 -1
  159. data/lib/datadog/tracing/contrib/grpc/integration.rb +1 -1
  160. data/lib/datadog/tracing/contrib/hanami/ext.rb +2 -2
  161. data/lib/datadog/tracing/contrib/hanami/integration.rb +1 -1
  162. data/lib/datadog/tracing/contrib/hanami/renderer_policy_tracing.rb +1 -1
  163. data/lib/datadog/tracing/contrib/hanami/router_tracing.rb +9 -11
  164. data/lib/datadog/tracing/contrib/http/distributed/fetcher.rb +4 -4
  165. data/lib/datadog/tracing/contrib/http/ext.rb +3 -2
  166. data/lib/datadog/tracing/contrib/http/instrumentation.rb +5 -5
  167. data/lib/datadog/tracing/contrib/httpclient/ext.rb +3 -2
  168. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +3 -3
  169. data/lib/datadog/tracing/contrib/httpclient/integration.rb +1 -1
  170. data/lib/datadog/tracing/contrib/httprb/ext.rb +3 -2
  171. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +4 -4
  172. data/lib/datadog/tracing/contrib/httprb/integration.rb +1 -1
  173. data/lib/datadog/tracing/contrib/kafka/event.rb +1 -1
  174. data/lib/datadog/tracing/contrib/kafka/events/connection/request.rb +1 -1
  175. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_batch.rb +1 -1
  176. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_message.rb +1 -1
  177. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/heartbeat.rb +1 -1
  178. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/join_group.rb +1 -1
  179. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/leave_group.rb +1 -1
  180. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/sync_group.rb +1 -1
  181. data/lib/datadog/tracing/contrib/kafka/events/produce_operation/send_messages.rb +1 -1
  182. data/lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb +1 -1
  183. data/lib/datadog/tracing/contrib/kafka/integration.rb +1 -1
  184. data/lib/datadog/tracing/contrib/karafka/monitor.rb +13 -13
  185. data/lib/datadog/tracing/contrib/karafka/patcher.rb +4 -4
  186. data/lib/datadog/tracing/contrib/lograge/instrumentation.rb +1 -1
  187. data/lib/datadog/tracing/contrib/lograge/integration.rb +1 -1
  188. data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +1 -1
  189. data/lib/datadog/tracing/contrib/mongodb/ext.rb +1 -1
  190. data/lib/datadog/tracing/contrib/mongodb/integration.rb +1 -1
  191. data/lib/datadog/tracing/contrib/mongodb/parsers.rb +1 -1
  192. data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +6 -6
  193. data/lib/datadog/tracing/contrib/mysql2/ext.rb +1 -1
  194. data/lib/datadog/tracing/contrib/mysql2/integration.rb +1 -1
  195. data/lib/datadog/tracing/contrib/opensearch/configuration/settings.rb +1 -1
  196. data/lib/datadog/tracing/contrib/opensearch/ext.rb +3 -2
  197. data/lib/datadog/tracing/contrib/opensearch/integration.rb +1 -2
  198. data/lib/datadog/tracing/contrib/opensearch/patcher.rb +68 -70
  199. data/lib/datadog/tracing/contrib/opensearch/quantize.rb +5 -5
  200. data/lib/datadog/tracing/contrib/patcher.rb +7 -9
  201. data/lib/datadog/tracing/contrib/pg/integration.rb +1 -1
  202. data/lib/datadog/tracing/contrib/presto/ext.rb +1 -1
  203. data/lib/datadog/tracing/contrib/presto/instrumentation.rb +3 -3
  204. data/lib/datadog/tracing/contrib/presto/integration.rb +1 -1
  205. data/lib/datadog/tracing/contrib/propagation/sql_comment/comment.rb +1 -1
  206. data/lib/datadog/tracing/contrib/propagation/sql_comment.rb +1 -1
  207. data/lib/datadog/tracing/contrib/que/integration.rb +1 -1
  208. data/lib/datadog/tracing/contrib/racecar/event.rb +1 -1
  209. data/lib/datadog/tracing/contrib/racecar/events/batch.rb +2 -2
  210. data/lib/datadog/tracing/contrib/racecar/events/consume.rb +1 -1
  211. data/lib/datadog/tracing/contrib/racecar/events/message.rb +2 -2
  212. data/lib/datadog/tracing/contrib/racecar/integration.rb +1 -1
  213. data/lib/datadog/tracing/contrib/rack/header_collection.rb +1 -1
  214. data/lib/datadog/tracing/contrib/rack/header_tagging.rb +32 -32
  215. data/lib/datadog/tracing/contrib/rack/integration.rb +1 -1
  216. data/lib/datadog/tracing/contrib/rack/middlewares.rb +21 -17
  217. data/lib/datadog/tracing/contrib/rack/patcher.rb +1 -1
  218. data/lib/datadog/tracing/contrib/rack/request_queue.rb +3 -2
  219. data/lib/datadog/tracing/contrib/rack/trace_proxy_middleware.rb +7 -1
  220. data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +1 -1
  221. data/lib/datadog/tracing/contrib/rails/ext.rb +2 -1
  222. data/lib/datadog/tracing/contrib/rails/integration.rb +2 -2
  223. data/lib/datadog/tracing/contrib/rails/log_injection.rb +1 -1
  224. data/lib/datadog/tracing/contrib/rails/middlewares.rb +1 -1
  225. data/lib/datadog/tracing/contrib/rails/runner.rb +5 -4
  226. data/lib/datadog/tracing/contrib/rake/instrumentation.rb +4 -4
  227. data/lib/datadog/tracing/contrib/rake/integration.rb +1 -1
  228. data/lib/datadog/tracing/contrib/redis/configuration/resolver.rb +2 -2
  229. data/lib/datadog/tracing/contrib/redis/ext.rb +3 -2
  230. data/lib/datadog/tracing/contrib/redis/integration.rb +2 -2
  231. data/lib/datadog/tracing/contrib/redis/patcher.rb +4 -4
  232. data/lib/datadog/tracing/contrib/redis/quantize.rb +1 -1
  233. data/lib/datadog/tracing/contrib/redis/tags.rb +1 -1
  234. data/lib/datadog/tracing/contrib/redis/trace_middleware.rb +4 -4
  235. data/lib/datadog/tracing/contrib/registry.rb +1 -1
  236. data/lib/datadog/tracing/contrib/resque/integration.rb +1 -1
  237. data/lib/datadog/tracing/contrib/resque/resque_job.rb +1 -1
  238. data/lib/datadog/tracing/contrib/rest_client/ext.rb +3 -2
  239. data/lib/datadog/tracing/contrib/rest_client/integration.rb +1 -1
  240. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +3 -3
  241. data/lib/datadog/tracing/contrib/roda/instrumentation.rb +1 -1
  242. data/lib/datadog/tracing/contrib/roda/integration.rb +1 -1
  243. data/lib/datadog/tracing/contrib/semantic_logger/instrumentation.rb +1 -1
  244. data/lib/datadog/tracing/contrib/semantic_logger/integration.rb +1 -1
  245. data/lib/datadog/tracing/contrib/sequel/database.rb +5 -5
  246. data/lib/datadog/tracing/contrib/sequel/dataset.rb +1 -1
  247. data/lib/datadog/tracing/contrib/sequel/integration.rb +1 -1
  248. data/lib/datadog/tracing/contrib/sequel/utils.rb +1 -1
  249. data/lib/datadog/tracing/contrib/shoryuken/integration.rb +1 -1
  250. data/lib/datadog/tracing/contrib/sidekiq/integration.rb +1 -1
  251. data/lib/datadog/tracing/contrib/sidekiq/utils.rb +1 -1
  252. data/lib/datadog/tracing/contrib/sinatra/integration.rb +1 -1
  253. data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +38 -40
  254. data/lib/datadog/tracing/contrib/sneakers/integration.rb +1 -1
  255. data/lib/datadog/tracing/contrib/span_attribute_schema.rb +1 -1
  256. data/lib/datadog/tracing/contrib/stripe/integration.rb +1 -1
  257. data/lib/datadog/tracing/contrib/stripe/request.rb +1 -1
  258. data/lib/datadog/tracing/contrib/sucker_punch/integration.rb +1 -1
  259. data/lib/datadog/tracing/contrib/trilogy/ext.rb +1 -1
  260. data/lib/datadog/tracing/contrib/trilogy/integration.rb +1 -1
  261. data/lib/datadog/tracing/contrib/utils/quantization/hash.rb +11 -11
  262. data/lib/datadog/tracing/contrib/utils/quantization/http.rb +6 -6
  263. data/lib/datadog/tracing/diagnostics/environment_logger.rb +5 -1
  264. data/lib/datadog/tracing/distributed/b3_single.rb +1 -1
  265. data/lib/datadog/tracing/distributed/baggage.rb +73 -8
  266. data/lib/datadog/tracing/distributed/datadog.rb +4 -5
  267. data/lib/datadog/tracing/distributed/datadog_tags_codec.rb +11 -13
  268. data/lib/datadog/tracing/distributed/helpers.rb +1 -1
  269. data/lib/datadog/tracing/distributed/none.rb +4 -2
  270. data/lib/datadog/tracing/distributed/propagation.rb +4 -1
  271. data/lib/datadog/tracing/distributed/propagation_policy.rb +1 -1
  272. data/lib/datadog/tracing/distributed/trace_context.rb +22 -16
  273. data/lib/datadog/tracing/event.rb +5 -7
  274. data/lib/datadog/tracing/flush.rb +1 -1
  275. data/lib/datadog/tracing/metadata/analytics.rb +1 -1
  276. data/lib/datadog/tracing/metadata/tagging.rb +4 -4
  277. data/lib/datadog/tracing/pipeline/span_filter.rb +3 -1
  278. data/lib/datadog/tracing/pipeline/span_processor.rb +3 -1
  279. data/lib/datadog/tracing/pipeline.rb +1 -1
  280. data/lib/datadog/tracing/sampling/ext.rb +0 -2
  281. data/lib/datadog/tracing/sampling/rule_sampler.rb +30 -30
  282. data/lib/datadog/tracing/sampling/span/rule_parser.rb +1 -1
  283. data/lib/datadog/tracing/sampling/span/sampler.rb +0 -7
  284. data/lib/datadog/tracing/span.rb +1 -1
  285. data/lib/datadog/tracing/span_event.rb +10 -10
  286. data/lib/datadog/tracing/span_link.rb +12 -12
  287. data/lib/datadog/tracing/span_operation.rb +9 -11
  288. data/lib/datadog/tracing/trace_digest.rb +21 -23
  289. data/lib/datadog/tracing/trace_operation.rb +84 -88
  290. data/lib/datadog/tracing/trace_segment.rb +2 -2
  291. data/lib/datadog/tracing/tracer.rb +36 -38
  292. data/lib/datadog/tracing/transport/http/client.rb +1 -1
  293. data/lib/datadog/tracing/transport/http/traces.rb +2 -2
  294. data/lib/datadog/tracing/transport/io/client.rb +5 -5
  295. data/lib/datadog/tracing/transport/io/traces.rb +4 -4
  296. data/lib/datadog/tracing/transport/statistics.rb +1 -1
  297. data/lib/datadog/tracing/transport/traces.rb +5 -5
  298. data/lib/datadog/tracing/workers/trace_writer.rb +12 -12
  299. data/lib/datadog/tracing/workers.rb +2 -2
  300. data/lib/datadog/tracing.rb +2 -2
  301. data/lib/datadog/version.rb +1 -1
  302. metadata +18 -6
@@ -54,7 +54,7 @@ module Datadog
54
54
  @buffer_accepted_lengths += trace.length
55
55
 
56
56
  @buffer_spans += trace.length
57
- rescue StandardError => e
57
+ rescue => e
58
58
  Datadog.logger.debug(
59
59
  "Failed to measure queue accept. Cause: #{e.class.name} #{e.message} Source: #{Array(e.backtrace).first}"
60
60
  )
@@ -64,7 +64,7 @@ module Datadog
64
64
  @buffer_dropped += 1
65
65
 
66
66
  @buffer_spans -= trace.length
67
- rescue StandardError => e
67
+ rescue => e
68
68
  Datadog.logger.debug(
69
69
  "Failed to measure queue drop. Cause: #{e.class.name} #{e.message} Source: #{Array(e.backtrace).first}"
70
70
  )
@@ -89,7 +89,7 @@ module Datadog
89
89
  @buffer_accepted_lengths = 0
90
90
  @buffer_dropped = 0
91
91
  @buffer_spans = 0
92
- rescue StandardError => e
92
+ rescue => e
93
93
  Datadog.logger.debug(
94
94
  "Failed to measure queue. Cause: #{e.class.name} #{e.message} Source: #{Array(e.backtrace).first}"
95
95
  )
@@ -121,9 +121,9 @@ module Datadog
121
121
  # TODO We should restructure this module, so that classes are not declared at top-level ::Datadog.
122
122
  # TODO Making such a change is potentially breaking for users manually configuring the tracer.
123
123
  TraceBuffer = if Core::Environment::Ext::RUBY_ENGINE == 'ruby'
124
- CRubyTraceBuffer
125
- else
126
- ThreadSafeTraceBuffer
127
- end
124
+ CRubyTraceBuffer
125
+ else
126
+ ThreadSafeTraceBuffer
127
+ end
128
128
  end
129
129
  end
@@ -24,13 +24,11 @@ module Datadog
24
24
  def call(tracing_header_tags)
25
25
  # Modify the remote configuration value that it matches the
26
26
  # environment variable it configures.
27
- if tracing_header_tags
28
- tracing_header_tags.map! do |hash|
29
- "#{hash['header']}:#{hash['tag_name']}"
30
- end
27
+ tracing_header_tags&.map! do |hash|
28
+ "#{hash["header"]}:#{hash["tag_name"]}"
31
29
  end
32
30
 
33
- super(tracing_header_tags)
31
+ super
34
32
  end
35
33
  end
36
34
 
@@ -80,7 +78,7 @@ module Datadog
80
78
  tracing_sampling_rules = tracing_sampling_rules.to_json
81
79
  end
82
80
 
83
- super(tracing_sampling_rules)
81
+ super
84
82
  Datadog.send(:components).reconfigure_live_sampler
85
83
  end
86
84
 
@@ -9,8 +9,8 @@ module Datadog
9
9
  # e.g. Env vars, default values, enums, etc...
10
10
  module Ext
11
11
  ENV_ENABLED = 'DD_TRACE_ENABLED'
12
- ENV_OTEL_TRACES_EXPORTER = 'OTEL_TRACES_EXPORTER'
13
12
  ENV_HEADER_TAGS = 'DD_TRACE_HEADER_TAGS'
13
+ ENV_BAGGAGE_TAG_KEYS = 'DD_TRACE_BAGGAGE_TAG_KEYS'
14
14
  ENV_TRACE_ID_128_BIT_GENERATION_ENABLED = 'DD_TRACE_128_BIT_TRACEID_GENERATION_ENABLED'
15
15
  ENV_NATIVE_SPAN_EVENTS = 'DD_TRACE_NATIVE_SPAN_EVENTS'
16
16
 
@@ -47,14 +47,13 @@ module Datadog
47
47
  PROPAGATION_STYLE_BAGGAGE = 'baggage'
48
48
 
49
49
  PROPAGATION_STYLE_SUPPORTED = [PROPAGATION_STYLE_DATADOG, PROPAGATION_STYLE_B3_MULTI_HEADER,
50
- PROPAGATION_STYLE_B3_SINGLE_HEADER, PROPAGATION_STYLE_TRACE_CONTEXT,
51
- PROPAGATION_STYLE_BAGGAGE].freeze
50
+ PROPAGATION_STYLE_B3_SINGLE_HEADER, PROPAGATION_STYLE_TRACE_CONTEXT,
51
+ PROPAGATION_STYLE_BAGGAGE].freeze
52
52
 
53
53
  # Sets both extract and inject propagation style tho the provided value.
54
54
  # Has lower precedence than `DD_TRACE_PROPAGATION_STYLE_INJECT` or
55
55
  # `DD_TRACE_PROPAGATION_STYLE_EXTRACT`.
56
56
  ENV_PROPAGATION_STYLE = 'DD_TRACE_PROPAGATION_STYLE'
57
- ENV_OTEL_PROPAGATION_STYLE = 'OTEL_PROPAGATORS'
58
57
 
59
58
  ENV_PROPAGATION_STYLE_INJECT = 'DD_TRACE_PROPAGATION_STYLE_INJECT'
60
59
 
@@ -80,7 +79,6 @@ module Datadog
80
79
  ENV_SAMPLE_RATE = 'DD_TRACE_SAMPLE_RATE'
81
80
  ENV_RATE_LIMIT = 'DD_TRACE_RATE_LIMIT'
82
81
  ENV_RULES = 'DD_TRACE_SAMPLING_RULES'
83
- ENV_OTEL_TRACES_SAMPLER = 'OTEL_TRACES_SAMPLER'
84
82
  OTEL_TRACES_SAMPLER_ARG = 'OTEL_TRACES_SAMPLER_ARG'
85
83
 
86
84
  # @public_api
@@ -93,7 +93,8 @@ module Datadog
93
93
  # @return [Array<String>]
94
94
  option :propagation_style do |o|
95
95
  o.type :array
96
- o.env [Configuration::Ext::Distributed::ENV_PROPAGATION_STYLE, Configuration::Ext::Distributed::ENV_OTEL_PROPAGATION_STYLE]
96
+ # Note: Alias (DD_TRACE_PROPAGATION_STYLE) defined in supported-configurations.json
97
+ o.env Configuration::Ext::Distributed::ENV_PROPAGATION_STYLE
97
98
  o.default []
98
99
  o.after_set do |styles|
99
100
  next if styles.empty?
@@ -133,13 +134,16 @@ module Datadog
133
134
  # @default `DD_TRACE_ENABLED` environment variable, otherwise `true`
134
135
  # @return [Boolean]
135
136
  option :enabled do |o|
136
- o.env [Tracing::Configuration::Ext::ENV_ENABLED, Tracing::Configuration::Ext::ENV_OTEL_TRACES_EXPORTER]
137
+ # Note: Alias (OTEL_TRACES_EXPORTER) defined in supported-configurations.json
138
+ o.env Tracing::Configuration::Ext::ENV_ENABLED
137
139
  o.default true
138
140
  o.type :bool
139
141
  o.env_parser do |value|
140
142
  value = value&.downcase
141
143
  # Tracing is disabled when OTEL_TRACES_EXPORTER is none or
142
144
  # DD_TRACE_ENABLED is 0 or false.
145
+ # DEV: The current implementation accepts all of the mentioned values
146
+ # for both environment variables, which is incorrect.
143
147
  if ['none', 'false', '0'].include?(value)
144
148
  false
145
149
  # Tracing is enabled when DD_TRACE_ENABLED is true or 1
@@ -170,6 +174,23 @@ module Datadog
170
174
  o.setter { |header_tags, _| Configuration::HTTP::HeaderTags.new(header_tags) }
171
175
  end
172
176
 
177
+ # Comma-separated list of baggage keys that should be converted to span tags.
178
+ #
179
+ # Baggage keys matching the exact, case-sensitive names in this list will be converted
180
+ # to span tags with the prefix "baggage.".
181
+ #
182
+ # Special values:
183
+ # * Empty string ("") disables baggage tag conversion
184
+ # * Wildcard ("*") converts all baggage keys to span tags
185
+ #
186
+ # @default `DD_TRACE_BAGGAGE_TAG_KEYS` environment variable, otherwise `"user.id,session.id,account.id"`
187
+ # @return [Array<String>, Symbol, nil] processed baggage tag keys configuration
188
+ option :baggage_tag_keys do |o|
189
+ o.env Configuration::Ext::ENV_BAGGAGE_TAG_KEYS
190
+ o.type :array
191
+ o.default ['user.id', 'session.id', 'account.id']
192
+ end
193
+
173
194
  # Enable 128 bit trace id generation.
174
195
  #
175
196
  # @default `DD_TRACE_128_BIT_TRACEID_GENERATION_ENABLED` environment variable, otherwise `true`
@@ -285,7 +306,8 @@ module Datadog
285
306
  # @return [Float, nil]
286
307
  option :default_rate do |o|
287
308
  o.type :float, nilable: true
288
- o.env [Tracing::Configuration::Ext::Sampling::ENV_SAMPLE_RATE, Tracing::Configuration::Ext::Sampling::ENV_OTEL_TRACES_SAMPLER]
309
+ # Note: Alias (OTEL_TRACES_SAMPLER) defined in supported-configurations.json
310
+ o.env Tracing::Configuration::Ext::Sampling::ENV_SAMPLE_RATE
289
311
  o.env_parser do |value|
290
312
  # Parse the value as a float
291
313
  next if value.nil?
@@ -304,7 +326,7 @@ module Datadog
304
326
  when 'parentbased_always_off'
305
327
  0.0
306
328
  when 'parentbased_traceidratio'
307
- ENV.fetch(Tracing::Configuration::Ext::Sampling::OTEL_TRACES_SAMPLER_ARG, 1.0).to_f
329
+ DATADOG_ENV.fetch(Configuration::Ext::Sampling::OTEL_TRACES_SAMPLER_ARG, 1.0).to_f
308
330
  else
309
331
  value.to_f
310
332
  end
@@ -338,7 +360,7 @@ module Datadog
338
360
  # @public_api
339
361
  option :rules do |o|
340
362
  o.type :string, nilable: true
341
- o.default { ENV.fetch(Configuration::Ext::Sampling::ENV_RULES, nil) }
363
+ o.default { DATADOG_ENV.fetch(Configuration::Ext::Sampling::ENV_RULES, nil) }
342
364
  end
343
365
 
344
366
  # Single span sampling rules.
@@ -355,8 +377,8 @@ module Datadog
355
377
  option :span_rules do |o|
356
378
  o.type :string, nilable: true
357
379
  o.default do
358
- rules = ENV[Tracing::Configuration::Ext::Sampling::Span::ENV_SPAN_SAMPLING_RULES]
359
- rules_file = ENV[Tracing::Configuration::Ext::Sampling::Span::ENV_SPAN_SAMPLING_RULES_FILE]
380
+ rules = DATADOG_ENV[Tracing::Configuration::Ext::Sampling::Span::ENV_SPAN_SAMPLING_RULES]
381
+ rules_file = DATADOG_ENV[Tracing::Configuration::Ext::Sampling::Span::ENV_SPAN_SAMPLING_RULES_FILE]
360
382
 
361
383
  if rules
362
384
  if rules_file
@@ -53,7 +53,7 @@ module Datadog
53
53
 
54
54
  # Creates a copy of the context, when forked.
55
55
  def fork_clone
56
- forked_trace = @active_trace && @active_trace.fork_clone
56
+ forked_trace = @active_trace&.fork_clone
57
57
  self.class.new(trace: forked_trace)
58
58
  end
59
59
 
@@ -61,7 +61,7 @@ module Datadog
61
61
 
62
62
  def set_active_trace!(trace)
63
63
  # Don't retain finished traces
64
- @active_trace = trace && !trace.finished? ? trace : nil
64
+ @active_trace = (trace && !trace.finished?) ? trace : nil
65
65
  end
66
66
  end
67
67
  end
@@ -20,7 +20,7 @@ module Datadog
20
20
  module ClassMethods
21
21
  def span_options
22
22
  if configuration[:service_name]
23
- { service: configuration[:service_name] }
23
+ {service: configuration[:service_name]}
24
24
  else
25
25
  {}
26
26
  end
@@ -22,7 +22,7 @@ module Datadog
22
22
  end
23
23
 
24
24
  def self.version
25
- Gem.loaded_specs['actioncable'] && Gem.loaded_specs['actioncable'].version
25
+ Gem.loaded_specs['actioncable']&.version
26
26
  end
27
27
 
28
28
  def self.loaded?
@@ -23,7 +23,7 @@ module Datadog
23
23
  end
24
24
 
25
25
  def self.version
26
- Gem.loaded_specs['actionmailer'] && Gem.loaded_specs['actionmailer'].version
26
+ Gem.loaded_specs['actionmailer']&.version
27
27
  end
28
28
 
29
29
  def self.loaded?
@@ -42,7 +42,7 @@ module Datadog
42
42
 
43
43
  span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
44
44
  span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_CONTROLLER)
45
- rescue StandardError => e
45
+ rescue => e
46
46
  Datadog.logger.error(e.message)
47
47
  Datadog::Core::Telemetry::Logger.report(e)
48
48
  end
@@ -87,7 +87,7 @@ module Datadog
87
87
  ensure
88
88
  span.finish
89
89
  end
90
- rescue StandardError => e
90
+ rescue => e
91
91
  Datadog.logger.error(e.message)
92
92
  Datadog::Core::Telemetry::Logger.report(e)
93
93
  end
@@ -115,7 +115,7 @@ module Datadog
115
115
  begin
116
116
  # process and catch request exceptions
117
117
  Instrumentation.start_processing(payload)
118
- result = super(*args)
118
+ result = super
119
119
  status = datadog_response_status
120
120
  payload[:status] = status unless status.nil?
121
121
  result
@@ -146,7 +146,7 @@ module Datadog
146
146
  when Array
147
147
  # Likely a Rack response array: first element is the status.
148
148
  status = response.first
149
- status.class <= Integer ? status : nil
149
+ (status.class <= Integer) ? status : nil
150
150
  end
151
151
  end
152
152
  end
@@ -23,7 +23,7 @@ module Datadog
23
23
  end
24
24
 
25
25
  def self.version
26
- Gem.loaded_specs['actionpack'] && Gem.loaded_specs['actionpack'].version
26
+ Gem.loaded_specs['actionpack']&.version
27
27
  end
28
28
 
29
29
  def self.loaded?
@@ -46,7 +46,7 @@ module Datadog
46
46
  Contrib::Analytics.set_measured(span)
47
47
 
48
48
  record_exception(span, payload)
49
- rescue StandardError => e
49
+ rescue => e
50
50
  Datadog.logger.debug(e.message)
51
51
  end
52
52
  end
@@ -29,10 +29,10 @@ module Datadog
29
29
 
30
30
  def set_common_tags(span, payload)
31
31
  adapter_name = if payload[:adapter].is_a?(Class)
32
- payload[:adapter].name
33
- else
34
- payload[:adapter].class.name
35
- end
32
+ payload[:adapter].name
33
+ else
34
+ payload[:adapter].class.name
35
+ end
36
36
  span.set_tag(Ext::TAG_ADAPTER, adapter_name)
37
37
 
38
38
  span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
@@ -44,10 +44,10 @@ module Datadog
44
44
  span.set_tag(Ext::TAG_JOB_EXECUTIONS, job.executions) if job.respond_to?(:executions)
45
45
 
46
46
  job_scheduled_at = if job.respond_to?(:scheduled_at)
47
- job.scheduled_at
48
- elsif job.respond_to?(:enqueued_at)
49
- job.enqueued_at
50
- end
47
+ job.scheduled_at
48
+ elsif job.respond_to?(:enqueued_at)
49
+ job.enqueued_at
50
+ end
51
51
  span.set_tag(Ext::TAG_JOB_SCHEDULED_AT, Time.at(job_scheduled_at)) if job_scheduled_at
52
52
  end
53
53
  end
@@ -39,7 +39,7 @@ module Datadog
39
39
 
40
40
  set_common_tags(span, payload)
41
41
  span.set_tag(Ext::TAG_JOB_ERROR, payload[:error])
42
- rescue StandardError => e
42
+ rescue => e
43
43
  Datadog.logger.debug(e.message)
44
44
  end
45
45
  end
@@ -38,7 +38,7 @@ module Datadog
38
38
  end
39
39
 
40
40
  set_common_tags(span, payload)
41
- rescue StandardError => e
41
+ rescue => e
42
42
  Datadog.logger.debug(e.message)
43
43
  end
44
44
  end
@@ -38,7 +38,7 @@ module Datadog
38
38
  end
39
39
 
40
40
  set_common_tags(span, payload)
41
- rescue StandardError => e
41
+ rescue => e
42
42
  Datadog.logger.debug(e.message)
43
43
  end
44
44
  end
@@ -40,7 +40,7 @@ module Datadog
40
40
  set_common_tags(span, payload)
41
41
  span.set_tag(Ext::TAG_JOB_ERROR, payload[:error])
42
42
  span.set_tag(Ext::TAG_JOB_RETRY_WAIT, payload[:wait])
43
- rescue StandardError => e
43
+ rescue => e
44
44
  Datadog.logger.debug(e.message)
45
45
  end
46
46
  end
@@ -38,7 +38,7 @@ module Datadog
38
38
  end
39
39
 
40
40
  set_common_tags(span, payload)
41
- rescue StandardError => e
41
+ rescue => e
42
42
  Datadog.logger.debug(e.message)
43
43
  end
44
44
  end
@@ -39,7 +39,7 @@ module Datadog
39
39
 
40
40
  set_common_tags(span, payload)
41
41
  span.set_tag(Ext::TAG_JOB_ERROR, payload[:error])
42
- rescue StandardError => e
42
+ rescue => e
43
43
  Datadog.logger.debug(e.message)
44
44
  end
45
45
  end
@@ -22,7 +22,7 @@ module Datadog
22
22
  end
23
23
 
24
24
  def self.version
25
- Gem.loaded_specs['activejob'] && Gem.loaded_specs['activejob'].version
25
+ Gem.loaded_specs['activejob']&.version
26
26
  end
27
27
 
28
28
  def self.loaded?
@@ -34,7 +34,7 @@ module Datadog
34
34
  span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_RENDER)
35
35
 
36
36
  set_common_tags(span, payload)
37
- rescue StandardError => e
37
+ rescue => e
38
38
  Datadog.logger.debug(e.message)
39
39
  end
40
40
  end
@@ -18,9 +18,9 @@ module Datadog
18
18
 
19
19
  def supported?
20
20
  Gem.loaded_specs['active_model_serializers'] \
21
- && ( \
21
+ && (
22
22
  Gem.loaded_specs['active_model_serializers'].version >= Gem::Version.new('0.9') \
23
- && Gem.loaded_specs['active_model_serializers'].version < Gem::Version.new('0.10') \
23
+ && Gem.loaded_specs['active_model_serializers'].version < Gem::Version.new('0.10')
24
24
  )
25
25
  end
26
26
 
@@ -36,7 +36,7 @@ module Datadog
36
36
  span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_SERIALIZE)
37
37
 
38
38
  set_common_tags(span, payload)
39
- rescue StandardError => e
39
+ rescue => e
40
40
  Datadog.logger.debug(e.message)
41
41
  end
42
42
  end
@@ -18,8 +18,7 @@ module Datadog
18
18
  register_as :active_model_serializers
19
19
 
20
20
  def self.version
21
- Gem.loaded_specs['active_model_serializers'] \
22
- && Gem.loaded_specs['active_model_serializers'].version
21
+ Gem.loaded_specs['active_model_serializers']&.version
23
22
  end
24
23
 
25
24
  def self.loaded?
@@ -75,7 +75,7 @@ module Datadog
75
75
  # hence provide a succinct summary for the error logging.
76
76
  #
77
77
  Datadog.logger.error(
78
- 'Failed to resolve ActiveRecord database configuration. '\
78
+ 'Failed to resolve ActiveRecord database configuration. ' \
79
79
  "Cause: #{e.class.name} Source: #{Array(e.backtrace).first}"
80
80
  )
81
81
  Core::Telemetry::Logger.report(e, description: 'Failed to resolve ActiveRecord database configuration')
@@ -48,7 +48,7 @@ module Datadog
48
48
 
49
49
  span.set_tag(Ext::TAG_INSTANTIATION_CLASS_NAME, payload.fetch(:class_name))
50
50
  span.set_tag(Ext::TAG_INSTANTIATION_RECORD_COUNT, payload.fetch(:record_count))
51
- rescue StandardError => e
51
+ rescue => e
52
52
  Datadog.logger.error(e.message)
53
53
  Datadog::Core::Telemetry::Logger.report(e)
54
54
  end
@@ -35,10 +35,10 @@ module Datadog
35
35
  settings = Datadog.configuration.tracing[:active_record, config]
36
36
  adapter_name = Contrib::Utils::Database.normalize_vendor(config[:adapter])
37
37
  service_name = if settings.service_name != Contrib::Utils::Database::VENDOR_DEFAULT
38
- settings.service_name
39
- else
40
- adapter_name
41
- end
38
+ settings.service_name
39
+ else
40
+ adapter_name
41
+ end
42
42
 
43
43
  span.name = "#{adapter_name}.query"
44
44
  span.service = service_name
@@ -68,7 +68,7 @@ module Datadog
68
68
  span.set_tag(Ext::TAG_DB_CACHED, cached) if cached
69
69
  span.set_tag(Tracing::Metadata::Ext::NET::TAG_TARGET_HOST, config[:host]) if config[:host]
70
70
  span.set_tag(Tracing::Metadata::Ext::NET::TAG_TARGET_PORT, config[:port]) if config[:port]
71
- rescue StandardError => e
71
+ rescue => e
72
72
  Datadog.logger.error(e.message)
73
73
  Datadog::Core::Telemetry::Logger.report(e)
74
74
  end
@@ -27,7 +27,7 @@ module Datadog
27
27
  end
28
28
 
29
29
  def self.version
30
- Gem.loaded_specs['activerecord'] && Gem.loaded_specs['activerecord'].version
30
+ Gem.loaded_specs['activerecord']&.version
31
31
  end
32
32
 
33
33
  def self.loaded?
@@ -39,17 +39,17 @@ module Datadog
39
39
  return default_connection_config if connection.nil? && connection_id.nil?
40
40
 
41
41
  conn = if !connection.nil?
42
- # Since Rails 6.0, the connection object
43
- # is directly available.
44
- connection
45
- else
46
- # For Rails < 6.0, only the `connection_id`
47
- # is available. We have to find the connection
48
- # object from it.
49
- connection_from_id(connection_id)
50
- end
42
+ # Since Rails 6.0, the connection object
43
+ # is directly available.
44
+ connection
45
+ else
46
+ # For Rails < 6.0, only the `connection_id`
47
+ # is available. We have to find the connection
48
+ # object from it.
49
+ connection_from_id(connection_id)
50
+ end
51
51
 
52
- if conn && conn.instance_variable_defined?(:@config)
52
+ if conn&.instance_variable_defined?(:@config)
53
53
  conn.instance_variable_get(:@config)
54
54
  else
55
55
  EMPTY_CONFIG
@@ -102,14 +102,14 @@ module Datadog
102
102
  return @default_connection_config if instance_variable_defined?(:@default_connection_config)
103
103
 
104
104
  current_connection_name = if ::ActiveRecord::Base.respond_to?(:connection_specification_name)
105
- ::ActiveRecord::Base.connection_specification_name
106
- else
107
- ::ActiveRecord::Base
108
- end
105
+ ::ActiveRecord::Base.connection_specification_name
106
+ else
107
+ ::ActiveRecord::Base
108
+ end
109
109
 
110
110
  connection_pool = ::ActiveRecord::Base.connection_handler.retrieve_connection_pool(current_connection_name)
111
111
  connection_pool.nil? ? EMPTY_CONFIG : (@default_connection_config = db_config(connection_pool))
112
- rescue StandardError
112
+ rescue
113
113
  EMPTY_CONFIG
114
114
  end
115
115
 
@@ -38,11 +38,11 @@ module Datadog
38
38
 
39
39
  # DEV: Look for other uses of `ActiveSupport::Cache::Store#instrument`, to find other useful event keys.
40
40
  MAPPING = {
41
- 'cache_delete.active_support' => { resource: Ext::RESOURCE_CACHE_DELETE },
42
- 'cache_read.active_support' => { resource: Ext::RESOURCE_CACHE_GET },
43
- 'cache_read_multi.active_support' => { resource: Ext::RESOURCE_CACHE_MGET, multi_key: true },
44
- 'cache_write.active_support' => { resource: Ext::RESOURCE_CACHE_SET },
45
- 'cache_write_multi.active_support' => { resource: Ext::RESOURCE_CACHE_MSET, multi_key: true }
41
+ 'cache_delete.active_support' => {resource: Ext::RESOURCE_CACHE_DELETE},
42
+ 'cache_read.active_support' => {resource: Ext::RESOURCE_CACHE_GET},
43
+ 'cache_read_multi.active_support' => {resource: Ext::RESOURCE_CACHE_MGET, multi_key: true},
44
+ 'cache_write.active_support' => {resource: Ext::RESOURCE_CACHE_SET},
45
+ 'cache_write_multi.active_support' => {resource: Ext::RESOURCE_CACHE_MSET, multi_key: true}
46
46
  }.freeze
47
47
 
48
48
  def trace?(event, payload)
@@ -93,7 +93,7 @@ module Datadog
93
93
  if Datadog.configuration.tracing[:active_support][:cache_key].enabled
94
94
  set_cache_key(span, key, mapping[:multi_key])
95
95
  end
96
- rescue StandardError => e
96
+ rescue => e
97
97
  Datadog.logger.error(e.message)
98
98
  Datadog::Core::Telemetry::Logger.report(e)
99
99
  end
@@ -24,7 +24,7 @@ module Datadog
24
24
  end
25
25
 
26
26
  def self.version
27
- Gem.loaded_specs['activesupport'] && Gem.loaded_specs['activesupport'].version
27
+ Gem.loaded_specs['activesupport']&.version
28
28
  end
29
29
 
30
30
  def self.loaded?
@@ -67,7 +67,8 @@ module Datadog
67
67
  payload[:exception] # Fallback for ActiveSupport < 5.0
68
68
  end
69
69
 
70
- def on_start(_span, _event, _id, _payload); end
70
+ def on_start(_span, _event, _id, _payload)
71
+ end
71
72
 
72
73
  def on_finish(span, _event, _id, payload)
73
74
  record_exception(span, payload)
@@ -122,8 +122,8 @@ module Datadog
122
122
  end
123
123
 
124
124
  def run(span, name, id, payload)
125
- @block.call(span, name, id, payload) if @block
126
- rescue StandardError => e
125
+ @block&.call(span, name, id, payload)
126
+ rescue => e
127
127
  Datadog.logger.debug(
128
128
  "ActiveSupport::Notifications handler for '#{name}' failed: #{e.class.name} #{e.message}"
129
129
  )
@@ -144,13 +144,11 @@ module Datadog
144
144
 
145
145
  def run(event, key, *args)
146
146
  blocks_for(key).each do |callback|
147
- begin
148
- callback.call(event, key, *args)
149
- rescue StandardError => e
150
- Datadog.logger.debug(
151
- "ActiveSupport::Notifications '#{key}' callback for '#{event}' failed: #{e.class.name} #{e.message}"
152
- )
153
- end
147
+ callback.call(event, key, *args)
148
+ rescue => e
149
+ Datadog.logger.debug(
150
+ "ActiveSupport::Notifications '#{key}' callback for '#{event}' failed: #{e.class.name} #{e.message}"
151
+ )
154
152
  end
155
153
  end
156
154
 
@@ -33,7 +33,7 @@ module Datadog
33
33
  TAG_RULE_NAME = 'rulename'
34
34
  TAG_STATE_MACHINE_NAME = 'statemachinename'
35
35
  TAG_BUCKET_NAME = 'bucketname'
36
- PEER_SERVICE_SOURCES = Array[TAG_QUEUE_NAME,
36
+ PEER_SERVICE_SOURCES = [TAG_QUEUE_NAME,
37
37
  TAG_TOPIC_NAME,
38
38
  TAG_STREAM_NAME,
39
39
  TAG_TABLE_NAME,