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_relative 'scope'
4
- require_relative 'symbol'
5
- require_relative 'file_hash'
6
- require_relative '../core/utils/enumerable_compat'
7
- require_relative '../di/fatal_exceptions'
3
+ require_relative "scope"
4
+ require_relative "symbol"
5
+ require_relative "file_hash"
6
+ require_relative "../core/utils/enumerable_compat"
7
+ require_relative "../di/fatal_exceptions"
8
8
 
9
9
  module Datadog
10
10
  module SymbolDatabase
@@ -68,7 +68,7 @@ module Datadog
68
68
  # PostgreSQL signed INT_MAX (2^31 - 1). Means "entire file" or "unknown end."
69
69
  UNKNOWN_MAX_LINE = 2147483647
70
70
 
71
- EXCLUDED_COMMON_MODULES = ['Kernel', 'PP::', 'JSON::', 'Enumerable', 'Comparable'].freeze
71
+ EXCLUDED_COMMON_MODULES = ["Kernel", "PP::", "JSON::", "Enumerable", "Comparable"].freeze
72
72
 
73
73
  # RubyVM::InstructionSequence#trace_points event types included when
74
74
  # computing targetable lines on METHOD scopes.
@@ -148,7 +148,7 @@ module Datadog
148
148
  wrap_in_file_scope(source_file, [inner_scope])
149
149
  rescue Exception => e # standard:disable Lint/RescueException
150
150
  Datadog::DI.reraise_if_fatal(e)
151
- @logger.debug { "symdb: failed to extract #{mod_name || '<unknown>'}: #{e.class}: #{e.message}" }
151
+ @logger.debug { "symdb: failed to extract #{mod_name || "<unknown>"}: #{e.class}: #{e.message}" }
152
152
  nil
153
153
  end
154
154
 
@@ -261,7 +261,7 @@ module Datadog
261
261
  # @return [Boolean]
262
262
  def resolves_to_same_module?(mod_name, mod)
263
263
  current = Object
264
- mod_name.split('::').each do |seg|
264
+ mod_name.split("::").each do |seg|
265
265
  sym = seg.to_sym
266
266
  return false if MODULE_AUTOLOAD_P.bind(current).call(sym, false)
267
267
  return false unless MODULE_CONST_DEFINED.bind(current).call(sym, false)
@@ -287,7 +287,7 @@ module Datadog
287
287
  # Matches Python: packages.is_user_code() excludes ddtrace.*
288
288
  # Note: bare 'Datadog' must be checked separately — start_with?('Datadog::')
289
289
  # doesn't match the root module itself.
290
- return false if mod_name == 'Datadog' || mod_name.start_with?('Datadog::')
290
+ return false if mod_name == "Datadog" || mod_name.start_with?("Datadog::")
291
291
 
292
292
  # Exclude Ruby root classes. These are never user code, but
293
293
  # find_source_file can return a user-code path for them via
@@ -309,24 +309,24 @@ module Datadog
309
309
  def user_code_path?(path)
310
310
  # Only absolute paths are real source files. Pseudo-paths like '<main>',
311
311
  # '<internal:...>', '(eval)' are not user code.
312
- return false unless path.start_with?('/')
312
+ return false unless path.start_with?("/")
313
313
  # Only .rb files are Ruby source. Excludes the Ruby binary
314
314
  # (/usr/local/bin/ruby), C extensions (.so/.bundle), and other
315
315
  # non-source files that appear in method source_location.
316
- return false unless path.end_with?('.rb')
316
+ return false unless path.end_with?(".rb")
317
317
  # Exclude gem paths
318
- return false if path.include?('/gems/')
318
+ return false if path.include?("/gems/")
319
319
  # Exclude Ruby stdlib
320
- return false if path.include?('/ruby/')
321
- return false if path.start_with?('<internal:')
322
- return false if path.include?('(eval)')
320
+ return false if path.include?("/ruby/")
321
+ return false if path.start_with?("<internal:")
322
+ return false if path.include?("(eval)")
323
323
  # Exclude test code (not application code)
324
- return false if path.include?('/spec/')
325
- return false if path.include?('/test/')
324
+ return false if path.include?("/spec/")
325
+ return false if path.include?("/test/")
326
326
  # Exclude Datadog's own library code (e.g., monkey-patched methods from tracing contrib).
327
327
  # Without this, stdlib classes like Net::HTTP appear as user code when dd-trace-rb
328
328
  # instruments them, because the patched method source points to lib/datadog/tracing/contrib/.
329
- return false if path.include?('/lib/datadog/')
329
+ return false if path.include?("/lib/datadog/")
330
330
 
331
331
  true
332
332
  end
@@ -379,11 +379,11 @@ module Datadog
379
379
  mod_name = safe_mod_name(mod)
380
380
  if mod_name
381
381
  # Look up the class/module by its last name component in its enclosing namespace.
382
- parts = mod_name.split('::')
382
+ parts = mod_name.split("::")
383
383
  const_name = parts.last
384
384
  namespace = if parts.length > 1
385
385
  begin
386
- MODULE_CONST_GET.bind(Object).call(parts[0..-2].join('::')) # steep:ignore
386
+ MODULE_CONST_GET.bind(Object).call(parts[0..-2].join("::")) # steep:ignore
387
387
  rescue NameError
388
388
  nil
389
389
  end
@@ -430,7 +430,7 @@ module Datadog
430
430
  fallback
431
431
  rescue Exception => e # standard:disable Lint/RescueException
432
432
  Datadog::DI.reraise_if_fatal(e)
433
- @logger.debug { "symdb: error finding source file for #{safe_mod_name(mod) || '<unknown>'}: #{e.class}: #{e.message}" }
433
+ @logger.debug { "symdb: error finding source file for #{safe_mod_name(mod) || "<unknown>"}: #{e.class}: #{e.message}" }
434
434
  nil
435
435
  end
436
436
 
@@ -447,7 +447,7 @@ module Datadog
447
447
  lang[:file_hash] = file_hash if file_hash
448
448
 
449
449
  Scope.new(
450
- scope_type: 'FILE',
450
+ scope_type: "FILE",
451
451
  name: file_path,
452
452
  source_file: file_path,
453
453
  start_line: UNKNOWN_MIN_LINE,
@@ -465,7 +465,7 @@ module Datadog
465
465
  source_file = find_source_file(mod)
466
466
 
467
467
  Scope.new(
468
- scope_type: 'MODULE',
468
+ scope_type: "MODULE",
469
469
  name: safe_mod_name(mod),
470
470
  source_file: source_file,
471
471
  start_line: UNKNOWN_MIN_LINE,
@@ -483,7 +483,7 @@ module Datadog
483
483
  source_file = find_source_file(klass)
484
484
 
485
485
  Scope.new(
486
- scope_type: 'CLASS',
486
+ scope_type: "CLASS",
487
487
  name: safe_mod_name(klass),
488
488
  source_file: source_file,
489
489
  start_line: start_line,
@@ -607,7 +607,7 @@ module Datadog
607
607
  targetable_lines, end_line = extract_targetable_lines(method, line)
608
608
 
609
609
  Scope.new(
610
- scope_type: 'METHOD',
610
+ scope_type: "METHOD",
611
611
  name: method_name.to_s,
612
612
  source_file: source_file,
613
613
  start_line: line,
@@ -632,11 +632,11 @@ module Datadog
632
632
  # @return [String] 'public', 'private', or 'protected'
633
633
  def method_visibility(klass, method_name)
634
634
  if klass.private_instance_methods(false).include?(method_name)
635
- 'private'
635
+ "private"
636
636
  elsif klass.protected_instance_methods(false).include?(method_name)
637
- 'protected'
637
+ "protected"
638
638
  else
639
- 'public'
639
+ "public"
640
640
  end
641
641
  end
642
642
 
@@ -662,7 +662,7 @@ module Datadog
662
662
  end_line = lines.max || start_line
663
663
  ranges = build_targetable_ranges(lines)
664
664
  result = ranges.empty? ? nil : ranges
665
- @logger.debug { "symdb: #{method.name} targetable lines: #{result ? "#{ranges.size} range(s), lines #{lines.first}..#{lines.last}" : 'none (no matching events)'}" }
665
+ @logger.debug { "symdb: #{method.name} targetable lines: #{result ? "#{ranges.size} range(s), lines #{lines.first}..#{lines.last}" : "none (no matching events)"}" }
666
666
  [result, end_line]
667
667
  end
668
668
 
@@ -702,7 +702,7 @@ module Datadog
702
702
  rescue Exception => e # standard:disable Lint/RescueException
703
703
  Datadog::DI.reraise_if_fatal(e)
704
704
  @logger.debug { "symdb: method.name failed: #{e.class}: #{e.message}" }
705
- 'unknown'
705
+ "unknown"
706
706
  end
707
707
  params = method.parameters
708
708
 
@@ -717,7 +717,7 @@ module Datadog
717
717
  next if param_name.nil?
718
718
 
719
719
  Symbol.new(
720
- symbol_type: 'ARG',
720
+ symbol_type: "ARG",
721
721
  name: param_name.to_s,
722
722
  line: UNKNOWN_MIN_LINE, # Parameters available in entire method
723
723
  )
@@ -790,7 +790,7 @@ module Datadog
790
790
  end
791
791
  rescue Exception => e # standard:disable Lint/RescueException
792
792
  Datadog::DI.reraise_if_fatal(e)
793
- @logger.debug { "symdb: error indexing #{mod_name || '<unknown>'}: #{e.class}: #{e.message}" }
793
+ @logger.debug { "symdb: error indexing #{mod_name || "<unknown>"}: #{e.class}: #{e.message}" }
794
794
  end
795
795
 
796
796
  index
@@ -840,12 +840,12 @@ module Datadog
840
840
  return nil if entries.empty?
841
841
 
842
842
  root = {
843
- name: file_path, type: 'FILE', children: {},
843
+ name: file_path, type: "FILE", children: {},
844
844
  methods: [], mod: nil, source_file: file_path, fqn: nil,
845
845
  }
846
846
 
847
847
  # Sort by FQN depth so parent namespaces are placed before children.
848
- sorted = entries.sort_by { |(mod_name, _, _)| mod_name.count(':') }
848
+ sorted = entries.sort_by { |(mod_name, _, _)| mod_name.count(":") }
849
849
 
850
850
  sorted.each do |mod_name, mod, method_names|
851
851
  # Resolve UnboundMethods for this (mod, file) just-in-time. These objects
@@ -875,7 +875,7 @@ module Datadog
875
875
  # the module no longer lives in.
876
876
  next if method_names.any? && method_infos.empty?
877
877
 
878
- parts = mod_name.split('::')
878
+ parts = mod_name.split("::")
879
879
  place_in_tree(root, parts, mod, mod_name, method_infos, file_path)
880
880
  rescue Exception => e # standard:disable Lint/RescueException
881
881
  Datadog::DI.reraise_if_fatal(e)
@@ -901,7 +901,7 @@ module Datadog
901
901
 
902
902
  # Create/find intermediate nodes for each namespace segment except the last
903
903
  name_parts[0..-2].each_with_index do |part, idx| # steep:ignore
904
- fqn = name_parts[0..idx].join('::') # steep:ignore
904
+ fqn = name_parts[0..idx].join("::") # steep:ignore
905
905
  current[:children][part] ||= {
906
906
  name: fqn, type: resolve_scope_type(fqn),
907
907
  children: {}, methods: [], mod: nil,
@@ -916,12 +916,12 @@ module Datadog
916
916
  if leaf
917
917
  # Node exists (was created as intermediate or from another entry).
918
918
  # Update type and mod — the actual module object is authoritative.
919
- leaf[:type] = (Class === mod) ? 'CLASS' : 'MODULE'
919
+ leaf[:type] = (Class === mod) ? "CLASS" : "MODULE"
920
920
  leaf[:mod] = mod
921
921
  else
922
922
  leaf = {
923
923
  name: mod_name,
924
- type: (Class === mod) ? 'CLASS' : 'MODULE',
924
+ type: (Class === mod) ? "CLASS" : "MODULE",
925
925
  children: {}, methods: [],
926
926
  mod: mod, source_file: file_path,
927
927
  fqn: mod_name
@@ -939,22 +939,22 @@ module Datadog
939
939
  # @return [String] 'CLASS' or 'MODULE'
940
940
  def resolve_scope_type(fqn)
941
941
  current = Object
942
- fqn.split('::').each do |seg|
942
+ fqn.split("::").each do |seg|
943
943
  sym = seg.to_sym
944
- pending_autoload = if RubyVersion.is?('>= 2.7')
944
+ pending_autoload = if RubyVersion.is?(">= 2.7")
945
945
  MODULE_AUTOLOAD_P.bind(current).call(sym, false)
946
946
  else
947
947
  MODULE_AUTOLOAD_P.bind(current).call(sym)
948
948
  end
949
- return 'MODULE' if pending_autoload
950
- return 'MODULE' unless MODULE_CONST_DEFINED.bind(current).call(sym, false)
949
+ return "MODULE" if pending_autoload
950
+ return "MODULE" unless MODULE_CONST_DEFINED.bind(current).call(sym, false)
951
951
  current = MODULE_CONST_GET.bind(current).call(sym, false)
952
952
  end
953
- (Class === current) ? 'CLASS' : 'MODULE'
953
+ (Class === current) ? "CLASS" : "MODULE"
954
954
  rescue Exception => e # standard:disable Lint/RescueException
955
955
  Datadog::DI.reraise_if_fatal(e)
956
956
  @logger.debug { "symdb: resolve_scope_type(#{fqn}) failed: #{e.class}: #{e.message}, defaulting to MODULE" }
957
- 'MODULE'
957
+ "MODULE"
958
958
  end
959
959
 
960
960
  # Convert a single file tree (built by build_file_scope) to a FILE Scope.
@@ -967,7 +967,7 @@ module Datadog
967
967
  lang[:file_hash] = file_hash if file_hash
968
968
 
969
969
  Scope.new(
970
- scope_type: 'FILE',
970
+ scope_type: "FILE",
971
971
  name: file_path,
972
972
  source_file: file_path,
973
973
  start_line: UNKNOWN_MIN_LINE,
@@ -1001,7 +1001,7 @@ module Datadog
1001
1001
  symbols = node[:mod] ? extract_scope_symbols(node[:mod]) : []
1002
1002
 
1003
1003
  # Build language specifics
1004
- lang = if node[:type] == 'CLASS' && node[:mod]
1004
+ lang = if node[:type] == "CLASS" && node[:mod]
1005
1005
  build_class_language_specifics(node[:mod])
1006
1006
  else
1007
1007
  {}
@@ -1034,22 +1034,22 @@ module Datadog
1034
1034
  targetable_lines, end_line = extract_targetable_lines(method, line)
1035
1035
 
1036
1036
  Scope.new(
1037
- scope_type: 'METHOD',
1037
+ scope_type: "METHOD",
1038
1038
  name: method_name.to_s,
1039
1039
  source_file: source_file,
1040
1040
  start_line: line,
1041
1041
  end_line: end_line,
1042
1042
  targetable_lines: targetable_lines,
1043
1043
  language_specifics: {
1044
- visibility: klass ? method_visibility(klass, method_name) : 'public', # steep:ignore
1045
- method_type: 'instance',
1044
+ visibility: klass ? method_visibility(klass, method_name) : "public", # steep:ignore
1045
+ method_type: "instance",
1046
1046
  arity: method.arity
1047
1047
  },
1048
1048
  symbols: extract_method_parameters(method)
1049
1049
  )
1050
1050
  rescue Exception => e # standard:disable Lint/RescueException
1051
1051
  Datadog::DI.reraise_if_fatal(e)
1052
- klass_name = klass ? (safe_mod_name(klass) || '<unknown>') : '<unknown>'
1052
+ klass_name = klass ? (safe_mod_name(klass) || "<unknown>") : "<unknown>"
1053
1053
  @logger.debug { "symdb: failed to build method scope #{klass_name}##{method_name}: #{e.class}: #{e.message}" }
1054
1054
  nil
1055
1055
  end
@@ -1065,7 +1065,7 @@ module Datadog
1065
1065
  if Class === mod
1066
1066
  MODULE_CLASS_VARIABLES.bind(mod).call(false).each do |var_name|
1067
1067
  symbols << Symbol.new(
1068
- symbol_type: 'STATIC_FIELD',
1068
+ symbol_type: "STATIC_FIELD",
1069
1069
  name: var_name.to_s,
1070
1070
  line: UNKNOWN_MIN_LINE
1071
1071
  )
@@ -1080,7 +1080,7 @@ module Datadog
1080
1080
  next if Module === const_value
1081
1081
 
1082
1082
  symbols << Symbol.new(
1083
- symbol_type: 'STATIC_FIELD',
1083
+ symbol_type: "STATIC_FIELD",
1084
1084
  name: const_name.to_s,
1085
1085
  line: UNKNOWN_MIN_LINE,
1086
1086
  type: safe_mod_name(KERNEL_CLASS.bind(const_value).call)
@@ -1101,7 +1101,7 @@ module Datadog
1101
1101
  symbols
1102
1102
  rescue Exception => e # standard:disable Lint/RescueException
1103
1103
  Datadog::DI.reraise_if_fatal(e)
1104
- mod_name = safe_mod_name(mod) || '<unknown>'
1104
+ mod_name = safe_mod_name(mod) || "<unknown>"
1105
1105
  @logger.debug { "symdb: failed to extract symbols from #{mod_name}: #{e.class}: #{e.message}" }
1106
1106
  []
1107
1107
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'digest/sha1'
4
- require_relative '../di/fatal_exceptions'
3
+ require "digest/sha1"
4
+ require_relative "../di/fatal_exceptions"
5
5
 
6
6
  module Datadog
7
7
  module SymbolDatabase
@@ -30,7 +30,7 @@ module Datadog
30
30
  return nil unless file_path
31
31
  return nil unless File.exist?(file_path)
32
32
 
33
- content = File.read(file_path, mode: 'rb')
33
+ content = File.read(file_path, mode: "rb")
34
34
  size = content.bytesize
35
35
  git_blob = "blob #{size}\0#{content}"
36
36
 
@@ -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 SymbolDatabase
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../di/fatal_exceptions'
3
+ require_relative "../di/fatal_exceptions"
4
4
 
5
5
  module Datadog
6
6
  module SymbolDatabase
@@ -24,7 +24,7 @@ module Datadog
24
24
  #
25
25
  # @api private
26
26
  module Remote
27
- PRODUCT = 'LIVE_DEBUGGING_SYMBOL_DB'
27
+ PRODUCT = "LIVE_DEBUGGING_SYMBOL_DB"
28
28
 
29
29
  class << self
30
30
  # Declare products this receiver handles.
@@ -39,6 +39,21 @@ module Datadog
39
39
  []
40
40
  end
41
41
 
42
+ # Symbol Database follows DI when its enabled setting is nil — the
43
+ # default, or an explicit c.symbol_database.enabled = nil. In that
44
+ # follow-DI case the product is deferred and added/removed alongside DI
45
+ # so it is never advertised while DI is inactive. An explicit true/false
46
+ # is independent and manages its own product at startup.
47
+ def deferred_products(settings)
48
+ if settings.respond_to?(:symbol_database) &&
49
+ settings.symbol_database.enabled.nil? &&
50
+ Datadog::SymbolDatabase.supported_runtime?
51
+ [PRODUCT]
52
+ else
53
+ []
54
+ end
55
+ end
56
+
42
57
  # Create receivers for remote configuration.
43
58
  # @return [Array<Receiver>] Array of receivers
44
59
  def receivers(_telemetry)
@@ -49,7 +64,7 @@ module Datadog
49
64
  rescue Exception => e # standard:disable Lint/RescueException
50
65
  Datadog::DI.reraise_if_fatal(e)
51
66
  Datadog.logger.debug { "symdb: failed to look up component in RC receiver: #{e.class}: #{e.message}" }
52
- telemetry&.report(e, description: 'symdb: failed to look up component in RC receiver')
67
+ telemetry&.report(e, description: "symdb: failed to look up component in RC receiver")
53
68
  nil
54
69
  end
55
70
 
@@ -114,7 +129,7 @@ module Datadog
114
129
  rescue Exception => e # standard:disable Lint/RescueException
115
130
  Datadog::DI.reraise_if_fatal(e)
116
131
  component.logger.debug { "symdb: error processing remote config change: #{e.class}: #{e.message}" }
117
- telemetry&.report(e, description: 'symdb: error processing remote config change')
132
+ telemetry&.report(e, description: "symdb: error processing remote config change")
118
133
  # Rescue runs regardless of which branch raised — Steep cannot narrow the
119
134
  # union type from a respond_to? check.
120
135
  content_obj = change.respond_to?(:content) ? change.content : change.previous # steep:ignore NoMethod
@@ -133,7 +148,7 @@ module Datadog
133
148
  return
134
149
  end
135
150
 
136
- if config['upload_symbols']
151
+ if config["upload_symbols"]
137
152
  component.logger.debug { "symdb: upload enabled via remote config" }
138
153
  component.start_upload
139
154
  else
@@ -167,7 +182,7 @@ module Datadog
167
182
  return nil
168
183
  end
169
184
 
170
- unless config.key?('upload_symbols')
185
+ unless config.key?("upload_symbols")
171
186
  logger.debug { "symdb: missing 'upload_symbols' key in config" }
172
187
  return nil
173
188
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'json'
3
+ require "json"
4
4
 
5
5
  module Datadog
6
6
  module SymbolDatabase
@@ -85,7 +85,7 @@ module Datadog
85
85
  # Always emit has_injectible_lines (even when false) on METHOD scopes.
86
86
  # Wire format keeps the historical spelling +injectible+; Ruby identifier
87
87
  # is +targetable_lines+.
88
- if scope_type == 'METHOD'
88
+ if scope_type == "METHOD"
89
89
  h[:has_injectible_lines] = targetable_lines? # steep:ignore ArgumentTypeMismatch
90
90
  h[:injectible_lines] = targetable_lines if targetable_lines && !targetable_lines.empty?
91
91
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'set'
4
- require_relative '../di/fatal_exceptions'
3
+ require "set"
4
+ require_relative "../di/fatal_exceptions"
5
5
 
6
6
  module Datadog
7
7
  module SymbolDatabase
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'json'
3
+ require "json"
4
4
 
5
5
  module Datadog
6
6
  module SymbolDatabase
@@ -28,13 +28,13 @@ module Datadog
28
28
  # @param final [Boolean, nil] true if this is the last batch of the upload
29
29
  # @raise [ArgumentError] if service empty or scopes not an array
30
30
  def initialize(service:, env:, version:, scopes:, upload_id: nil, batch_num: nil, final: nil)
31
- raise ArgumentError, 'service is required' if service.nil? || service.empty?
32
- raise ArgumentError, 'scopes must be an array' unless scopes.is_a?(Array)
31
+ raise ArgumentError, "service is required" if service.nil? || service.empty?
32
+ raise ArgumentError, "scopes must be an array" unless scopes.is_a?(Array)
33
33
 
34
34
  @service = service
35
35
  @env = env
36
36
  @version = version
37
- @language = 'ruby'
37
+ @language = "ruby"
38
38
  @scopes = scopes
39
39
  @upload_id = upload_id
40
40
  @batch_num = batch_num
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'json'
3
+ require "json"
4
4
 
5
5
  module Datadog
6
6
  module SymbolDatabase
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../../../core/transport/http/api/endpoint'
3
+ require_relative "../../../core/transport/http/api/endpoint"
4
4
 
5
5
  module Datadog
6
6
  module SymbolDatabase
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../../core/encoding'
4
- require_relative '../../core/transport/http'
5
- require_relative 'http/endpoint'
6
- require_relative '../transport'
3
+ require_relative "../../core/encoding"
4
+ require_relative "../../core/transport/http"
5
+ require_relative "http/endpoint"
6
+ require_relative "../transport"
7
7
 
8
8
  module Datadog
9
9
  module SymbolDatabase
@@ -14,7 +14,7 @@ module Datadog
14
14
  # Multipart form-data is dispatched via `env.form` from the
15
15
  # `Symbols::Client` subclass.
16
16
  SYMBOLS_ENDPOINT = API::Endpoint.new(
17
- '/symdb/v1/input',
17
+ "/symdb/v1/input",
18
18
  Datadog::Core::Encoding::JSONEncoder,
19
19
  )
20
20
 
@@ -34,7 +34,7 @@ module Datadog
34
34
  agent_settings: agent_settings,
35
35
  headers: headers,
36
36
  ) do |transport|
37
- transport.api 'symbols', SYMBOLS_ENDPOINT, default: true
37
+ transport.api "symbols", SYMBOLS_ENDPOINT, default: true
38
38
 
39
39
  yield(transport) if block_given?
40
40
  end.to_transport(SymbolDatabase::Transport::Symbols::Transport)
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../core/transport/request'
4
- require_relative '../core/transport/transport'
5
- require_relative '../core/transport/http/client'
6
- require_relative '../core/transport/http/env'
3
+ require_relative "../core/transport/request"
4
+ require_relative "../core/transport/transport"
5
+ require_relative "../core/transport/http/client"
6
+ require_relative "../core/transport/http/env"
7
7
 
8
8
  module Datadog
9
9
  module SymbolDatabase
@@ -1,15 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'json'
4
- require 'securerandom'
5
- require 'zlib'
6
- require 'stringio'
7
- require_relative '../core/environment/identity'
8
- require_relative '../core/vendor/multipart-post/multipart/post/composite_read_io'
9
- require_relative '../tracing/ext'
10
- require_relative 'service_version'
11
- require_relative 'transport/http'
12
- require_relative '../di/fatal_exceptions'
3
+ require "json"
4
+ require "securerandom"
5
+ require "zlib"
6
+ require "stringio"
7
+ require_relative "../core/environment/identity"
8
+ require_relative "../core/vendor/multipart-post/multipart/post/composite_read_io"
9
+ require_relative "../tracing/ext"
10
+ require_relative "service_version"
11
+ require_relative "transport/http"
12
+ require_relative "../di/fatal_exceptions"
13
13
 
14
14
  module Datadog
15
15
  module SymbolDatabase
@@ -72,7 +72,7 @@ module Datadog
72
72
  # Emitted unconditionally so the rare oversized case is observable.
73
73
  @telemetry&.distribution(
74
74
  Tracing::Ext::TELEMETRY_METRICS_NAMESPACE,
75
- 'symbol_database.payload_size',
75
+ "symbol_database.payload_size",
76
76
  compressed_data.bytesize
77
77
  )
78
78
 
@@ -90,7 +90,7 @@ module Datadog
90
90
  rescue Exception => e # standard:disable Lint/RescueException
91
91
  Datadog::DI.reraise_if_fatal(e)
92
92
  @logger.debug { "symdb: upload failed: #{e.class}: #{e.message}" }
93
- @telemetry&.report(e, description: 'symdb: upload failed')
93
+ @telemetry&.report(e, description: "symdb: upload failed")
94
94
  end
95
95
 
96
96
  private
@@ -139,19 +139,19 @@ module Datadog
139
139
 
140
140
  event_upload = Datadog::Core::Vendor::Multipart::Post::UploadIO.new(
141
141
  event_io,
142
- 'application/json',
143
- 'event.json',
142
+ "application/json",
143
+ "event.json",
144
144
  )
145
145
 
146
146
  file_upload = Datadog::Core::Vendor::Multipart::Post::UploadIO.new(
147
147
  file_io,
148
- 'application/gzip',
148
+ "application/gzip",
149
149
  "symbols_#{Process.pid}.json.gz",
150
150
  )
151
151
 
152
152
  {
153
- 'event' => event_upload,
154
- 'file' => file_upload,
153
+ "event" => event_upload,
154
+ "file" => file_upload,
155
155
  }
156
156
  end
157
157
 
@@ -162,13 +162,13 @@ module Datadog
162
162
  # @return [String] JSON string for event metadata
163
163
  def build_event_metadata(attachment_size, upload_id:, batch_num:)
164
164
  JSON.generate(
165
- ddsource: 'ruby',
165
+ ddsource: "ruby",
166
166
  service: @settings.service,
167
167
  version: @settings.version,
168
- language: 'ruby',
168
+ language: "ruby",
169
169
  runtimeId: Datadog::Core::Environment::Identity.id,
170
170
  parentId: nil, # Fork tracking deferred for MVP
171
- type: 'symdb',
171
+ type: "symdb",
172
172
  uploadId: upload_id,
173
173
  batchNum: batch_num,
174
174
  # Always false: the Ruby tracer continuously uploads new code
@@ -194,8 +194,8 @@ module Datadog
194
194
  end
195
195
  @batch_num += 1 # steep:ignore NoMethod
196
196
  # @upload_id and @batch_num are non-nil after the branch above; refine for Steep.
197
- upload_id = @upload_id or raise('unreachable: @upload_id should be set')
198
- batch_num = @batch_num or raise('unreachable: @batch_num should be set')
197
+ upload_id = @upload_id or raise("unreachable: @upload_id should be set")
198
+ batch_num = @batch_num or raise("unreachable: @batch_num should be set")
199
199
  [upload_id, batch_num]
200
200
  end
201
201
  end