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
@@ -82,12 +82,13 @@ module Datadog
82
82
  )
83
83
 
84
84
  Contrib::SpanAttributeSchema.set_peer_service!(span, Ext::PEER_SERVICE_SOURCES)
85
- rescue StandardError => e
85
+ rescue => e
86
86
  Datadog.logger.error(e.message)
87
87
  Datadog::Core::Telemetry::Logger.report(e)
88
88
  end
89
89
  # rubocop:enable Metrics/AbcSize
90
90
 
91
+ # rubocop:disable Metrics/AbcSize
91
92
  def handle_response(span, env, options)
92
93
  span.set_error(["Error #{env[:status]}", env[:body]]) if options[:error_status_codes].include? env[:status]
93
94
 
@@ -96,10 +97,11 @@ module Datadog
96
97
  span.set_tags(
97
98
  Datadog.configuration.tracing.header_tags.response_tags(env[:response_headers])
98
99
  )
99
- rescue StandardError => e
100
+ rescue => e
100
101
  Datadog.logger.error(e.message)
101
102
  Datadog::Core::Telemetry::Logger.report(e)
102
103
  end
104
+ # rubocop:enable Metrics/AbcSize
103
105
 
104
106
  def propagate!(trace, span, env)
105
107
  Contrib::HTTP.inject(trace, env[:request_headers])
@@ -76,7 +76,7 @@ module Datadog
76
76
  end
77
77
 
78
78
  Thread.current[KEY_RUN] = true
79
- rescue StandardError => e
79
+ rescue => e
80
80
  Datadog.logger.error(e.message)
81
81
  Datadog::Core::Telemetry::Logger.report(e)
82
82
  end
@@ -120,7 +120,7 @@ module Datadog
120
120
  span.start(start)
121
121
  span.finish(finish)
122
122
  end
123
- rescue StandardError => e
123
+ rescue => e
124
124
  Datadog.logger.error(e.message)
125
125
  Datadog::Core::Telemetry::Logger.report(e)
126
126
  end
@@ -164,7 +164,7 @@ module Datadog
164
164
  span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_ENDPOINT_RENDER)
165
165
 
166
166
  Thread.current[KEY_RENDER] = true
167
- rescue StandardError => e
167
+ rescue => e
168
168
  Datadog.logger.error(e.message)
169
169
  Datadog::Core::Telemetry::Logger.report(e)
170
170
  end
@@ -189,7 +189,7 @@ module Datadog
189
189
  span.start(start)
190
190
  span.finish(finish)
191
191
  end
192
- rescue StandardError => e
192
+ rescue => e
193
193
  Datadog.logger.error(e.message)
194
194
  Datadog::Core::Telemetry::Logger.report(e)
195
195
  end
@@ -228,7 +228,7 @@ module Datadog
228
228
  span.start(start)
229
229
  span.finish(finish)
230
230
  end
231
- rescue StandardError => e
231
+ rescue => e
232
232
  Datadog.logger.error(e.message)
233
233
  Datadog::Core::Telemetry::Logger.report(e)
234
234
  end
@@ -265,7 +265,7 @@ module Datadog
265
265
 
266
266
  def endpoint_expand_path(endpoint)
267
267
  route_path = endpoint.options[:path]
268
- namespace = endpoint.routes.first && endpoint.routes.first.namespace || ''
268
+ namespace = endpoint.routes.first&.namespace || ''
269
269
 
270
270
  path = (namespace.split('/') + route_path)
271
271
  .reject { |p| p.blank? || p.eql?('/') }
@@ -297,11 +297,11 @@ module Datadog
297
297
  matcher = datadog_configuration[:error_statuses]
298
298
  return true unless matcher
299
299
 
300
- matcher.include?(status) if matcher
300
+ matcher&.include?(status)
301
301
  end
302
302
 
303
303
  def enabled?
304
- Datadog.configuration.tracing.enabled && \
304
+ Datadog.configuration.tracing.enabled &&
305
305
  datadog_configuration[:enabled] == true
306
306
  end
307
307
 
@@ -18,7 +18,7 @@ module Datadog
18
18
  register_as :grape, auto_patch: true
19
19
 
20
20
  def self.version
21
- Gem.loaded_specs['grape'] && Gem.loaded_specs['grape'].version
21
+ Gem.loaded_specs['grape']&.version
22
22
  end
23
23
 
24
24
  def self.loaded?
@@ -16,7 +16,7 @@ module Datadog
16
16
  register_as :graphql, auto_patch: true
17
17
 
18
18
  def self.version
19
- Gem.loaded_specs['graphql'] && Gem.loaded_specs['graphql'].version
19
+ Gem.loaded_specs['graphql']&.version
20
20
  end
21
21
 
22
22
  def self.loaded?
@@ -36,8 +36,8 @@ module Datadog
36
36
  end
37
37
  else
38
38
  Datadog.logger.warn(
39
- "GraphQL version (#{target_version}) does not support GraphQL::Tracing::DataDogTrace"\
40
- 'or Datadog::Tracing::Contrib::GraphQL::UnifiedTrace.'\
39
+ "GraphQL version (#{target_version}) does not support GraphQL::Tracing::DataDogTrace" \
40
+ 'or Datadog::Tracing::Contrib::GraphQL::UnifiedTrace.' \
41
41
  'Falling back to GraphQL::Tracing::DataDogTracing.'
42
42
  )
43
43
  TracingPatcher.patch!(schemas)
@@ -42,7 +42,7 @@ module Datadog
42
42
 
43
43
  def execute_multiplex(*args, multiplex:, **kwargs)
44
44
  trace(proc { super }, 'execute_multiplex', multiplex_resource(multiplex), multiplex: multiplex) do |span|
45
- span.set_tag('graphql.source', "Multiplex[#{multiplex.queries.map(&:query_string).join(', ')}]")
45
+ span.set_tag('graphql.source', "Multiplex[#{multiplex.queries.map(&:query_string).join(", ")}]")
46
46
  end
47
47
  end
48
48
 
@@ -50,8 +50,11 @@ module Datadog
50
50
  trace(
51
51
  proc { super },
52
52
  'execute',
53
- query.selected_operation_name,
53
+ operation_resource(query.selected_operation),
54
54
  lambda { |span|
55
+ # Ensure this span can be aggregated by in the Datadog App, and generates RED metrics.
56
+ span.set_tag(Tracing::Metadata::Ext::TAG_KIND, Tracing::Metadata::Ext::SpanKind::TAG_SERVER)
57
+
55
58
  span.set_tag('graphql.source', query.query_string)
56
59
  span.set_tag('graphql.operation.type', query.selected_operation.operation_type)
57
60
  if query.selected_operation_name
@@ -71,10 +74,10 @@ module Datadog
71
74
 
72
75
  def execute_query_lazy(*args, query:, multiplex:, **kwargs)
73
76
  resource = if query
74
- query.selected_operation_name || fallback_transaction_name(query.context)
75
- else
76
- multiplex_resource(multiplex)
77
- end
77
+ query.selected_operation_name || fallback_transaction_name(query.context)
78
+ else
79
+ multiplex_resource(multiplex)
80
+ end
78
81
  trace(proc { super }, 'execute_lazy', resource, query: query, multiplex: multiplex)
79
82
  end
80
83
 
@@ -176,7 +179,7 @@ module Datadog
176
179
 
177
180
  ret = callable.call
178
181
 
179
- after.call(span) if after
182
+ after&.call(span)
180
183
 
181
184
  ret
182
185
  end
@@ -194,6 +197,14 @@ module Datadog
194
197
  end
195
198
  end
196
199
 
200
+ def operation_resource(operation)
201
+ if operation.name
202
+ "#{operation.operation_type} #{operation.name}"
203
+ else
204
+ "anonymous"
205
+ end
206
+ end
207
+
197
208
  # Create a Span Event for each error that occurs at query level.
198
209
  #
199
210
  # These are represented in the Datadog App as special GraphQL errors,
@@ -202,23 +213,23 @@ module Datadog
202
213
  capture_extensions = Datadog.configuration.tracing[:graphql][:error_extensions]
203
214
  errors.each do |error|
204
215
  extensions = if !capture_extensions.empty? && (extensions = error.extensions)
205
- # Capture extensions, ensuring all values are primitives
206
- extensions.each_with_object({}) do |(key, value), hash|
207
- next unless capture_extensions.include?(key.to_s)
208
-
209
- value = case value
210
- when TrueClass, FalseClass, Integer, Float
211
- value
212
- else
213
- # Stringify anything that is not a boolean or a number
214
- value.to_s
215
- end
216
-
217
- hash["extensions.#{key}"] = value
218
- end
219
- else
220
- {}
221
- end
216
+ # Capture extensions, ensuring all values are primitives
217
+ extensions.each_with_object({}) do |(key, value), hash|
218
+ next unless capture_extensions.include?(key.to_s)
219
+
220
+ value = case value
221
+ when TrueClass, FalseClass, Integer, Float
222
+ value
223
+ else
224
+ # Stringify anything that is not a boolean or a number
225
+ value.to_s
226
+ end
227
+
228
+ hash["extensions.#{key}"] = value
229
+ end
230
+ else
231
+ {}
232
+ end
222
233
 
223
234
  # {::GraphQL::Error#to_h} returns the error formatted in compliance with the GraphQL spec.
224
235
  # This is an unwritten contract in the `graphql` library.
@@ -251,7 +262,7 @@ module Datadog
251
262
  # ["3:10", "7:8"]
252
263
  def serialize_error_locations(locations)
253
264
  locations.map do |location|
254
- "#{location['line']}:#{location['column']}"
265
+ "#{location["line"]}:#{location["column"]}"
255
266
  end
256
267
  end
257
268
  end
@@ -33,7 +33,7 @@ module Datadog
33
33
 
34
34
  begin
35
35
  result = yield
36
- rescue StandardError => e
36
+ rescue => e
37
37
  code = e.is_a?(::GRPC::BadStatus) ? e.code : ::GRPC::Core::StatusCodes::UNKNOWN
38
38
  span.set_tag(Contrib::Ext::RPC::GRPC::TAG_STATUS_CODE, code)
39
39
 
@@ -89,7 +89,7 @@ module Datadog
89
89
  GRPC.inject(trace, metadata)
90
90
  end
91
91
  Contrib::SpanAttributeSchema.set_peer_service!(span, Ext::PEER_SERVICE_SOURCES)
92
- rescue StandardError => e
92
+ rescue => e
93
93
  Datadog.logger.debug("GRPC client trace failed: #{e}")
94
94
  end
95
95
 
@@ -103,12 +103,12 @@ module Datadog
103
103
  return unless call
104
104
 
105
105
  peer_address = if call.respond_to?(:peer)
106
- call.peer
107
- else
108
- # call is a "view" class with restricted method visibility.
109
- # We reach into it to find our data source anyway.
110
- call.instance_variable_get(:@wrapped).peer
111
- end
106
+ call.peer
107
+ else
108
+ # call is a "view" class with restricted method visibility.
109
+ # We reach into it to find our data source anyway.
110
+ call.instance_variable_get(:@wrapped).peer
111
+ end
112
112
 
113
113
  Core::Utils.extract_host_port(peer_address)
114
114
  rescue => e
@@ -37,7 +37,7 @@ module Datadog
37
37
 
38
38
  begin
39
39
  yield
40
- rescue StandardError => e
40
+ rescue => e
41
41
  code = e.is_a?(::GRPC::BadStatus) ? e.code : ::GRPC::Core::StatusCodes::UNKNOWN
42
42
  span.set_tag(Contrib::Ext::RPC::GRPC::TAG_STATUS_CODE, code)
43
43
 
@@ -52,7 +52,7 @@ module Datadog
52
52
 
53
53
  def set_distributed_context!(metadata)
54
54
  Tracing.continue_trace!(GRPC.extract(metadata))
55
- rescue StandardError => e
55
+ rescue => e
56
56
  Datadog.logger.debug(
57
57
  "unable to propagate GRPC metadata to context: #{e}"
58
58
  )
@@ -85,7 +85,7 @@ module Datadog
85
85
 
86
86
  # Measure service stats
87
87
  Contrib::Analytics.set_measured(span)
88
- rescue StandardError => e
88
+ rescue => e
89
89
  Datadog.logger.debug("GRPC server trace failed: #{e}")
90
90
  end
91
91
  end
@@ -15,7 +15,7 @@ module Datadog
15
15
  def [](key)
16
16
  # Metadata values are normally integrals but can also be
17
17
  # arrays when multiple values are associated with the same key.
18
- value = super(key)
18
+ value = super
19
19
  value.is_a?(::Array) ? value[0] : value
20
20
  end
21
21
  end
@@ -18,7 +18,7 @@ module Datadog
18
18
  register_as :grpc, auto_patch: true
19
19
 
20
20
  def self.version
21
- Gem.loaded_specs['grpc'] && Gem.loaded_specs['grpc'].version
21
+ Gem.loaded_specs['grpc']&.version
22
22
  end
23
23
 
24
24
  def self.loaded?
@@ -9,9 +9,9 @@ module Datadog
9
9
  module Ext
10
10
  ENV_ENABLED = 'DD_TRACE_HANAMI_ENABLED'
11
11
 
12
- SPAN_ACTION = 'hanami.action'
12
+ SPAN_ACTION = 'hanami.action'
13
13
  SPAN_ROUTING = 'hanami.routing'
14
- SPAN_RENDER = 'hanami.render'
14
+ SPAN_RENDER = 'hanami.render'
15
15
 
16
16
  TAG_COMPONENT = 'hanami'
17
17
  TAG_OPERATION_ACTION = 'action'
@@ -18,7 +18,7 @@ module Datadog
18
18
  register_as :hanami
19
19
 
20
20
  def self.version
21
- Gem.loaded_specs['hanami'] && Gem.loaded_specs['hanami'].version
21
+ Gem.loaded_specs['hanami']&.version
22
22
  end
23
23
 
24
24
  def self.loaded?
@@ -15,7 +15,7 @@ module Datadog
15
15
  #
16
16
  # For example in config/routes.rb:
17
17
  # get '/hello', to: ->(env) { [200, {}, ['Hello from Hanami!']] }
18
- action_klass = (action && action.class) ||
18
+ action_klass = action&.class ||
19
19
  ::Hanami::Routing::Default::NullAction
20
20
 
21
21
  Tracing.trace(
@@ -17,19 +17,17 @@ module Datadog
17
17
  service: configuration[:service_name],
18
18
  type: Tracing::Metadata::Ext::HTTP::TYPE_INBOUND
19
19
  ) do |span_op, trace_op|
20
- begin
21
- span_op.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
22
- span_op.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_ROUTING)
20
+ span_op.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
21
+ span_op.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_ROUTING)
23
22
 
24
- span_op.resource = nil
23
+ span_op.resource = nil
25
24
 
26
- super
27
- ensure
28
- span_op.resource ||= if trace_op.resource_override?
29
- trace_op.resource
30
- else
31
- env['REQUEST_METHOD']
32
- end
25
+ super
26
+ ensure
27
+ span_op.resource ||= if trace_op.resource_override?
28
+ trace_op.resource
29
+ else
30
+ env['REQUEST_METHOD']
33
31
  end
34
32
  end
35
33
  end
@@ -1,4 +1,4 @@
1
- # frozen_string_literal: false
1
+ # frozen_string_literal: true
2
2
 
3
3
  require_relative '../../../distributed/fetcher'
4
4
 
@@ -17,13 +17,13 @@ module Datadog
17
17
  # @return [String, nil] the header value or nil if not found
18
18
  def [](name)
19
19
  # Try to fetch with the plain key
20
- value = super(name)
20
+ value = super
21
21
  return value if value && !value.empty?
22
22
 
23
23
  # If not found, try the Rack-formatted key
24
- rack_header = "HTTP-#{name}"
24
+ rack_header = +"HTTP-#{name}"
25
25
  rack_header.upcase!
26
- rack_header.tr!('-'.freeze, '_'.freeze)
26
+ rack_header.tr!('-', '_')
27
27
 
28
28
  hdr = super(rack_header)
29
29
 
@@ -18,10 +18,11 @@ module Datadog
18
18
  SPAN_REQUEST = 'http.request'
19
19
  TAG_COMPONENT = 'net/http'
20
20
  TAG_OPERATION_REQUEST = 'request'
21
- PEER_SERVICE_SOURCES = Array[
21
+ PEER_SERVICE_SOURCES = [
22
22
  Tracing::Metadata::Ext::TAG_PEER_HOSTNAME,
23
23
  Tracing::Metadata::Ext::NET::TAG_DESTINATION_NAME,
24
- Tracing::Metadata::Ext::NET::TAG_TARGET_HOST,].freeze
24
+ Tracing::Metadata::Ext::NET::TAG_TARGET_HOST,
25
+ ].freeze
25
26
  end
26
27
  end
27
28
  end
@@ -28,7 +28,7 @@ module Datadog
28
28
  request_options = datadog_configuration(host)
29
29
  client_config = Datadog.configuration_for(self)
30
30
 
31
- return super(req, body, &block) if Contrib::HTTP.should_skip_tracing?(req)
31
+ return super if Contrib::HTTP.should_skip_tracing?(req)
32
32
 
33
33
  Tracing.trace(Ext::SPAN_REQUEST) do |span, trace|
34
34
  span.service = service_name(host, request_options, client_config)
@@ -74,7 +74,7 @@ module Datadog
74
74
  span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_REQUEST)
75
75
  span.set_tag(
76
76
  Tracing::Metadata::Ext::HTTP::TAG_URL,
77
- Contrib::Utils::Quantization::HTTP.url(request.path, { query: { exclude: :all } })
77
+ Contrib::Utils::Quantization::HTTP.url(request.path, {query: {exclude: :all}})
78
78
  )
79
79
  span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_METHOD, request.method)
80
80
 
@@ -92,13 +92,13 @@ module Datadog
92
92
  )
93
93
 
94
94
  Contrib::SpanAttributeSchema.set_peer_service!(span, Ext::PEER_SERVICE_SOURCES)
95
- rescue StandardError => e
95
+ rescue => e
96
96
  Datadog.logger.error("error preparing span from http request: #{e}")
97
97
  Datadog::Core::Telemetry::Logger.report(e)
98
98
  end
99
99
 
100
100
  def annotate_span_with_response!(span, response, request_options)
101
- return unless response && response.code
101
+ return unless response&.code
102
102
 
103
103
  span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_STATUS_CODE, response.code)
104
104
 
@@ -107,7 +107,7 @@ module Datadog
107
107
  span.set_tags(
108
108
  Datadog.configuration.tracing.header_tags.response_tags(response)
109
109
  )
110
- rescue StandardError => e
110
+ rescue => e
111
111
  Datadog.logger.error("error preparing span from http response: #{e}")
112
112
  Datadog::Core::Telemetry::Logger.report(e)
113
113
  end
@@ -19,10 +19,11 @@ module Datadog
19
19
  SPAN_REQUEST = 'httpclient.request'
20
20
  TAG_COMPONENT = 'httpclient'
21
21
  TAG_OPERATION_REQUEST = 'request'
22
- PEER_SERVICE_SOURCES = Array[
22
+ PEER_SERVICE_SOURCES = [
23
23
  Tracing::Metadata::Ext::TAG_PEER_HOSTNAME,
24
24
  Tracing::Metadata::Ext::NET::TAG_DESTINATION_NAME,
25
- Tracing::Metadata::Ext::NET::TAG_TARGET_HOST,].freeze
25
+ Tracing::Metadata::Ext::NET::TAG_TARGET_HOST,
26
+ ].freeze
26
27
  end
27
28
  end
28
29
  end
@@ -40,7 +40,7 @@ module Datadog
40
40
 
41
41
  # Add additional request specific tags to the span.
42
42
  annotate_span_with_request!(span, req, request_options)
43
- rescue StandardError => e
43
+ rescue => e
44
44
  Datadog.logger.error("error preparing span for httpclient request: #{e}, Source: #{e.backtrace}")
45
45
  Datadog::Core::Telemetry::Logger.report(e)
46
46
  ensure
@@ -95,7 +95,7 @@ module Datadog
95
95
  end
96
96
 
97
97
  def annotate_span_with_response!(span, response, request_options)
98
- return unless response && response.status
98
+ return unless response&.status
99
99
 
100
100
  span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_STATUS_CODE, response.status)
101
101
 
@@ -106,7 +106,7 @@ module Datadog
106
106
  span.set_tags(
107
107
  Datadog.configuration.tracing.header_tags.response_tags(response.header)
108
108
  )
109
- rescue StandardError => e
109
+ rescue => e
110
110
  Datadog.logger.error("error preparing span from httpclient response: #{e}, Source: #{e.backtrace}")
111
111
  Datadog::Core::Telemetry::Logger.report(e)
112
112
  end
@@ -19,7 +19,7 @@ module Datadog
19
19
  register_as :httpclient
20
20
 
21
21
  def self.version
22
- Gem.loaded_specs['httpclient'] && Gem.loaded_specs['httpclient'].version
22
+ Gem.loaded_specs['httpclient']&.version
23
23
  end
24
24
 
25
25
  def self.loaded?
@@ -18,10 +18,11 @@ module Datadog
18
18
  SPAN_REQUEST = 'httprb.request'
19
19
  TAG_COMPONENT = 'httprb'
20
20
  TAG_OPERATION_REQUEST = 'request'
21
- PEER_SERVICE_SOURCES = Array[
21
+ PEER_SERVICE_SOURCES = [
22
22
  Tracing::Metadata::Ext::TAG_PEER_HOSTNAME,
23
23
  Tracing::Metadata::Ext::NET::TAG_DESTINATION_NAME,
24
- Tracing::Metadata::Ext::NET::TAG_TARGET_HOST,].freeze
24
+ Tracing::Metadata::Ext::NET::TAG_TARGET_HOST,
25
+ ].freeze
25
26
  end
26
27
  end
27
28
  end
@@ -40,7 +40,7 @@ module Datadog
40
40
 
41
41
  # Add additional request specific tags to the span.
42
42
  annotate_span_with_request!(span, req, request_options)
43
- rescue StandardError => e
43
+ rescue => e
44
44
  logger.error("error preparing span for http.rb request: #{e}, Source: #{e.backtrace}")
45
45
  Datadog::Core::Telemetry::Logger.report(e)
46
46
  ensure
@@ -74,7 +74,7 @@ module Datadog
74
74
  span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
75
75
  span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_REQUEST)
76
76
 
77
- if req.verb && req.verb.is_a?(String) || req.verb.is_a?(Symbol)
77
+ if req.verb&.is_a?(String) || req.verb.is_a?(Symbol)
78
78
  http_method = req.verb.to_s.upcase
79
79
  span.resource = http_method
80
80
  span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_METHOD, http_method)
@@ -103,7 +103,7 @@ module Datadog
103
103
  end
104
104
 
105
105
  def annotate_span_with_response!(span, response, request_options)
106
- return unless response && response.code
106
+ return unless response&.code
107
107
 
108
108
  span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_STATUS_CODE, response.code)
109
109
 
@@ -116,7 +116,7 @@ module Datadog
116
116
  span.set_tags(
117
117
  Datadog.configuration.tracing.header_tags.response_tags(response.headers)
118
118
  )
119
- rescue StandardError => e
119
+ rescue => e
120
120
  logger.error("error preparing span from http.rb response: #{e}, Source: #{e.backtrace}")
121
121
  Datadog::Core::Telemetry::Logger.report(e)
122
122
  end
@@ -22,7 +22,7 @@ module Datadog
22
22
  end
23
23
 
24
24
  def self.version
25
- Gem.loaded_specs['http'] && Gem.loaded_specs['http'].version
25
+ Gem.loaded_specs['http']&.version
26
26
  end
27
27
 
28
28
  def self.loaded?
@@ -22,7 +22,7 @@ module Datadog
22
22
  end
23
23
 
24
24
  def span_options
25
- { service: configuration[:service_name] }
25
+ {service: configuration[:service_name]}
26
26
  end
27
27
 
28
28
  def configuration
@@ -31,7 +31,7 @@ module Datadog
31
31
  end
32
32
 
33
33
  def span_options
34
- super.merge({ tags: { Tracing::Metadata::Ext::TAG_OPERATION => Ext::TAG_OPERATION_CONNECTION_REQUEST } })
34
+ super.merge({tags: {Tracing::Metadata::Ext::TAG_OPERATION => Ext::TAG_OPERATION_CONNECTION_REQUEST}})
35
35
  end
36
36
  end
37
37
  end
@@ -38,7 +38,7 @@ module Datadog
38
38
  end
39
39
 
40
40
  def span_options
41
- super.merge({ tags: { Tracing::Metadata::Ext::TAG_OPERATION => Ext::TAG_OPERATION_PROCESS_BATCH } })
41
+ super.merge({tags: {Tracing::Metadata::Ext::TAG_OPERATION => Ext::TAG_OPERATION_PROCESS_BATCH}})
42
42
  end
43
43
  end
44
44
  end
@@ -36,7 +36,7 @@ module Datadog
36
36
  end
37
37
 
38
38
  def span_options
39
- super.merge({ tags: { Tracing::Metadata::Ext::TAG_OPERATION => Ext::TAG_OPERATION_PROCESS_MESSAGE } })
39
+ super.merge({tags: {Tracing::Metadata::Ext::TAG_OPERATION => Ext::TAG_OPERATION_PROCESS_MESSAGE}})
40
40
  end
41
41
  end
42
42
  end
@@ -36,7 +36,7 @@ module Datadog
36
36
  end
37
37
 
38
38
  def span_options
39
- super.merge({ tags: { Tracing::Metadata::Ext::TAG_OPERATION => Ext::TAG_OPERATION_CONSUMER_HEARTBEAT } })
39
+ super.merge({tags: {Tracing::Metadata::Ext::TAG_OPERATION => Ext::TAG_OPERATION_CONSUMER_HEARTBEAT}})
40
40
  end
41
41
  end
42
42
  end
@@ -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_JOIN_GROUP } })
29
+ super.merge({tags: {Tracing::Metadata::Ext::TAG_OPERATION => Ext::TAG_OPERATION_CONSUMER_JOIN_GROUP}})
30
30
  end
31
31
  end
32
32
  end
@@ -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_LEAVE_GROUP } })
29
+ super.merge({tags: {Tracing::Metadata::Ext::TAG_OPERATION => Ext::TAG_OPERATION_CONSUMER_LEAVE_GROUP}})
30
30
  end
31
31
  end
32
32
  end