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
@@ -26,7 +26,7 @@ module Datadog
26
26
  end
27
27
 
28
28
  def span_options
29
- super.merge({ tags: { Tracing::Metadata::Ext::TAG_OPERATION => Ext::TAG_OPERATION_CONSUMER_SYNC_GROUP } })
29
+ super.merge({tags: {Tracing::Metadata::Ext::TAG_OPERATION => Ext::TAG_OPERATION_CONSUMER_SYNC_GROUP}})
30
30
  end
31
31
  end
32
32
  end
@@ -30,7 +30,7 @@ module Datadog
30
30
  end
31
31
 
32
32
  def span_options
33
- super.merge({ tags: { Tracing::Metadata::Ext::TAG_OPERATION => Ext::TAG_OPERATION_SEND_MESSAGES } })
33
+ super.merge({tags: {Tracing::Metadata::Ext::TAG_OPERATION => Ext::TAG_OPERATION_SEND_MESSAGES}})
34
34
  end
35
35
  end
36
36
  end
@@ -33,7 +33,7 @@ module Datadog
33
33
  end
34
34
 
35
35
  def span_options
36
- super.merge({ tags: { Tracing::Metadata::Ext::TAG_OPERATION => Ext::TAG_OPERATION_DELIVER_MESSAGES } })
36
+ super.merge({tags: {Tracing::Metadata::Ext::TAG_OPERATION => Ext::TAG_OPERATION_DELIVER_MESSAGES}})
37
37
  end
38
38
  end
39
39
  end
@@ -21,7 +21,7 @@ module Datadog
21
21
  end
22
22
 
23
23
  def self.version
24
- Gem.loaded_specs['ruby-kafka'] && Gem.loaded_specs['ruby-kafka'].version
24
+ Gem.loaded_specs['ruby-kafka']&.version
25
25
  end
26
26
 
27
27
  def self.loaded?
@@ -24,19 +24,19 @@ module Datadog
24
24
  consumer = job.executor.topic.consumer
25
25
 
26
26
  action = case job_type
27
- when 'Periodic', 'PeriodicNonBlocking'
28
- 'tick'
29
- when 'Shutdown'
30
- 'shutdown'
31
- when 'Revoked', 'RevokedNonBlocking'
32
- 'revoked'
33
- when 'Idle'
34
- 'idle'
35
- when 'Eofed', 'EofedNonBlocking'
36
- 'eofed'
37
- else
38
- 'consume'
39
- end
27
+ when 'Periodic', 'PeriodicNonBlocking'
28
+ 'tick'
29
+ when 'Shutdown'
30
+ 'shutdown'
31
+ when 'Revoked', 'RevokedNonBlocking'
32
+ 'revoked'
33
+ when 'Idle'
34
+ 'idle'
35
+ when 'Eofed', 'EofedNonBlocking'
36
+ 'eofed'
37
+ else
38
+ 'consume'
39
+ end
40
40
 
41
41
  span.resource = "#{consumer}##{action}"
42
42
 
@@ -27,10 +27,10 @@ module Datadog
27
27
  @messages_array.each do |message|
28
28
  if configuration[:distributed_tracing]
29
29
  headers = if message.metadata.respond_to?(:raw_headers)
30
- message.metadata.raw_headers
31
- else
32
- message.metadata.headers
33
- end
30
+ message.metadata.raw_headers
31
+ else
32
+ message.metadata.headers
33
+ end
34
34
  trace_digest = Karafka.extract(headers)
35
35
  Datadog::Tracing.continue_trace!(trace_digest) if trace_digest
36
36
  end
@@ -16,7 +16,7 @@ module Datadog
16
16
  return super unless Datadog.configuration.tracing.log_injection
17
17
  return super unless Datadog.configuration.tracing[:lograge].enabled
18
18
 
19
- original_custom_options = super(event)
19
+ original_custom_options = super
20
20
 
21
21
  # Retrieves trace information for current thread
22
22
  correlation = Tracing.correlation
@@ -18,7 +18,7 @@ module Datadog
18
18
  register_as :lograge
19
19
 
20
20
  def self.version
21
- Gem.loaded_specs['lograge'] && Gem.loaded_specs['lograge'].version
21
+ Gem.loaded_specs['lograge']&.version
22
22
  end
23
23
 
24
24
  def self.loaded?
@@ -11,7 +11,7 @@ module Datadog
11
11
  # Custom settings for the MongoDB integration
12
12
  # @public_api
13
13
  class Settings < Contrib::Configuration::Settings
14
- DEFAULT_QUANTIZE = { show: [:collection, :database, :operation] }.freeze
14
+ DEFAULT_QUANTIZE = {show: [:collection, :database, :operation]}.freeze
15
15
 
16
16
  option :enabled do |o|
17
17
  o.type :bool
@@ -25,7 +25,7 @@ module Datadog
25
25
  TAG_COMPONENT = 'mongodb'
26
26
  TAG_OPERATION_COMMAND = 'command'
27
27
  TAG_SYSTEM = 'mongodb'
28
- PEER_SERVICE_SOURCES = (Array[Ext::TAG_DB] + Contrib::Ext::DB::PEER_SERVICE_SOURCES).freeze
28
+ PEER_SERVICE_SOURCES = ([Ext::TAG_DB] + Contrib::Ext::DB::PEER_SERVICE_SOURCES).freeze
29
29
 
30
30
  # Temporary namespace to accommodate unified tags which has naming collision, before
31
31
  # making breaking changes
@@ -22,7 +22,7 @@ module Datadog
22
22
  end
23
23
 
24
24
  def self.version
25
- Gem.loaded_specs['mongo'] && Gem.loaded_specs['mongo'].version
25
+ Gem.loaded_specs['mongo']&.version
26
26
  end
27
27
 
28
28
  def self.loaded?
@@ -9,7 +9,7 @@ module Datadog
9
9
  module MongoDB
10
10
  EXCLUDE_KEYS = [:_id].freeze
11
11
  SHOW_KEYS = [].freeze
12
- DEFAULT_OPTIONS = { exclude: EXCLUDE_KEYS, show: SHOW_KEYS }.freeze
12
+ DEFAULT_OPTIONS = {exclude: EXCLUDE_KEYS, show: SHOW_KEYS}.freeze
13
13
 
14
14
  module_function
15
15
 
@@ -72,7 +72,7 @@ module Datadog
72
72
 
73
73
  # set the resource with the quantized query
74
74
  span.resource = serialized_query
75
- rescue StandardError => e
75
+ rescue => e
76
76
  Datadog.logger.debug("error when handling MongoDB 'started' event: #{e}")
77
77
  end
78
78
  # rubocop:enable Metrics/AbcSize
@@ -84,12 +84,12 @@ module Datadog
84
84
  # the failure is not a real exception because it's handled by
85
85
  # the framework itself, so we set only the error and the message
86
86
  span.set_error(event)
87
- rescue StandardError => e
87
+ rescue => e
88
88
  Datadog.logger.debug("error when handling MongoDB 'failed' event: #{e}")
89
89
  ensure
90
90
  # whatever happens, the Span must be removed from the local storage and
91
91
  # it must be finished to prevent any leak
92
- span.finish unless span.nil?
92
+ span&.finish
93
93
  clear_span(event)
94
94
  end
95
95
 
@@ -100,12 +100,12 @@ module Datadog
100
100
  # add fields that are available only after executing the query
101
101
  rows = event.reply.fetch('n', nil)
102
102
  span.set_tag(Ext::TAG_ROWS, rows) unless rows.nil?
103
- rescue StandardError => e
103
+ rescue => e
104
104
  Datadog.logger.debug("error when handling MongoDB 'succeeded' event: #{e}")
105
105
  ensure
106
106
  # whatever happens, the Span must be removed from the local storage and
107
107
  # it must be finished to prevent any leak
108
- span.finish unless span.nil?
108
+ span&.finish
109
109
  clear_span(event)
110
110
  end
111
111
 
@@ -118,7 +118,7 @@ module Datadog
118
118
  # Incorrect Hash#to_s serialization. The Mongo command should only be encoded as JSON.
119
119
  # This code path should be removed, and is only kept to avoid a breaking change.
120
120
  Datadog::Core.log_deprecation(key: :mongo_json_command) do
121
- 'MongoDB integration: `json_command: false` causes invalid command serialization. '\
121
+ 'MongoDB integration: `json_command: false` causes invalid command serialization. ' \
122
122
  'Use `json_command: true` or `DD_TRACE_MONGO_JSON_COMMAND=1` instead.'
123
123
  end
124
124
 
@@ -20,7 +20,7 @@ module Datadog
20
20
  TAG_COMPONENT = 'mysql2'
21
21
  TAG_OPERATION_QUERY = 'query'
22
22
  TAG_SYSTEM = 'mysql'
23
- PEER_SERVICE_SOURCES = (Array[Ext::TAG_DB_NAME] + Contrib::Ext::DB::PEER_SERVICE_SOURCES).freeze
23
+ PEER_SERVICE_SOURCES = ([Ext::TAG_DB_NAME] + Contrib::Ext::DB::PEER_SERVICE_SOURCES).freeze
24
24
  end
25
25
  end
26
26
  end
@@ -18,7 +18,7 @@ module Datadog
18
18
  register_as :mysql2
19
19
 
20
20
  def self.version
21
- Gem.loaded_specs['mysql2'] && Gem.loaded_specs['mysql2'].version
21
+ Gem.loaded_specs['mysql2']&.version
22
22
  end
23
23
 
24
24
  def self.loaded?
@@ -56,7 +56,7 @@ module Datadog
56
56
 
57
57
  Datadog.logger.warn(
58
58
  "Invalid resource pattern: #{value}. " \
59
- "Supported values are: #{Ext::VALID_RESOURCE_PATTERNS.join(' | ')}. " \
59
+ "Supported values are: #{Ext::VALID_RESOURCE_PATTERNS.join(" | ")}. " \
60
60
  "Using default value: #{Ext::DEFAULT_RESOURCE_PATTERN}."
61
61
  )
62
62
 
@@ -36,10 +36,11 @@ module Datadog
36
36
  TAG_PORT = 'http.url_details.port'
37
37
  TAG_SCHEME = 'http.url_details.scheme'
38
38
  TAG_RESPONSE_CONTENT_LENGTH = 'http.response.content_length'
39
- PEER_SERVICE_SOURCES = Array[
39
+ PEER_SERVICE_SOURCES = [
40
40
  Tracing::Metadata::Ext::TAG_PEER_HOSTNAME,
41
41
  Tracing::Metadata::Ext::NET::TAG_DESTINATION_NAME,
42
- Tracing::Metadata::Ext::NET::TAG_TARGET_HOST,].freeze
42
+ Tracing::Metadata::Ext::NET::TAG_TARGET_HOST,
43
+ ].freeze
43
44
  end
44
45
  end
45
46
  end
@@ -21,8 +21,7 @@ module Datadog
21
21
  end
22
22
 
23
23
  def self.version
24
- Gem.loaded_specs['opensearch-ruby'] \
25
- && Gem.loaded_specs['opensearch-ruby'].version
24
+ Gem.loaded_specs['opensearch-ruby']&.version
26
25
  end
27
26
 
28
27
  def self.loaded?
@@ -34,79 +34,77 @@ module Datadog
34
34
  response = nil
35
35
  # rubocop:disable Metrics/BlockLength
36
36
  Tracing.trace('opensearch.query', service: datadog_configuration[:service_name]) do |span|
37
- begin
38
- # Set generic tags
39
- span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
40
- span.set_tag(Tracing::Metadata::Ext::TAG_KIND, Tracing::Metadata::Ext::SpanKind::TAG_CLIENT)
41
- span.set_tag(Contrib::Ext::DB::TAG_SYSTEM, Ext::TAG_SYSTEM)
42
-
43
- # Set argument tags
44
- span.set_tag(OpenSearch::Ext::TAG_METHOD, method)
45
- span.set_tag(OpenSearch::Ext::TAG_PATH, path)
46
-
47
- tag_params(params, span)
48
- tag_body(body, span)
49
-
50
- # Parse url
51
- original_url = transport.get_connection.full_url(path, {})
52
- url = URI.parse(original_url)
53
- host = url.host
54
- port = url.port
55
- scheme = url.scheme
56
- # Set url.user to nil to remove sensitive information (i.e. user's username and password)
57
- url.user = nil
58
-
59
- if datadog_configuration[:peer_service]
60
- span.set_tag(
61
- Tracing::Metadata::Ext::TAG_PEER_SERVICE,
62
- datadog_configuration[:peer_service]
63
- )
64
- end
37
+ # Set generic tags
38
+ span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
39
+ span.set_tag(Tracing::Metadata::Ext::TAG_KIND, Tracing::Metadata::Ext::SpanKind::TAG_CLIENT)
40
+ span.set_tag(Contrib::Ext::DB::TAG_SYSTEM, Ext::TAG_SYSTEM)
41
+
42
+ # Set argument tags
43
+ span.set_tag(OpenSearch::Ext::TAG_METHOD, method)
44
+ span.set_tag(OpenSearch::Ext::TAG_PATH, path)
45
+
46
+ tag_params(params, span)
47
+ tag_body(body, span)
48
+
49
+ # Parse url
50
+ original_url = transport.get_connection.full_url(path, {})
51
+ url = URI.parse(original_url)
52
+ host = url.host
53
+ port = url.port
54
+ scheme = url.scheme
55
+ # Set url.user to nil to remove sensitive information (i.e. user's username and password)
56
+ url.user = nil
57
+
58
+ if datadog_configuration[:peer_service]
59
+ span.set_tag(
60
+ Tracing::Metadata::Ext::TAG_PEER_SERVICE,
61
+ datadog_configuration[:peer_service]
62
+ )
63
+ end
65
64
 
66
- # Tag original global service name if not used
67
- if span.service != Datadog.configuration.service
68
- span.set_tag(Tracing::Contrib::Ext::Metadata::TAG_BASE_SERVICE, Datadog.configuration.service)
69
- end
65
+ # Tag original global service name if not used
66
+ if span.service != Datadog.configuration.service
67
+ span.set_tag(Tracing::Contrib::Ext::Metadata::TAG_BASE_SERVICE, Datadog.configuration.service)
68
+ end
70
69
 
71
- # Set url tags
72
- span.set_tag(OpenSearch::Ext::TAG_URL, url)
73
- span.set_tag(OpenSearch::Ext::TAG_HOST, host)
74
- span.set_tag(OpenSearch::Ext::TAG_PORT, port)
75
- span.set_tag(OpenSearch::Ext::TAG_SCHEME, scheme)
76
-
77
- span.set_tag(Tracing::Metadata::Ext::TAG_PEER_HOSTNAME, host) if host
78
-
79
- # Define span resource
80
- quantized_url = if datadog_configuration[:resource_pattern] == Ext::RELATIVE_RESOURCE_PATTERN
81
- OpenSearch::Quantize.format_url(url.path)
82
- else # Default to Ext::ABSOLUTE_RESOURCE_PATTERN
83
- OpenSearch::Quantize.format_url(url)
84
- end
85
- span.resource = "#{method} #{quantized_url}"
86
- Contrib::SpanAttributeSchema.set_peer_service!(span, Ext::PEER_SERVICE_SOURCES)
87
- rescue StandardError => e
88
- Datadog.logger.error(e.message)
89
- Datadog::Core::Telemetry::Logger.report(e)
90
- # TODO: Refactor the code to streamline the execution without ensure
91
- ensure
92
- begin
93
- response = super
94
- rescue => e
95
- status_code = ::OpenSearch::Transport::Transport::ERRORS.key(e.class)
96
- span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_STATUS_CODE, status_code) if status_code
97
- raise
70
+ # Set url tags
71
+ span.set_tag(OpenSearch::Ext::TAG_URL, url)
72
+ span.set_tag(OpenSearch::Ext::TAG_HOST, host)
73
+ span.set_tag(OpenSearch::Ext::TAG_PORT, port)
74
+ span.set_tag(OpenSearch::Ext::TAG_SCHEME, scheme)
75
+
76
+ span.set_tag(Tracing::Metadata::Ext::TAG_PEER_HOSTNAME, host) if host
77
+
78
+ # Define span resource
79
+ quantized_url = if datadog_configuration[:resource_pattern] == Ext::RELATIVE_RESOURCE_PATTERN
80
+ OpenSearch::Quantize.format_url(url.path)
81
+ else # Default to Ext::ABSOLUTE_RESOURCE_PATTERN
82
+ OpenSearch::Quantize.format_url(url)
83
+ end
84
+ span.resource = "#{method} #{quantized_url}"
85
+ Contrib::SpanAttributeSchema.set_peer_service!(span, Ext::PEER_SERVICE_SOURCES)
86
+ rescue => e
87
+ Datadog.logger.error(e.message)
88
+ Datadog::Core::Telemetry::Logger.report(e)
89
+ # TODO: Refactor the code to streamline the execution without ensure
90
+ ensure
91
+ begin
92
+ response = super
93
+ rescue => e
94
+ status_code = ::OpenSearch::Transport::Transport::ERRORS.key(e.class)
95
+ span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_STATUS_CODE, status_code) if status_code
96
+ raise
97
+ end
98
+ # Set post-response tags
99
+ if response
100
+ if response.respond_to?(:status)
101
+ span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_STATUS_CODE, response.status)
98
102
  end
99
- # Set post-response tags
100
- if response
101
- if response.respond_to?(:status)
102
- span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_STATUS_CODE, response.status)
103
- end
104
- if response.respond_to?(:headers) && (response.headers || {})['content-length']
105
- span.set_tag(
106
- OpenSearch::Ext::TAG_RESPONSE_CONTENT_LENGTH,
107
- response.headers['content-length'].to_i
108
- )
109
- end
103
+ if response.respond_to?(:headers) && (response.headers || {})['content-length']
104
+ span.set_tag(
105
+ OpenSearch::Ext::TAG_RESPONSE_CONTENT_LENGTH,
106
+ response.headers['content-length'].to_i
107
+ )
110
108
  end
111
109
  end
112
110
  end
@@ -28,7 +28,7 @@ module Datadog
28
28
  # Use Elasticsearch implementation
29
29
  def format_body(body, options = {})
30
30
  format_body!(body, options)
31
- rescue StandardError
31
+ rescue
32
32
  options[:placeholder] || DEFAULT_PLACEHOLDER
33
33
  end
34
34
 
@@ -51,10 +51,10 @@ module Datadog
51
51
  # Show
52
52
  # If either is :all, value becomes :all
53
53
  options[:show] = if original[:show] == :all || additional[:show] == :all
54
- :all
55
- else
56
- (original[:show] || []).dup.concat(additional[:show] || []).uniq
57
- end
54
+ :all
55
+ else
56
+ (original[:show] || []).dup.concat(additional[:show] || []).uniq
57
+ end
58
58
 
59
59
  # Exclude
60
60
  options[:exclude] = (original[:exclude] || []).dup.concat(additional[:exclude] || []).uniq
@@ -27,7 +27,7 @@ module Datadog
27
27
  end
28
28
 
29
29
  def patch_name
30
- self.class != Class && self.class != Module ? self.class.name : name
30
+ (self.class != Class && self.class != Module) ? self.class.name : name
31
31
  end
32
32
 
33
33
  def patched?
@@ -38,15 +38,13 @@ module Datadog
38
38
  return unless defined?(super)
39
39
 
40
40
  patch_only_once.run do
41
- begin
42
- super.tap do
43
- # Emit a metric
44
- Datadog.health_metrics.instrumentation_patched(1, tags: default_tags)
45
- @patch_successful = true
46
- end
47
- rescue StandardError => e
48
- on_patch_error(e)
41
+ super.tap do
42
+ # Emit a metric
43
+ Datadog.health_metrics.instrumentation_patched(1, tags: default_tags)
44
+ @patch_successful = true
49
45
  end
46
+ rescue => e
47
+ on_patch_error(e)
50
48
  end
51
49
  end
52
50
 
@@ -18,7 +18,7 @@ module Datadog
18
18
  register_as :pg
19
19
 
20
20
  def self.version
21
- Gem.loaded_specs['pg'] && Gem.loaded_specs['pg'].version
21
+ Gem.loaded_specs['pg']&.version
22
22
  end
23
23
 
24
24
  def self.loaded?
@@ -29,7 +29,7 @@ module Datadog
29
29
  TAG_OPERATION_QUERY = 'query'
30
30
  TAG_OPERATION_KILL = 'kill'
31
31
  TAG_SYSTEM = 'presto'
32
- PEER_SERVICE_SOURCES = (Array[Ext::TAG_SCHEMA_NAME] +
32
+ PEER_SERVICE_SOURCES = ([Ext::TAG_SCHEMA_NAME] +
33
33
  Contrib::Ext::DB::PEER_SERVICE_SOURCES).freeze
34
34
  end
35
35
  end
@@ -27,7 +27,7 @@ module Datadog
27
27
  span.resource = query
28
28
  span.type = Tracing::Metadata::Ext::SQL::TYPE
29
29
  span.set_tag(Ext::TAG_QUERY_ASYNC, false)
30
- rescue StandardError => e
30
+ rescue => e
31
31
  Datadog.logger.debug("error preparing span for presto: #{e}")
32
32
  end
33
33
 
@@ -45,7 +45,7 @@ module Datadog
45
45
  span.resource = query
46
46
  span.type = Tracing::Metadata::Ext::SQL::TYPE
47
47
  span.set_tag(Ext::TAG_QUERY_ASYNC, !blk.nil?)
48
- rescue StandardError => e
48
+ rescue => e
49
49
  Datadog.logger.debug("error preparing span for presto: #{e}")
50
50
  end
51
51
 
@@ -64,7 +64,7 @@ module Datadog
64
64
  span.type = Tracing::Metadata::Ext::AppTypes::TYPE_DB
65
65
  # ^ not an SQL type span, since there's no SQL query
66
66
  span.set_tag(Ext::TAG_QUERY_ID, query_id)
67
- rescue StandardError => e
67
+ rescue => e
68
68
  Datadog.logger.debug("error preparing span for presto: #{e}")
69
69
  end
70
70
 
@@ -21,7 +21,7 @@ module Datadog
21
21
  end
22
22
 
23
23
  def self.version
24
- Gem.loaded_specs['presto-client'] && Gem.loaded_specs['presto-client'].version
24
+ Gem.loaded_specs['presto-client']&.version
25
25
  end
26
26
 
27
27
  def self.loaded?
@@ -15,7 +15,7 @@ module Datadog
15
15
 
16
16
  def to_s
17
17
  @string ||= begin
18
- ret = String.new
18
+ ret = +''
19
19
 
20
20
  @hash.each do |key, value|
21
21
  next if value.nil?
@@ -48,7 +48,7 @@ module Datadog
48
48
  Tracing::Distributed::TraceContext.new(fetcher: nil).send(:build_traceparent, trace_op.to_digest)
49
49
  else
50
50
  Datadog.logger.warn(
51
- 'Sql comment propagation with `full` mode is aborted, because tracing is disabled. '\
51
+ 'Sql comment propagation with `full` mode is aborted, because tracing is disabled. ' \
52
52
  'Please set `Datadog.configuration.tracing.enabled = true` to continue.'
53
53
  )
54
54
  end
@@ -19,7 +19,7 @@ module Datadog
19
19
  register_as :que, auto_patch: true
20
20
 
21
21
  def self.version
22
- Gem.loaded_specs['que'] && Gem.loaded_specs['que'].version
22
+ Gem.loaded_specs['que']&.version
23
23
  end
24
24
 
25
25
  def self.loaded?
@@ -26,7 +26,7 @@ module Datadog
26
26
  end
27
27
 
28
28
  def span_options
29
- { service: configuration[:service_name] }
29
+ {service: configuration[:service_name]}
30
30
  end
31
31
 
32
32
  def configuration
@@ -26,8 +26,8 @@ module Datadog
26
26
 
27
27
  def span_options
28
28
  super.merge(
29
- tags: { Tracing::Metadata::Ext::TAG_OPERATION => Ext::TAG_OPERATION_BATCH,
30
- Tracing::Metadata::Ext::TAG_KIND => Tracing::Metadata::Ext::SpanKind::TAG_CONSUMER }
29
+ tags: {Tracing::Metadata::Ext::TAG_OPERATION => Ext::TAG_OPERATION_BATCH,
30
+ Tracing::Metadata::Ext::TAG_KIND => Tracing::Metadata::Ext::SpanKind::TAG_CONSUMER}
31
31
  )
32
32
  end
33
33
  end
@@ -25,7 +25,7 @@ module Datadog
25
25
  end
26
26
 
27
27
  def span_options
28
- super.merge(tags: { Tracing::Metadata::Ext::TAG_OPERATION => Ext::TAG_OPERATION_CONSUME })
28
+ super.merge(tags: {Tracing::Metadata::Ext::TAG_OPERATION => Ext::TAG_OPERATION_CONSUME})
29
29
  end
30
30
  end
31
31
  end
@@ -26,8 +26,8 @@ module Datadog
26
26
 
27
27
  def span_options
28
28
  super.merge(
29
- tags: { Tracing::Metadata::Ext::TAG_OPERATION => Ext::TAG_OPERATION_MESSAGE,
30
- Tracing::Metadata::Ext::TAG_KIND => Tracing::Metadata::Ext::SpanKind::TAG_CONSUMER }
29
+ tags: {Tracing::Metadata::Ext::TAG_OPERATION => Ext::TAG_OPERATION_MESSAGE,
30
+ Tracing::Metadata::Ext::TAG_KIND => Tracing::Metadata::Ext::SpanKind::TAG_CONSUMER}
31
31
  )
32
32
  end
33
33
  end
@@ -18,7 +18,7 @@ module Datadog
18
18
  register_as :racecar, auto_patch: false
19
19
 
20
20
  def self.version
21
- Gem.loaded_specs['racecar'] && Gem.loaded_specs['racecar'].version
21
+ Gem.loaded_specs['racecar']&.version
22
22
  end
23
23
 
24
24
  def self.loaded?
@@ -22,7 +22,7 @@ module Datadog
22
22
  end
23
23
 
24
24
  # Allows this class to have a similar API to a {Hash}.
25
- alias [] get
25
+ alias_method :[], :get
26
26
 
27
27
  # Tests whether a header with the given name exists in the environment.
28
28
  def key?(header_name)