datadog 2.19.0 → 2.20.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 (271) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +27 -1
  3. data/ext/libdatadog_api/extconf.rb +3 -1
  4. data/ext/libdatadog_extconf_helpers.rb +13 -3
  5. data/lib/datadog/appsec/component.rb +3 -13
  6. data/lib/datadog/appsec/context.rb +23 -0
  7. data/lib/datadog/appsec/contrib/devise/patches/signin_tracking_patch.rb +2 -1
  8. data/lib/datadog/appsec/contrib/devise/patches/signup_tracking_patch.rb +2 -1
  9. data/lib/datadog/appsec/contrib/excon/ssrf_detection_middleware.rb +0 -1
  10. data/lib/datadog/appsec/contrib/faraday/ssrf_detection_middleware.rb +0 -1
  11. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +14 -22
  12. data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +23 -2
  13. data/lib/datadog/appsec/contrib/rails/patcher.rb +14 -26
  14. data/lib/datadog/appsec/contrib/rails/patches/process_action_patch.rb +27 -0
  15. data/lib/datadog/appsec/contrib/rails/patches/render_to_body_patch.rb +33 -0
  16. data/lib/datadog/appsec/contrib/rest_client/request_ssrf_detection_patch.rb +0 -1
  17. data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +23 -0
  18. data/lib/datadog/appsec/contrib/sinatra/patcher.rb +8 -18
  19. data/lib/datadog/appsec/contrib/sinatra/patches/json_patch.rb +31 -0
  20. data/lib/datadog/appsec/event.rb +3 -18
  21. data/lib/datadog/appsec/instrumentation/gateway/argument.rb +16 -0
  22. data/lib/datadog/appsec/metrics/collector.rb +7 -3
  23. data/lib/datadog/appsec/metrics/telemetry.rb +1 -1
  24. data/lib/datadog/appsec/metrics/telemetry_exporter.rb +28 -0
  25. data/lib/datadog/appsec/metrics.rb +1 -0
  26. data/lib/datadog/appsec/security_engine/engine.rb +14 -32
  27. data/lib/datadog/appsec/security_engine/result.rb +16 -0
  28. data/lib/datadog/appsec/security_engine/runner.rb +18 -4
  29. data/lib/datadog/appsec/thread_safe_ref.rb +61 -0
  30. data/lib/datadog/appsec/trace_keeper.rb +24 -0
  31. data/lib/datadog/appsec/utils/hash_coercion.rb +23 -0
  32. data/lib/datadog/appsec.rb +0 -7
  33. data/lib/datadog/auto_instrument_base.rb +2 -1
  34. data/lib/datadog/core/configuration/option.rb +29 -20
  35. data/lib/datadog/core/configuration/option_definition.rb +2 -2
  36. data/lib/datadog/core/configuration/options.rb +13 -7
  37. data/lib/datadog/di/boot.rb +7 -0
  38. data/lib/datadog/di/component.rb +7 -0
  39. data/lib/datadog/di/probe_file_loader/railtie.rb +15 -0
  40. data/lib/datadog/di/probe_file_loader.rb +82 -0
  41. data/lib/datadog/di/remote.rb +3 -5
  42. data/lib/datadog/di.rb +0 -1
  43. data/lib/datadog/kit/appsec/events/v2.rb +5 -4
  44. data/lib/datadog/kit/appsec/events.rb +11 -10
  45. data/lib/datadog/kit/identity.rb +17 -11
  46. data/lib/datadog/opentelemetry/api/baggage.rb +2 -2
  47. data/lib/datadog/opentelemetry/api/context.rb +10 -9
  48. data/lib/datadog/opentelemetry/sdk/propagator.rb +4 -4
  49. data/lib/datadog/opentelemetry/sdk/span_processor.rb +8 -8
  50. data/lib/datadog/opentelemetry/sdk/trace/span.rb +14 -10
  51. data/lib/datadog/opentelemetry/trace.rb +4 -4
  52. data/lib/datadog/profiling.rb +6 -8
  53. data/lib/datadog/tracing/analytics.rb +1 -1
  54. data/lib/datadog/tracing/buffer.rb +7 -7
  55. data/lib/datadog/tracing/configuration/dynamic.rb +4 -6
  56. data/lib/datadog/tracing/configuration/ext.rb +3 -2
  57. data/lib/datadog/tracing/configuration/settings.rb +17 -0
  58. data/lib/datadog/tracing/context.rb +2 -2
  59. data/lib/datadog/tracing/contrib/action_cable/event.rb +1 -1
  60. data/lib/datadog/tracing/contrib/action_cable/integration.rb +1 -1
  61. data/lib/datadog/tracing/contrib/action_mailer/integration.rb +1 -1
  62. data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +4 -4
  63. data/lib/datadog/tracing/contrib/action_pack/integration.rb +1 -1
  64. data/lib/datadog/tracing/contrib/action_view/events/render_template.rb +1 -1
  65. data/lib/datadog/tracing/contrib/active_job/event.rb +8 -8
  66. data/lib/datadog/tracing/contrib/active_job/events/discard.rb +1 -1
  67. data/lib/datadog/tracing/contrib/active_job/events/enqueue.rb +1 -1
  68. data/lib/datadog/tracing/contrib/active_job/events/enqueue_at.rb +1 -1
  69. data/lib/datadog/tracing/contrib/active_job/events/enqueue_retry.rb +1 -1
  70. data/lib/datadog/tracing/contrib/active_job/events/perform.rb +1 -1
  71. data/lib/datadog/tracing/contrib/active_job/events/retry_stopped.rb +1 -1
  72. data/lib/datadog/tracing/contrib/active_job/integration.rb +1 -1
  73. data/lib/datadog/tracing/contrib/active_model_serializers/events/render.rb +1 -1
  74. data/lib/datadog/tracing/contrib/active_model_serializers/events/serialize.rb +3 -3
  75. data/lib/datadog/tracing/contrib/active_model_serializers/integration.rb +1 -2
  76. data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +1 -1
  77. data/lib/datadog/tracing/contrib/active_record/events/instantiation.rb +1 -1
  78. data/lib/datadog/tracing/contrib/active_record/events/sql.rb +5 -5
  79. data/lib/datadog/tracing/contrib/active_record/integration.rb +1 -1
  80. data/lib/datadog/tracing/contrib/active_record/utils.rb +15 -15
  81. data/lib/datadog/tracing/contrib/active_support/cache/events/cache.rb +6 -6
  82. data/lib/datadog/tracing/contrib/active_support/integration.rb +1 -1
  83. data/lib/datadog/tracing/contrib/active_support/notifications/event.rb +2 -1
  84. data/lib/datadog/tracing/contrib/active_support/notifications/subscription.rb +7 -9
  85. data/lib/datadog/tracing/contrib/aws/ext.rb +1 -1
  86. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +2 -2
  87. data/lib/datadog/tracing/contrib/aws/parsed_context.rb +3 -1
  88. data/lib/datadog/tracing/contrib/aws/patcher.rb +5 -1
  89. data/lib/datadog/tracing/contrib/aws/service/base.rb +2 -1
  90. data/lib/datadog/tracing/contrib/aws/service/dynamodb.rb +1 -1
  91. data/lib/datadog/tracing/contrib/aws/service/eventbridge.rb +1 -1
  92. data/lib/datadog/tracing/contrib/aws/service/kinesis.rb +1 -1
  93. data/lib/datadog/tracing/contrib/aws/service/s3.rb +1 -1
  94. data/lib/datadog/tracing/contrib/aws/service/sns.rb +1 -1
  95. data/lib/datadog/tracing/contrib/aws/service/sqs.rb +1 -1
  96. data/lib/datadog/tracing/contrib/aws/service/states.rb +1 -1
  97. data/lib/datadog/tracing/contrib/aws/services.rb +7 -7
  98. data/lib/datadog/tracing/contrib/concurrent_ruby/async_patch.rb +1 -1
  99. data/lib/datadog/tracing/contrib/concurrent_ruby/context_composite_executor_service.rb +1 -1
  100. data/lib/datadog/tracing/contrib/concurrent_ruby/future_patch.rb +1 -1
  101. data/lib/datadog/tracing/contrib/concurrent_ruby/integration.rb +1 -1
  102. data/lib/datadog/tracing/contrib/concurrent_ruby/promises_future_patch.rb +1 -1
  103. data/lib/datadog/tracing/contrib/configurable.rb +6 -6
  104. data/lib/datadog/tracing/contrib/configuration/resolvers/pattern_resolver.rb +4 -4
  105. data/lib/datadog/tracing/contrib/dalli/ext.rb +3 -2
  106. data/lib/datadog/tracing/contrib/dalli/integration.rb +1 -1
  107. data/lib/datadog/tracing/contrib/delayed_job/integration.rb +1 -1
  108. data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +3 -2
  109. data/lib/datadog/tracing/contrib/elasticsearch/integration.rb +4 -4
  110. data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +51 -53
  111. data/lib/datadog/tracing/contrib/elasticsearch/quantize.rb +5 -5
  112. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +2 -2
  113. data/lib/datadog/tracing/contrib/ethon/ext.rb +3 -2
  114. data/lib/datadog/tracing/contrib/ethon/integration.rb +1 -1
  115. data/lib/datadog/tracing/contrib/excon/ext.rb +3 -2
  116. data/lib/datadog/tracing/contrib/excon/integration.rb +1 -1
  117. data/lib/datadog/tracing/contrib/excon/middleware.rb +2 -2
  118. data/lib/datadog/tracing/contrib/ext.rb +3 -3
  119. data/lib/datadog/tracing/contrib/extensions.rb +9 -9
  120. data/lib/datadog/tracing/contrib/faraday/ext.rb +3 -2
  121. data/lib/datadog/tracing/contrib/faraday/integration.rb +1 -1
  122. data/lib/datadog/tracing/contrib/faraday/middleware.rb +4 -2
  123. data/lib/datadog/tracing/contrib/grape/endpoint.rb +8 -8
  124. data/lib/datadog/tracing/contrib/grape/integration.rb +1 -1
  125. data/lib/datadog/tracing/contrib/graphql/integration.rb +1 -1
  126. data/lib/datadog/tracing/contrib/graphql/patcher.rb +2 -2
  127. data/lib/datadog/tracing/contrib/graphql/unified_trace.rb +24 -24
  128. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +8 -8
  129. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +3 -3
  130. data/lib/datadog/tracing/contrib/grpc/distributed/fetcher.rb +1 -1
  131. data/lib/datadog/tracing/contrib/grpc/integration.rb +1 -1
  132. data/lib/datadog/tracing/contrib/hanami/ext.rb +2 -2
  133. data/lib/datadog/tracing/contrib/hanami/integration.rb +1 -1
  134. data/lib/datadog/tracing/contrib/hanami/renderer_policy_tracing.rb +1 -1
  135. data/lib/datadog/tracing/contrib/hanami/router_tracing.rb +9 -11
  136. data/lib/datadog/tracing/contrib/http/distributed/fetcher.rb +4 -4
  137. data/lib/datadog/tracing/contrib/http/ext.rb +3 -2
  138. data/lib/datadog/tracing/contrib/http/instrumentation.rb +5 -5
  139. data/lib/datadog/tracing/contrib/httpclient/ext.rb +3 -2
  140. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +3 -3
  141. data/lib/datadog/tracing/contrib/httpclient/integration.rb +1 -1
  142. data/lib/datadog/tracing/contrib/httprb/ext.rb +3 -2
  143. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +4 -4
  144. data/lib/datadog/tracing/contrib/httprb/integration.rb +1 -1
  145. data/lib/datadog/tracing/contrib/kafka/event.rb +1 -1
  146. data/lib/datadog/tracing/contrib/kafka/events/connection/request.rb +1 -1
  147. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_batch.rb +1 -1
  148. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_message.rb +1 -1
  149. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/heartbeat.rb +1 -1
  150. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/join_group.rb +1 -1
  151. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/leave_group.rb +1 -1
  152. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/sync_group.rb +1 -1
  153. data/lib/datadog/tracing/contrib/kafka/events/produce_operation/send_messages.rb +1 -1
  154. data/lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb +1 -1
  155. data/lib/datadog/tracing/contrib/kafka/integration.rb +1 -1
  156. data/lib/datadog/tracing/contrib/karafka/monitor.rb +13 -13
  157. data/lib/datadog/tracing/contrib/karafka/patcher.rb +4 -4
  158. data/lib/datadog/tracing/contrib/lograge/instrumentation.rb +1 -1
  159. data/lib/datadog/tracing/contrib/lograge/integration.rb +1 -1
  160. data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +1 -1
  161. data/lib/datadog/tracing/contrib/mongodb/ext.rb +1 -1
  162. data/lib/datadog/tracing/contrib/mongodb/integration.rb +1 -1
  163. data/lib/datadog/tracing/contrib/mongodb/parsers.rb +1 -1
  164. data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +6 -6
  165. data/lib/datadog/tracing/contrib/mysql2/ext.rb +1 -1
  166. data/lib/datadog/tracing/contrib/mysql2/integration.rb +1 -1
  167. data/lib/datadog/tracing/contrib/opensearch/configuration/settings.rb +1 -1
  168. data/lib/datadog/tracing/contrib/opensearch/ext.rb +3 -2
  169. data/lib/datadog/tracing/contrib/opensearch/integration.rb +1 -2
  170. data/lib/datadog/tracing/contrib/opensearch/patcher.rb +68 -70
  171. data/lib/datadog/tracing/contrib/opensearch/quantize.rb +5 -5
  172. data/lib/datadog/tracing/contrib/patcher.rb +7 -9
  173. data/lib/datadog/tracing/contrib/pg/integration.rb +1 -1
  174. data/lib/datadog/tracing/contrib/presto/ext.rb +1 -1
  175. data/lib/datadog/tracing/contrib/presto/instrumentation.rb +3 -3
  176. data/lib/datadog/tracing/contrib/presto/integration.rb +1 -1
  177. data/lib/datadog/tracing/contrib/propagation/sql_comment/comment.rb +1 -1
  178. data/lib/datadog/tracing/contrib/propagation/sql_comment.rb +1 -1
  179. data/lib/datadog/tracing/contrib/que/integration.rb +1 -1
  180. data/lib/datadog/tracing/contrib/racecar/event.rb +1 -1
  181. data/lib/datadog/tracing/contrib/racecar/events/batch.rb +2 -2
  182. data/lib/datadog/tracing/contrib/racecar/events/consume.rb +1 -1
  183. data/lib/datadog/tracing/contrib/racecar/events/message.rb +2 -2
  184. data/lib/datadog/tracing/contrib/racecar/integration.rb +1 -1
  185. data/lib/datadog/tracing/contrib/rack/header_collection.rb +1 -1
  186. data/lib/datadog/tracing/contrib/rack/header_tagging.rb +32 -32
  187. data/lib/datadog/tracing/contrib/rack/integration.rb +1 -1
  188. data/lib/datadog/tracing/contrib/rack/middlewares.rb +21 -17
  189. data/lib/datadog/tracing/contrib/rack/patcher.rb +1 -1
  190. data/lib/datadog/tracing/contrib/rack/request_queue.rb +2 -2
  191. data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +1 -1
  192. data/lib/datadog/tracing/contrib/rails/integration.rb +1 -1
  193. data/lib/datadog/tracing/contrib/rails/log_injection.rb +1 -1
  194. data/lib/datadog/tracing/contrib/rails/middlewares.rb +1 -1
  195. data/lib/datadog/tracing/contrib/rails/runner.rb +5 -4
  196. data/lib/datadog/tracing/contrib/rake/instrumentation.rb +4 -4
  197. data/lib/datadog/tracing/contrib/rake/integration.rb +1 -1
  198. data/lib/datadog/tracing/contrib/redis/configuration/resolver.rb +2 -2
  199. data/lib/datadog/tracing/contrib/redis/ext.rb +3 -2
  200. data/lib/datadog/tracing/contrib/redis/integration.rb +2 -2
  201. data/lib/datadog/tracing/contrib/redis/patcher.rb +4 -4
  202. data/lib/datadog/tracing/contrib/redis/quantize.rb +1 -1
  203. data/lib/datadog/tracing/contrib/redis/tags.rb +1 -1
  204. data/lib/datadog/tracing/contrib/redis/trace_middleware.rb +4 -4
  205. data/lib/datadog/tracing/contrib/registry.rb +1 -1
  206. data/lib/datadog/tracing/contrib/resque/integration.rb +1 -1
  207. data/lib/datadog/tracing/contrib/resque/resque_job.rb +1 -1
  208. data/lib/datadog/tracing/contrib/rest_client/ext.rb +3 -2
  209. data/lib/datadog/tracing/contrib/rest_client/integration.rb +1 -1
  210. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +3 -3
  211. data/lib/datadog/tracing/contrib/roda/instrumentation.rb +1 -1
  212. data/lib/datadog/tracing/contrib/roda/integration.rb +1 -1
  213. data/lib/datadog/tracing/contrib/semantic_logger/instrumentation.rb +1 -1
  214. data/lib/datadog/tracing/contrib/semantic_logger/integration.rb +1 -1
  215. data/lib/datadog/tracing/contrib/sequel/database.rb +5 -5
  216. data/lib/datadog/tracing/contrib/sequel/dataset.rb +1 -1
  217. data/lib/datadog/tracing/contrib/sequel/integration.rb +1 -1
  218. data/lib/datadog/tracing/contrib/sequel/utils.rb +1 -1
  219. data/lib/datadog/tracing/contrib/shoryuken/integration.rb +1 -1
  220. data/lib/datadog/tracing/contrib/sidekiq/integration.rb +1 -1
  221. data/lib/datadog/tracing/contrib/sidekiq/utils.rb +1 -1
  222. data/lib/datadog/tracing/contrib/sinatra/integration.rb +1 -1
  223. data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +38 -40
  224. data/lib/datadog/tracing/contrib/sneakers/integration.rb +1 -1
  225. data/lib/datadog/tracing/contrib/stripe/integration.rb +1 -1
  226. data/lib/datadog/tracing/contrib/stripe/request.rb +1 -1
  227. data/lib/datadog/tracing/contrib/sucker_punch/integration.rb +1 -1
  228. data/lib/datadog/tracing/contrib/trilogy/ext.rb +1 -1
  229. data/lib/datadog/tracing/contrib/trilogy/integration.rb +1 -1
  230. data/lib/datadog/tracing/contrib/utils/quantization/hash.rb +11 -11
  231. data/lib/datadog/tracing/contrib/utils/quantization/http.rb +6 -6
  232. data/lib/datadog/tracing/diagnostics/environment_logger.rb +5 -1
  233. data/lib/datadog/tracing/distributed/b3_single.rb +1 -1
  234. data/lib/datadog/tracing/distributed/baggage.rb +73 -8
  235. data/lib/datadog/tracing/distributed/datadog.rb +4 -5
  236. data/lib/datadog/tracing/distributed/datadog_tags_codec.rb +11 -13
  237. data/lib/datadog/tracing/distributed/helpers.rb +1 -1
  238. data/lib/datadog/tracing/distributed/none.rb +4 -2
  239. data/lib/datadog/tracing/distributed/propagation.rb +4 -1
  240. data/lib/datadog/tracing/distributed/propagation_policy.rb +1 -1
  241. data/lib/datadog/tracing/distributed/trace_context.rb +22 -16
  242. data/lib/datadog/tracing/event.rb +5 -7
  243. data/lib/datadog/tracing/flush.rb +1 -1
  244. data/lib/datadog/tracing/metadata/analytics.rb +1 -1
  245. data/lib/datadog/tracing/metadata/tagging.rb +4 -4
  246. data/lib/datadog/tracing/pipeline/span_filter.rb +3 -1
  247. data/lib/datadog/tracing/pipeline/span_processor.rb +3 -1
  248. data/lib/datadog/tracing/pipeline.rb +1 -1
  249. data/lib/datadog/tracing/sampling/ext.rb +0 -2
  250. data/lib/datadog/tracing/sampling/rule_sampler.rb +30 -30
  251. data/lib/datadog/tracing/sampling/span/rule_parser.rb +1 -1
  252. data/lib/datadog/tracing/sampling/span/sampler.rb +0 -7
  253. data/lib/datadog/tracing/span.rb +1 -1
  254. data/lib/datadog/tracing/span_event.rb +10 -10
  255. data/lib/datadog/tracing/span_link.rb +12 -12
  256. data/lib/datadog/tracing/span_operation.rb +9 -11
  257. data/lib/datadog/tracing/trace_digest.rb +21 -23
  258. data/lib/datadog/tracing/trace_operation.rb +84 -88
  259. data/lib/datadog/tracing/trace_segment.rb +2 -2
  260. data/lib/datadog/tracing/tracer.rb +36 -38
  261. data/lib/datadog/tracing/transport/http/client.rb +1 -1
  262. data/lib/datadog/tracing/transport/http/traces.rb +2 -2
  263. data/lib/datadog/tracing/transport/io/client.rb +5 -5
  264. data/lib/datadog/tracing/transport/io/traces.rb +4 -4
  265. data/lib/datadog/tracing/transport/statistics.rb +1 -1
  266. data/lib/datadog/tracing/transport/traces.rb +5 -5
  267. data/lib/datadog/tracing/workers/trace_writer.rb +12 -12
  268. data/lib/datadog/tracing/workers.rb +2 -2
  269. data/lib/datadog/tracing.rb +2 -2
  270. data/lib/datadog/version.rb +1 -1
  271. metadata +15 -6
@@ -45,7 +45,7 @@ module Datadog
45
45
  end
46
46
 
47
47
  def retain_middleware_name(middleware)
48
- return unless middleware && middleware.respond_to?(:call)
48
+ return unless middleware&.respond_to?(:call)
49
49
 
50
50
  middleware.singleton_class.class_eval do
51
51
  alias_method :__call, :call
@@ -34,8 +34,8 @@ module Datadog
34
34
  # return the request_start only if it's lesser than
35
35
  # current time, to avoid significant clock skew
36
36
  request_start = Time.at(time_value)
37
- request_start.utc > now ? nil : request_start
38
- rescue StandardError => e
37
+ (request_start.utc > now) ? nil : request_start
38
+ rescue => e
39
39
  # in case of an Exception we don't create a
40
40
  # `request.queuing` span
41
41
  Datadog.logger.debug("[rack] unable to parse request queue headers: #{e}")
@@ -13,7 +13,7 @@ module Datadog
13
13
  # @public_api
14
14
  class Settings < Contrib::Configuration::Settings
15
15
  def initialize(options = {})
16
- super(options)
16
+ super
17
17
 
18
18
  # NOTE: Eager load these
19
19
  # Rails integration is responsible for orchestrating other integrations.
@@ -23,7 +23,7 @@ module Datadog
23
23
  register_as :rails, auto_patch: false
24
24
 
25
25
  def self.version
26
- Gem.loaded_specs['railties'] && Gem.loaded_specs['railties'].version
26
+ Gem.loaded_specs['railties']&.version
27
27
  end
28
28
 
29
29
  def self.loaded?
@@ -16,7 +16,7 @@ module Datadog
16
16
 
17
17
  app_config.log_tags ||= [] # Can be nil, we initialized it if so
18
18
  app_config.log_tags << proc { Tracing.log_correlation if Datadog.configuration.tracing.log_injection }
19
- rescue StandardError => e
19
+ rescue => e
20
20
  Datadog.logger.warn(
21
21
  "Unable to add Datadog Trace context to ActiveSupport::TaggedLogging: #{e.class.name} #{e.message}"
22
22
  )
@@ -34,7 +34,7 @@ module Datadog
34
34
  # Some exception gets handled by Rails middleware before it can be set on Rack middleware
35
35
  # The rack span is the root span of the request and should make sure it has the full exception
36
36
  # set on it.
37
- env[Contrib::Rack::Ext::RACK_ENV_REQUEST_SPAN].set_error(e) if env[Contrib::Rack::Ext::RACK_ENV_REQUEST_SPAN]
37
+ env[Contrib::Rack::Ext::RACK_ENV_REQUEST_SPAN]&.set_error(e)
38
38
  end
39
39
  raise e
40
40
  end
@@ -69,14 +69,15 @@ module Datadog
69
69
  end
70
70
  end
71
71
 
72
- def self.prepend(base)
73
- base.const_set(:Kernel, Kernel)
72
+ def self.prepended(base)
73
+ base.const_set(:Kernel, InstrumentedKernel)
74
74
  end
75
75
 
76
76
  # Instruments the `Kernel.load` method, but only for the
77
77
  # `Rails::Command::RunnerCommand` class.
78
- module Kernel
79
- def self.load(file, wrap = true)
78
+ module InstrumentedKernel
79
+ def self.load(*args)
80
+ file = args[0]
80
81
  name = Ext::SPAN_RUNNER_FILE
81
82
  resource = file
82
83
  operation = Ext::TAG_OPERATION_FILE
@@ -65,7 +65,7 @@ module Datadog
65
65
  span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_INVOKE)
66
66
  span.set_tag(Ext::TAG_TASK_ARG_NAMES, arg_names)
67
67
  span.set_tag(Ext::TAG_INVOKE_ARGS, quantize_args(args)) unless args.nil?
68
- rescue StandardError => e
68
+ rescue => e
69
69
  Datadog.logger.debug("Error while tracing Rake invoke: #{e.class.name} #{e.message}")
70
70
  end
71
71
 
@@ -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_EXECUTE)
76
76
  span.set_tag(Ext::TAG_EXECUTE_ARGS, quantize_args(args.to_hash)) unless args.nil?
77
- rescue StandardError => e
77
+ rescue => e
78
78
  Datadog.logger.debug("Error while tracing Rake execute: #{e.class.name} #{e.message}")
79
79
  end
80
80
 
@@ -84,12 +84,12 @@ module Datadog
84
84
  end
85
85
 
86
86
  def enabled?
87
- Datadog.configuration.tracing.enabled && \
87
+ Datadog.configuration.tracing.enabled &&
88
88
  configuration[:enabled] == true
89
89
  end
90
90
 
91
91
  def span_options
92
- { service: configuration[:service_name] }
92
+ {service: configuration[:service_name]}
93
93
  end
94
94
 
95
95
  def configuration
@@ -18,7 +18,7 @@ module Datadog
18
18
  register_as :rake
19
19
 
20
20
  def self.version
21
- Gem.loaded_specs['rake'] && Gem.loaded_specs['rake'].version
21
+ Gem.loaded_specs['rake']&.version
22
22
  end
23
23
 
24
24
  def self.loaded?
@@ -19,13 +19,13 @@ module Datadog
19
19
  protected
20
20
 
21
21
  def parse_matcher(matcher)
22
- matcher = { url: matcher } if matcher.is_a?(String)
22
+ matcher = {url: matcher} if matcher.is_a?(String)
23
23
 
24
24
  normalize(connection_resolver.resolve(matcher))
25
25
  end
26
26
 
27
27
  def normalize(hash)
28
- return { url: hash[:url] } if hash[:scheme] == UNIX_SCHEME
28
+ return {url: hash[:url]} if hash[:scheme] == UNIX_SCHEME
29
29
 
30
30
  # Connexion strings are always converted to host, port, db and scheme
31
31
  # but the host, port, db and scheme will generate the :url only after
@@ -24,10 +24,11 @@ module Datadog
24
24
  TAG_OPERATION_COMMAND = 'command'
25
25
  TAG_SYSTEM = 'redis'
26
26
  TAG_DATABASE_INDEX = 'db.redis.database_index'
27
- PEER_SERVICE_SOURCES = Array[
27
+ PEER_SERVICE_SOURCES = [
28
28
  Tracing::Metadata::Ext::TAG_PEER_HOSTNAME,
29
29
  Tracing::Metadata::Ext::NET::TAG_DESTINATION_NAME,
30
- Tracing::Metadata::Ext::NET::TAG_TARGET_HOST,].freeze
30
+ Tracing::Metadata::Ext::NET::TAG_TARGET_HOST,
31
+ ].freeze
31
32
  end
32
33
  end
33
34
  end
@@ -31,11 +31,11 @@ module Datadog
31
31
  end
32
32
 
33
33
  def self.redis_version
34
- Gem.loaded_specs['redis'] && Gem.loaded_specs['redis'].version
34
+ Gem.loaded_specs['redis']&.version
35
35
  end
36
36
 
37
37
  def self.redis_client_version
38
- Gem.loaded_specs['redis-client'] && Gem.loaded_specs['redis-client'].version
38
+ Gem.loaded_specs['redis-client']&.version
39
39
  end
40
40
 
41
41
  def self.loaded?
@@ -30,7 +30,7 @@ module Datadog
30
30
  # For `redis-rb` 3.x
31
31
  return client if respond_to?(:client)
32
32
 
33
- Datadog.logger.warn 'Fail to apply configuration on redis client instance with ' \
33
+ Datadog.logger.warn 'Fail to apply configuration on redis client instance with ' \
34
34
  '`Datadog.configure_onto(redis)`.'
35
35
 
36
36
  # Null object instead of raising error
@@ -49,8 +49,8 @@ module Datadog
49
49
  module InstanceMethods
50
50
  def datadog_pin=(_pin)
51
51
  Datadog.logger.warn \
52
- '`Datadog.configure_onto(redis)` is not supported on Redis 5+. To instrument '\
53
- "a redis instance with custom configuration, please initialize it with:\n"\
52
+ '`Datadog.configure_onto(redis)` is not supported on Redis 5+. To instrument ' \
53
+ "a redis instance with custom configuration, please initialize it with:\n" \
54
54
  " `Redis.new(..., custom: { datadog: { service_name: 'my-service' } })`.\n\n" \
55
55
  'See: https://github.com/DataDog/dd-trace-rb/blob/master/docs/GettingStarted.md#redis'
56
56
  end
@@ -61,7 +61,7 @@ module Datadog
61
61
 
62
62
  def default_tags
63
63
  [].tap do |tags|
64
- tags << "target_redis_version:#{Integration.redis_version}" if Integration.redis_version
64
+ tags << "target_redis_version:#{Integration.redis_version}" if Integration.redis_version
65
65
  tags << "target_redis_client_version:#{Integration.redis_client_version}" if Integration.redis_client_version
66
66
  end
67
67
  end
@@ -43,7 +43,7 @@ module Datadog
43
43
  return 'AUTH ?' if auth_command?(command_args)
44
44
 
45
45
  verb, *args = command_args.map { |x| format_arg(x) }
46
- Core::Utils.truncate("#{verb.upcase} #{args.join(' ')}", CMD_MAX_LEN, TOO_LONG_MARK)
46
+ Core::Utils.truncate("#{verb.upcase} #{args.join(" ")}", CMD_MAX_LEN, TOO_LONG_MARK)
47
47
  end
48
48
 
49
49
  def get_verb(command_args)
@@ -46,7 +46,7 @@ module Datadog
46
46
  span.set_tag Ext::TAG_RAW_COMMAND, raw_command
47
47
 
48
48
  Contrib::SpanAttributeSchema.set_peer_service!(span, Ext::PEER_SERVICE_SOURCES)
49
- rescue StandardError => e
49
+ rescue => e
50
50
  Datadog.logger.error(e.message)
51
51
  Datadog::Core::Telemetry::Logger.report(e)
52
52
  end
@@ -62,10 +62,10 @@ module Datadog
62
62
  # Quantizes a multi-command Redis pipeline execution
63
63
  def get_pipeline_commands(commands, command_args)
64
64
  list = if command_args
65
- commands.map { |c| Contrib::Redis::Quantize.format_command_args(c) }
66
- else
67
- commands.map { |c| Contrib::Redis::Quantize.get_verb(c) }
68
- end
65
+ commands.map { |c| Contrib::Redis::Quantize.format_command_args(c) }
66
+ else
67
+ commands.map { |c| Contrib::Redis::Quantize.get_verb(c) }
68
+ end
69
69
 
70
70
  list.empty? ? '(none)' : list.join("\n")
71
71
  end
@@ -35,7 +35,7 @@ module Datadog
35
35
  def [](name)
36
36
  @mutex.synchronize do
37
37
  entry = @data[name]
38
- entry.klass if entry
38
+ entry&.klass
39
39
  end
40
40
  end
41
41
 
@@ -18,7 +18,7 @@ module Datadog
18
18
  register_as :resque, auto_patch: true
19
19
 
20
20
  def self.version
21
- Gem.loaded_specs['resque'] && Gem.loaded_specs['resque'].version
21
+ Gem.loaded_specs['resque']&.version
22
22
  end
23
23
 
24
24
  def self.loaded?
@@ -76,7 +76,7 @@ module Datadog
76
76
  end
77
77
 
78
78
  def span_options
79
- { service: datadog_configuration[:service_name], on_error: datadog_configuration[:on_error] }
79
+ {service: datadog_configuration[:service_name], on_error: datadog_configuration[:on_error]}
80
80
  end
81
81
 
82
82
  def datadog_configuration
@@ -17,10 +17,11 @@ module Datadog
17
17
  SPAN_REQUEST = 'rest_client.request'
18
18
  TAG_COMPONENT = 'rest_client'
19
19
  TAG_OPERATION_REQUEST = 'request'
20
- PEER_SERVICE_SOURCES = Array[
20
+ PEER_SERVICE_SOURCES = [
21
21
  Tracing::Metadata::Ext::TAG_PEER_HOSTNAME,
22
22
  Tracing::Metadata::Ext::NET::TAG_DESTINATION_NAME,
23
- Tracing::Metadata::Ext::NET::TAG_TARGET_HOST,].freeze
23
+ Tracing::Metadata::Ext::NET::TAG_TARGET_HOST,
24
+ ].freeze
24
25
  end
25
26
  end
26
27
  end
@@ -21,7 +21,7 @@ module Datadog
21
21
  end
22
22
 
23
23
  def self.version
24
- Gem.loaded_specs['rest-client'] && Gem.loaded_specs['rest-client'].version
24
+ Gem.loaded_specs['rest-client']&.version
25
25
  end
26
26
 
27
27
  def self.loaded?
@@ -22,7 +22,7 @@ module Datadog
22
22
  def execute(&block)
23
23
  uri = URI.parse(url)
24
24
 
25
- return super(&block) unless Tracing.enabled?
25
+ return super unless Tracing.enabled?
26
26
 
27
27
  datadog_trace_request(uri) do |_span, trace|
28
28
  if Tracing::Distributed::PropagationPolicy.enabled?(
@@ -106,11 +106,11 @@ module Datadog
106
106
  # rubocop:disable Lint/RescueException
107
107
  rescue Exception => e
108
108
  # rubocop:enable Lint/RescueException
109
- span.set_error(e) if span
109
+ span&.set_error(e)
110
110
 
111
111
  raise e
112
112
  ensure
113
- span.finish if span
113
+ span&.finish
114
114
  end
115
115
 
116
116
  private
@@ -46,7 +46,7 @@ module Datadog
46
46
  ensure
47
47
  begin
48
48
  response = yield
49
- rescue StandardError
49
+ rescue
50
50
  # The status code is unknown to Roda and decided by the upstream web runner.
51
51
  # In this case, spans default to status code 500 rather than a blank status code.
52
52
  default_error_status = '500'
@@ -20,7 +20,7 @@ module Datadog
20
20
  register_as :roda
21
21
 
22
22
  def self.version
23
- Gem.loaded_specs['roda'] && Gem.loaded_specs['roda'].version
23
+ Gem.loaded_specs['roda']&.version
24
24
  end
25
25
 
26
26
  def self.loaded?
@@ -25,7 +25,7 @@ module Datadog
25
25
  # if the user already has conflicting log_tags
26
26
  # we want them to clobber ours, because we should allow them to override if needed.
27
27
  log.named_tags = correlation.to_h.merge(original_named_tags)
28
- super(log, message, progname, &block)
28
+ super
29
29
  end
30
30
  end
31
31
  end
@@ -21,7 +21,7 @@ module Datadog
21
21
  register_as :semantic_logger
22
22
 
23
23
  def self.version
24
- Gem.loaded_specs['semantic_logger'] && Gem.loaded_specs['semantic_logger'].version
24
+ Gem.loaded_specs['semantic_logger']&.version
25
25
  end
26
26
 
27
27
  def self.loaded?
@@ -23,7 +23,7 @@ module Datadog
23
23
  response = nil
24
24
 
25
25
  Tracing.trace(Ext::SPAN_QUERY) do |span|
26
- span.service = Datadog.configuration_for(self, :service_name) \
26
+ span.service = Datadog.configuration_for(self, :service_name) \
27
27
  || Datadog.configuration.tracing[:sequel][:service_name] \
28
28
  || Contrib::SpanAttributeSchema.fetch_service_name(
29
29
  '',
@@ -46,10 +46,10 @@ module Datadog
46
46
 
47
47
  def parse_opts(sql, opts)
48
48
  db_opts = if ::Sequel::VERSION < '3.41.0' && self.class.to_s !~ /Dataset$/
49
- @opts
50
- elsif instance_variable_defined?(:@pool) && @pool
51
- @pool.db.opts
52
- end
49
+ @opts
50
+ elsif instance_variable_defined?(:@pool) && @pool
51
+ @pool.db.opts
52
+ end
53
53
  sql = sql.is_a?(::Sequel::SQL::Expression) ? literal(sql) : sql.to_s
54
54
 
55
55
  Utils.parse_opts(sql, opts, db_opts)
@@ -40,7 +40,7 @@ module Datadog
40
40
  response = nil
41
41
 
42
42
  Tracing.trace(Ext::SPAN_QUERY) do |span|
43
- span.service = Datadog.configuration_for(db, :service_name) \
43
+ span.service = Datadog.configuration_for(db, :service_name) \
44
44
  || Datadog.configuration.tracing[:sequel][:service_name] \
45
45
  || Contrib::SpanAttributeSchema.fetch_service_name(
46
46
  '',
@@ -18,7 +18,7 @@ module Datadog
18
18
  register_as :sequel, auto_patch: false
19
19
 
20
20
  def self.version
21
- Gem.loaded_specs['sequel'] && Gem.loaded_specs['sequel'].version
21
+ Gem.loaded_specs['sequel']&.version
22
22
  end
23
23
 
24
24
  def self.loaded?
@@ -34,7 +34,7 @@ module Datadog
34
34
 
35
35
  def parse_opts(sql, opts, db_opts, dataset = nil)
36
36
  # Prepared statements don't provide their sql query in the +sql+ parameter.
37
- if !sql.is_a?(String) && (dataset && dataset.respond_to?(:prepared_sql) &&
37
+ if !sql.is_a?(String) && (dataset&.respond_to?(:prepared_sql) &&
38
38
  (resolved_sql = dataset.prepared_sql))
39
39
  # The dataset contains the resolved SQL query and prepared statement name.
40
40
  prepared_name = dataset.prepared_statement_name
@@ -19,7 +19,7 @@ module Datadog
19
19
  register_as :shoryuken
20
20
 
21
21
  def self.version
22
- Gem.loaded_specs['shoryuken'] && Gem.loaded_specs['shoryuken'].version
22
+ Gem.loaded_specs['shoryuken']&.version
23
23
  end
24
24
 
25
25
  def self.loaded?
@@ -20,7 +20,7 @@ module Datadog
20
20
  register_as :sidekiq
21
21
 
22
22
  def self.version
23
- Gem.loaded_specs['sidekiq'] && Gem.loaded_specs['sidekiq'].version
23
+ Gem.loaded_specs['sidekiq']&.version
24
24
  end
25
25
 
26
26
  def self.loaded?
@@ -25,7 +25,7 @@ module Datadog
25
25
  job['class'].to_s
26
26
  end
27
27
  rescue => e
28
- Datadog.logger.debug { "Error retrieving Sidekiq job class name (jid:#{job['jid']}): #{e}" }
28
+ Datadog.logger.debug { "Error retrieving Sidekiq job class name (jid:#{job["jid"]}): #{e}" }
29
29
 
30
30
  job['class'].to_s
31
31
  end
@@ -18,7 +18,7 @@ module Datadog
18
18
  register_as :sinatra
19
19
 
20
20
  def self.version
21
- Gem.loaded_specs['sinatra'] && Gem.loaded_specs['sinatra'].version
21
+ Gem.loaded_specs['sinatra']&.version
22
22
  end
23
23
 
24
24
  def self.loaded?
@@ -28,63 +28,61 @@ module Datadog
28
28
  service: configuration[:service_name],
29
29
  type: Tracing::Metadata::Ext::HTTP::TYPE_INBOUND
30
30
  ) do |span|
31
- begin
32
- # this is kept nil until we set a correct one (either in the route or with a fallback in the ensure below)
33
- # the nil signals that there's no good one yet and is also seen by profiler, when sampling the resource
34
- span.resource = nil
31
+ # this is kept nil until we set a correct one (either in the route or with a fallback in the ensure below)
32
+ # the nil signals that there's no good one yet and is also seen by profiler, when sampling the resource
33
+ span.resource = nil
35
34
 
36
- Sinatra::Env.set_datadog_span(env, span)
35
+ Sinatra::Env.set_datadog_span(env, span)
37
36
 
38
- response = @app.call(env)
39
- ensure
40
- Contrib::Rack::HeaderTagging.tag_request_headers(span, env, configuration)
37
+ response = @app.call(env)
38
+ ensure
39
+ Contrib::Rack::HeaderTagging.tag_request_headers(span, env, configuration)
41
40
 
42
- span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
43
- span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_REQUEST)
41
+ span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
42
+ span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_REQUEST)
44
43
 
45
- request = ::Sinatra::Request.new(env)
44
+ request = ::Sinatra::Request.new(env)
46
45
 
47
- span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_URL, request.path)
48
- span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_METHOD, request.request_method)
46
+ span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_URL, request.path)
47
+ span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_METHOD, request.request_method)
49
48
 
50
- datadog_route = Sinatra::Env.route_path(env)
49
+ datadog_route = Sinatra::Env.route_path(env)
51
50
 
52
- span.set_tag(Ext::TAG_ROUTE_PATH, datadog_route) if datadog_route
51
+ span.set_tag(Ext::TAG_ROUTE_PATH, datadog_route) if datadog_route
53
52
 
54
- if request.script_name && !request.script_name.empty?
55
- span.set_tag(Ext::TAG_SCRIPT_NAME, request.script_name)
56
- end
53
+ if request.script_name && !request.script_name.empty?
54
+ span.set_tag(Ext::TAG_SCRIPT_NAME, request.script_name)
55
+ end
57
56
 
58
- # If this app handled the request, then Contrib::Sinatra::Tracer OR Contrib::Sinatra::Base set the
59
- # resource; if no resource was set, let's use a fallback
60
- span.resource = env['REQUEST_METHOD'] if span.resource.nil?
57
+ # If this app handled the request, then Contrib::Sinatra::Tracer OR Contrib::Sinatra::Base set the
58
+ # resource; if no resource was set, let's use a fallback
59
+ span.resource = env['REQUEST_METHOD'] if span.resource.nil?
61
60
 
62
- rack_request_span = env[Contrib::Rack::Ext::RACK_ENV_REQUEST_SPAN]
61
+ rack_request_span = env[Contrib::Rack::Ext::RACK_ENV_REQUEST_SPAN]
63
62
 
64
- # This propagates the Sinatra resource to the Rack span,
65
- # since the latter is unaware of what the resource might be
66
- # and would fallback to a generic resource name when unset
67
- rack_request_span.resource ||= span.resource if rack_request_span
63
+ # This propagates the Sinatra resource to the Rack span,
64
+ # since the latter is unaware of what the resource might be
65
+ # and would fallback to a generic resource name when unset
66
+ rack_request_span.resource ||= span.resource if rack_request_span
68
67
 
69
- if response
70
- if (status = response[0])
71
- sinatra_response = ::Sinatra::Response.new([], status) # Build object to use status code helpers
68
+ if response
69
+ if (status = response[0])
70
+ sinatra_response = ::Sinatra::Response.new([], status) # Build object to use status code helpers
72
71
 
73
- span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_STATUS_CODE, sinatra_response.status)
74
- span.set_error(env['sinatra.error']) if sinatra_response.server_error?
75
- end
72
+ span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_STATUS_CODE, sinatra_response.status)
73
+ span.set_error(env['sinatra.error']) if sinatra_response.server_error?
74
+ end
76
75
 
77
- if (headers = response[1])
78
- Contrib::Rack::HeaderTagging.tag_response_headers(span, headers, configuration)
79
- end
76
+ if (headers = response[1])
77
+ Contrib::Rack::HeaderTagging.tag_response_headers(span, headers, configuration)
80
78
  end
79
+ end
81
80
 
82
- # Set analytics sample rate
83
- Contrib::Analytics.set_sample_rate(span, analytics_sample_rate) if analytics_enabled?
81
+ # Set analytics sample rate
82
+ Contrib::Analytics.set_sample_rate(span, analytics_sample_rate) if analytics_enabled?
84
83
 
85
- # Measure service stats
86
- Contrib::Analytics.set_measured(span)
87
- end
84
+ # Measure service stats
85
+ Contrib::Analytics.set_measured(span)
88
86
  end
89
87
  end
90
88
  # rubocop:enable Metrics/MethodLength
@@ -19,7 +19,7 @@ module Datadog
19
19
  register_as :sneakers, auto_patch: true
20
20
 
21
21
  def self.version
22
- Gem.loaded_specs['sneakers'] && Gem.loaded_specs['sneakers'].version
22
+ Gem.loaded_specs['sneakers']&.version
23
23
  end
24
24
 
25
25
  def self.loaded?
@@ -18,7 +18,7 @@ module Datadog
18
18
  register_as :stripe
19
19
 
20
20
  def self.version
21
- Gem.loaded_specs['stripe'] && Gem.loaded_specs['stripe'].version
21
+ Gem.loaded_specs['stripe']&.version
22
22
  end
23
23
 
24
24
  def self.loaded?
@@ -54,7 +54,7 @@ module Datadog
54
54
  span.set_tag(Ext::TAG_REQUEST_METHOD, event.method)
55
55
  span.set_tag(Ext::TAG_REQUEST_PATH, event.path)
56
56
  span.set_tag(Ext::TAG_REQUEST_NUM_RETRIES, event.num_retries.to_s)
57
- rescue StandardError => e
57
+ rescue => e
58
58
  Datadog.logger.debug(e.message)
59
59
  end
60
60
 
@@ -18,7 +18,7 @@ module Datadog
18
18
  register_as :sucker_punch, auto_patch: true
19
19
 
20
20
  def self.version
21
- Gem.loaded_specs['sucker_punch'] && Gem.loaded_specs['sucker_punch'].version
21
+ Gem.loaded_specs['sucker_punch']&.version
22
22
  end
23
23
 
24
24
  def self.loaded?
@@ -19,7 +19,7 @@ module Datadog
19
19
  TAG_COMPONENT = 'trilogy'
20
20
  TAG_OPERATION_QUERY = 'query'
21
21
  TAG_SYSTEM = 'mysql'
22
- PEER_SERVICE_SOURCES = (Array[Ext::TAG_DB_NAME] + Contrib::Ext::DB::PEER_SERVICE_SOURCES).freeze
22
+ PEER_SERVICE_SOURCES = ([Ext::TAG_DB_NAME] + Contrib::Ext::DB::PEER_SERVICE_SOURCES).freeze
23
23
  end
24
24
  end
25
25
  end
@@ -18,7 +18,7 @@ module Datadog
18
18
  register_as :trilogy
19
19
 
20
20
  def self.version
21
- Gem.loaded_specs['trilogy'] && Gem.loaded_specs['trilogy'].version
21
+ Gem.loaded_specs['trilogy']&.version
22
22
  end
23
23
 
24
24
  def self.loaded?