datadog 2.38.0 → 2.39.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 (805) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +20 -1
  3. data/bin/ddprofrb +4 -4
  4. data/ext/datadog_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +77 -1
  5. data/ext/datadog_profiling_native_extension/extconf.rb +1 -1
  6. data/ext/datadog_profiling_native_extension/setup_signal_handler.c +2 -0
  7. data/ext/libdatadog_api/extconf.rb +24 -24
  8. data/ext/libdatadog_api/feature_flags.c +26 -0
  9. data/ext/libdatadog_extconf_helpers.rb +9 -9
  10. data/lib/datadog/ai_guard/api_client.rb +2 -2
  11. data/lib/datadog/ai_guard/component.rb +10 -10
  12. data/lib/datadog/appsec/actions_handler/serializable_backtrace.rb +16 -16
  13. data/lib/datadog/appsec/actions_handler.rb +6 -6
  14. data/lib/datadog/appsec/anonymizer.rb +1 -1
  15. data/lib/datadog/appsec/api_security/endpoint_collection/grape_route_serializer.rb +1 -1
  16. data/lib/datadog/appsec/api_security/endpoint_collection/rails_collector.rb +6 -6
  17. data/lib/datadog/appsec/api_security/endpoint_collection/sinatra_route_serializer.rb +1 -1
  18. data/lib/datadog/appsec/api_security/route_extractor.rb +11 -11
  19. data/lib/datadog/appsec/api_security/sampler.rb +5 -5
  20. data/lib/datadog/appsec/api_security.rb +1 -1
  21. data/lib/datadog/appsec/assets.rb +7 -7
  22. data/lib/datadog/appsec/autoload.rb +3 -3
  23. data/lib/datadog/appsec/component.rb +15 -15
  24. data/lib/datadog/appsec/compressed_json.rb +6 -6
  25. data/lib/datadog/appsec/configuration.rb +59 -59
  26. data/lib/datadog/appsec/context.rb +6 -6
  27. data/lib/datadog/appsec/contrib/active_record/instrumentation.rb +6 -6
  28. data/lib/datadog/appsec/contrib/active_record/integration.rb +4 -4
  29. data/lib/datadog/appsec/contrib/active_record/patcher.rb +4 -4
  30. data/lib/datadog/appsec/contrib/aws_lambda/gateway/watcher.rb +7 -7
  31. data/lib/datadog/appsec/contrib/aws_lambda/integration.rb +2 -2
  32. data/lib/datadog/appsec/contrib/aws_lambda/patcher.rb +2 -2
  33. data/lib/datadog/appsec/contrib/aws_lambda/waf_addresses.rb +36 -34
  34. data/lib/datadog/appsec/contrib/devise/data_extractor.rb +3 -3
  35. data/lib/datadog/appsec/contrib/devise/ext.rb +20 -20
  36. data/lib/datadog/appsec/contrib/devise/integration.rb +4 -4
  37. data/lib/datadog/appsec/contrib/devise/patcher.rb +7 -7
  38. data/lib/datadog/appsec/contrib/devise/patches/signin_tracking_patch.rb +12 -12
  39. data/lib/datadog/appsec/contrib/devise/patches/signup_tracking_patch.rb +8 -8
  40. data/lib/datadog/appsec/contrib/devise/tracking_middleware.rb +24 -9
  41. data/lib/datadog/appsec/contrib/excon/integration.rb +4 -4
  42. data/lib/datadog/appsec/contrib/excon/patcher.rb +1 -1
  43. data/lib/datadog/appsec/contrib/excon/ssrf_detection_middleware.rb +26 -26
  44. data/lib/datadog/appsec/contrib/faraday/integration.rb +4 -4
  45. data/lib/datadog/appsec/contrib/faraday/patcher.rb +4 -4
  46. data/lib/datadog/appsec/contrib/faraday/ssrf_detection_middleware.rb +22 -22
  47. data/lib/datadog/appsec/contrib/graphql/appsec_trace.rb +4 -4
  48. data/lib/datadog/appsec/contrib/graphql/gateway/multiplex.rb +2 -2
  49. data/lib/datadog/appsec/contrib/graphql/gateway/watcher.rb +7 -7
  50. data/lib/datadog/appsec/contrib/graphql/integration.rb +9 -9
  51. data/lib/datadog/appsec/contrib/graphql/patcher.rb +3 -3
  52. data/lib/datadog/appsec/contrib/rack/buffered_input.rb +1 -1
  53. data/lib/datadog/appsec/contrib/rack/ext.rb +29 -29
  54. data/lib/datadog/appsec/contrib/rack/gateway/request.rb +14 -18
  55. data/lib/datadog/appsec/contrib/rack/gateway/response.rb +1 -1
  56. data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +24 -24
  57. data/lib/datadog/appsec/contrib/rack/input_peeker.rb +6 -6
  58. data/lib/datadog/appsec/contrib/rack/integration.rb +6 -6
  59. data/lib/datadog/appsec/contrib/rack/patcher.rb +2 -2
  60. data/lib/datadog/appsec/contrib/rack/request_body_middleware.rb +5 -5
  61. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +26 -26
  62. data/lib/datadog/appsec/contrib/rack/response_body.rb +1 -1
  63. data/lib/datadog/appsec/contrib/rails/gateway/request.rb +10 -10
  64. data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +10 -10
  65. data/lib/datadog/appsec/contrib/rails/integration.rb +5 -5
  66. data/lib/datadog/appsec/contrib/rails/patcher.rb +17 -17
  67. data/lib/datadog/appsec/contrib/rails/patches/process_action_patch.rb +2 -2
  68. data/lib/datadog/appsec/contrib/rails/patches/render_to_body_patch.rb +3 -3
  69. data/lib/datadog/appsec/contrib/rails/request.rb +3 -3
  70. data/lib/datadog/appsec/contrib/rest_client/integration.rb +5 -5
  71. data/lib/datadog/appsec/contrib/rest_client/patcher.rb +1 -1
  72. data/lib/datadog/appsec/contrib/rest_client/request_ssrf_detection_patch.rb +23 -23
  73. data/lib/datadog/appsec/contrib/sinatra/gateway/request.rb +1 -1
  74. data/lib/datadog/appsec/contrib/sinatra/gateway/route_params.rb +1 -1
  75. data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +15 -15
  76. data/lib/datadog/appsec/contrib/sinatra/integration.rb +5 -5
  77. data/lib/datadog/appsec/contrib/sinatra/patcher.rb +11 -11
  78. data/lib/datadog/appsec/contrib/sinatra/patches/json_patch.rb +3 -3
  79. data/lib/datadog/appsec/counter_sampler.rb +1 -1
  80. data/lib/datadog/appsec/event.rb +14 -14
  81. data/lib/datadog/appsec/ext.rb +11 -11
  82. data/lib/datadog/appsec/extensions.rb +2 -2
  83. data/lib/datadog/appsec/instrumentation/gateway.rb +1 -1
  84. data/lib/datadog/appsec/metrics/exporter.rb +8 -8
  85. data/lib/datadog/appsec/metrics/telemetry.rb +7 -7
  86. data/lib/datadog/appsec/metrics/telemetry_exporter.rb +4 -4
  87. data/lib/datadog/appsec/metrics.rb +4 -4
  88. data/lib/datadog/appsec/monitor/gateway/watcher.rb +16 -12
  89. data/lib/datadog/appsec/monitor.rb +1 -1
  90. data/lib/datadog/appsec/processor/rule_loader.rb +26 -26
  91. data/lib/datadog/appsec/rate_limiter.rb +1 -1
  92. data/lib/datadog/appsec/remote.rb +6 -6
  93. data/lib/datadog/appsec/response.rb +21 -21
  94. data/lib/datadog/appsec/route_normalizer/rails_route_pattern.rb +11 -11
  95. data/lib/datadog/appsec/route_normalizer/route_pattern.rb +15 -15
  96. data/lib/datadog/appsec/route_normalizer/route_text.rb +3 -3
  97. data/lib/datadog/appsec/route_normalizer.rb +15 -15
  98. data/lib/datadog/appsec/security_engine/engine.rb +37 -37
  99. data/lib/datadog/appsec/security_engine/runner.rb +2 -2
  100. data/lib/datadog/appsec/security_event.rb +2 -2
  101. data/lib/datadog/appsec/utils/http/body.rb +11 -8
  102. data/lib/datadog/appsec/utils/http/body_reader.rb +1 -1
  103. data/lib/datadog/appsec/utils/http/media_range.rb +15 -15
  104. data/lib/datadog/appsec/utils/http/media_type.rb +4 -4
  105. data/lib/datadog/appsec/utils/http/url_encoded.rb +80 -25
  106. data/lib/datadog/appsec.rb +16 -16
  107. data/lib/datadog/auto_instrument.rb +2 -2
  108. data/lib/datadog/core/buffer/cruby.rb +1 -1
  109. data/lib/datadog/core/buffer/thread_safe.rb +1 -1
  110. data/lib/datadog/core/configuration/agent_settings.rb +1 -1
  111. data/lib/datadog/core/configuration/agent_settings_resolver.rb +15 -15
  112. data/lib/datadog/core/configuration/base.rb +2 -2
  113. data/lib/datadog/core/configuration/components.rb +33 -29
  114. data/lib/datadog/core/configuration/config_helper.rb +3 -3
  115. data/lib/datadog/core/configuration/deprecations.rb +6 -6
  116. data/lib/datadog/core/configuration/ext.rb +11 -11
  117. data/lib/datadog/core/configuration/option.rb +16 -16
  118. data/lib/datadog/core/configuration/option_definition.rb +4 -4
  119. data/lib/datadog/core/configuration/options.rb +1 -1
  120. data/lib/datadog/core/configuration/settings.rb +58 -58
  121. data/lib/datadog/core/configuration/stable_config.rb +1 -1
  122. data/lib/datadog/core/configuration/supported_configurations.rb +2 -1
  123. data/lib/datadog/core/configuration.rb +8 -8
  124. data/lib/datadog/core/contrib/rails/railtie.rb +3 -3
  125. data/lib/datadog/core/crashtracking/component.rb +9 -9
  126. data/lib/datadog/core/crashtracking/tag_builder.rb +5 -5
  127. data/lib/datadog/core/deprecations.rb +1 -1
  128. data/lib/datadog/core/diagnostics/environment_logger.rb +6 -6
  129. data/lib/datadog/core/diagnostics/health.rb +2 -2
  130. data/lib/datadog/core/encoding.rb +4 -4
  131. data/lib/datadog/core/environment/agent_info.rb +2 -2
  132. data/lib/datadog/core/environment/cgroup.rb +4 -4
  133. data/lib/datadog/core/environment/container.rb +9 -9
  134. data/lib/datadog/core/environment/execution.rb +3 -3
  135. data/lib/datadog/core/environment/ext.rb +18 -18
  136. data/lib/datadog/core/environment/git.rb +2 -2
  137. data/lib/datadog/core/environment/identity.rb +10 -10
  138. data/lib/datadog/core/environment/platform.rb +8 -8
  139. data/lib/datadog/core/environment/process.rb +3 -3
  140. data/lib/datadog/core/environment/socket.rb +2 -2
  141. data/lib/datadog/core/environment/variable_helpers.rb +1 -1
  142. data/lib/datadog/core/error.rb +5 -5
  143. data/lib/datadog/core/evp.rb +2 -2
  144. data/lib/datadog/core/extensions.rb +1 -1
  145. data/lib/datadog/core/feature_flags.rb +2 -2
  146. data/lib/datadog/core/git/ext.rb +4 -4
  147. data/lib/datadog/core/logger.rb +3 -3
  148. data/lib/datadog/core/logging/ext.rb +1 -1
  149. data/lib/datadog/core/metrics/client.rb +20 -20
  150. data/lib/datadog/core/metrics/ext.rb +5 -5
  151. data/lib/datadog/core/metrics/logging.rb +2 -2
  152. data/lib/datadog/core/metrics/options.rb +3 -3
  153. data/lib/datadog/core/pin.rb +1 -1
  154. data/lib/datadog/core/process_discovery.rb +8 -8
  155. data/lib/datadog/core/rate_limiter.rb +1 -1
  156. data/lib/datadog/core/remote/client/capabilities.rb +36 -20
  157. data/lib/datadog/core/remote/client.rb +16 -16
  158. data/lib/datadog/core/remote/component.rb +20 -12
  159. data/lib/datadog/core/remote/configuration/content.rb +3 -3
  160. data/lib/datadog/core/remote/configuration/digest.rb +1 -1
  161. data/lib/datadog/core/remote/configuration/path.rb +9 -9
  162. data/lib/datadog/core/remote/configuration/repository.rb +2 -2
  163. data/lib/datadog/core/remote/configuration/target.rb +9 -9
  164. data/lib/datadog/core/remote/configuration.rb +4 -4
  165. data/lib/datadog/core/remote/ext.rb +3 -3
  166. data/lib/datadog/core/remote/negotiation.rb +1 -1
  167. data/lib/datadog/core/remote/tie/tracing.rb +7 -7
  168. data/lib/datadog/core/remote/transport/config.rb +4 -4
  169. data/lib/datadog/core/remote/transport/http/config.rb +7 -7
  170. data/lib/datadog/core/remote/transport/http/negotiation.rb +4 -4
  171. data/lib/datadog/core/remote/transport/http.rb +10 -10
  172. data/lib/datadog/core/remote/transport/negotiation.rb +3 -3
  173. data/lib/datadog/core/remote/worker.rb +5 -5
  174. data/lib/datadog/core/runtime/ext.rb +22 -22
  175. data/lib/datadog/core/runtime/metrics.rb +9 -9
  176. data/lib/datadog/core/tag_builder.rb +18 -18
  177. data/lib/datadog/core/tag_normalizer.rb +7 -7
  178. data/lib/datadog/core/telemetry/component.rb +13 -13
  179. data/lib/datadog/core/telemetry/emitter.rb +4 -4
  180. data/lib/datadog/core/telemetry/event/app_client_configuration_change.rb +5 -5
  181. data/lib/datadog/core/telemetry/event/app_closing.rb +2 -2
  182. data/lib/datadog/core/telemetry/event/app_dependencies_loaded.rb +2 -2
  183. data/lib/datadog/core/telemetry/event/app_endpoints_loaded.rb +2 -2
  184. data/lib/datadog/core/telemetry/event/app_extended_heartbeat.rb +2 -2
  185. data/lib/datadog/core/telemetry/event/app_heartbeat.rb +2 -2
  186. data/lib/datadog/core/telemetry/event/app_integrations_change.rb +2 -2
  187. data/lib/datadog/core/telemetry/event/app_started.rb +33 -33
  188. data/lib/datadog/core/telemetry/event/base.rb +1 -1
  189. data/lib/datadog/core/telemetry/event/distributions.rb +2 -2
  190. data/lib/datadog/core/telemetry/event/generate_metrics.rb +2 -2
  191. data/lib/datadog/core/telemetry/event/log.rb +4 -4
  192. data/lib/datadog/core/telemetry/event/message_batch.rb +1 -1
  193. data/lib/datadog/core/telemetry/event/synth_app_client_configuration_change.rb +2 -2
  194. data/lib/datadog/core/telemetry/event.rb +16 -16
  195. data/lib/datadog/core/telemetry/ext.rb +11 -11
  196. data/lib/datadog/core/telemetry/logger.rb +1 -1
  197. data/lib/datadog/core/telemetry/logging.rb +5 -5
  198. data/lib/datadog/core/telemetry/metric.rb +7 -7
  199. data/lib/datadog/core/telemetry/metrics_collection.rb +2 -2
  200. data/lib/datadog/core/telemetry/metrics_manager.rb +1 -1
  201. data/lib/datadog/core/telemetry/request.rb +4 -4
  202. data/lib/datadog/core/telemetry/transport/http/telemetry.rb +14 -14
  203. data/lib/datadog/core/telemetry/transport/http.rb +7 -7
  204. data/lib/datadog/core/telemetry/transport/telemetry.rb +3 -3
  205. data/lib/datadog/core/telemetry/worker.rb +6 -6
  206. data/lib/datadog/core/transport/ext.rb +14 -14
  207. data/lib/datadog/core/transport/http/adapters/net.rb +4 -4
  208. data/lib/datadog/core/transport/http/adapters/test.rb +1 -1
  209. data/lib/datadog/core/transport/http/adapters/unix_socket.rb +4 -4
  210. data/lib/datadog/core/transport/http/api/endpoint.rb +1 -1
  211. data/lib/datadog/core/transport/http/api/map.rb +1 -1
  212. data/lib/datadog/core/transport/http/builder.rb +5 -5
  213. data/lib/datadog/core/transport/http/client.rb +2 -2
  214. data/lib/datadog/core/transport/http/response.rb +1 -1
  215. data/lib/datadog/core/transport/http.rb +8 -8
  216. data/lib/datadog/core/transport/transport.rb +1 -1
  217. data/lib/datadog/core/utils/at_fork_monkey_patch.rb +2 -2
  218. data/lib/datadog/core/utils/base64_codec.rb +3 -3
  219. data/lib/datadog/core/utils/duration.rb +1 -1
  220. data/lib/datadog/core/utils/forking.rb +2 -2
  221. data/lib/datadog/core/utils/lru_cache.rb +3 -3
  222. data/lib/datadog/core/utils/network.rb +11 -11
  223. data/lib/datadog/core/utils/only_once_successful.rb +1 -1
  224. data/lib/datadog/core/utils/safe_dup.rb +2 -1
  225. data/lib/datadog/core/utils/spawn_monkey_patch.rb +2 -2
  226. data/lib/datadog/core/utils/url.rb +1 -1
  227. data/lib/datadog/core/utils.rb +4 -4
  228. data/lib/datadog/core/workers/async.rb +1 -1
  229. data/lib/datadog/core/workers/polling.rb +2 -2
  230. data/lib/datadog/core/workers/runtime_metrics.rb +4 -4
  231. data/lib/datadog/core.rb +4 -4
  232. data/lib/datadog/data_streams/configuration.rb +3 -3
  233. data/lib/datadog/data_streams/ext.rb +1 -1
  234. data/lib/datadog/data_streams/extensions.rb +2 -2
  235. data/lib/datadog/data_streams/pathway_context.rb +5 -5
  236. data/lib/datadog/data_streams/processor.rb +52 -52
  237. data/lib/datadog/data_streams/transport/http/stats.rb +5 -5
  238. data/lib/datadog/data_streams/transport/http.rb +5 -5
  239. data/lib/datadog/data_streams/transport/stats.rb +7 -7
  240. data/lib/datadog/data_streams.rb +5 -5
  241. data/lib/datadog/di/base.rb +4 -4
  242. data/lib/datadog/di/boot.rb +25 -25
  243. data/lib/datadog/di/code_tracker.rb +6 -6
  244. data/lib/datadog/di/component.rb +11 -3
  245. data/lib/datadog/di/configuration.rb +2 -2
  246. data/lib/datadog/di/contrib/railtie.rb +1 -1
  247. data/lib/datadog/di/contrib.rb +5 -5
  248. data/lib/datadog/di/el/compiler.rb +25 -25
  249. data/lib/datadog/di/el.rb +3 -3
  250. data/lib/datadog/di/instrumenter.rb +19 -9
  251. data/lib/datadog/di/logger.rb +1 -1
  252. data/lib/datadog/di/preload.rb +1 -1
  253. data/lib/datadog/di/probe_builder.rb +22 -22
  254. data/lib/datadog/di/probe_file_loader/railtie.rb +1 -1
  255. data/lib/datadog/di/probe_file_loader.rb +5 -5
  256. data/lib/datadog/di/probe_manager.rb +1 -1
  257. data/lib/datadog/di/probe_notification_builder.rb +16 -16
  258. data/lib/datadog/di/probe_notifier_worker.rb +6 -6
  259. data/lib/datadog/di/probe_repository.rb +1 -1
  260. data/lib/datadog/di/remote.rb +3 -3
  261. data/lib/datadog/di/serializer.rb +13 -13
  262. data/lib/datadog/di/transport/diagnostics.rb +5 -5
  263. data/lib/datadog/di/transport/http/diagnostics.rb +3 -3
  264. data/lib/datadog/di/transport/http/input.rb +2 -2
  265. data/lib/datadog/di/transport/http.rb +10 -10
  266. data/lib/datadog/di/transport/input.rb +9 -9
  267. data/lib/datadog/di/utils.rb +4 -4
  268. data/lib/datadog/di.rb +5 -5
  269. data/lib/datadog/error_tracking/collector.rb +2 -2
  270. data/lib/datadog/error_tracking/component.rb +12 -12
  271. data/lib/datadog/error_tracking/configuration.rb +2 -2
  272. data/lib/datadog/error_tracking/ext.rb +7 -7
  273. data/lib/datadog/error_tracking/extensions.rb +2 -2
  274. data/lib/datadog/error_tracking/filters.rb +4 -4
  275. data/lib/datadog/error_tracking.rb +6 -6
  276. data/lib/datadog/kit/appsec/events/v2.rb +39 -39
  277. data/lib/datadog/kit/appsec/events.rb +25 -25
  278. data/lib/datadog/kit/enable_core_dumps.rb +2 -2
  279. data/lib/datadog/kit/identity.rb +18 -18
  280. data/lib/datadog/kit/tracing/method_tracer.rb +7 -7
  281. data/lib/datadog/kit.rb +1 -1
  282. data/lib/datadog/open_feature/component.rb +31 -22
  283. data/lib/datadog/open_feature/configuration.rb +15 -2
  284. data/lib/datadog/open_feature/evaluation_engine.rb +7 -7
  285. data/lib/datadog/open_feature/exposures/buffer.rb +1 -1
  286. data/lib/datadog/open_feature/exposures/deduplicator.rb +1 -1
  287. data/lib/datadog/open_feature/exposures/event.rb +2 -2
  288. data/lib/datadog/open_feature/exposures/reporter.rb +3 -3
  289. data/lib/datadog/open_feature/exposures/worker.rb +6 -6
  290. data/lib/datadog/open_feature/ext.rb +13 -8
  291. data/lib/datadog/open_feature/flag_evaluation/aggregator.rb +8 -8
  292. data/lib/datadog/open_feature/flag_evaluation/writer.rb +36 -36
  293. data/lib/datadog/open_feature/hooks/flag_eval_evp_hook.rb +5 -4
  294. data/lib/datadog/open_feature/hooks/flag_eval_metrics_hook.rb +3 -1
  295. data/lib/datadog/open_feature/hooks/span_enrichment_hook/codec.rb +58 -0
  296. data/lib/datadog/open_feature/hooks/span_enrichment_hook/span_enrichment_state.rb +96 -0
  297. data/lib/datadog/open_feature/hooks/span_enrichment_hook/span_enrichment_state_store.rb +49 -0
  298. data/lib/datadog/open_feature/hooks/span_enrichment_hook.rb +184 -0
  299. data/lib/datadog/open_feature/metrics/flag_eval_metrics.rb +24 -24
  300. data/lib/datadog/open_feature/native_evaluator.rb +4 -4
  301. data/lib/datadog/open_feature/noop_evaluator.rb +3 -3
  302. data/lib/datadog/open_feature/provider.rb +45 -10
  303. data/lib/datadog/open_feature/remote.rb +2 -2
  304. data/lib/datadog/open_feature/resolution_details.rb +4 -2
  305. data/lib/datadog/open_feature/transport.rb +14 -14
  306. data/lib/datadog/open_feature.rb +2 -2
  307. data/lib/datadog/opentelemetry/api/baggage.rb +3 -3
  308. data/lib/datadog/opentelemetry/api/context.rb +4 -4
  309. data/lib/datadog/opentelemetry/configuration/settings.rb +41 -41
  310. data/lib/datadog/opentelemetry/ext.rb +1 -1
  311. data/lib/datadog/opentelemetry/logs.rb +5 -5
  312. data/lib/datadog/opentelemetry/metrics.rb +7 -7
  313. data/lib/datadog/opentelemetry/sdk/configurator.rb +8 -8
  314. data/lib/datadog/opentelemetry/sdk/id_generator.rb +2 -2
  315. data/lib/datadog/opentelemetry/sdk/logs_exporter.rb +6 -6
  316. data/lib/datadog/opentelemetry/sdk/metrics_exporter.rb +5 -5
  317. data/lib/datadog/opentelemetry/sdk/propagator.rb +7 -7
  318. data/lib/datadog/opentelemetry/sdk/span_processor.rb +15 -15
  319. data/lib/datadog/opentelemetry/sdk/trace/span.rb +32 -32
  320. data/lib/datadog/opentelemetry/sdk.rb +2 -2
  321. data/lib/datadog/opentelemetry/signal_configuration.rb +11 -11
  322. data/lib/datadog/opentelemetry/trace.rb +1 -1
  323. data/lib/datadog/opentelemetry.rb +8 -8
  324. data/lib/datadog/profiling/exporter.rb +1 -1
  325. data/lib/datadog/profiling/http_transport.rb +1 -1
  326. data/lib/datadog/profiling/sequence_tracker.rb +1 -1
  327. data/lib/datadog/profiling/tag_builder.rb +19 -19
  328. data/lib/datadog/profiling.rb +27 -27
  329. data/lib/datadog/single_step_instrument.rb +1 -1
  330. data/lib/datadog/symbol_database/component.rb +15 -15
  331. data/lib/datadog/symbol_database/configuration.rb +3 -3
  332. data/lib/datadog/symbol_database/extensions.rb +2 -2
  333. data/lib/datadog/symbol_database/extractor.rb +53 -53
  334. data/lib/datadog/symbol_database/file_hash.rb +3 -3
  335. data/lib/datadog/symbol_database/logger.rb +1 -1
  336. data/lib/datadog/symbol_database/remote.rb +21 -6
  337. data/lib/datadog/symbol_database/scope.rb +2 -2
  338. data/lib/datadog/symbol_database/scope_batcher.rb +2 -2
  339. data/lib/datadog/symbol_database/service_version.rb +4 -4
  340. data/lib/datadog/symbol_database/symbol.rb +1 -1
  341. data/lib/datadog/symbol_database/transport/http/endpoint.rb +1 -1
  342. data/lib/datadog/symbol_database/transport/http.rb +6 -6
  343. data/lib/datadog/symbol_database/transport.rb +4 -4
  344. data/lib/datadog/symbol_database/uploader.rb +22 -22
  345. data/lib/datadog/symbol_database.rb +2 -2
  346. data/lib/datadog/tracing/analytics.rb +1 -1
  347. data/lib/datadog/tracing/buffer.rb +5 -5
  348. data/lib/datadog/tracing/client_ip.rb +4 -4
  349. data/lib/datadog/tracing/component.rb +7 -7
  350. data/lib/datadog/tracing/configuration/dynamic.rb +8 -8
  351. data/lib/datadog/tracing/configuration/ext.rb +42 -42
  352. data/lib/datadog/tracing/configuration/http.rb +2 -2
  353. data/lib/datadog/tracing/configuration/settings.rb +16 -16
  354. data/lib/datadog/tracing/context.rb +1 -1
  355. data/lib/datadog/tracing/context_provider.rb +2 -2
  356. data/lib/datadog/tracing/contrib/action_cable/configuration/settings.rb +2 -2
  357. data/lib/datadog/tracing/contrib/action_cable/event.rb +4 -4
  358. data/lib/datadog/tracing/contrib/action_cable/events/broadcast.rb +5 -5
  359. data/lib/datadog/tracing/contrib/action_cable/events/perform_action.rb +4 -4
  360. data/lib/datadog/tracing/contrib/action_cable/events/transmit.rb +5 -5
  361. data/lib/datadog/tracing/contrib/action_cable/events.rb +4 -4
  362. data/lib/datadog/tracing/contrib/action_cable/ext.rb +18 -18
  363. data/lib/datadog/tracing/contrib/action_cable/instrumentation.rb +4 -4
  364. data/lib/datadog/tracing/contrib/action_cable/integration.rb +7 -7
  365. data/lib/datadog/tracing/contrib/action_cable/patcher.rb +4 -4
  366. data/lib/datadog/tracing/contrib/action_mailer/configuration/settings.rb +2 -2
  367. data/lib/datadog/tracing/contrib/action_mailer/event.rb +3 -3
  368. data/lib/datadog/tracing/contrib/action_mailer/events/deliver.rb +8 -8
  369. data/lib/datadog/tracing/contrib/action_mailer/events/process.rb +4 -4
  370. data/lib/datadog/tracing/contrib/action_mailer/events.rb +2 -2
  371. data/lib/datadog/tracing/contrib/action_mailer/ext.rb +18 -18
  372. data/lib/datadog/tracing/contrib/action_mailer/integration.rb +7 -7
  373. data/lib/datadog/tracing/contrib/action_mailer/patcher.rb +3 -3
  374. data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +8 -8
  375. data/lib/datadog/tracing/contrib/action_pack/action_controller/patcher.rb +2 -2
  376. data/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb +4 -4
  377. data/lib/datadog/tracing/contrib/action_pack/action_dispatch/patcher.rb +4 -4
  378. data/lib/datadog/tracing/contrib/action_pack/configuration/settings.rb +3 -3
  379. data/lib/datadog/tracing/contrib/action_pack/ext.rb +10 -10
  380. data/lib/datadog/tracing/contrib/action_pack/integration.rb +7 -7
  381. data/lib/datadog/tracing/contrib/action_pack/patcher.rb +3 -3
  382. data/lib/datadog/tracing/contrib/action_pack/utils.rb +1 -1
  383. data/lib/datadog/tracing/contrib/action_view/configuration/settings.rb +3 -3
  384. data/lib/datadog/tracing/contrib/action_view/event.rb +1 -1
  385. data/lib/datadog/tracing/contrib/action_view/events/render_partial.rb +6 -6
  386. data/lib/datadog/tracing/contrib/action_view/events/render_template.rb +6 -6
  387. data/lib/datadog/tracing/contrib/action_view/events.rb +2 -2
  388. data/lib/datadog/tracing/contrib/action_view/ext.rb +10 -10
  389. data/lib/datadog/tracing/contrib/action_view/integration.rb +11 -11
  390. data/lib/datadog/tracing/contrib/action_view/patcher.rb +5 -5
  391. data/lib/datadog/tracing/contrib/action_view/utils.rb +2 -2
  392. data/lib/datadog/tracing/contrib/active_job/configuration/settings.rb +2 -2
  393. data/lib/datadog/tracing/contrib/active_job/data_streams.rb +2 -2
  394. data/lib/datadog/tracing/contrib/active_job/event.rb +3 -3
  395. data/lib/datadog/tracing/contrib/active_job/events/discard.rb +5 -5
  396. data/lib/datadog/tracing/contrib/active_job/events/enqueue.rb +5 -5
  397. data/lib/datadog/tracing/contrib/active_job/events/enqueue_at.rb +5 -5
  398. data/lib/datadog/tracing/contrib/active_job/events/enqueue_retry.rb +5 -5
  399. data/lib/datadog/tracing/contrib/active_job/events/perform.rb +5 -5
  400. data/lib/datadog/tracing/contrib/active_job/events/retry_stopped.rb +5 -5
  401. data/lib/datadog/tracing/contrib/active_job/events.rb +6 -6
  402. data/lib/datadog/tracing/contrib/active_job/ext.rb +23 -23
  403. data/lib/datadog/tracing/contrib/active_job/integration.rb +7 -7
  404. data/lib/datadog/tracing/contrib/active_job/patcher.rb +7 -7
  405. data/lib/datadog/tracing/contrib/active_model_serializers/configuration/settings.rb +2 -2
  406. data/lib/datadog/tracing/contrib/active_model_serializers/event.rb +4 -4
  407. data/lib/datadog/tracing/contrib/active_model_serializers/events/render.rb +6 -6
  408. data/lib/datadog/tracing/contrib/active_model_serializers/events/serialize.rb +6 -6
  409. data/lib/datadog/tracing/contrib/active_model_serializers/events.rb +2 -2
  410. data/lib/datadog/tracing/contrib/active_model_serializers/ext.rb +10 -10
  411. data/lib/datadog/tracing/contrib/active_model_serializers/integration.rb +5 -5
  412. data/lib/datadog/tracing/contrib/active_model_serializers/patcher.rb +3 -3
  413. data/lib/datadog/tracing/contrib/active_record/configuration/makara_resolver.rb +1 -1
  414. data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +6 -6
  415. data/lib/datadog/tracing/contrib/active_record/configuration/settings.rb +4 -4
  416. data/lib/datadog/tracing/contrib/active_record/event.rb +1 -1
  417. data/lib/datadog/tracing/contrib/active_record/events/instantiation.rb +8 -8
  418. data/lib/datadog/tracing/contrib/active_record/events/sql.rb +9 -9
  419. data/lib/datadog/tracing/contrib/active_record/events.rb +2 -2
  420. data/lib/datadog/tracing/contrib/active_record/ext.rb +15 -15
  421. data/lib/datadog/tracing/contrib/active_record/integration.rb +11 -11
  422. data/lib/datadog/tracing/contrib/active_record/patcher.rb +2 -2
  423. data/lib/datadog/tracing/contrib/active_record/utils.rb +3 -3
  424. data/lib/datadog/tracing/contrib/active_support/cache/event.rb +1 -1
  425. data/lib/datadog/tracing/contrib/active_support/cache/events/cache.rb +11 -11
  426. data/lib/datadog/tracing/contrib/active_support/cache/events.rb +1 -1
  427. data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +4 -4
  428. data/lib/datadog/tracing/contrib/active_support/cache/patcher.rb +5 -5
  429. data/lib/datadog/tracing/contrib/active_support/cache/redis.rb +4 -4
  430. data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +3 -3
  431. data/lib/datadog/tracing/contrib/active_support/ext.rb +16 -16
  432. data/lib/datadog/tracing/contrib/active_support/integration.rb +8 -8
  433. data/lib/datadog/tracing/contrib/active_support/notifications/event.rb +1 -1
  434. data/lib/datadog/tracing/contrib/active_support/notifications/subscriber.rb +2 -2
  435. data/lib/datadog/tracing/contrib/active_support/notifications/subscription.rb +1 -1
  436. data/lib/datadog/tracing/contrib/active_support/patcher.rb +2 -2
  437. data/lib/datadog/tracing/contrib/analytics.rb +1 -1
  438. data/lib/datadog/tracing/contrib/auto_instrument.rb +4 -4
  439. data/lib/datadog/tracing/contrib/aws/configuration/settings.rb +3 -3
  440. data/lib/datadog/tracing/contrib/aws/ext.rb +25 -25
  441. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +5 -5
  442. data/lib/datadog/tracing/contrib/aws/integration.rb +9 -9
  443. data/lib/datadog/tracing/contrib/aws/parsed_context.rb +1 -1
  444. data/lib/datadog/tracing/contrib/aws/patcher.rb +5 -5
  445. data/lib/datadog/tracing/contrib/aws/service/dynamodb.rb +2 -2
  446. data/lib/datadog/tracing/contrib/aws/service/eventbridge.rb +2 -2
  447. data/lib/datadog/tracing/contrib/aws/service/kinesis.rb +4 -4
  448. data/lib/datadog/tracing/contrib/aws/service/s3.rb +2 -2
  449. data/lib/datadog/tracing/contrib/aws/service/sns.rb +3 -3
  450. data/lib/datadog/tracing/contrib/aws/service/sqs.rb +3 -3
  451. data/lib/datadog/tracing/contrib/aws/service/states.rb +5 -5
  452. data/lib/datadog/tracing/contrib/aws/services.rb +14 -14
  453. data/lib/datadog/tracing/contrib/concurrent_ruby/async_patch.rb +1 -1
  454. data/lib/datadog/tracing/contrib/concurrent_ruby/configuration/settings.rb +2 -2
  455. data/lib/datadog/tracing/contrib/concurrent_ruby/context_composite_executor_service.rb +1 -1
  456. data/lib/datadog/tracing/contrib/concurrent_ruby/ext.rb +2 -2
  457. data/lib/datadog/tracing/contrib/concurrent_ruby/future_patch.rb +1 -1
  458. data/lib/datadog/tracing/contrib/concurrent_ruby/integration.rb +6 -6
  459. data/lib/datadog/tracing/contrib/concurrent_ruby/patcher.rb +4 -4
  460. data/lib/datadog/tracing/contrib/concurrent_ruby/promises_future_patch.rb +1 -1
  461. data/lib/datadog/tracing/contrib/configurable.rb +2 -2
  462. data/lib/datadog/tracing/contrib/configuration/resolvers/pattern_resolver.rb +1 -1
  463. data/lib/datadog/tracing/contrib/configuration/settings.rb +2 -2
  464. data/lib/datadog/tracing/contrib/dalli/configuration/settings.rb +2 -2
  465. data/lib/datadog/tracing/contrib/dalli/ext.rb +13 -13
  466. data/lib/datadog/tracing/contrib/dalli/instrumentation.rb +5 -5
  467. data/lib/datadog/tracing/contrib/dalli/integration.rb +7 -7
  468. data/lib/datadog/tracing/contrib/dalli/patcher.rb +3 -3
  469. data/lib/datadog/tracing/contrib/dalli/quantize.rb +2 -2
  470. data/lib/datadog/tracing/contrib/delayed_job/configuration/settings.rb +2 -2
  471. data/lib/datadog/tracing/contrib/delayed_job/ext.rb +14 -14
  472. data/lib/datadog/tracing/contrib/delayed_job/integration.rb +5 -5
  473. data/lib/datadog/tracing/contrib/delayed_job/patcher.rb +3 -3
  474. data/lib/datadog/tracing/contrib/delayed_job/plugin.rb +5 -5
  475. data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +2 -2
  476. data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +15 -15
  477. data/lib/datadog/tracing/contrib/elasticsearch/integration.rb +6 -6
  478. data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +10 -10
  479. data/lib/datadog/tracing/contrib/elasticsearch/quantize.rb +2 -2
  480. data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +2 -2
  481. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +8 -8
  482. data/lib/datadog/tracing/contrib/ethon/ext.rb +13 -13
  483. data/lib/datadog/tracing/contrib/ethon/integration.rb +6 -6
  484. data/lib/datadog/tracing/contrib/ethon/multi_patch.rb +3 -3
  485. data/lib/datadog/tracing/contrib/ethon/patcher.rb +3 -3
  486. data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +5 -5
  487. data/lib/datadog/tracing/contrib/excon/ext.rb +11 -11
  488. data/lib/datadog/tracing/contrib/excon/integration.rb +6 -6
  489. data/lib/datadog/tracing/contrib/excon/middleware.rb +8 -8
  490. data/lib/datadog/tracing/contrib/excon/patcher.rb +2 -2
  491. data/lib/datadog/tracing/contrib/ext.rb +15 -15
  492. data/lib/datadog/tracing/contrib/extensions.rb +2 -2
  493. data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +4 -4
  494. data/lib/datadog/tracing/contrib/faraday/ext.rb +11 -11
  495. data/lib/datadog/tracing/contrib/faraday/integration.rb +6 -6
  496. data/lib/datadog/tracing/contrib/faraday/middleware.rb +8 -8
  497. data/lib/datadog/tracing/contrib/faraday/patcher.rb +6 -6
  498. data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +4 -4
  499. data/lib/datadog/tracing/contrib/grape/endpoint.rb +20 -20
  500. data/lib/datadog/tracing/contrib/grape/ext.rb +15 -15
  501. data/lib/datadog/tracing/contrib/grape/instrumentation.rb +3 -3
  502. data/lib/datadog/tracing/contrib/grape/integration.rb +5 -5
  503. data/lib/datadog/tracing/contrib/grape/patcher.rb +5 -5
  504. data/lib/datadog/tracing/contrib/graphql/configuration/error_extension_env_parser.rb +1 -1
  505. data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +3 -3
  506. data/lib/datadog/tracing/contrib/graphql/ext.rb +9 -9
  507. data/lib/datadog/tracing/contrib/graphql/integration.rb +9 -9
  508. data/lib/datadog/tracing/contrib/graphql/patcher.rb +7 -7
  509. data/lib/datadog/tracing/contrib/graphql/unified_trace.rb +37 -37
  510. data/lib/datadog/tracing/contrib/graphql/unified_trace_patcher.rb +2 -2
  511. data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +2 -2
  512. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +7 -7
  513. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +7 -7
  514. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor.rb +6 -6
  515. data/lib/datadog/tracing/contrib/grpc/distributed/fetcher.rb +1 -1
  516. data/lib/datadog/tracing/contrib/grpc/distributed/propagation.rb +8 -8
  517. data/lib/datadog/tracing/contrib/grpc/ext.rb +14 -14
  518. data/lib/datadog/tracing/contrib/grpc/formatting.rb +7 -7
  519. data/lib/datadog/tracing/contrib/grpc/integration.rb +5 -5
  520. data/lib/datadog/tracing/contrib/grpc/intercept_with_datadog.rb +1 -1
  521. data/lib/datadog/tracing/contrib/grpc/patcher.rb +3 -3
  522. data/lib/datadog/tracing/contrib/grpc.rb +6 -6
  523. data/lib/datadog/tracing/contrib/hanami/action_tracer.rb +3 -3
  524. data/lib/datadog/tracing/contrib/hanami/configuration/settings.rb +2 -2
  525. data/lib/datadog/tracing/contrib/hanami/ext.rb +8 -8
  526. data/lib/datadog/tracing/contrib/hanami/integration.rb +6 -6
  527. data/lib/datadog/tracing/contrib/hanami/patcher.rb +5 -5
  528. data/lib/datadog/tracing/contrib/hanami/renderer_policy_tracing.rb +3 -3
  529. data/lib/datadog/tracing/contrib/hanami/router_tracing.rb +3 -3
  530. data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +1 -1
  531. data/lib/datadog/tracing/contrib/http/configuration/settings.rb +4 -4
  532. data/lib/datadog/tracing/contrib/http/distributed/fetcher.rb +3 -3
  533. data/lib/datadog/tracing/contrib/http/distributed/propagation.rb +8 -8
  534. data/lib/datadog/tracing/contrib/http/ext.rb +11 -11
  535. data/lib/datadog/tracing/contrib/http/instrumentation.rb +6 -6
  536. data/lib/datadog/tracing/contrib/http/integration.rb +7 -7
  537. data/lib/datadog/tracing/contrib/http/patcher.rb +3 -3
  538. data/lib/datadog/tracing/contrib/http.rb +6 -6
  539. data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +4 -4
  540. data/lib/datadog/tracing/contrib/httpclient/ext.rb +11 -11
  541. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +5 -5
  542. data/lib/datadog/tracing/contrib/httpclient/integration.rb +6 -6
  543. data/lib/datadog/tracing/contrib/httpclient/patcher.rb +3 -3
  544. data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +4 -4
  545. data/lib/datadog/tracing/contrib/httprb/ext.rb +11 -11
  546. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +6 -6
  547. data/lib/datadog/tracing/contrib/httprb/integration.rb +7 -7
  548. data/lib/datadog/tracing/contrib/httprb/patcher.rb +3 -3
  549. data/lib/datadog/tracing/contrib/integration.rb +3 -3
  550. data/lib/datadog/tracing/contrib/kafka/configuration/settings.rb +2 -2
  551. data/lib/datadog/tracing/contrib/kafka/event.rb +3 -3
  552. data/lib/datadog/tracing/contrib/kafka/events/connection/request.rb +3 -3
  553. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_batch.rb +4 -4
  554. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_message.rb +4 -4
  555. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/heartbeat.rb +5 -5
  556. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/join_group.rb +5 -5
  557. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/leave_group.rb +5 -5
  558. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/sync_group.rb +5 -5
  559. data/lib/datadog/tracing/contrib/kafka/events/produce_operation/send_messages.rb +3 -3
  560. data/lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb +3 -3
  561. data/lib/datadog/tracing/contrib/kafka/events.rb +9 -9
  562. data/lib/datadog/tracing/contrib/kafka/ext.rb +40 -40
  563. data/lib/datadog/tracing/contrib/kafka/instrumentation/consumer.rb +2 -2
  564. data/lib/datadog/tracing/contrib/kafka/instrumentation/producer.rb +4 -4
  565. data/lib/datadog/tracing/contrib/kafka/integration.rb +6 -6
  566. data/lib/datadog/tracing/contrib/kafka/patcher.rb +5 -5
  567. data/lib/datadog/tracing/contrib/karafka/configuration/settings.rb +2 -2
  568. data/lib/datadog/tracing/contrib/karafka/distributed/propagation.rb +8 -8
  569. data/lib/datadog/tracing/contrib/karafka/ext.rb +13 -13
  570. data/lib/datadog/tracing/contrib/karafka/integration.rb +5 -5
  571. data/lib/datadog/tracing/contrib/karafka/monitor.rb +14 -14
  572. data/lib/datadog/tracing/contrib/karafka/patcher.rb +8 -8
  573. data/lib/datadog/tracing/contrib/karafka.rb +6 -6
  574. data/lib/datadog/tracing/contrib/lograge/configuration/settings.rb +2 -2
  575. data/lib/datadog/tracing/contrib/lograge/ext.rb +1 -1
  576. data/lib/datadog/tracing/contrib/lograge/integration.rb +5 -5
  577. data/lib/datadog/tracing/contrib/lograge/patcher.rb +9 -9
  578. data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +2 -2
  579. data/lib/datadog/tracing/contrib/mongodb/ext.rb +18 -18
  580. data/lib/datadog/tracing/contrib/mongodb/instrumentation.rb +3 -3
  581. data/lib/datadog/tracing/contrib/mongodb/integration.rb +7 -7
  582. data/lib/datadog/tracing/contrib/mongodb/parsers.rb +5 -5
  583. data/lib/datadog/tracing/contrib/mongodb/patcher.rb +3 -3
  584. data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +13 -13
  585. data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +3 -3
  586. data/lib/datadog/tracing/contrib/mysql2/ext.rb +11 -11
  587. data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +6 -6
  588. data/lib/datadog/tracing/contrib/mysql2/integration.rb +5 -5
  589. data/lib/datadog/tracing/contrib/mysql2/patcher.rb +2 -2
  590. data/lib/datadog/tracing/contrib/opensearch/configuration/settings.rb +2 -2
  591. data/lib/datadog/tracing/contrib/opensearch/ext.rb +22 -22
  592. data/lib/datadog/tracing/contrib/opensearch/integration.rb +6 -6
  593. data/lib/datadog/tracing/contrib/opensearch/patcher.rb +13 -13
  594. data/lib/datadog/tracing/contrib/opensearch/quantize.rb +3 -3
  595. data/lib/datadog/tracing/contrib/patcher.rb +2 -2
  596. data/lib/datadog/tracing/contrib/pg/configuration/settings.rb +3 -3
  597. data/lib/datadog/tracing/contrib/pg/ext.rb +19 -19
  598. data/lib/datadog/tracing/contrib/pg/instrumentation.rb +6 -6
  599. data/lib/datadog/tracing/contrib/pg/integration.rb +5 -5
  600. data/lib/datadog/tracing/contrib/pg/patcher.rb +2 -2
  601. data/lib/datadog/tracing/contrib/presto/configuration/settings.rb +2 -2
  602. data/lib/datadog/tracing/contrib/presto/ext.rb +21 -21
  603. data/lib/datadog/tracing/contrib/presto/instrumentation.rb +2 -2
  604. data/lib/datadog/tracing/contrib/presto/integration.rb +6 -6
  605. data/lib/datadog/tracing/contrib/presto/patcher.rb +4 -4
  606. data/lib/datadog/tracing/contrib/propagation/sql_comment/comment.rb +2 -2
  607. data/lib/datadog/tracing/contrib/propagation/sql_comment/ext.rb +17 -17
  608. data/lib/datadog/tracing/contrib/propagation/sql_comment/mode.rb +1 -1
  609. data/lib/datadog/tracing/contrib/propagation/sql_comment.rb +5 -5
  610. data/lib/datadog/tracing/contrib/que/configuration/settings.rb +2 -2
  611. data/lib/datadog/tracing/contrib/que/ext.rb +19 -19
  612. data/lib/datadog/tracing/contrib/que/integration.rb +6 -6
  613. data/lib/datadog/tracing/contrib/que/patcher.rb +1 -1
  614. data/lib/datadog/tracing/contrib/que/tracer.rb +1 -1
  615. data/lib/datadog/tracing/contrib/racecar/configuration/settings.rb +3 -3
  616. data/lib/datadog/tracing/contrib/racecar/event.rb +4 -4
  617. data/lib/datadog/tracing/contrib/racecar/events/batch.rb +3 -3
  618. data/lib/datadog/tracing/contrib/racecar/events/consume.rb +3 -3
  619. data/lib/datadog/tracing/contrib/racecar/events/message.rb +3 -3
  620. data/lib/datadog/tracing/contrib/racecar/events.rb +3 -3
  621. data/lib/datadog/tracing/contrib/racecar/ext.rb +18 -18
  622. data/lib/datadog/tracing/contrib/racecar/integration.rb +5 -5
  623. data/lib/datadog/tracing/contrib/racecar/patcher.rb +3 -3
  624. data/lib/datadog/tracing/contrib/rack/configuration/settings.rb +2 -2
  625. data/lib/datadog/tracing/contrib/rack/ext.rb +33 -33
  626. data/lib/datadog/tracing/contrib/rack/header_collection.rb +3 -3
  627. data/lib/datadog/tracing/contrib/rack/header_tagging.rb +4 -4
  628. data/lib/datadog/tracing/contrib/rack/integration.rb +6 -6
  629. data/lib/datadog/tracing/contrib/rack/middlewares.rb +24 -24
  630. data/lib/datadog/tracing/contrib/rack/patcher.rb +2 -2
  631. data/lib/datadog/tracing/contrib/rack/request_queue.rb +3 -3
  632. data/lib/datadog/tracing/contrib/rack/route_inference.rb +11 -11
  633. data/lib/datadog/tracing/contrib/rack/trace_proxy_middleware.rb +15 -15
  634. data/lib/datadog/tracing/contrib/rails/auto_instrument_railtie.rb +1 -1
  635. data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +3 -3
  636. data/lib/datadog/tracing/contrib/rails/ext.rb +15 -15
  637. data/lib/datadog/tracing/contrib/rails/framework.rb +11 -11
  638. data/lib/datadog/tracing/contrib/rails/integration.rb +5 -5
  639. data/lib/datadog/tracing/contrib/rails/middlewares.rb +1 -1
  640. data/lib/datadog/tracing/contrib/rails/patcher.rb +8 -8
  641. data/lib/datadog/tracing/contrib/rails/railtie.rb +4 -4
  642. data/lib/datadog/tracing/contrib/rails/runner.rb +1 -1
  643. data/lib/datadog/tracing/contrib/rake/configuration/settings.rb +3 -3
  644. data/lib/datadog/tracing/contrib/rake/ext.rb +12 -12
  645. data/lib/datadog/tracing/contrib/rake/instrumentation.rb +4 -4
  646. data/lib/datadog/tracing/contrib/rake/integration.rb +5 -5
  647. data/lib/datadog/tracing/contrib/rake/patcher.rb +3 -3
  648. data/lib/datadog/tracing/contrib/redis/configuration/resolver.rb +2 -2
  649. data/lib/datadog/tracing/contrib/redis/configuration/settings.rb +2 -2
  650. data/lib/datadog/tracing/contrib/redis/ext.rb +16 -16
  651. data/lib/datadog/tracing/contrib/redis/instrumentation.rb +6 -6
  652. data/lib/datadog/tracing/contrib/redis/integration.rb +7 -7
  653. data/lib/datadog/tracing/contrib/redis/patcher.rb +10 -10
  654. data/lib/datadog/tracing/contrib/redis/quantize.rb +4 -4
  655. data/lib/datadog/tracing/contrib/redis/tags.rb +5 -5
  656. data/lib/datadog/tracing/contrib/redis/trace_middleware.rb +5 -5
  657. data/lib/datadog/tracing/contrib/resque/configuration/settings.rb +2 -2
  658. data/lib/datadog/tracing/contrib/resque/ext.rb +7 -7
  659. data/lib/datadog/tracing/contrib/resque/integration.rb +5 -5
  660. data/lib/datadog/tracing/contrib/resque/patcher.rb +3 -3
  661. data/lib/datadog/tracing/contrib/resque/resque_job.rb +5 -5
  662. data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +2 -2
  663. data/lib/datadog/tracing/contrib/rest_client/ext.rb +10 -10
  664. data/lib/datadog/tracing/contrib/rest_client/integration.rb +6 -6
  665. data/lib/datadog/tracing/contrib/rest_client/patcher.rb +2 -2
  666. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +5 -5
  667. data/lib/datadog/tracing/contrib/roda/configuration/settings.rb +2 -2
  668. data/lib/datadog/tracing/contrib/roda/ext.rb +6 -6
  669. data/lib/datadog/tracing/contrib/roda/instrumentation.rb +4 -4
  670. data/lib/datadog/tracing/contrib/roda/integration.rb +6 -6
  671. data/lib/datadog/tracing/contrib/roda/patcher.rb +3 -3
  672. data/lib/datadog/tracing/contrib/semantic_logger/configuration/settings.rb +2 -2
  673. data/lib/datadog/tracing/contrib/semantic_logger/ext.rb +1 -1
  674. data/lib/datadog/tracing/contrib/semantic_logger/integration.rb +5 -5
  675. data/lib/datadog/tracing/contrib/semantic_logger/patcher.rb +2 -2
  676. data/lib/datadog/tracing/contrib/sequel/configuration/settings.rb +2 -2
  677. data/lib/datadog/tracing/contrib/sequel/database.rb +6 -6
  678. data/lib/datadog/tracing/contrib/sequel/dataset.rb +5 -5
  679. data/lib/datadog/tracing/contrib/sequel/ext.rb +12 -8
  680. data/lib/datadog/tracing/contrib/sequel/integration.rb +5 -5
  681. data/lib/datadog/tracing/contrib/sequel/patcher.rb +3 -3
  682. data/lib/datadog/tracing/contrib/sequel/utils.rb +113 -8
  683. data/lib/datadog/tracing/contrib/shoryuken/configuration/settings.rb +2 -2
  684. data/lib/datadog/tracing/contrib/shoryuken/ext.rb +12 -12
  685. data/lib/datadog/tracing/contrib/shoryuken/integration.rb +6 -6
  686. data/lib/datadog/tracing/contrib/shoryuken/patcher.rb +1 -1
  687. data/lib/datadog/tracing/contrib/shoryuken/tracer.rb +2 -2
  688. data/lib/datadog/tracing/contrib/sidekiq/client_tracer.rb +8 -8
  689. data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +2 -2
  690. data/lib/datadog/tracing/contrib/sidekiq/distributed/propagation.rb +9 -9
  691. data/lib/datadog/tracing/contrib/sidekiq/ext.rb +30 -30
  692. data/lib/datadog/tracing/contrib/sidekiq/integration.rb +7 -7
  693. data/lib/datadog/tracing/contrib/sidekiq/patcher.rb +8 -8
  694. data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +13 -13
  695. data/lib/datadog/tracing/contrib/sidekiq/utils.rb +9 -9
  696. data/lib/datadog/tracing/contrib/sidekiq.rb +6 -6
  697. data/lib/datadog/tracing/contrib/sinatra/configuration/settings.rb +2 -2
  698. data/lib/datadog/tracing/contrib/sinatra/env.rb +6 -6
  699. data/lib/datadog/tracing/contrib/sinatra/ext.rb +17 -17
  700. data/lib/datadog/tracing/contrib/sinatra/framework.rb +1 -1
  701. data/lib/datadog/tracing/contrib/sinatra/integration.rb +5 -5
  702. data/lib/datadog/tracing/contrib/sinatra/patcher.rb +5 -5
  703. data/lib/datadog/tracing/contrib/sinatra/tracer.rb +10 -10
  704. data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +8 -8
  705. data/lib/datadog/tracing/contrib/sneakers/configuration/settings.rb +1 -1
  706. data/lib/datadog/tracing/contrib/sneakers/ext.rb +12 -12
  707. data/lib/datadog/tracing/contrib/sneakers/integration.rb +7 -7
  708. data/lib/datadog/tracing/contrib/sneakers/patcher.rb +2 -2
  709. data/lib/datadog/tracing/contrib/sneakers/tracer.rb +3 -3
  710. data/lib/datadog/tracing/contrib/span_attribute_schema.rb +2 -2
  711. data/lib/datadog/tracing/contrib/status_range_env_parser.rb +2 -2
  712. data/lib/datadog/tracing/contrib/status_range_matcher.rb +1 -1
  713. data/lib/datadog/tracing/contrib/stripe/configuration/settings.rb +2 -2
  714. data/lib/datadog/tracing/contrib/stripe/ext.rb +12 -12
  715. data/lib/datadog/tracing/contrib/stripe/integration.rb +5 -5
  716. data/lib/datadog/tracing/contrib/stripe/patcher.rb +2 -2
  717. data/lib/datadog/tracing/contrib/stripe/request.rb +3 -3
  718. data/lib/datadog/tracing/contrib/sucker_punch/configuration/settings.rb +2 -2
  719. data/lib/datadog/tracing/contrib/sucker_punch/exception_handler.rb +1 -1
  720. data/lib/datadog/tracing/contrib/sucker_punch/ext.rb +13 -13
  721. data/lib/datadog/tracing/contrib/sucker_punch/instrumentation.rb +4 -4
  722. data/lib/datadog/tracing/contrib/sucker_punch/integration.rb +5 -5
  723. data/lib/datadog/tracing/contrib/sucker_punch/patcher.rb +4 -4
  724. data/lib/datadog/tracing/contrib/trilogy/configuration/settings.rb +3 -3
  725. data/lib/datadog/tracing/contrib/trilogy/ext.rb +11 -11
  726. data/lib/datadog/tracing/contrib/trilogy/instrumentation.rb +6 -6
  727. data/lib/datadog/tracing/contrib/trilogy/integration.rb +5 -5
  728. data/lib/datadog/tracing/contrib/trilogy/patcher.rb +2 -2
  729. data/lib/datadog/tracing/contrib/utils/database.rb +5 -5
  730. data/lib/datadog/tracing/contrib/utils/quantization/hash_formatter.rb +1 -1
  731. data/lib/datadog/tracing/contrib/utils/quantization/http.rb +10 -10
  732. data/lib/datadog/tracing/contrib/waterdrop/configuration/settings.rb +2 -2
  733. data/lib/datadog/tracing/contrib/waterdrop/distributed/propagation.rb +8 -8
  734. data/lib/datadog/tracing/contrib/waterdrop/ext.rb +4 -4
  735. data/lib/datadog/tracing/contrib/waterdrop/integration.rb +5 -5
  736. data/lib/datadog/tracing/contrib/waterdrop/middleware.rb +2 -2
  737. data/lib/datadog/tracing/contrib/waterdrop/patcher.rb +7 -7
  738. data/lib/datadog/tracing/contrib/waterdrop/producer.rb +3 -3
  739. data/lib/datadog/tracing/contrib/waterdrop.rb +6 -6
  740. data/lib/datadog/tracing/contrib.rb +54 -54
  741. data/lib/datadog/tracing/correlation.rb +10 -10
  742. data/lib/datadog/tracing/diagnostics/environment_logger.rb +9 -9
  743. data/lib/datadog/tracing/diagnostics/ext.rb +19 -19
  744. data/lib/datadog/tracing/diagnostics/health.rb +1 -1
  745. data/lib/datadog/tracing/distributed/b3_multi.rb +8 -8
  746. data/lib/datadog/tracing/distributed/b3_single.rb +4 -4
  747. data/lib/datadog/tracing/distributed/baggage.rb +27 -27
  748. data/lib/datadog/tracing/distributed/datadog.rb +21 -21
  749. data/lib/datadog/tracing/distributed/datadog_tags_codec.rb +3 -3
  750. data/lib/datadog/tracing/distributed/fetcher.rb +1 -1
  751. data/lib/datadog/tracing/distributed/helpers.rb +3 -3
  752. data/lib/datadog/tracing/distributed/propagation.rb +12 -12
  753. data/lib/datadog/tracing/distributed/trace_context.rb +33 -33
  754. data/lib/datadog/tracing/event.rb +1 -1
  755. data/lib/datadog/tracing/ext.rb +1 -1
  756. data/lib/datadog/tracing/metadata/analytics.rb +2 -2
  757. data/lib/datadog/tracing/metadata/errors.rb +4 -4
  758. data/lib/datadog/tracing/metadata/ext.rb +69 -69
  759. data/lib/datadog/tracing/metadata/metastruct.rb +1 -1
  760. data/lib/datadog/tracing/metadata/metastruct_tagging.rb +1 -1
  761. data/lib/datadog/tracing/metadata/tagging.rb +2 -2
  762. data/lib/datadog/tracing/metadata.rb +4 -4
  763. data/lib/datadog/tracing/pipeline/span_filter.rb +2 -2
  764. data/lib/datadog/tracing/pipeline.rb +2 -2
  765. data/lib/datadog/tracing/remote.rb +23 -16
  766. data/lib/datadog/tracing/sampling/all_sampler.rb +1 -1
  767. data/lib/datadog/tracing/sampling/ext.rb +8 -8
  768. data/lib/datadog/tracing/sampling/matcher.rb +4 -4
  769. data/lib/datadog/tracing/sampling/priority_sampler.rb +4 -4
  770. data/lib/datadog/tracing/sampling/rate_by_key_sampler.rb +3 -3
  771. data/lib/datadog/tracing/sampling/rate_by_service_sampler.rb +2 -2
  772. data/lib/datadog/tracing/sampling/rate_sampler.rb +2 -2
  773. data/lib/datadog/tracing/sampling/rule.rb +4 -4
  774. data/lib/datadog/tracing/sampling/rule_sampler.rb +12 -12
  775. data/lib/datadog/tracing/sampling/sampler.rb +2 -2
  776. data/lib/datadog/tracing/sampling/span/ext.rb +3 -3
  777. data/lib/datadog/tracing/sampling/span/matcher.rb +2 -2
  778. data/lib/datadog/tracing/sampling/span/rule.rb +1 -1
  779. data/lib/datadog/tracing/sampling/span/rule_parser.rb +8 -8
  780. data/lib/datadog/tracing/span.rb +8 -8
  781. data/lib/datadog/tracing/span_event.rb +5 -5
  782. data/lib/datadog/tracing/span_operation.rb +21 -21
  783. data/lib/datadog/tracing/sync_writer.rb +4 -4
  784. data/lib/datadog/tracing/trace_operation.rb +11 -11
  785. data/lib/datadog/tracing/trace_segment.rb +10 -10
  786. data/lib/datadog/tracing/tracer.rb +15 -15
  787. data/lib/datadog/tracing/transport/http/client.rb +4 -4
  788. data/lib/datadog/tracing/transport/http/statistics.rb +2 -2
  789. data/lib/datadog/tracing/transport/http/traces.rb +8 -8
  790. data/lib/datadog/tracing/transport/http.rb +10 -10
  791. data/lib/datadog/tracing/transport/io/client.rb +2 -2
  792. data/lib/datadog/tracing/transport/io/response.rb +1 -1
  793. data/lib/datadog/tracing/transport/io/traces.rb +4 -4
  794. data/lib/datadog/tracing/transport/io.rb +3 -3
  795. data/lib/datadog/tracing/transport/serializable_trace.rb +19 -19
  796. data/lib/datadog/tracing/transport/statistics.rb +2 -2
  797. data/lib/datadog/tracing/transport/trace_formatter.rb +9 -9
  798. data/lib/datadog/tracing/transport/traces.rb +8 -8
  799. data/lib/datadog/tracing/utils.rb +2 -2
  800. data/lib/datadog/tracing/workers.rb +2 -2
  801. data/lib/datadog/tracing/writer.rb +5 -5
  802. data/lib/datadog/tracing.rb +3 -3
  803. data/lib/datadog/version.rb +4 -4
  804. data/lib/datadog.rb +13 -13
  805. metadata +7 -3
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'msgpack'
4
- require 'zlib'
5
- require_relative '../../core/transport/parcel'
6
- require_relative '../../core/transport/request'
7
- require_relative '../../core/transport/transport'
3
+ require "msgpack"
4
+ require "zlib"
5
+ require_relative "../../core/transport/parcel"
6
+ require_relative "../../core/transport/request"
7
+ require_relative "../../core/transport/transport"
8
8
 
9
9
  module Datadog
10
10
  module DataStreams
@@ -24,8 +24,8 @@ module Datadog
24
24
  # Create parcel and request
25
25
  parcel = Core::Transport::Parcel.new(
26
26
  compressed_data,
27
- content_type: 'application/msgpack',
28
- content_encoding: 'gzip',
27
+ content_type: "application/msgpack",
28
+ content_encoding: "gzip",
29
29
  )
30
30
  request = Request.new(parcel)
31
31
 
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'data_streams/processor'
4
- require_relative 'data_streams/pathway_context'
5
- require_relative 'data_streams/configuration'
6
- require_relative 'data_streams/extensions'
7
- require_relative 'core/utils/time'
3
+ require_relative "data_streams/processor"
4
+ require_relative "data_streams/pathway_context"
5
+ require_relative "data_streams/configuration"
6
+ require_relative "data_streams/extensions"
7
+ require_relative "core/utils/time"
8
8
 
9
9
  module Datadog
10
10
  # Datadog Data Streams Monitoring public API.
@@ -8,11 +8,11 @@
8
8
  # are loaded, and also none of the rest of datadog library which also
9
9
  # has contrib code in other products.
10
10
 
11
- require_relative 'fatal_exceptions'
12
- require_relative 'code_tracker'
11
+ require_relative "fatal_exceptions"
12
+ require_relative "code_tracker"
13
13
 
14
14
  # Needed since this file can be loaded without core
15
- require_relative '../ruby_version'
15
+ require_relative "../ruby_version"
16
16
 
17
17
  module Datadog
18
18
  # Namespace for Datadog dynamic instrumentation.
@@ -48,7 +48,7 @@ module Datadog
48
48
  # DI code.
49
49
  def activate_tracking
50
50
  # :script_compiled trace point was added in Ruby 2.6.
51
- return unless RubyVersion.is?('>= 2.6')
51
+ return unless RubyVersion.is?(">= 2.6")
52
52
 
53
53
  begin
54
54
  # Activate code tracking by default because line trace points will not work
@@ -1,27 +1,27 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'logger'
4
- require_relative 'base'
5
- require_relative 'error'
6
- require_relative 'code_tracker'
7
- require_relative 'component'
8
- require_relative 'context'
9
- require_relative 'capture_limits'
10
- require_relative 'capture_expression'
11
- require_relative 'capture_expression_evaluator'
12
- require_relative 'instrumenter'
13
- require_relative 'probe'
14
- require_relative 'probe_builder'
15
- require_relative 'probe_manager'
16
- require_relative 'probe_notification_builder'
17
- require_relative 'probe_notifier_worker'
18
- require_relative 'probe_repository'
19
- require_relative 'redactor'
20
- require_relative 'serializer'
21
- require_relative 'transport/http'
22
- require_relative 'utils'
3
+ require_relative "logger"
4
+ require_relative "base"
5
+ require_relative "error"
6
+ require_relative "code_tracker"
7
+ require_relative "component"
8
+ require_relative "context"
9
+ require_relative "capture_limits"
10
+ require_relative "capture_expression"
11
+ require_relative "capture_expression_evaluator"
12
+ require_relative "instrumenter"
13
+ require_relative "probe"
14
+ require_relative "probe_builder"
15
+ require_relative "probe_manager"
16
+ require_relative "probe_notification_builder"
17
+ require_relative "probe_notifier_worker"
18
+ require_relative "probe_repository"
19
+ require_relative "redactor"
20
+ require_relative "serializer"
21
+ require_relative "transport/http"
22
+ require_relative "utils"
23
23
 
24
- if %w[1 true yes].include?(Datadog::DATADOG_ENV['DD_DYNAMIC_INSTRUMENTATION_ENABLED'])
24
+ if %w[1 true yes].include?(Datadog::DATADOG_ENV["DD_DYNAMIC_INSTRUMENTATION_ENABLED"])
25
25
 
26
26
  # For initial release of Dynamic Instrumentation, activate code tracking
27
27
  # only if DI is explicitly requested in the environment.
@@ -35,13 +35,13 @@ if %w[1 true yes].include?(Datadog::DATADOG_ENV['DD_DYNAMIC_INSTRUMENTATION_ENAB
35
35
  Datadog::DI.activate_tracking
36
36
  end
37
37
 
38
- require_relative 'contrib'
38
+ require_relative "contrib"
39
39
 
40
40
  Datadog::DI::Contrib.load_now_or_later
41
41
 
42
- if %w[1 true yes].include?(Datadog::DATADOG_ENV['DD_DYNAMIC_INSTRUMENTATION_ENABLED'])
43
- if Datadog::DATADOG_ENV['DD_DYNAMIC_INSTRUMENTATION_PROBE_FILE']
44
- require_relative 'probe_file_loader'
42
+ if %w[1 true yes].include?(Datadog::DATADOG_ENV["DD_DYNAMIC_INSTRUMENTATION_ENABLED"])
43
+ if Datadog::DATADOG_ENV["DD_DYNAMIC_INSTRUMENTATION_PROBE_FILE"]
44
+ require_relative "probe_file_loader"
45
45
  Datadog::DI::ProbeFileLoader.load_now_or_later
46
46
  end
47
47
  end
@@ -2,8 +2,8 @@
2
2
 
3
3
  # rubocop:disable Lint/AssignmentInCondition
4
4
 
5
- require_relative 'error'
6
- require_relative 'fatal_exceptions'
5
+ require_relative "error"
6
+ require_relative "fatal_exceptions"
7
7
 
8
8
  module Datadog
9
9
  module DI
@@ -275,8 +275,8 @@ module Datadog
275
275
  if inexact.any?
276
276
  return inexact.first
277
277
  end
278
- break unless working_suffix.include?('/')
279
- working_suffix.sub!(%r{.*/+}, '')
278
+ break unless working_suffix.include?("/")
279
+ working_suffix.sub!(%r{.*/+}, "")
280
280
  end
281
281
  end
282
282
  nil
@@ -393,8 +393,8 @@ module Datadog
393
393
  matches = paths.select { |p| Utils.path_matches_suffix?(p, working_suffix, case_insensitive: case_insensitive) }
394
394
  raise Error::MultiplePathsMatch, "Multiple paths matched requested suffix" if matches.length > 1
395
395
  return matches.first if matches.any?
396
- break unless working_suffix.include?('/')
397
- working_suffix.sub!(%r{.*/+}, '')
396
+ break unless working_suffix.include?("/")
397
+ working_suffix.sub!(%r{.*/+}, "")
398
398
  end
399
399
  end
400
400
  nil
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'fatal_exceptions'
3
+ require_relative "fatal_exceptions"
4
4
 
5
5
  module Datadog
6
6
  module DI
@@ -123,6 +123,14 @@ module Datadog
123
123
  @lifecycle_mutex.synchronize do
124
124
  return if @started
125
125
 
126
+ # DI.activate_tracking creates the global code tracker lazily. When DI
127
+ # is enabled after boot via remote configuration (in-product
128
+ # enablement), this component and its instrumenter were built with a
129
+ # nil tracker; adopt the now-current global tracker so line probes
130
+ # can be targeted.
131
+ @code_tracker = DI.code_tracker
132
+ instrumenter.code_tracker = @code_tracker
133
+
126
134
  probe_notifier_worker.start
127
135
  probe_manager.reopen
128
136
  @started = true
@@ -190,14 +198,14 @@ module Datadog
190
198
  Datadog::DI.reraise_if_fatal(exc)
191
199
  begin
192
200
  probe = Struct.new(:id).new(
193
- probe_spec['id'],
201
+ probe_spec["id"],
194
202
  )
195
203
  payload = probe_notification_builder.build_errored(probe, exc)
196
204
  probe_notifier_worker.add_status(payload)
197
205
  rescue Exception => nested_exc # standard:disable Lint/RescueException
198
206
  Datadog::DI.reraise_if_fatal(nested_exc)
199
207
  logger.debug { "di: failed to build error notification: #{nested_exc.class}: #{nested_exc.message}" }
200
- telemetry&.report(nested_exc, description: 'Error building probe error notification')
208
+ telemetry&.report(nested_exc, description: "Error building probe error notification")
201
209
  raise
202
210
  end
203
211
 
@@ -137,7 +137,7 @@ module Datadog
137
137
  option :max_time_to_serialize_ms do |o|
138
138
  o.type :int
139
139
  o.default 200
140
- o.env 'DD_DYNAMIC_INSTRUMENTATION_MAX_TIME_TO_SERIALIZE'
140
+ o.env "DD_DYNAMIC_INSTRUMENTATION_MAX_TIME_TO_SERIALIZE"
141
141
  end
142
142
 
143
143
  # Settings in the 'internal' group are for internal Datadog
@@ -229,7 +229,7 @@ module Datadog
229
229
  # dedicated environment variable in the future but
230
230
  # will likely need a way to turn on remote config
231
231
  # debugging (since DI uses RC for configuration).
232
- o.env 'DD_TRACE_DEBUG'
232
+ o.env "DD_TRACE_DEBUG"
233
233
  end
234
234
 
235
235
  # If the CPU time consumed by the thread performing instrumentation
@@ -6,7 +6,7 @@ module Datadog
6
6
  # Railtie class initializes dynamic instrumentation contrib code
7
7
  # in Rails environments.
8
8
  class Railtie < Rails::Railtie
9
- initializer 'datadog.dynamic_instrumentation.initialize' do |app|
9
+ initializer "datadog.dynamic_instrumentation.initialize" do |app|
10
10
  Contrib.load_now
11
11
  end
12
12
  end
@@ -1,14 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../core/contrib/rails/utils'
3
+ require_relative "../core/contrib/rails/utils"
4
4
 
5
5
  module Datadog
6
6
  module DI
7
7
  module Contrib
8
8
  module_function def load_now_or_later
9
9
  if Datadog::Core::Contrib::Rails::Utils.railtie_supported?
10
- Datadog.logger.debug('di: loading contrib/railtie')
11
- require_relative 'contrib/railtie'
10
+ Datadog.logger.debug("di: loading contrib/railtie")
11
+ require_relative "contrib/railtie"
12
12
  else
13
13
  load_now
14
14
  end
@@ -19,8 +19,8 @@ module Datadog
19
19
  # dependencies are loaded (or potentially loaded).
20
20
  module_function def load_now
21
21
  if defined?(ActiveRecord::Base)
22
- Datadog.logger.debug('di: loading contrib/active_record')
23
- require_relative 'contrib/active_record'
22
+ Datadog.logger.debug("di: loading contrib/active_record")
23
+ require_relative "contrib/active_record"
24
24
  end
25
25
  end
26
26
  end
@@ -24,12 +24,12 @@ module Datadog
24
24
 
25
25
  # Steep: https://github.com/soutaro/steep/issues/363
26
26
  OPERATORS = { # steep:ignore IncompatibleAssignment
27
- 'eq' => '==',
28
- 'ne' => '!=',
29
- 'ge' => '>=',
30
- 'gt' => '>',
31
- 'le' => '<=',
32
- 'lt' => '<',
27
+ "eq" => "==",
28
+ "ne" => "!=",
29
+ "ge" => ">=",
30
+ "gt" => ">",
31
+ "le" => "<=",
32
+ "lt" => "<",
33
33
  }.freeze
34
34
 
35
35
  # Steep: https://github.com/soutaro/steep/issues/363
@@ -45,8 +45,8 @@ module Datadog
45
45
 
46
46
  # Steep: https://github.com/soutaro/steep/issues/363
47
47
  MULTI_ARG_METHODS = { # steep:ignore IncompatibleAssignment
48
- 'and' => '&&',
49
- 'or' => '||',
48
+ "and" => "&&",
49
+ "or" => "||",
50
50
  }.freeze
51
51
 
52
52
  def compile_partial(ast)
@@ -57,29 +57,29 @@ module Datadog
57
57
  end
58
58
  op, target = ast.first
59
59
  case op
60
- when 'ref'
60
+ when "ref"
61
61
  unless String === target
62
62
  raise DI::Error::InvalidExpression, "Bad ref value type: #{target.class}: #{target}"
63
63
  end
64
64
  case target
65
- when '@it'
66
- 'current_item'
67
- when '@key'
68
- 'current_key'
69
- when '@value'
70
- 'current_value'
71
- when '@return'
65
+ when "@it"
66
+ "current_item"
67
+ when "@key"
68
+ "current_key"
69
+ when "@value"
70
+ "current_value"
71
+ when "@return"
72
72
  # For @return, @duration and @exception we shadow
73
73
  # instance variables.
74
74
  "context.return_value"
75
- when '@duration'
75
+ when "@duration"
76
76
  # There is no way to explicitly format the duration.
77
77
  # TODO come up with better formatting?
78
78
  # We could format to a string here but what if customer
79
79
  # has @duration as part of an expression and wants
80
80
  # to retain it as a number?
81
81
  "(context.duration && context.duration * 1000)"
82
- when '@exception'
82
+ when "@exception"
83
83
  "context.exception"
84
84
  else
85
85
  # Ruby technically allows all kinds of symbols in variable
@@ -89,7 +89,7 @@ module Datadog
89
89
  unless target =~ %r{\A(@?)([a-zA-Z0-9_]+)\z}
90
90
  raise DI::Error::BadVariableName, "Bad variable name: #{target}"
91
91
  end
92
- method_name = (($1 == '@') ? 'iref' : 'ref')
92
+ method_name = (($1 == "@") ? "iref" : "ref")
93
93
  "#{method_name}('#{target}')"
94
94
  end
95
95
  when *SINGLE_ARG_METHODS
@@ -111,12 +111,12 @@ module Datadog
111
111
  end
112
112
  compiled_op = MULTI_ARG_METHODS[op]
113
113
  "(#{compiled_targets.join(" #{compiled_op} ")})"
114
- when 'substring'
114
+ when "substring"
115
115
  unless Array === target && target.length == 3
116
116
  raise DI::Error::InvalidExpression, "Improper #{op} syntax"
117
117
  end
118
118
  "#{op}(#{target.map { |arg| "(#{compile_partial(arg)})" }.join(", ")})"
119
- when 'not'
119
+ when "not"
120
120
  "!(#{compile_partial(target)})"
121
121
  when *OPERATORS.keys
122
122
  unless Array === target && target.length == 2
@@ -125,7 +125,7 @@ module Datadog
125
125
  first, second = target
126
126
  operator = OPERATORS.fetch(op)
127
127
  "(#{compile_partial(first)}) #{operator} (#{compile_partial(second)})"
128
- when 'any', 'all', 'filter'
128
+ when "any", "all", "filter"
129
129
  "#{op}(#{compile_partial(target.first)}) { |current_item, current_key, current_value| #{compile_partial(target.last)} }"
130
130
  else
131
131
  raise DI::Error::InvalidExpression, "Unknown operation: #{op}"
@@ -151,16 +151,16 @@ module Datadog
151
151
  # WARNING: the result of this method is included in eval'd code,
152
152
  # it must be sanitized to avoid injection.
153
153
  def var_name_maybe(target)
154
- if Hash === target && target.length == 1 && target.keys.first == 'ref' &&
154
+ if Hash === target && target.length == 1 && target.keys.first == "ref" &&
155
155
  String === (value = target.values.first)
156
156
  escape(value)
157
157
  else
158
- '(expression)'
158
+ "(expression)"
159
159
  end
160
160
  end
161
161
 
162
162
  def escape(needle)
163
- needle.gsub("\\") { "\\\\" }.gsub('"') { "\\\"" }.gsub('#') { "\\#" }
163
+ needle.gsub("\\") { "\\\\" }.gsub('"') { "\\\"" }.gsub("#") { "\\#" }
164
164
  end
165
165
  end
166
166
  end
data/lib/datadog/di/el.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'el/expression'
4
- require_relative 'el/compiler'
5
- require_relative 'el/evaluator'
3
+ require_relative "el/expression"
4
+ require_relative "el/compiler"
5
+ require_relative "el/evaluator"
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../core/utils/time'
4
- require_relative '../ruby_version'
5
- require_relative 'fatal_exceptions'
6
- require_relative 'capture_expression_evaluator'
3
+ require_relative "../core/utils/time"
4
+ require_relative "../ruby_version"
5
+ require_relative "fatal_exceptions"
6
+ require_relative "capture_expression_evaluator"
7
7
 
8
8
  # rubocop:disable Lint/AssignmentInCondition
9
9
  # rubocop:disable Style/AndOr
@@ -85,6 +85,12 @@ module Datadog
85
85
  attr_reader :telemetry
86
86
  attr_reader :code_tracker
87
87
 
88
+ # The code tracker is a global singleton created lazily by
89
+ # DI.activate_tracking. When DI is enabled after boot via remote
90
+ # configuration this instrumenter was already built with a nil tracker;
91
+ # Component#start! assigns the now-current tracker here.
92
+ attr_writer :code_tracker
93
+
88
94
  def capture_expression_evaluator
89
95
  @capture_expression_evaluator ||= CaptureExpressionEvaluator.new(
90
96
  settings: settings, serializer: serializer, logger: logger, telemetry: telemetry,
@@ -186,7 +192,7 @@ module Datadog
186
192
  # invokes it with yield, which does not dispatch Proc#call, so a
187
193
  # user probe on Proc#call cannot intercept the trampoline, and no
188
194
  # Proc is allocated for the block.
189
- if RubyVersion.is?('>= 3')
195
+ if RubyVersion.is?(">= 3")
190
196
  define_method(method_name) do |*args, **kwargs, &target_block| # steep:ignore NoMethod
191
197
  # steep:ignore FallbackAny below: Steep cannot narrow the
192
198
  # **kwargs parameter inside this define_method block, so it
@@ -694,7 +700,7 @@ module Datadog
694
700
  #
695
701
  # Defined only on Ruby < 3; the Ruby 3+ wrapper captures keyword
696
702
  # arguments directly and never calls this.
697
- if RubyVersion.is?('< 3')
703
+ if RubyVersion.is?("< 3")
698
704
  def kwargs_from_splat(args)
699
705
  last = args.last
700
706
  if DI.hash?(last)
@@ -860,8 +866,8 @@ module Datadog
860
866
  Utils.path_matches_suffix?(path, working_suffix, case_insensitive: case_insensitive)
861
867
  end
862
868
  break if found
863
- break unless working_suffix.include?('/')
864
- working_suffix.sub!(%r{.*/+}, '')
869
+ break unless working_suffix.include?("/")
870
+ working_suffix.sub!(%r{.*/+}, "")
865
871
  end
866
872
  break if found
867
873
  end
@@ -875,7 +881,11 @@ module Datadog
875
881
  has_per_method = code_tracker&.send(:instance_variable_defined?, :@per_method_registry) &&
876
882
  code_tracker.send(:per_method_registry).key?(loaded_path)
877
883
 
878
- if has_per_method
884
+ if code_tracker.nil?
885
+ raise Error::DITargetNotInRegistry,
886
+ "File #{loaded_path} is loaded but code tracking is not active; " \
887
+ "line probes cannot be targeted."
888
+ elsif has_per_method
879
889
  raise Error::DITargetNotInRegistry,
880
890
  "File #{loaded_path} is loaded and has per-method iseqs, " \
881
891
  "but none cover line #{line_no}. " \
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'forwardable'
3
+ require "forwardable"
4
4
 
5
5
  module Datadog
6
6
  module DI
@@ -4,7 +4,7 @@
4
4
  # enable dynamic instrumentation for third-party libraries used by the
5
5
  # application.
6
6
 
7
- require_relative 'base'
7
+ require_relative "base"
8
8
 
9
9
  # Code tracking is required for line probes to work; see the comments
10
10
  # on the activate_tracking methods in di.rb for further details.
@@ -5,7 +5,7 @@
5
5
  require_relative "probe"
6
6
  require_relative "capture_expression"
7
7
  require_relative "capture_limits"
8
- require_relative 'el'
8
+ require_relative "el"
9
9
 
10
10
  module Datadog
11
11
  module DI
@@ -24,7 +24,7 @@ module Datadog
24
24
  module ProbeBuilder
25
25
  # Steep: https://github.com/soutaro/steep/issues/363
26
26
  PROBE_TYPES = { # steep:ignore IncompatibleAssignment
27
- 'LOG_PROBE' => :log,
27
+ "LOG_PROBE" => :log,
28
28
  }.freeze
29
29
 
30
30
  module_function
@@ -39,16 +39,16 @@ module Datadog
39
39
 
40
40
  def build_from_remote_config(config, logger:)
41
41
  # The validations here are not yet comprehensive.
42
- type = config.fetch('type')
42
+ type = config.fetch("type")
43
43
  type_symbol = PROBE_TYPES[type] or raise ArgumentError, "Unrecognized probe type: #{type}"
44
- cond = if cond_spec = config['when']
45
- unless cond_spec['dsl'] && cond_spec['json']
44
+ cond = if cond_spec = config["when"]
45
+ unless cond_spec["dsl"] && cond_spec["json"]
46
46
  raise ArgumentError, "Malformed condition specification for probe: #{config}"
47
47
  end
48
- compiled = EL::Compiler.new.compile(cond_spec['json'])
49
- EL::Expression.new(cond_spec['dsl'], compiled)
48
+ compiled = EL::Compiler.new.compile(cond_spec["json"])
49
+ EL::Expression.new(cond_spec["dsl"], compiled)
50
50
  end
51
- capture_expressions = build_capture_expressions(config['captureExpressions'])
51
+ capture_expressions = build_capture_expressions(config["captureExpressions"])
52
52
  capture_expressions = dedup_capture_expressions(capture_expressions, config["id"], logger)
53
53
  if !!config["captureSnapshot"] && !capture_expressions.empty?
54
54
  logger.debug do
@@ -67,7 +67,7 @@ module Datadog
67
67
  # We should not be using the template for anything - we instead
68
68
  # use +segments+ - but keep the template for debugging.
69
69
  template: config["template"],
70
- template_segments: build_template_segments(config['segments']),
70
+ template_segments: build_template_segments(config["segments"]),
71
71
  capture_snapshot: !!config["captureSnapshot"],
72
72
  max_capture_depth: config["capture"]&.[]("maxReferenceDepth"),
73
73
  max_capture_attribute_count: config["capture"]&.[]("maxFieldCount"),
@@ -92,17 +92,17 @@ module Datadog
92
92
  unless Hash === entry
93
93
  raise ArgumentError, "captureExpressions entry must be a hash, got: #{entry.class}"
94
94
  end
95
- name = entry['name']
95
+ name = entry["name"]
96
96
  unless String === name && CAPTURE_EXPRESSION_NAME_PATTERN.match?(name)
97
97
  raise ArgumentError, "captureExpressions entry name missing or invalid (must match #{CAPTURE_EXPRESSION_NAME_PATTERN.inspect}): #{name.inspect}"
98
98
  end
99
- expr_spec = entry['expr']
100
- unless Hash === expr_spec && expr_spec['dsl'] && expr_spec['json']
99
+ expr_spec = entry["expr"]
100
+ unless Hash === expr_spec && expr_spec["dsl"] && expr_spec["json"]
101
101
  raise ArgumentError, "captureExpressions entry #{name}: missing or malformed expr"
102
102
  end
103
- compiled = EL::Compiler.new.compile(expr_spec['json'])
104
- expr = EL::Expression.new(expr_spec['dsl'], compiled)
105
- limits = build_capture_limits(entry['capture'])
103
+ compiled = EL::Compiler.new.compile(expr_spec["json"])
104
+ expr = EL::Expression.new(expr_spec["dsl"], compiled)
105
+ limits = build_capture_limits(entry["capture"])
106
106
  CaptureExpression.new(name: name, expr: expr, limits: limits)
107
107
  end
108
108
  end
@@ -126,10 +126,10 @@ module Datadog
126
126
  raise ArgumentError, "capture-expression entry capture must be a hash, got: #{raw.class}"
127
127
  end
128
128
  CaptureLimits.new(
129
- max_reference_depth: raw['maxReferenceDepth'],
130
- max_collection_size: raw['maxCollectionSize'],
131
- max_length: raw['maxLength'],
132
- max_field_count: raw['maxFieldCount'],
129
+ max_reference_depth: raw["maxReferenceDepth"],
130
+ max_collection_size: raw["maxCollectionSize"],
131
+ max_length: raw["maxLength"],
132
+ max_field_count: raw["maxFieldCount"],
133
133
  )
134
134
  end
135
135
 
@@ -146,10 +146,10 @@ module Datadog
146
146
  def build_template_segments(segments)
147
147
  segments&.map do |segment|
148
148
  if Hash === segment
149
- if str = segment['str']
149
+ if str = segment["str"]
150
150
  str
151
- elsif ast = segment['json']
152
- unless dsl = segment['dsl']
151
+ elsif ast = segment["json"]
152
+ unless dsl = segment["dsl"]
153
153
  raise ArgumentError, "Missing dsl for json in segment: #{segment}"
154
154
  end
155
155
  compiled = EL::Compiler.new.compile(ast)
@@ -6,7 +6,7 @@ module Datadog
6
6
  # Railtie class initializes dynamic instrumentation contrib code
7
7
  # in Rails environments.
8
8
  class Railtie < Rails::Railtie
9
- initializer 'datadog.dynamic_instrumentation.load_probe_file' do |app|
9
+ initializer "datadog.dynamic_instrumentation.load_probe_file" do |app|
10
10
  ProbeFileLoader.load_now
11
11
  end
12
12
  end
@@ -1,16 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'json'
3
+ require "json"
4
4
 
5
- require_relative 'fatal_exceptions'
5
+ require_relative "fatal_exceptions"
6
6
 
7
7
  module Datadog
8
8
  module DI
9
9
  module ProbeFileLoader
10
10
  module_function def load_now_or_later
11
11
  if Datadog::Core::Contrib::Rails::Utils.railtie_supported?
12
- Datadog.logger.debug('di: loading probe_file_loader/railtie')
13
- require_relative 'probe_file_loader/railtie'
12
+ Datadog.logger.debug("di: loading probe_file_loader/railtie")
13
+ require_relative "probe_file_loader/railtie"
14
14
  else
15
15
  load_now
16
16
  end
@@ -22,7 +22,7 @@ module Datadog
22
22
  module_function def load_now
23
23
  should_propagate = false
24
24
 
25
- probe_file_path = DATADOG_ENV['DD_DYNAMIC_INSTRUMENTATION_PROBE_FILE']
25
+ probe_file_path = DATADOG_ENV["DD_DYNAMIC_INSTRUMENTATION_PROBE_FILE"]
26
26
  if probe_file_path.nil? || probe_file_path.empty?
27
27
  return
28
28
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  # rubocop:disable Lint/AssignmentInCondition
4
4
 
5
- require_relative 'fatal_exceptions'
5
+ require_relative "fatal_exceptions"
6
6
 
7
7
  module Datadog
8
8
  module DI