datadog 2.36.0 → 2.40.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 (854) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +119 -1
  3. data/bin/ddprofrb +4 -4
  4. data/ext/datadog_profiling_native_extension/clock_id_from_mach.c +5 -12
  5. data/ext/datadog_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +105 -18
  6. data/ext/datadog_profiling_native_extension/collectors_idle_sampling_helper.c +17 -3
  7. data/ext/datadog_profiling_native_extension/collectors_stack.c +228 -162
  8. data/ext/datadog_profiling_native_extension/collectors_stack.h +16 -3
  9. data/ext/datadog_profiling_native_extension/collectors_thread_context.c +357 -217
  10. data/ext/datadog_profiling_native_extension/collectors_thread_context.h +3 -0
  11. data/ext/datadog_profiling_native_extension/crashtracking_runtime_stacks.c +5 -4
  12. data/ext/datadog_profiling_native_extension/datadog_ruby_common.c +19 -11
  13. data/ext/datadog_profiling_native_extension/datadog_ruby_common.h +7 -0
  14. data/ext/datadog_profiling_native_extension/extconf.rb +24 -11
  15. data/ext/datadog_profiling_native_extension/private_vm_api_access.c +261 -62
  16. data/ext/datadog_profiling_native_extension/private_vm_api_access.h +17 -9
  17. data/ext/datadog_profiling_native_extension/ruby_helpers.c +7 -0
  18. data/ext/datadog_profiling_native_extension/setup_signal_handler.c +2 -0
  19. data/ext/datadog_profiling_native_extension/time_helpers.h +12 -7
  20. data/ext/libdatadog_api/datadog_ruby_common.c +19 -11
  21. data/ext/libdatadog_api/datadog_ruby_common.h +7 -0
  22. data/ext/libdatadog_api/di.c +76 -0
  23. data/ext/libdatadog_api/extconf.rb +29 -23
  24. data/ext/libdatadog_api/feature_flags.c +26 -0
  25. data/ext/libdatadog_api/init.c +4 -0
  26. data/ext/libdatadog_api/trace_exporter.c +974 -0
  27. data/ext/libdatadog_api/trace_exporter.h +5 -0
  28. data/ext/libdatadog_extconf_helpers.rb +9 -9
  29. data/lib/datadog/ai_guard/api_client.rb +8 -6
  30. data/lib/datadog/ai_guard/component.rb +10 -10
  31. data/lib/datadog/ai_guard/evaluation.rb +1 -0
  32. data/lib/datadog/ai_guard/ext.rb +2 -0
  33. data/lib/datadog/appsec/actions_handler/serializable_backtrace.rb +16 -16
  34. data/lib/datadog/appsec/actions_handler.rb +6 -6
  35. data/lib/datadog/appsec/anonymizer.rb +1 -1
  36. data/lib/datadog/appsec/api_security/endpoint_collection/grape_route_serializer.rb +1 -1
  37. data/lib/datadog/appsec/api_security/endpoint_collection/rails_collector.rb +6 -6
  38. data/lib/datadog/appsec/api_security/endpoint_collection/sinatra_route_serializer.rb +1 -1
  39. data/lib/datadog/appsec/api_security/route_extractor.rb +18 -15
  40. data/lib/datadog/appsec/api_security/sampler.rb +5 -5
  41. data/lib/datadog/appsec/api_security.rb +1 -1
  42. data/lib/datadog/appsec/assets.rb +7 -7
  43. data/lib/datadog/appsec/autoload.rb +3 -3
  44. data/lib/datadog/appsec/component.rb +15 -15
  45. data/lib/datadog/appsec/compressed_json.rb +6 -6
  46. data/lib/datadog/appsec/configuration.rb +73 -58
  47. data/lib/datadog/appsec/context.rb +9 -7
  48. data/lib/datadog/appsec/contrib/active_record/instrumentation.rb +6 -6
  49. data/lib/datadog/appsec/contrib/active_record/integration.rb +4 -4
  50. data/lib/datadog/appsec/contrib/active_record/patcher.rb +4 -4
  51. data/lib/datadog/appsec/contrib/aws_lambda/gateway/watcher.rb +7 -7
  52. data/lib/datadog/appsec/contrib/aws_lambda/integration.rb +2 -2
  53. data/lib/datadog/appsec/contrib/aws_lambda/patcher.rb +2 -2
  54. data/lib/datadog/appsec/contrib/aws_lambda/waf_addresses.rb +36 -34
  55. data/lib/datadog/appsec/contrib/devise/data_extractor.rb +3 -3
  56. data/lib/datadog/appsec/contrib/devise/ext.rb +20 -20
  57. data/lib/datadog/appsec/contrib/devise/integration.rb +4 -4
  58. data/lib/datadog/appsec/contrib/devise/patcher.rb +8 -8
  59. data/lib/datadog/appsec/contrib/devise/patches/signin_tracking_patch.rb +12 -12
  60. data/lib/datadog/appsec/contrib/devise/patches/signup_tracking_patch.rb +8 -8
  61. data/lib/datadog/appsec/contrib/devise/tracking_middleware.rb +24 -9
  62. data/lib/datadog/appsec/contrib/excon/integration.rb +4 -4
  63. data/lib/datadog/appsec/contrib/excon/patcher.rb +1 -1
  64. data/lib/datadog/appsec/contrib/excon/ssrf_detection_middleware.rb +76 -21
  65. data/lib/datadog/appsec/contrib/faraday/integration.rb +4 -4
  66. data/lib/datadog/appsec/contrib/faraday/patcher.rb +4 -4
  67. data/lib/datadog/appsec/contrib/faraday/ssrf_detection_middleware.rb +72 -18
  68. data/lib/datadog/appsec/contrib/graphql/appsec_trace.rb +4 -4
  69. data/lib/datadog/appsec/contrib/graphql/gateway/multiplex.rb +3 -3
  70. data/lib/datadog/appsec/contrib/graphql/gateway/watcher.rb +7 -7
  71. data/lib/datadog/appsec/contrib/graphql/integration.rb +9 -9
  72. data/lib/datadog/appsec/contrib/graphql/patcher.rb +3 -3
  73. data/lib/datadog/appsec/contrib/rack/buffered_input.rb +1 -1
  74. data/lib/datadog/appsec/contrib/rack/ext.rb +29 -29
  75. data/lib/datadog/appsec/contrib/rack/gateway/request.rb +18 -17
  76. data/lib/datadog/appsec/contrib/rack/gateway/response.rb +1 -1
  77. data/lib/datadog/appsec/contrib/rack/gateway/watcher.rb +25 -21
  78. data/lib/datadog/appsec/contrib/rack/input_peeker.rb +9 -22
  79. data/lib/datadog/appsec/contrib/rack/integration.rb +6 -6
  80. data/lib/datadog/appsec/contrib/rack/patcher.rb +3 -3
  81. data/lib/datadog/appsec/contrib/rack/request_body_middleware.rb +11 -8
  82. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +45 -24
  83. data/lib/datadog/appsec/contrib/rack/response_body.rb +1 -1
  84. data/lib/datadog/appsec/contrib/rails/gateway/request.rb +14 -8
  85. data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +10 -10
  86. data/lib/datadog/appsec/contrib/rails/integration.rb +5 -5
  87. data/lib/datadog/appsec/contrib/rails/patcher.rb +17 -17
  88. data/lib/datadog/appsec/contrib/rails/patches/process_action_patch.rb +2 -2
  89. data/lib/datadog/appsec/contrib/rails/patches/render_to_body_patch.rb +3 -3
  90. data/lib/datadog/appsec/contrib/rails/request.rb +3 -3
  91. data/lib/datadog/appsec/contrib/rails/request_middleware.rb +2 -1
  92. data/lib/datadog/appsec/contrib/rest_client/integration.rb +5 -5
  93. data/lib/datadog/appsec/contrib/rest_client/patcher.rb +1 -1
  94. data/lib/datadog/appsec/contrib/rest_client/request_ssrf_detection_patch.rb +74 -21
  95. data/lib/datadog/appsec/contrib/sinatra/gateway/request.rb +1 -1
  96. data/lib/datadog/appsec/contrib/sinatra/gateway/route_params.rb +1 -1
  97. data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +16 -12
  98. data/lib/datadog/appsec/contrib/sinatra/integration.rb +5 -5
  99. data/lib/datadog/appsec/contrib/sinatra/patcher.rb +11 -11
  100. data/lib/datadog/appsec/contrib/sinatra/patches/json_patch.rb +3 -3
  101. data/lib/datadog/appsec/contrib/sinatra/request_middleware.rb +2 -1
  102. data/lib/datadog/appsec/counter_sampler.rb +1 -1
  103. data/lib/datadog/appsec/event.rb +14 -14
  104. data/lib/datadog/appsec/ext.rb +11 -10
  105. data/lib/datadog/appsec/extensions.rb +2 -2
  106. data/lib/datadog/appsec/instrumentation/gateway.rb +1 -1
  107. data/lib/datadog/appsec/metrics/collector.rb +18 -1
  108. data/lib/datadog/appsec/metrics/exporter.rb +17 -11
  109. data/lib/datadog/appsec/metrics/telemetry.rb +7 -7
  110. data/lib/datadog/appsec/metrics/telemetry_exporter.rb +4 -4
  111. data/lib/datadog/appsec/metrics.rb +4 -4
  112. data/lib/datadog/appsec/monitor/gateway/watcher.rb +16 -12
  113. data/lib/datadog/appsec/monitor.rb +1 -1
  114. data/lib/datadog/appsec/processor/rule_loader.rb +26 -26
  115. data/lib/datadog/appsec/rate_limiter.rb +1 -1
  116. data/lib/datadog/appsec/remote.rb +15 -9
  117. data/lib/datadog/appsec/response.rb +21 -21
  118. data/lib/datadog/appsec/route_normalizer/rails_route_pattern.rb +176 -0
  119. data/lib/datadog/appsec/route_normalizer/route_pattern.rb +378 -0
  120. data/lib/datadog/appsec/route_normalizer/route_text.rb +57 -0
  121. data/lib/datadog/appsec/route_normalizer.rb +80 -0
  122. data/lib/datadog/appsec/security_engine/engine.rb +37 -37
  123. data/lib/datadog/appsec/security_engine/runner.rb +2 -2
  124. data/lib/datadog/appsec/security_event.rb +2 -2
  125. data/lib/datadog/appsec/utils/http/body.rb +11 -8
  126. data/lib/datadog/appsec/utils/http/body_reader.rb +61 -0
  127. data/lib/datadog/appsec/utils/http/media_range.rb +15 -15
  128. data/lib/datadog/appsec/utils/http/media_type.rb +4 -4
  129. data/lib/datadog/appsec/utils/http/url_encoded.rb +80 -25
  130. data/lib/datadog/appsec.rb +16 -16
  131. data/lib/datadog/auto_instrument.rb +2 -2
  132. data/lib/datadog/core/buffer/cruby.rb +1 -1
  133. data/lib/datadog/core/buffer/thread_safe.rb +1 -1
  134. data/lib/datadog/core/configuration/agent_settings.rb +1 -1
  135. data/lib/datadog/core/configuration/agent_settings_resolver.rb +15 -15
  136. data/lib/datadog/core/configuration/agentless_settings_resolver.rb +2 -2
  137. data/lib/datadog/core/configuration/base.rb +2 -2
  138. data/lib/datadog/core/configuration/components.rb +115 -31
  139. data/lib/datadog/core/configuration/components_state.rb +6 -1
  140. data/lib/datadog/core/configuration/config_helper.rb +3 -3
  141. data/lib/datadog/core/configuration/deprecations.rb +6 -6
  142. data/lib/datadog/core/configuration/ext.rb +11 -11
  143. data/lib/datadog/core/configuration/option.rb +16 -16
  144. data/lib/datadog/core/configuration/option_definition.rb +4 -4
  145. data/lib/datadog/core/configuration/options.rb +1 -1
  146. data/lib/datadog/core/configuration/settings.rb +93 -104
  147. data/lib/datadog/core/configuration/stable_config.rb +1 -1
  148. data/lib/datadog/core/configuration/supported_configurations.rb +8 -1
  149. data/lib/datadog/core/configuration.rb +8 -8
  150. data/lib/datadog/core/contrib/rails/railtie.rb +3 -3
  151. data/lib/datadog/core/crashtracking/component.rb +9 -9
  152. data/lib/datadog/core/crashtracking/tag_builder.rb +5 -5
  153. data/lib/datadog/core/deprecations.rb +1 -1
  154. data/lib/datadog/core/diagnostics/environment_logger.rb +6 -6
  155. data/lib/datadog/core/diagnostics/health.rb +2 -2
  156. data/lib/datadog/core/encoding.rb +4 -4
  157. data/lib/datadog/core/environment/agent_info.rb +2 -2
  158. data/lib/datadog/core/environment/cgroup.rb +4 -4
  159. data/lib/datadog/core/environment/container.rb +9 -9
  160. data/lib/datadog/core/environment/execution.rb +3 -3
  161. data/lib/datadog/core/environment/ext.rb +18 -18
  162. data/lib/datadog/core/environment/gc.rb +1 -1
  163. data/lib/datadog/core/environment/git.rb +2 -2
  164. data/lib/datadog/core/environment/identity.rb +10 -10
  165. data/lib/datadog/core/environment/platform.rb +8 -8
  166. data/lib/datadog/core/environment/process.rb +3 -3
  167. data/lib/datadog/core/environment/socket.rb +2 -2
  168. data/lib/datadog/core/environment/variable_helpers.rb +1 -1
  169. data/lib/datadog/core/environment/vm_cache.rb +1 -1
  170. data/lib/datadog/core/environment/yjit.rb +2 -2
  171. data/lib/datadog/core/error.rb +5 -5
  172. data/lib/datadog/core/evp.rb +11 -0
  173. data/lib/datadog/core/extensions.rb +1 -1
  174. data/lib/datadog/core/feature_flags.rb +2 -2
  175. data/lib/datadog/core/git/ext.rb +4 -4
  176. data/lib/datadog/core/knuth_sampler.rb +3 -1
  177. data/lib/datadog/core/logger.rb +3 -3
  178. data/lib/datadog/core/logging/ext.rb +1 -1
  179. data/lib/datadog/core/metrics/client.rb +21 -21
  180. data/lib/datadog/core/metrics/ext.rb +5 -5
  181. data/lib/datadog/core/metrics/logging.rb +2 -2
  182. data/lib/datadog/core/metrics/options.rb +3 -3
  183. data/lib/datadog/core/pin.rb +1 -1
  184. data/lib/datadog/core/process_discovery.rb +8 -8
  185. data/lib/datadog/core/rate_limiter.rb +1 -1
  186. data/lib/datadog/core/remote/client/capabilities.rb +62 -19
  187. data/lib/datadog/core/remote/client.rb +16 -16
  188. data/lib/datadog/core/remote/component.rb +20 -12
  189. data/lib/datadog/core/remote/configuration/content.rb +3 -3
  190. data/lib/datadog/core/remote/configuration/digest.rb +1 -1
  191. data/lib/datadog/core/remote/configuration/path.rb +9 -9
  192. data/lib/datadog/core/remote/configuration/repository.rb +2 -2
  193. data/lib/datadog/core/remote/configuration/target.rb +9 -9
  194. data/lib/datadog/core/remote/configuration.rb +4 -4
  195. data/lib/datadog/core/remote/ext.rb +3 -3
  196. data/lib/datadog/core/remote/negotiation.rb +1 -1
  197. data/lib/datadog/core/remote/tie/tracing.rb +7 -7
  198. data/lib/datadog/core/remote/transport/config.rb +4 -4
  199. data/lib/datadog/core/remote/transport/http/config.rb +7 -7
  200. data/lib/datadog/core/remote/transport/http/negotiation.rb +4 -4
  201. data/lib/datadog/core/remote/transport/http.rb +10 -10
  202. data/lib/datadog/core/remote/transport/negotiation.rb +3 -3
  203. data/lib/datadog/core/remote/worker.rb +5 -5
  204. data/lib/datadog/core/runtime/ext.rb +22 -22
  205. data/lib/datadog/core/runtime/metrics.rb +9 -9
  206. data/lib/datadog/core/tag_builder.rb +18 -18
  207. data/lib/datadog/core/tag_normalizer.rb +7 -7
  208. data/lib/datadog/core/telemetry/component.rb +13 -13
  209. data/lib/datadog/core/telemetry/emitter.rb +4 -4
  210. data/lib/datadog/core/telemetry/event/app_client_configuration_change.rb +5 -5
  211. data/lib/datadog/core/telemetry/event/app_closing.rb +2 -2
  212. data/lib/datadog/core/telemetry/event/app_dependencies_loaded.rb +2 -2
  213. data/lib/datadog/core/telemetry/event/app_endpoints_loaded.rb +2 -2
  214. data/lib/datadog/core/telemetry/event/app_extended_heartbeat.rb +2 -2
  215. data/lib/datadog/core/telemetry/event/app_heartbeat.rb +2 -2
  216. data/lib/datadog/core/telemetry/event/app_integrations_change.rb +2 -2
  217. data/lib/datadog/core/telemetry/event/app_started.rb +41 -34
  218. data/lib/datadog/core/telemetry/event/base.rb +1 -1
  219. data/lib/datadog/core/telemetry/event/distributions.rb +2 -2
  220. data/lib/datadog/core/telemetry/event/generate_metrics.rb +2 -2
  221. data/lib/datadog/core/telemetry/event/log.rb +4 -4
  222. data/lib/datadog/core/telemetry/event/message_batch.rb +1 -1
  223. data/lib/datadog/core/telemetry/event/synth_app_client_configuration_change.rb +3 -3
  224. data/lib/datadog/core/telemetry/event.rb +16 -16
  225. data/lib/datadog/core/telemetry/ext.rb +11 -11
  226. data/lib/datadog/core/telemetry/logger.rb +1 -1
  227. data/lib/datadog/core/telemetry/logging.rb +5 -5
  228. data/lib/datadog/core/telemetry/metric.rb +7 -7
  229. data/lib/datadog/core/telemetry/metrics_collection.rb +2 -2
  230. data/lib/datadog/core/telemetry/metrics_manager.rb +1 -1
  231. data/lib/datadog/core/telemetry/request.rb +4 -4
  232. data/lib/datadog/core/telemetry/transport/http/telemetry.rb +14 -14
  233. data/lib/datadog/core/telemetry/transport/http.rb +7 -7
  234. data/lib/datadog/core/telemetry/transport/telemetry.rb +3 -3
  235. data/lib/datadog/core/telemetry/worker.rb +6 -6
  236. data/lib/datadog/core/transport/ext.rb +14 -14
  237. data/lib/datadog/core/transport/http/adapters/net.rb +4 -4
  238. data/lib/datadog/core/transport/http/adapters/test.rb +1 -1
  239. data/lib/datadog/core/transport/http/adapters/unix_socket.rb +4 -4
  240. data/lib/datadog/core/transport/http/api/endpoint.rb +1 -1
  241. data/lib/datadog/core/transport/http/api/map.rb +1 -1
  242. data/lib/datadog/core/transport/http/builder.rb +6 -6
  243. data/lib/datadog/core/transport/http/client.rb +2 -2
  244. data/lib/datadog/core/transport/http/response.rb +1 -1
  245. data/lib/datadog/core/transport/http.rb +8 -8
  246. data/lib/datadog/core/transport/transport.rb +1 -1
  247. data/lib/datadog/core/utils/at_fork_monkey_patch.rb +83 -15
  248. data/lib/datadog/core/utils/base64_codec.rb +3 -3
  249. data/lib/datadog/core/utils/duration.rb +1 -1
  250. data/lib/datadog/core/utils/forking.rb +2 -2
  251. data/lib/datadog/core/utils/lru_cache.rb +3 -3
  252. data/lib/datadog/core/utils/network.rb +11 -11
  253. data/lib/datadog/core/utils/only_once_successful.rb +1 -1
  254. data/lib/datadog/core/utils/safe_dup.rb +2 -1
  255. data/lib/datadog/core/utils/sequence.rb +3 -6
  256. data/lib/datadog/core/utils/spawn_monkey_patch.rb +2 -2
  257. data/lib/datadog/core/utils/time.rb +18 -52
  258. data/lib/datadog/core/utils/url.rb +1 -1
  259. data/lib/datadog/core/utils.rb +4 -4
  260. data/lib/datadog/core/workers/async.rb +1 -1
  261. data/lib/datadog/core/workers/polling.rb +2 -2
  262. data/lib/datadog/core/workers/runtime_metrics.rb +4 -4
  263. data/lib/datadog/core.rb +4 -4
  264. data/lib/datadog/data_streams/configuration.rb +3 -3
  265. data/lib/datadog/data_streams/ext.rb +1 -1
  266. data/lib/datadog/data_streams/extensions.rb +2 -2
  267. data/lib/datadog/data_streams/pathway_context.rb +5 -5
  268. data/lib/datadog/data_streams/processor.rb +52 -52
  269. data/lib/datadog/data_streams/transport/http/stats.rb +5 -5
  270. data/lib/datadog/data_streams/transport/http.rb +5 -5
  271. data/lib/datadog/data_streams/transport/stats.rb +7 -7
  272. data/lib/datadog/data_streams.rb +5 -5
  273. data/lib/datadog/di/base.rb +6 -4
  274. data/lib/datadog/di/boot.rb +25 -22
  275. data/lib/datadog/di/capture_expression.rb +21 -0
  276. data/lib/datadog/di/capture_expression_evaluator.rb +71 -0
  277. data/lib/datadog/di/capture_limits.rb +41 -0
  278. data/lib/datadog/di/code_tracker.rb +10 -7
  279. data/lib/datadog/di/component.rb +122 -40
  280. data/lib/datadog/di/configuration.rb +7 -1
  281. data/lib/datadog/di/context.rb +9 -3
  282. data/lib/datadog/di/contrib/railtie.rb +1 -1
  283. data/lib/datadog/di/contrib.rb +5 -5
  284. data/lib/datadog/di/el/compiler.rb +91 -38
  285. data/lib/datadog/di/el/evaluator.rb +82 -2
  286. data/lib/datadog/di/el/expression.rb +10 -2
  287. data/lib/datadog/di/el.rb +3 -3
  288. data/lib/datadog/di/error.rb +10 -0
  289. data/lib/datadog/di/fatal_exceptions.rb +26 -0
  290. data/lib/datadog/di/instrumenter.rb +426 -169
  291. data/lib/datadog/di/logger.rb +1 -1
  292. data/lib/datadog/di/preload.rb +1 -1
  293. data/lib/datadog/di/probe.rb +61 -2
  294. data/lib/datadog/di/probe_builder.rb +96 -14
  295. data/lib/datadog/di/probe_file_loader/railtie.rb +1 -1
  296. data/lib/datadog/di/probe_file_loader.rb +12 -7
  297. data/lib/datadog/di/probe_manager.rb +67 -9
  298. data/lib/datadog/di/probe_notification_builder.rb +66 -22
  299. data/lib/datadog/di/probe_notifier_worker.rb +57 -37
  300. data/lib/datadog/di/probe_repository.rb +1 -1
  301. data/lib/datadog/di/redactor.rb +16 -1
  302. data/lib/datadog/di/remote.rb +178 -17
  303. data/lib/datadog/di/serializer.rb +47 -28
  304. data/lib/datadog/di/transport/diagnostics.rb +5 -5
  305. data/lib/datadog/di/transport/http/diagnostics.rb +3 -3
  306. data/lib/datadog/di/transport/http/input.rb +2 -2
  307. data/lib/datadog/di/transport/http.rb +10 -10
  308. data/lib/datadog/di/transport/input.rb +16 -12
  309. data/lib/datadog/di/utils.rb +4 -4
  310. data/lib/datadog/di.rb +66 -3
  311. data/lib/datadog/error_tracking/collector.rb +2 -2
  312. data/lib/datadog/error_tracking/component.rb +12 -12
  313. data/lib/datadog/error_tracking/configuration.rb +2 -2
  314. data/lib/datadog/error_tracking/ext.rb +7 -7
  315. data/lib/datadog/error_tracking/extensions.rb +2 -2
  316. data/lib/datadog/error_tracking/filters.rb +4 -4
  317. data/lib/datadog/error_tracking.rb +6 -6
  318. data/lib/datadog/kit/appsec/events/v2.rb +90 -32
  319. data/lib/datadog/kit/appsec/events.rb +25 -25
  320. data/lib/datadog/kit/enable_core_dumps.rb +2 -2
  321. data/lib/datadog/kit/identity.rb +18 -18
  322. data/lib/datadog/kit/tracing/method_tracer.rb +7 -7
  323. data/lib/datadog/kit.rb +1 -1
  324. data/lib/datadog/open_feature/component.rb +53 -21
  325. data/lib/datadog/open_feature/configuration.rb +22 -1
  326. data/lib/datadog/open_feature/evaluation_engine.rb +7 -7
  327. data/lib/datadog/open_feature/exposures/buffer.rb +1 -1
  328. data/lib/datadog/open_feature/exposures/deduplicator.rb +1 -1
  329. data/lib/datadog/open_feature/exposures/event.rb +2 -2
  330. data/lib/datadog/open_feature/exposures/reporter.rb +3 -3
  331. data/lib/datadog/open_feature/exposures/worker.rb +6 -6
  332. data/lib/datadog/open_feature/ext.rb +13 -6
  333. data/lib/datadog/open_feature/flag_evaluation/aggregator.rb +286 -0
  334. data/lib/datadog/open_feature/flag_evaluation/writer.rb +433 -0
  335. data/lib/datadog/open_feature/hooks/flag_eval_evp_hook.rb +102 -0
  336. data/lib/datadog/open_feature/hooks/{flag_eval_hook.rb → flag_eval_metrics_hook.rb} +4 -2
  337. data/lib/datadog/open_feature/hooks/span_enrichment_hook/codec.rb +58 -0
  338. data/lib/datadog/open_feature/hooks/span_enrichment_hook/span_enrichment_state.rb +96 -0
  339. data/lib/datadog/open_feature/hooks/span_enrichment_hook/span_enrichment_state_store.rb +49 -0
  340. data/lib/datadog/open_feature/hooks/span_enrichment_hook.rb +184 -0
  341. data/lib/datadog/open_feature/metrics/flag_eval_metrics.rb +24 -24
  342. data/lib/datadog/open_feature/native_evaluator.rb +23 -1
  343. data/lib/datadog/open_feature/noop_evaluator.rb +3 -3
  344. data/lib/datadog/open_feature/provider.rb +97 -30
  345. data/lib/datadog/open_feature/remote.rb +2 -2
  346. data/lib/datadog/open_feature/resolution_details.rb +4 -2
  347. data/lib/datadog/open_feature/transport.rb +65 -11
  348. data/lib/datadog/open_feature.rb +2 -2
  349. data/lib/datadog/opentelemetry/api/baggage.rb +3 -3
  350. data/lib/datadog/opentelemetry/api/context.rb +4 -4
  351. data/lib/datadog/opentelemetry/configuration/settings.rb +41 -41
  352. data/lib/datadog/opentelemetry/ext.rb +1 -1
  353. data/lib/datadog/opentelemetry/logs.rb +5 -5
  354. data/lib/datadog/opentelemetry/metrics.rb +7 -7
  355. data/lib/datadog/opentelemetry/sdk/configurator.rb +8 -8
  356. data/lib/datadog/opentelemetry/sdk/id_generator.rb +2 -2
  357. data/lib/datadog/opentelemetry/sdk/logs_exporter.rb +10 -17
  358. data/lib/datadog/opentelemetry/sdk/metrics_exporter.rb +8 -15
  359. data/lib/datadog/opentelemetry/sdk/propagator.rb +7 -7
  360. data/lib/datadog/opentelemetry/sdk/span_processor.rb +15 -15
  361. data/lib/datadog/opentelemetry/sdk/trace/span.rb +32 -32
  362. data/lib/datadog/opentelemetry/sdk.rb +19 -0
  363. data/lib/datadog/opentelemetry/signal_configuration.rb +11 -11
  364. data/lib/datadog/opentelemetry/trace.rb +1 -1
  365. data/lib/datadog/opentelemetry.rb +8 -8
  366. data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +6 -1
  367. data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +5 -3
  368. data/lib/datadog/profiling/collectors/thread_context.rb +15 -14
  369. data/lib/datadog/profiling/component.rb +18 -0
  370. data/lib/datadog/profiling/exporter.rb +1 -1
  371. data/lib/datadog/profiling/http_transport.rb +1 -1
  372. data/lib/datadog/profiling/sequence_tracker.rb +1 -1
  373. data/lib/datadog/profiling/tag_builder.rb +19 -19
  374. data/lib/datadog/profiling.rb +31 -27
  375. data/lib/datadog/single_step_instrument.rb +1 -1
  376. data/lib/datadog/symbol_database/component.rb +177 -60
  377. data/lib/datadog/symbol_database/configuration.rb +15 -7
  378. data/lib/datadog/symbol_database/extensions.rb +19 -0
  379. data/lib/datadog/symbol_database/extractor.rb +167 -130
  380. data/lib/datadog/symbol_database/file_hash.rb +5 -3
  381. data/lib/datadog/symbol_database/logger.rb +1 -1
  382. data/lib/datadog/symbol_database/remote.rb +28 -8
  383. data/lib/datadog/symbol_database/scope.rb +2 -2
  384. data/lib/datadog/symbol_database/scope_batcher.rb +8 -4
  385. data/lib/datadog/symbol_database/service_version.rb +4 -4
  386. data/lib/datadog/symbol_database/symbol.rb +1 -1
  387. data/lib/datadog/symbol_database/transport/http/endpoint.rb +1 -1
  388. data/lib/datadog/symbol_database/transport/http.rb +6 -6
  389. data/lib/datadog/symbol_database/transport.rb +4 -4
  390. data/lib/datadog/symbol_database/uploader.rb +28 -21
  391. data/lib/datadog/symbol_database.rb +22 -0
  392. data/lib/datadog/tracing/analytics.rb +1 -1
  393. data/lib/datadog/tracing/buffer.rb +5 -5
  394. data/lib/datadog/tracing/client_ip.rb +4 -4
  395. data/lib/datadog/tracing/component.rb +28 -7
  396. data/lib/datadog/tracing/configuration/dynamic.rb +8 -8
  397. data/lib/datadog/tracing/configuration/ext.rb +43 -42
  398. data/lib/datadog/tracing/configuration/http.rb +2 -2
  399. data/lib/datadog/tracing/configuration/settings.rb +32 -16
  400. data/lib/datadog/tracing/context.rb +1 -1
  401. data/lib/datadog/tracing/context_provider.rb +2 -2
  402. data/lib/datadog/tracing/contrib/action_cable/configuration/settings.rb +2 -2
  403. data/lib/datadog/tracing/contrib/action_cable/event.rb +4 -4
  404. data/lib/datadog/tracing/contrib/action_cable/events/broadcast.rb +5 -5
  405. data/lib/datadog/tracing/contrib/action_cable/events/perform_action.rb +4 -4
  406. data/lib/datadog/tracing/contrib/action_cable/events/transmit.rb +5 -5
  407. data/lib/datadog/tracing/contrib/action_cable/events.rb +4 -4
  408. data/lib/datadog/tracing/contrib/action_cable/ext.rb +18 -18
  409. data/lib/datadog/tracing/contrib/action_cable/instrumentation.rb +4 -4
  410. data/lib/datadog/tracing/contrib/action_cable/integration.rb +7 -7
  411. data/lib/datadog/tracing/contrib/action_cable/patcher.rb +4 -4
  412. data/lib/datadog/tracing/contrib/action_mailer/configuration/settings.rb +2 -2
  413. data/lib/datadog/tracing/contrib/action_mailer/event.rb +3 -3
  414. data/lib/datadog/tracing/contrib/action_mailer/events/deliver.rb +8 -8
  415. data/lib/datadog/tracing/contrib/action_mailer/events/process.rb +4 -4
  416. data/lib/datadog/tracing/contrib/action_mailer/events.rb +2 -2
  417. data/lib/datadog/tracing/contrib/action_mailer/ext.rb +18 -18
  418. data/lib/datadog/tracing/contrib/action_mailer/integration.rb +7 -7
  419. data/lib/datadog/tracing/contrib/action_mailer/patcher.rb +3 -3
  420. data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +8 -8
  421. data/lib/datadog/tracing/contrib/action_pack/action_controller/patcher.rb +2 -2
  422. data/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb +4 -4
  423. data/lib/datadog/tracing/contrib/action_pack/action_dispatch/patcher.rb +4 -4
  424. data/lib/datadog/tracing/contrib/action_pack/configuration/settings.rb +3 -3
  425. data/lib/datadog/tracing/contrib/action_pack/ext.rb +10 -10
  426. data/lib/datadog/tracing/contrib/action_pack/integration.rb +7 -7
  427. data/lib/datadog/tracing/contrib/action_pack/patcher.rb +3 -3
  428. data/lib/datadog/tracing/contrib/action_pack/utils.rb +1 -1
  429. data/lib/datadog/tracing/contrib/action_view/configuration/settings.rb +3 -3
  430. data/lib/datadog/tracing/contrib/action_view/event.rb +1 -1
  431. data/lib/datadog/tracing/contrib/action_view/events/render_partial.rb +6 -6
  432. data/lib/datadog/tracing/contrib/action_view/events/render_template.rb +6 -6
  433. data/lib/datadog/tracing/contrib/action_view/events.rb +2 -2
  434. data/lib/datadog/tracing/contrib/action_view/ext.rb +10 -10
  435. data/lib/datadog/tracing/contrib/action_view/integration.rb +11 -11
  436. data/lib/datadog/tracing/contrib/action_view/patcher.rb +5 -5
  437. data/lib/datadog/tracing/contrib/action_view/utils.rb +2 -2
  438. data/lib/datadog/tracing/contrib/active_job/configuration/settings.rb +2 -2
  439. data/lib/datadog/tracing/contrib/active_job/data_streams.rb +62 -0
  440. data/lib/datadog/tracing/contrib/active_job/event.rb +3 -3
  441. data/lib/datadog/tracing/contrib/active_job/events/discard.rb +5 -5
  442. data/lib/datadog/tracing/contrib/active_job/events/enqueue.rb +5 -5
  443. data/lib/datadog/tracing/contrib/active_job/events/enqueue_at.rb +5 -5
  444. data/lib/datadog/tracing/contrib/active_job/events/enqueue_retry.rb +5 -5
  445. data/lib/datadog/tracing/contrib/active_job/events/perform.rb +5 -5
  446. data/lib/datadog/tracing/contrib/active_job/events/retry_stopped.rb +5 -5
  447. data/lib/datadog/tracing/contrib/active_job/events.rb +6 -6
  448. data/lib/datadog/tracing/contrib/active_job/ext.rb +23 -23
  449. data/lib/datadog/tracing/contrib/active_job/integration.rb +7 -7
  450. data/lib/datadog/tracing/contrib/active_job/patcher.rb +17 -5
  451. data/lib/datadog/tracing/contrib/active_model_serializers/configuration/settings.rb +2 -2
  452. data/lib/datadog/tracing/contrib/active_model_serializers/event.rb +4 -4
  453. data/lib/datadog/tracing/contrib/active_model_serializers/events/render.rb +6 -6
  454. data/lib/datadog/tracing/contrib/active_model_serializers/events/serialize.rb +7 -8
  455. data/lib/datadog/tracing/contrib/active_model_serializers/events.rb +2 -2
  456. data/lib/datadog/tracing/contrib/active_model_serializers/ext.rb +10 -10
  457. data/lib/datadog/tracing/contrib/active_model_serializers/integration.rb +5 -5
  458. data/lib/datadog/tracing/contrib/active_model_serializers/patcher.rb +3 -3
  459. data/lib/datadog/tracing/contrib/active_record/configuration/makara_resolver.rb +1 -1
  460. data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +6 -6
  461. data/lib/datadog/tracing/contrib/active_record/configuration/settings.rb +4 -4
  462. data/lib/datadog/tracing/contrib/active_record/event.rb +1 -1
  463. data/lib/datadog/tracing/contrib/active_record/events/instantiation.rb +8 -8
  464. data/lib/datadog/tracing/contrib/active_record/events/sql.rb +9 -9
  465. data/lib/datadog/tracing/contrib/active_record/events.rb +2 -2
  466. data/lib/datadog/tracing/contrib/active_record/ext.rb +15 -15
  467. data/lib/datadog/tracing/contrib/active_record/integration.rb +11 -11
  468. data/lib/datadog/tracing/contrib/active_record/patcher.rb +2 -2
  469. data/lib/datadog/tracing/contrib/active_record/utils.rb +3 -3
  470. data/lib/datadog/tracing/contrib/active_support/cache/event.rb +1 -1
  471. data/lib/datadog/tracing/contrib/active_support/cache/events/cache.rb +11 -11
  472. data/lib/datadog/tracing/contrib/active_support/cache/events.rb +1 -1
  473. data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +4 -4
  474. data/lib/datadog/tracing/contrib/active_support/cache/patcher.rb +5 -5
  475. data/lib/datadog/tracing/contrib/active_support/cache/redis.rb +4 -4
  476. data/lib/datadog/tracing/contrib/active_support/configuration/settings.rb +3 -3
  477. data/lib/datadog/tracing/contrib/active_support/ext.rb +16 -16
  478. data/lib/datadog/tracing/contrib/active_support/integration.rb +8 -8
  479. data/lib/datadog/tracing/contrib/active_support/notifications/event.rb +1 -1
  480. data/lib/datadog/tracing/contrib/active_support/notifications/subscriber.rb +2 -2
  481. data/lib/datadog/tracing/contrib/active_support/notifications/subscription.rb +1 -1
  482. data/lib/datadog/tracing/contrib/active_support/patcher.rb +2 -2
  483. data/lib/datadog/tracing/contrib/analytics.rb +1 -1
  484. data/lib/datadog/tracing/contrib/auto_instrument.rb +4 -4
  485. data/lib/datadog/tracing/contrib/aws/configuration/settings.rb +3 -3
  486. data/lib/datadog/tracing/contrib/aws/ext.rb +25 -25
  487. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +5 -5
  488. data/lib/datadog/tracing/contrib/aws/integration.rb +9 -9
  489. data/lib/datadog/tracing/contrib/aws/parsed_context.rb +1 -1
  490. data/lib/datadog/tracing/contrib/aws/patcher.rb +5 -5
  491. data/lib/datadog/tracing/contrib/aws/service/dynamodb.rb +2 -2
  492. data/lib/datadog/tracing/contrib/aws/service/eventbridge.rb +2 -2
  493. data/lib/datadog/tracing/contrib/aws/service/kinesis.rb +4 -4
  494. data/lib/datadog/tracing/contrib/aws/service/s3.rb +2 -2
  495. data/lib/datadog/tracing/contrib/aws/service/sns.rb +3 -3
  496. data/lib/datadog/tracing/contrib/aws/service/sqs.rb +3 -3
  497. data/lib/datadog/tracing/contrib/aws/service/states.rb +5 -5
  498. data/lib/datadog/tracing/contrib/aws/services.rb +14 -14
  499. data/lib/datadog/tracing/contrib/concurrent_ruby/async_patch.rb +1 -1
  500. data/lib/datadog/tracing/contrib/concurrent_ruby/configuration/settings.rb +2 -2
  501. data/lib/datadog/tracing/contrib/concurrent_ruby/context_composite_executor_service.rb +1 -1
  502. data/lib/datadog/tracing/contrib/concurrent_ruby/ext.rb +2 -2
  503. data/lib/datadog/tracing/contrib/concurrent_ruby/future_patch.rb +1 -1
  504. data/lib/datadog/tracing/contrib/concurrent_ruby/integration.rb +6 -6
  505. data/lib/datadog/tracing/contrib/concurrent_ruby/patcher.rb +4 -4
  506. data/lib/datadog/tracing/contrib/concurrent_ruby/promises_future_patch.rb +1 -1
  507. data/lib/datadog/tracing/contrib/configurable.rb +2 -2
  508. data/lib/datadog/tracing/contrib/configuration/resolvers/pattern_resolver.rb +1 -1
  509. data/lib/datadog/tracing/contrib/configuration/settings.rb +2 -2
  510. data/lib/datadog/tracing/contrib/dalli/configuration/settings.rb +2 -2
  511. data/lib/datadog/tracing/contrib/dalli/ext.rb +13 -13
  512. data/lib/datadog/tracing/contrib/dalli/instrumentation.rb +5 -5
  513. data/lib/datadog/tracing/contrib/dalli/integration.rb +7 -7
  514. data/lib/datadog/tracing/contrib/dalli/patcher.rb +3 -3
  515. data/lib/datadog/tracing/contrib/dalli/quantize.rb +2 -2
  516. data/lib/datadog/tracing/contrib/delayed_job/configuration/settings.rb +2 -2
  517. data/lib/datadog/tracing/contrib/delayed_job/ext.rb +14 -14
  518. data/lib/datadog/tracing/contrib/delayed_job/integration.rb +5 -5
  519. data/lib/datadog/tracing/contrib/delayed_job/patcher.rb +3 -3
  520. data/lib/datadog/tracing/contrib/delayed_job/plugin.rb +5 -5
  521. data/lib/datadog/tracing/contrib/elasticsearch/configuration/settings.rb +2 -2
  522. data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +15 -15
  523. data/lib/datadog/tracing/contrib/elasticsearch/integration.rb +6 -6
  524. data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +10 -10
  525. data/lib/datadog/tracing/contrib/elasticsearch/quantize.rb +2 -2
  526. data/lib/datadog/tracing/contrib/ethon/configuration/settings.rb +2 -2
  527. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +8 -8
  528. data/lib/datadog/tracing/contrib/ethon/ext.rb +13 -13
  529. data/lib/datadog/tracing/contrib/ethon/integration.rb +6 -6
  530. data/lib/datadog/tracing/contrib/ethon/multi_patch.rb +3 -3
  531. data/lib/datadog/tracing/contrib/ethon/patcher.rb +3 -3
  532. data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +5 -5
  533. data/lib/datadog/tracing/contrib/excon/ext.rb +11 -11
  534. data/lib/datadog/tracing/contrib/excon/integration.rb +6 -6
  535. data/lib/datadog/tracing/contrib/excon/middleware.rb +8 -8
  536. data/lib/datadog/tracing/contrib/excon/patcher.rb +2 -2
  537. data/lib/datadog/tracing/contrib/ext.rb +15 -15
  538. data/lib/datadog/tracing/contrib/extensions.rb +2 -2
  539. data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +4 -4
  540. data/lib/datadog/tracing/contrib/faraday/ext.rb +11 -11
  541. data/lib/datadog/tracing/contrib/faraday/integration.rb +6 -6
  542. data/lib/datadog/tracing/contrib/faraday/middleware.rb +8 -8
  543. data/lib/datadog/tracing/contrib/faraday/patcher.rb +6 -6
  544. data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +4 -4
  545. data/lib/datadog/tracing/contrib/grape/endpoint.rb +20 -20
  546. data/lib/datadog/tracing/contrib/grape/ext.rb +15 -15
  547. data/lib/datadog/tracing/contrib/grape/instrumentation.rb +3 -3
  548. data/lib/datadog/tracing/contrib/grape/integration.rb +5 -5
  549. data/lib/datadog/tracing/contrib/grape/patcher.rb +5 -5
  550. data/lib/datadog/tracing/contrib/graphql/configuration/error_extension_env_parser.rb +1 -1
  551. data/lib/datadog/tracing/contrib/graphql/configuration/settings.rb +3 -3
  552. data/lib/datadog/tracing/contrib/graphql/ext.rb +9 -9
  553. data/lib/datadog/tracing/contrib/graphql/integration.rb +9 -9
  554. data/lib/datadog/tracing/contrib/graphql/patcher.rb +7 -7
  555. data/lib/datadog/tracing/contrib/graphql/unified_trace.rb +37 -37
  556. data/lib/datadog/tracing/contrib/graphql/unified_trace_patcher.rb +2 -2
  557. data/lib/datadog/tracing/contrib/grpc/configuration/settings.rb +2 -2
  558. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +7 -7
  559. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +7 -7
  560. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor.rb +6 -6
  561. data/lib/datadog/tracing/contrib/grpc/distributed/fetcher.rb +1 -1
  562. data/lib/datadog/tracing/contrib/grpc/distributed/propagation.rb +8 -8
  563. data/lib/datadog/tracing/contrib/grpc/ext.rb +14 -14
  564. data/lib/datadog/tracing/contrib/grpc/formatting.rb +7 -7
  565. data/lib/datadog/tracing/contrib/grpc/integration.rb +5 -5
  566. data/lib/datadog/tracing/contrib/grpc/intercept_with_datadog.rb +1 -1
  567. data/lib/datadog/tracing/contrib/grpc/patcher.rb +3 -3
  568. data/lib/datadog/tracing/contrib/grpc.rb +6 -6
  569. data/lib/datadog/tracing/contrib/hanami/action_tracer.rb +3 -3
  570. data/lib/datadog/tracing/contrib/hanami/configuration/settings.rb +2 -2
  571. data/lib/datadog/tracing/contrib/hanami/ext.rb +8 -8
  572. data/lib/datadog/tracing/contrib/hanami/integration.rb +6 -6
  573. data/lib/datadog/tracing/contrib/hanami/patcher.rb +5 -5
  574. data/lib/datadog/tracing/contrib/hanami/renderer_policy_tracing.rb +3 -3
  575. data/lib/datadog/tracing/contrib/hanami/router_tracing.rb +5 -4
  576. data/lib/datadog/tracing/contrib/http/circuit_breaker.rb +1 -1
  577. data/lib/datadog/tracing/contrib/http/configuration/settings.rb +4 -4
  578. data/lib/datadog/tracing/contrib/http/distributed/fetcher.rb +3 -3
  579. data/lib/datadog/tracing/contrib/http/distributed/propagation.rb +8 -8
  580. data/lib/datadog/tracing/contrib/http/ext.rb +11 -11
  581. data/lib/datadog/tracing/contrib/http/instrumentation.rb +6 -6
  582. data/lib/datadog/tracing/contrib/http/integration.rb +7 -7
  583. data/lib/datadog/tracing/contrib/http/patcher.rb +3 -3
  584. data/lib/datadog/tracing/contrib/http.rb +6 -6
  585. data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +4 -4
  586. data/lib/datadog/tracing/contrib/httpclient/ext.rb +11 -11
  587. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +5 -5
  588. data/lib/datadog/tracing/contrib/httpclient/integration.rb +6 -6
  589. data/lib/datadog/tracing/contrib/httpclient/patcher.rb +3 -3
  590. data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +4 -4
  591. data/lib/datadog/tracing/contrib/httprb/ext.rb +11 -11
  592. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +6 -6
  593. data/lib/datadog/tracing/contrib/httprb/integration.rb +7 -7
  594. data/lib/datadog/tracing/contrib/httprb/patcher.rb +3 -3
  595. data/lib/datadog/tracing/contrib/integration.rb +3 -3
  596. data/lib/datadog/tracing/contrib/kafka/configuration/settings.rb +2 -2
  597. data/lib/datadog/tracing/contrib/kafka/event.rb +3 -3
  598. data/lib/datadog/tracing/contrib/kafka/events/connection/request.rb +7 -3
  599. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_batch.rb +4 -4
  600. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_message.rb +4 -4
  601. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/heartbeat.rb +5 -5
  602. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/join_group.rb +5 -5
  603. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/leave_group.rb +5 -5
  604. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/sync_group.rb +5 -5
  605. data/lib/datadog/tracing/contrib/kafka/events/produce_operation/send_messages.rb +10 -5
  606. data/lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb +10 -5
  607. data/lib/datadog/tracing/contrib/kafka/events.rb +9 -9
  608. data/lib/datadog/tracing/contrib/kafka/ext.rb +40 -40
  609. data/lib/datadog/tracing/contrib/kafka/instrumentation/consumer.rb +2 -2
  610. data/lib/datadog/tracing/contrib/kafka/instrumentation/producer.rb +4 -4
  611. data/lib/datadog/tracing/contrib/kafka/integration.rb +6 -6
  612. data/lib/datadog/tracing/contrib/kafka/patcher.rb +5 -5
  613. data/lib/datadog/tracing/contrib/karafka/configuration/settings.rb +2 -2
  614. data/lib/datadog/tracing/contrib/karafka/distributed/propagation.rb +8 -8
  615. data/lib/datadog/tracing/contrib/karafka/ext.rb +13 -13
  616. data/lib/datadog/tracing/contrib/karafka/integration.rb +5 -5
  617. data/lib/datadog/tracing/contrib/karafka/monitor.rb +14 -14
  618. data/lib/datadog/tracing/contrib/karafka/patcher.rb +8 -8
  619. data/lib/datadog/tracing/contrib/karafka.rb +6 -6
  620. data/lib/datadog/tracing/contrib/lograge/configuration/settings.rb +2 -2
  621. data/lib/datadog/tracing/contrib/lograge/ext.rb +1 -1
  622. data/lib/datadog/tracing/contrib/lograge/integration.rb +5 -5
  623. data/lib/datadog/tracing/contrib/lograge/patcher.rb +9 -9
  624. data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +2 -2
  625. data/lib/datadog/tracing/contrib/mongodb/ext.rb +18 -18
  626. data/lib/datadog/tracing/contrib/mongodb/instrumentation.rb +3 -3
  627. data/lib/datadog/tracing/contrib/mongodb/integration.rb +7 -7
  628. data/lib/datadog/tracing/contrib/mongodb/parsers.rb +5 -5
  629. data/lib/datadog/tracing/contrib/mongodb/patcher.rb +3 -3
  630. data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +13 -13
  631. data/lib/datadog/tracing/contrib/mysql2/configuration/settings.rb +3 -3
  632. data/lib/datadog/tracing/contrib/mysql2/ext.rb +11 -11
  633. data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +6 -6
  634. data/lib/datadog/tracing/contrib/mysql2/integration.rb +5 -5
  635. data/lib/datadog/tracing/contrib/mysql2/patcher.rb +2 -2
  636. data/lib/datadog/tracing/contrib/opensearch/configuration/settings.rb +2 -2
  637. data/lib/datadog/tracing/contrib/opensearch/ext.rb +22 -22
  638. data/lib/datadog/tracing/contrib/opensearch/integration.rb +6 -6
  639. data/lib/datadog/tracing/contrib/opensearch/patcher.rb +13 -13
  640. data/lib/datadog/tracing/contrib/opensearch/quantize.rb +3 -3
  641. data/lib/datadog/tracing/contrib/patcher.rb +2 -2
  642. data/lib/datadog/tracing/contrib/pg/configuration/settings.rb +3 -3
  643. data/lib/datadog/tracing/contrib/pg/ext.rb +19 -19
  644. data/lib/datadog/tracing/contrib/pg/instrumentation.rb +18 -18
  645. data/lib/datadog/tracing/contrib/pg/integration.rb +5 -5
  646. data/lib/datadog/tracing/contrib/pg/patcher.rb +2 -2
  647. data/lib/datadog/tracing/contrib/presto/configuration/settings.rb +2 -2
  648. data/lib/datadog/tracing/contrib/presto/ext.rb +21 -21
  649. data/lib/datadog/tracing/contrib/presto/instrumentation.rb +2 -2
  650. data/lib/datadog/tracing/contrib/presto/integration.rb +6 -6
  651. data/lib/datadog/tracing/contrib/presto/patcher.rb +4 -4
  652. data/lib/datadog/tracing/contrib/propagation/sql_comment/comment.rb +2 -2
  653. data/lib/datadog/tracing/contrib/propagation/sql_comment/ext.rb +17 -17
  654. data/lib/datadog/tracing/contrib/propagation/sql_comment/mode.rb +1 -1
  655. data/lib/datadog/tracing/contrib/propagation/sql_comment.rb +5 -5
  656. data/lib/datadog/tracing/contrib/que/configuration/settings.rb +2 -2
  657. data/lib/datadog/tracing/contrib/que/ext.rb +19 -19
  658. data/lib/datadog/tracing/contrib/que/integration.rb +6 -6
  659. data/lib/datadog/tracing/contrib/que/patcher.rb +1 -1
  660. data/lib/datadog/tracing/contrib/que/tracer.rb +1 -1
  661. data/lib/datadog/tracing/contrib/racecar/configuration/settings.rb +3 -3
  662. data/lib/datadog/tracing/contrib/racecar/event.rb +4 -4
  663. data/lib/datadog/tracing/contrib/racecar/events/batch.rb +3 -3
  664. data/lib/datadog/tracing/contrib/racecar/events/consume.rb +3 -3
  665. data/lib/datadog/tracing/contrib/racecar/events/message.rb +3 -3
  666. data/lib/datadog/tracing/contrib/racecar/events.rb +3 -3
  667. data/lib/datadog/tracing/contrib/racecar/ext.rb +18 -18
  668. data/lib/datadog/tracing/contrib/racecar/integration.rb +5 -5
  669. data/lib/datadog/tracing/contrib/racecar/patcher.rb +3 -3
  670. data/lib/datadog/tracing/contrib/rack/configuration/settings.rb +2 -2
  671. data/lib/datadog/tracing/contrib/rack/ext.rb +33 -33
  672. data/lib/datadog/tracing/contrib/rack/header_collection.rb +3 -3
  673. data/lib/datadog/tracing/contrib/rack/header_tagging.rb +4 -4
  674. data/lib/datadog/tracing/contrib/rack/integration.rb +6 -6
  675. data/lib/datadog/tracing/contrib/rack/middlewares.rb +24 -24
  676. data/lib/datadog/tracing/contrib/rack/patcher.rb +3 -3
  677. data/lib/datadog/tracing/contrib/rack/request_queue.rb +3 -3
  678. data/lib/datadog/tracing/contrib/rack/route_inference.rb +11 -11
  679. data/lib/datadog/tracing/contrib/rack/trace_proxy_middleware.rb +15 -15
  680. data/lib/datadog/tracing/contrib/rails/auto_instrument_railtie.rb +1 -1
  681. data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +3 -3
  682. data/lib/datadog/tracing/contrib/rails/ext.rb +15 -15
  683. data/lib/datadog/tracing/contrib/rails/framework.rb +11 -11
  684. data/lib/datadog/tracing/contrib/rails/integration.rb +5 -5
  685. data/lib/datadog/tracing/contrib/rails/middlewares.rb +1 -1
  686. data/lib/datadog/tracing/contrib/rails/patcher.rb +8 -8
  687. data/lib/datadog/tracing/contrib/rails/railtie.rb +4 -4
  688. data/lib/datadog/tracing/contrib/rails/runner.rb +1 -1
  689. data/lib/datadog/tracing/contrib/rake/configuration/settings.rb +3 -3
  690. data/lib/datadog/tracing/contrib/rake/ext.rb +12 -12
  691. data/lib/datadog/tracing/contrib/rake/instrumentation.rb +4 -4
  692. data/lib/datadog/tracing/contrib/rake/integration.rb +5 -5
  693. data/lib/datadog/tracing/contrib/rake/patcher.rb +3 -3
  694. data/lib/datadog/tracing/contrib/redis/configuration/resolver.rb +2 -2
  695. data/lib/datadog/tracing/contrib/redis/configuration/settings.rb +2 -2
  696. data/lib/datadog/tracing/contrib/redis/ext.rb +16 -16
  697. data/lib/datadog/tracing/contrib/redis/instrumentation.rb +6 -6
  698. data/lib/datadog/tracing/contrib/redis/integration.rb +7 -7
  699. data/lib/datadog/tracing/contrib/redis/patcher.rb +10 -10
  700. data/lib/datadog/tracing/contrib/redis/quantize.rb +4 -4
  701. data/lib/datadog/tracing/contrib/redis/tags.rb +5 -5
  702. data/lib/datadog/tracing/contrib/redis/trace_middleware.rb +5 -5
  703. data/lib/datadog/tracing/contrib/resque/configuration/settings.rb +2 -2
  704. data/lib/datadog/tracing/contrib/resque/ext.rb +7 -7
  705. data/lib/datadog/tracing/contrib/resque/integration.rb +5 -5
  706. data/lib/datadog/tracing/contrib/resque/patcher.rb +3 -3
  707. data/lib/datadog/tracing/contrib/resque/resque_job.rb +5 -5
  708. data/lib/datadog/tracing/contrib/rest_client/configuration/settings.rb +2 -2
  709. data/lib/datadog/tracing/contrib/rest_client/ext.rb +10 -10
  710. data/lib/datadog/tracing/contrib/rest_client/integration.rb +6 -6
  711. data/lib/datadog/tracing/contrib/rest_client/patcher.rb +2 -2
  712. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +5 -5
  713. data/lib/datadog/tracing/contrib/roda/configuration/settings.rb +2 -2
  714. data/lib/datadog/tracing/contrib/roda/ext.rb +6 -6
  715. data/lib/datadog/tracing/contrib/roda/instrumentation.rb +4 -4
  716. data/lib/datadog/tracing/contrib/roda/integration.rb +6 -6
  717. data/lib/datadog/tracing/contrib/roda/patcher.rb +3 -3
  718. data/lib/datadog/tracing/contrib/semantic_logger/configuration/settings.rb +2 -2
  719. data/lib/datadog/tracing/contrib/semantic_logger/ext.rb +1 -1
  720. data/lib/datadog/tracing/contrib/semantic_logger/integration.rb +5 -5
  721. data/lib/datadog/tracing/contrib/semantic_logger/patcher.rb +2 -2
  722. data/lib/datadog/tracing/contrib/sequel/configuration/settings.rb +2 -2
  723. data/lib/datadog/tracing/contrib/sequel/database.rb +6 -10
  724. data/lib/datadog/tracing/contrib/sequel/dataset.rb +5 -5
  725. data/lib/datadog/tracing/contrib/sequel/ext.rb +12 -8
  726. data/lib/datadog/tracing/contrib/sequel/integration.rb +5 -5
  727. data/lib/datadog/tracing/contrib/sequel/patcher.rb +3 -3
  728. data/lib/datadog/tracing/contrib/sequel/utils.rb +115 -10
  729. data/lib/datadog/tracing/contrib/shoryuken/configuration/settings.rb +2 -2
  730. data/lib/datadog/tracing/contrib/shoryuken/ext.rb +12 -12
  731. data/lib/datadog/tracing/contrib/shoryuken/integration.rb +6 -6
  732. data/lib/datadog/tracing/contrib/shoryuken/patcher.rb +1 -1
  733. data/lib/datadog/tracing/contrib/shoryuken/tracer.rb +2 -2
  734. data/lib/datadog/tracing/contrib/sidekiq/client_tracer.rb +8 -8
  735. data/lib/datadog/tracing/contrib/sidekiq/configuration/settings.rb +2 -2
  736. data/lib/datadog/tracing/contrib/sidekiq/distributed/propagation.rb +9 -9
  737. data/lib/datadog/tracing/contrib/sidekiq/ext.rb +30 -30
  738. data/lib/datadog/tracing/contrib/sidekiq/integration.rb +7 -7
  739. data/lib/datadog/tracing/contrib/sidekiq/patcher.rb +8 -8
  740. data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +14 -14
  741. data/lib/datadog/tracing/contrib/sidekiq/utils.rb +9 -9
  742. data/lib/datadog/tracing/contrib/sidekiq.rb +6 -6
  743. data/lib/datadog/tracing/contrib/sinatra/configuration/settings.rb +2 -2
  744. data/lib/datadog/tracing/contrib/sinatra/env.rb +6 -6
  745. data/lib/datadog/tracing/contrib/sinatra/ext.rb +17 -17
  746. data/lib/datadog/tracing/contrib/sinatra/framework.rb +2 -2
  747. data/lib/datadog/tracing/contrib/sinatra/integration.rb +5 -5
  748. data/lib/datadog/tracing/contrib/sinatra/patcher.rb +5 -5
  749. data/lib/datadog/tracing/contrib/sinatra/tracer.rb +10 -10
  750. data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +8 -8
  751. data/lib/datadog/tracing/contrib/sneakers/configuration/settings.rb +1 -1
  752. data/lib/datadog/tracing/contrib/sneakers/ext.rb +12 -12
  753. data/lib/datadog/tracing/contrib/sneakers/integration.rb +7 -7
  754. data/lib/datadog/tracing/contrib/sneakers/patcher.rb +2 -2
  755. data/lib/datadog/tracing/contrib/sneakers/tracer.rb +3 -3
  756. data/lib/datadog/tracing/contrib/span_attribute_schema.rb +2 -2
  757. data/lib/datadog/tracing/contrib/status_range_env_parser.rb +2 -2
  758. data/lib/datadog/tracing/contrib/status_range_matcher.rb +1 -1
  759. data/lib/datadog/tracing/contrib/stripe/configuration/settings.rb +2 -2
  760. data/lib/datadog/tracing/contrib/stripe/ext.rb +12 -12
  761. data/lib/datadog/tracing/contrib/stripe/integration.rb +5 -5
  762. data/lib/datadog/tracing/contrib/stripe/patcher.rb +2 -2
  763. data/lib/datadog/tracing/contrib/stripe/request.rb +3 -3
  764. data/lib/datadog/tracing/contrib/sucker_punch/configuration/settings.rb +2 -2
  765. data/lib/datadog/tracing/contrib/sucker_punch/exception_handler.rb +1 -1
  766. data/lib/datadog/tracing/contrib/sucker_punch/ext.rb +13 -13
  767. data/lib/datadog/tracing/contrib/sucker_punch/instrumentation.rb +4 -4
  768. data/lib/datadog/tracing/contrib/sucker_punch/integration.rb +5 -5
  769. data/lib/datadog/tracing/contrib/sucker_punch/patcher.rb +4 -4
  770. data/lib/datadog/tracing/contrib/trilogy/configuration/settings.rb +3 -3
  771. data/lib/datadog/tracing/contrib/trilogy/ext.rb +11 -11
  772. data/lib/datadog/tracing/contrib/trilogy/instrumentation.rb +6 -6
  773. data/lib/datadog/tracing/contrib/trilogy/integration.rb +5 -5
  774. data/lib/datadog/tracing/contrib/trilogy/patcher.rb +2 -2
  775. data/lib/datadog/tracing/contrib/utils/database.rb +5 -5
  776. data/lib/datadog/tracing/contrib/utils/quantization/hash_formatter.rb +1 -1
  777. data/lib/datadog/tracing/contrib/utils/quantization/http.rb +10 -10
  778. data/lib/datadog/tracing/contrib/waterdrop/configuration/settings.rb +2 -2
  779. data/lib/datadog/tracing/contrib/waterdrop/distributed/propagation.rb +8 -8
  780. data/lib/datadog/tracing/contrib/waterdrop/ext.rb +4 -4
  781. data/lib/datadog/tracing/contrib/waterdrop/integration.rb +5 -5
  782. data/lib/datadog/tracing/contrib/waterdrop/middleware.rb +2 -2
  783. data/lib/datadog/tracing/contrib/waterdrop/patcher.rb +7 -7
  784. data/lib/datadog/tracing/contrib/waterdrop/producer.rb +3 -3
  785. data/lib/datadog/tracing/contrib/waterdrop.rb +6 -6
  786. data/lib/datadog/tracing/contrib.rb +54 -54
  787. data/lib/datadog/tracing/correlation.rb +10 -10
  788. data/lib/datadog/tracing/diagnostics/environment_logger.rb +9 -9
  789. data/lib/datadog/tracing/diagnostics/ext.rb +19 -19
  790. data/lib/datadog/tracing/diagnostics/health.rb +1 -1
  791. data/lib/datadog/tracing/distributed/b3_multi.rb +8 -8
  792. data/lib/datadog/tracing/distributed/b3_single.rb +4 -4
  793. data/lib/datadog/tracing/distributed/baggage.rb +28 -27
  794. data/lib/datadog/tracing/distributed/datadog.rb +21 -21
  795. data/lib/datadog/tracing/distributed/datadog_tags_codec.rb +3 -3
  796. data/lib/datadog/tracing/distributed/fetcher.rb +1 -1
  797. data/lib/datadog/tracing/distributed/helpers.rb +3 -3
  798. data/lib/datadog/tracing/distributed/propagation.rb +12 -12
  799. data/lib/datadog/tracing/distributed/propagation_policy.rb +5 -0
  800. data/lib/datadog/tracing/distributed/trace_context.rb +33 -33
  801. data/lib/datadog/tracing/event.rb +1 -1
  802. data/lib/datadog/tracing/ext.rb +9 -0
  803. data/lib/datadog/tracing/metadata/analytics.rb +2 -2
  804. data/lib/datadog/tracing/metadata/errors.rb +4 -4
  805. data/lib/datadog/tracing/metadata/ext.rb +69 -69
  806. data/lib/datadog/tracing/metadata/metastruct.rb +1 -1
  807. data/lib/datadog/tracing/metadata/metastruct_tagging.rb +1 -1
  808. data/lib/datadog/tracing/metadata/tagging.rb +2 -2
  809. data/lib/datadog/tracing/metadata.rb +4 -4
  810. data/lib/datadog/tracing/pipeline/span_filter.rb +2 -2
  811. data/lib/datadog/tracing/pipeline.rb +2 -2
  812. data/lib/datadog/tracing/remote.rb +45 -7
  813. data/lib/datadog/tracing/sampling/all_sampler.rb +1 -1
  814. data/lib/datadog/tracing/sampling/ext.rb +8 -8
  815. data/lib/datadog/tracing/sampling/matcher.rb +4 -4
  816. data/lib/datadog/tracing/sampling/priority_sampler.rb +4 -4
  817. data/lib/datadog/tracing/sampling/rate_by_key_sampler.rb +3 -3
  818. data/lib/datadog/tracing/sampling/rate_by_service_sampler.rb +2 -2
  819. data/lib/datadog/tracing/sampling/rate_sampler.rb +2 -2
  820. data/lib/datadog/tracing/sampling/rule.rb +4 -4
  821. data/lib/datadog/tracing/sampling/rule_sampler.rb +12 -12
  822. data/lib/datadog/tracing/sampling/sampler.rb +2 -2
  823. data/lib/datadog/tracing/sampling/span/ext.rb +3 -3
  824. data/lib/datadog/tracing/sampling/span/matcher.rb +2 -2
  825. data/lib/datadog/tracing/sampling/span/rule.rb +1 -1
  826. data/lib/datadog/tracing/sampling/span/rule_parser.rb +8 -8
  827. data/lib/datadog/tracing/span.rb +8 -8
  828. data/lib/datadog/tracing/span_event.rb +5 -5
  829. data/lib/datadog/tracing/span_operation.rb +21 -21
  830. data/lib/datadog/tracing/sync_writer.rb +12 -7
  831. data/lib/datadog/tracing/trace_operation.rb +11 -11
  832. data/lib/datadog/tracing/trace_segment.rb +10 -10
  833. data/lib/datadog/tracing/tracer.rb +23 -15
  834. data/lib/datadog/tracing/transport/http/client.rb +4 -4
  835. data/lib/datadog/tracing/transport/http/statistics.rb +2 -2
  836. data/lib/datadog/tracing/transport/http/traces.rb +8 -8
  837. data/lib/datadog/tracing/transport/http.rb +10 -10
  838. data/lib/datadog/tracing/transport/io/client.rb +2 -2
  839. data/lib/datadog/tracing/transport/io/response.rb +1 -1
  840. data/lib/datadog/tracing/transport/io/traces.rb +4 -4
  841. data/lib/datadog/tracing/transport/io.rb +3 -3
  842. data/lib/datadog/tracing/transport/native/response.rb +71 -0
  843. data/lib/datadog/tracing/transport/native.rb +363 -0
  844. data/lib/datadog/tracing/transport/serializable_trace.rb +19 -19
  845. data/lib/datadog/tracing/transport/statistics.rb +2 -2
  846. data/lib/datadog/tracing/transport/trace_formatter.rb +10 -10
  847. data/lib/datadog/tracing/transport/traces.rb +8 -8
  848. data/lib/datadog/tracing/utils.rb +2 -2
  849. data/lib/datadog/tracing/workers.rb +2 -2
  850. data/lib/datadog/tracing/writer.rb +21 -8
  851. data/lib/datadog/tracing.rb +3 -3
  852. data/lib/datadog/version.rb +4 -4
  853. data/lib/datadog.rb +13 -12
  854. metadata +33 -8
@@ -1,20 +1,19 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'logger'
4
-
5
- require_relative 'base'
6
- require_relative 'ext'
7
- require_relative '../environment/execution'
8
- require_relative '../environment/ext'
9
- require_relative '../environment/process'
10
- require_relative '../runtime/ext'
11
- require_relative '../telemetry/ext'
12
- require_relative '../remote/ext'
13
- require_relative '../../profiling/ext'
14
-
15
- require_relative '../../tracing/configuration/settings'
16
- require_relative '../../opentelemetry/configuration/settings'
17
- require_relative '../../symbol_database/configuration'
3
+ require "logger"
4
+
5
+ require_relative "base"
6
+ require_relative "ext"
7
+ require_relative "../environment/execution"
8
+ require_relative "../environment/ext"
9
+ require_relative "../environment/process"
10
+ require_relative "../runtime/ext"
11
+ require_relative "../telemetry/ext"
12
+ require_relative "../remote/ext"
13
+ require_relative "../../profiling/ext"
14
+
15
+ require_relative "../../tracing/configuration/settings"
16
+ require_relative "../../opentelemetry/configuration/settings"
18
17
 
19
18
  module Datadog
20
19
  module Core
@@ -135,13 +134,13 @@ module Datadog
135
134
  value = value.strip.downcase
136
135
  # Debug is enabled when DD_TRACE_DEBUG is true or 1 OR
137
136
  # when OTEL_LOG_LEVEL is set to debug
138
- ['true', '1', 'debug'].include?(value)
137
+ ["true", "1", "debug"].include?(value)
139
138
  end
140
139
  end
141
140
  o.after_set do |enabled|
142
141
  # Enable rich debug print statements.
143
142
  # We do not need to unnecessarily load 'pp' unless in debugging mode.
144
- require 'pp' if enabled # standard:disable Lint/RedundantRequireStatement
143
+ require "pp" if enabled # standard:disable Lint/RedundantRequireStatement
145
144
  end
146
145
  end
147
146
 
@@ -277,7 +276,7 @@ module Datadog
277
276
  # @default `DD_PROFILING_ALLOCATION_ENABLED` environment variable as a boolean, otherwise `false`
278
277
  option :allocation_enabled do |o|
279
278
  o.type :bool
280
- o.env 'DD_PROFILING_ALLOCATION_ENABLED'
279
+ o.env "DD_PROFILING_ALLOCATION_ENABLED"
281
280
  o.default false
282
281
  end
283
282
 
@@ -325,7 +324,7 @@ module Datadog
325
324
  # @default `DD_PROFILING_GC_ENABLED` environment variable, otherwise `true`
326
325
  option :gc_enabled do |o|
327
326
  o.type :bool
328
- o.env 'DD_PROFILING_GC_ENABLED'
327
+ o.env "DD_PROFILING_GC_ENABLED"
329
328
  o.default true
330
329
  end
331
330
 
@@ -348,7 +347,7 @@ module Datadog
348
347
  # @default `DD_PROFILING_EXPERIMENTAL_HEAP_ENABLED` environment variable as a boolean, otherwise `false`
349
348
  option :experimental_heap_enabled do |o|
350
349
  o.type :bool
351
- o.env 'DD_PROFILING_EXPERIMENTAL_HEAP_ENABLED'
350
+ o.env "DD_PROFILING_EXPERIMENTAL_HEAP_ENABLED"
352
351
  o.default false
353
352
  end
354
353
 
@@ -362,7 +361,7 @@ module Datadog
362
361
  # follows the value of `experimental_heap_enabled`.
363
362
  option :experimental_heap_size_enabled do |o|
364
363
  o.type :bool
365
- o.env 'DD_PROFILING_EXPERIMENTAL_HEAP_SIZE_ENABLED'
364
+ o.env "DD_PROFILING_EXPERIMENTAL_HEAP_SIZE_ENABLED"
366
365
  o.default true # This gets ANDed with experimental_heap_enabled in the profiler component.
367
366
  end
368
367
 
@@ -380,7 +379,7 @@ module Datadog
380
379
  # @default `DD_PROFILING_EXPERIMENTAL_HEAP_SAMPLE_RATE` environment variable, otherwise `1`.
381
380
  option :experimental_heap_sample_rate do |o|
382
381
  o.type :int
383
- o.env 'DD_PROFILING_EXPERIMENTAL_HEAP_SAMPLE_RATE'
382
+ o.env "DD_PROFILING_EXPERIMENTAL_HEAP_SAMPLE_RATE"
384
383
  o.default 1
385
384
  end
386
385
 
@@ -391,20 +390,20 @@ module Datadog
391
390
  # @default `DD_PROFILING_SKIP_MYSQL2_CHECK` environment variable, otherwise `false`
392
391
  option :skip_mysql2_check do |o|
393
392
  o.type :bool
394
- o.env 'DD_PROFILING_SKIP_MYSQL2_CHECK'
393
+ o.env "DD_PROFILING_SKIP_MYSQL2_CHECK"
395
394
  o.default false
396
395
  end
397
396
 
398
397
  # DEV-3.0: Remove `timeline_enabled` option
399
398
  option :timeline_enabled do |o|
400
399
  o.type :bool
401
- o.env 'DD_PROFILING_TIMELINE_ENABLED'
400
+ o.env "DD_PROFILING_TIMELINE_ENABLED"
402
401
  o.default true
403
402
  o.after_set do |_, _, precedence|
404
403
  unless precedence == Datadog::Core::Configuration::Option::Precedence::DEFAULT
405
404
  Core.log_deprecation(key: :timeline_enabled) do
406
- 'The profiling.advanced.timeline_enabled setting has been deprecated for removal and no longer does anything. ' \
407
- 'Please remove it from your Datadog.configure block and do not set DD_PROFILING_TIMELINE_ENABLED.'
405
+ "The profiling.advanced.timeline_enabled setting has been deprecated for removal and no longer does anything. " \
406
+ "Please remove it from your Datadog.configure block and do not set DD_PROFILING_TIMELINE_ENABLED."
408
407
  end
409
408
  end
410
409
  end
@@ -430,12 +429,12 @@ module Datadog
430
429
  #
431
430
  # @default `DD_PROFILING_NO_SIGNALS_WORKAROUND_ENABLED` environment variable as a boolean, otherwise `:auto`
432
431
  option :no_signals_workaround_enabled do |o|
433
- o.env 'DD_PROFILING_NO_SIGNALS_WORKAROUND_ENABLED'
432
+ o.env "DD_PROFILING_NO_SIGNALS_WORKAROUND_ENABLED"
434
433
  o.default :auto
435
434
  o.env_parser do |value|
436
435
  if value
437
436
  value = value.strip.downcase
438
- ['true', '1'].include?(value)
437
+ ["true", "1"].include?(value)
439
438
  end
440
439
  end
441
440
  end
@@ -449,7 +448,7 @@ module Datadog
449
448
  # @default `DD_PROFILING_DIR_INTERRUPTION_WORKAROUND_ENABLED` environment variable as a boolean,
450
449
  # otherwise `true`
451
450
  option :dir_interruption_workaround_enabled do |o|
452
- o.env 'DD_PROFILING_DIR_INTERRUPTION_WORKAROUND_ENABLED'
451
+ o.env "DD_PROFILING_DIR_INTERRUPTION_WORKAROUND_ENABLED"
453
452
  o.type :bool
454
453
  o.default true
455
454
  end
@@ -466,7 +465,7 @@ module Datadog
466
465
  # @default `DD_PROFILING_SHUTDOWN_ON_EXEC_ENABLED` environment variable as a boolean,
467
466
  # otherwise `true`
468
467
  option :shutdown_on_exec_enabled do |o|
469
- o.env 'DD_PROFILING_SHUTDOWN_ON_EXEC_ENABLED'
468
+ o.env "DD_PROFILING_SHUTDOWN_ON_EXEC_ENABLED"
470
469
  o.type :bool
471
470
  o.default true
472
471
  end
@@ -484,7 +483,7 @@ module Datadog
484
483
  # @default `DD_PROFILING_OVERHEAD_TARGET_PERCENTAGE` as a float, otherwise 2.0
485
484
  option :overhead_target_percentage do |o|
486
485
  o.type :float
487
- o.env 'DD_PROFILING_OVERHEAD_TARGET_PERCENTAGE'
486
+ o.env "DD_PROFILING_OVERHEAD_TARGET_PERCENTAGE"
488
487
  o.default 2.0
489
488
  end
490
489
 
@@ -495,7 +494,7 @@ module Datadog
495
494
  # @default `DD_PROFILING_UPLOAD_PERIOD` environment variable, otherwise 60
496
495
  option :upload_period_seconds do |o|
497
496
  o.type :int
498
- o.env 'DD_PROFILING_UPLOAD_PERIOD'
497
+ o.env "DD_PROFILING_UPLOAD_PERIOD"
499
498
  o.default 60
500
499
  end
501
500
 
@@ -504,8 +503,8 @@ module Datadog
504
503
  o.after_set do |_, _, precedence|
505
504
  unless precedence == Datadog::Core::Configuration::Option::Precedence::DEFAULT
506
505
  Core.log_deprecation(key: :experimental_crash_tracking_enabled) do
507
- 'The profiling.advanced.experimental_crash_tracking_enabled setting has been deprecated for removal ' \
508
- 'and no longer does anything. Please remove it from your Datadog.configure block.'
506
+ "The profiling.advanced.experimental_crash_tracking_enabled setting has been deprecated for removal " \
507
+ "and no longer does anything. Please remove it from your Datadog.configure block."
509
508
  end
510
509
  end
511
510
  end
@@ -518,9 +517,9 @@ module Datadog
518
517
  o.after_set do |_, _, precedence|
519
518
  unless precedence == Datadog::Core::Configuration::Option::Precedence::DEFAULT
520
519
  Datadog.logger.warn(
521
- 'The profiling.advanced.preview_gvl_enabled setting has been deprecated for removal and ' \
522
- 'no longer does anything. Please remove it from your Datadog.configure block. ' \
523
- 'GVL profiling is now controlled by the profiling.advanced.gvl_enabled setting instead.'
520
+ "The profiling.advanced.preview_gvl_enabled setting has been deprecated for removal and " \
521
+ "no longer does anything. Please remove it from your Datadog.configure block. " \
522
+ "GVL profiling is now controlled by the profiling.advanced.gvl_enabled setting instead."
524
523
  )
525
524
  end
526
525
  end
@@ -534,7 +533,7 @@ module Datadog
534
533
  option :gvl_enabled do |o|
535
534
  o.type :bool
536
535
  # Note: Deprecated alias (DD_PROFILING_PREVIEW_GVL_ENABLED) defined in supported-configurations.json
537
- o.env 'DD_PROFILING_GVL_ENABLED'
536
+ o.env "DD_PROFILING_GVL_ENABLED"
538
537
  o.default true
539
538
  end
540
539
 
@@ -556,24 +555,24 @@ module Datadog
556
555
  #
557
556
  # @default false
558
557
  option :preview_otel_context_enabled do |o|
559
- o.env 'DD_PROFILING_PREVIEW_OTEL_CONTEXT_ENABLED'
558
+ o.env "DD_PROFILING_PREVIEW_OTEL_CONTEXT_ENABLED"
560
559
  o.default false
561
560
  o.env_parser do |value|
562
561
  if value
563
562
  value = value.strip.downcase
564
- if ['only', 'both'].include?(value)
563
+ if ["only", "both"].include?(value)
565
564
  value
566
- elsif ['true', '1'].include?(value)
567
- 'both'
565
+ elsif ["true", "1"].include?(value)
566
+ "both"
568
567
  else
569
- 'false'
568
+ "false"
570
569
  end
571
570
  end
572
571
  end
573
572
  o.setter do |value|
574
573
  if value == true
575
574
  :both
576
- elsif ['only', 'both', :only, :both].include?(value)
575
+ elsif ["only", "both", :only, :both].include?(value)
577
576
  value.to_sym
578
577
  else
579
578
  false
@@ -589,7 +588,7 @@ module Datadog
589
588
  # @default true
590
589
  option :heap_clean_after_gc_enabled do |o|
591
590
  o.type :bool
592
- o.env 'DD_PROFILING_HEAP_CLEAN_AFTER_GC_ENABLED'
591
+ o.env "DD_PROFILING_HEAP_CLEAN_AFTER_GC_ENABLED"
593
592
  o.default true
594
593
  end
595
594
 
@@ -599,7 +598,7 @@ module Datadog
599
598
  # @default true
600
599
  option :native_filenames_enabled do |o|
601
600
  o.type :bool
602
- o.env 'DD_PROFILING_NATIVE_FILENAMES_ENABLED'
601
+ o.env "DD_PROFILING_NATIVE_FILENAMES_ENABLED"
603
602
  o.default true
604
603
  end
605
604
 
@@ -616,9 +615,9 @@ module Datadog
616
615
  # @default true on Ruby 3.2.5+ / Ruby 3.3.4+, false on older Rubies
617
616
  option :sighandler_sampling_enabled do |o|
618
617
  o.type :bool
619
- o.env 'DD_PROFILING_SIGHANDLER_SAMPLING_ENABLED'
618
+ o.env "DD_PROFILING_SIGHANDLER_SAMPLING_ENABLED"
620
619
  o.default do
621
- RubyVersion.is?('>= 3.2.5') && !RubyVersion.is?('>= 3.3', '< 3.3.4')
620
+ RubyVersion.is?(">= 3.2.5") && !RubyVersion.is?(">= 3.3", "< 3.3.4")
622
621
  end
623
622
  end
624
623
 
@@ -642,9 +641,16 @@ module Datadog
642
641
  # @default `DD_PROFILING_EXPERIMENTAL_USE_SYSTEM_DNS` environment variable as a boolean, otherwise `true`
643
642
  option :experimental_use_system_dns do |o|
644
643
  o.type :bool
645
- o.env 'DD_PROFILING_EXPERIMENTAL_USE_SYSTEM_DNS'
644
+ o.env "DD_PROFILING_EXPERIMENTAL_USE_SYSTEM_DNS"
646
645
  o.default true
647
646
  end
647
+
648
+ # Whether the profiler samples include the class/module name in stack frames, like `Foo::Bar#baz`, or not (`baz`)
649
+ option :experimental_show_classes_enabled do |o|
650
+ o.type :bool
651
+ o.env "DD_PROFILING_EXPERIMENTAL_SHOW_CLASSES_ENABLED"
652
+ o.default false
653
+ end
648
654
  end
649
655
 
650
656
  # @public_api
@@ -676,7 +682,7 @@ module Datadog
676
682
  option :experimental_runtime_id_enabled do |o|
677
683
  o.type :bool
678
684
  # Note: Alias (DD_TRACE_EXPERIMENTAL_RUNTIME_ID_ENABLED) defined in supported-configurations.json
679
- o.env 'DD_RUNTIME_METRICS_RUNTIME_ID_ENABLED'
685
+ o.env "DD_RUNTIME_METRICS_RUNTIME_ID_ENABLED"
680
686
  o.default false
681
687
  end
682
688
 
@@ -740,7 +746,7 @@ module Datadog
740
746
  result = {}
741
747
  unless env_value.nil? || env_value.empty?
742
748
  # falling back to comma as separator
743
- sep = env_value.include?(',') ? ',' : ' '
749
+ sep = env_value.include?(",") ? "," : " "
744
750
  # split by separator
745
751
  env_value.split(sep).each do |tag|
746
752
  tag.strip!
@@ -748,12 +754,12 @@ module Datadog
748
754
 
749
755
  # tag by : or = (for OpenTelemetry)
750
756
  key, val = tag.split(/[:=]/, 2).map(&:strip)
751
- val ||= ''
757
+ val ||= ""
752
758
  # maps OpenTelemetry semantic attributes to Datadog tags
753
759
  key = case key.downcase
754
- when 'deployment.environment' then 'env'
755
- when 'service.version' then 'version'
756
- when 'service.name' then 'service'
760
+ when "deployment.environment" then "env"
761
+ when "service.version" then "version"
762
+ when "service.name" then "service"
757
763
  else key
758
764
  end
759
765
  result[key] = val unless key.empty?
@@ -793,55 +799,40 @@ module Datadog
793
799
  end
794
800
  end
795
801
 
796
- # The time provider used by Datadog. It must respect the interface of [Time](https://ruby-doc.org/core-3.0.1/Time.html).
797
- #
798
- # When testing, it can be helpful to use a different time provider.
799
- #
800
- # For [Timecop](https://rubygems.org/gems/timecop), for example, `->{ Time.now_without_mock_time }`
801
- # allows Datadog features to use the real wall time when time is frozen.
802
- #
803
- # @default `->{ Time.now }`
804
- # @return [Proc<Time>]
802
+ # Deprecated and no longer does anything.
803
+ # This gem already takes care to not be affected by timecop.
804
+ # DEV-3.0: Remove `time_now_provider` option
805
805
  option :time_now_provider do |o|
806
- o.default_proc { ::Time.now }
806
+ o.default_proc { Datadog::Core::Utils::Time.now }
807
807
  o.type :proc
808
-
809
- o.after_set do |time_provider|
810
- Core::Utils::Time.now_provider = time_provider
811
- end
812
-
813
- o.resetter do |_value|
814
- # TODO: Resetter needs access to the default value
815
- # TODO: to help reduce duplication.
816
- -> { ::Time.now }.tap do |default|
817
- Core::Utils::Time.now_provider = default
808
+ o.after_set do |_, _, precedence|
809
+ unless precedence == Datadog::Core::Configuration::Option::Precedence::DEFAULT
810
+ unless defined?(Datadog::CI) # the datadog-ci gem needs to work with any datadog gem version and not warn
811
+ Core.log_deprecation(key: :time_now_provider) do
812
+ "The time_now_provider setting has been deprecated for removal " \
813
+ "and no longer does anything. Please remove it from your Datadog.configure block. " \
814
+ "The datadog gem always uses the real non-mocked time, even when the timecop gem monkey-patches Time."
815
+ end
816
+ end
818
817
  end
819
818
  end
820
819
  end
821
820
 
822
- # The monotonic clock time provider used by Datadog. This option is internal and is used by `datadog-ci`
823
- # gem to avoid traces' durations being skewed by timecop.
824
- #
825
- # It must respect the interface of [Datadog::Core::Utils::Time#get_time] method.
826
- #
827
- # For [Timecop](https://rubygems.org/gems/timecop), for example,
828
- # `->(unit = :float_second) { ::Process.clock_gettime_without_mock(::Process::CLOCK_MONOTONIC, unit) }`
829
- # allows Datadog features to use the real monotonic time when time is frozen with
830
- # `Timecop.mock_process_clock = true`.
831
- #
832
- # @default `->(unit = :float_second) { ::Process.clock_gettime(::Process::CLOCK_MONOTONIC, unit)}`
833
- # @return [Proc<Numeric>]
821
+ # Deprecated and no longer does anything.
822
+ # This gem already takes care to not be affected by timecop.
823
+ # DEV-3.0: Remove `get_time_provider` option
834
824
  option :get_time_provider do |o|
835
- o.default_proc { |unit = :float_second| ::Process.clock_gettime(::Process::CLOCK_MONOTONIC, unit) }
825
+ o.default_proc { |unit = :float_second| Datadog::Core::Utils::Time.get_time(unit) }
836
826
  o.type :proc
837
-
838
- o.after_set do |get_time_provider|
839
- Core::Utils::Time.get_time_provider = get_time_provider
840
- end
841
-
842
- o.resetter do |_value|
843
- ->(unit = :float_second) { ::Process.clock_gettime(::Process::CLOCK_MONOTONIC, unit) }.tap do |default|
844
- Core::Utils::Time.get_time_provider = default
827
+ o.after_set do |_, _, precedence|
828
+ unless precedence == Datadog::Core::Configuration::Option::Precedence::DEFAULT
829
+ unless defined?(Datadog::CI) # the datadog-ci gem needs to work with any datadog gem version and not warn
830
+ Core.log_deprecation(key: :get_time_provider) do
831
+ "The get_time_provider setting has been deprecated for removal " \
832
+ "and no longer does anything. Please remove it from your Datadog.configure block. " \
833
+ "The datadog gem always uses the real non-mocked time, even when the timecop gem monkey-patches Process.clock_gettime."
834
+ end
835
+ end
845
836
  end
846
837
  end
847
838
  end
@@ -880,8 +871,8 @@ module Datadog
880
871
  o.default do
881
872
  if Datadog::Core::Environment::Execution.development?
882
873
  Datadog.logger.debug do
883
- 'Development environment detected, disabling Telemetry. ' \
884
- 'You can enable it with DD_INSTRUMENTATION_TELEMETRY_ENABLED=true.'
874
+ "Development environment detected, disabling Telemetry. " \
875
+ "You can enable it with DD_INSTRUMENTATION_TELEMETRY_ENABLED=true."
885
876
  end
886
877
  false
887
878
  else
@@ -1037,8 +1028,8 @@ module Datadog
1037
1028
  o.default do
1038
1029
  if Datadog::Core::Environment::Execution.development?
1039
1030
  Datadog.logger.debug do
1040
- 'Development environment detected, disabling Remote Configuration. ' \
1041
- 'You can enable it with DD_REMOTE_CONFIGURATION_ENABLED=true.'
1031
+ "Development environment detected, disabling Remote Configuration. " \
1032
+ "You can enable it with DD_REMOTE_CONFIGURATION_ENABLED=true."
1042
1033
  end
1043
1034
  false
1044
1035
  else
@@ -1087,7 +1078,7 @@ module Datadog
1087
1078
  option :enabled do |o|
1088
1079
  o.type :bool
1089
1080
  o.default true
1090
- o.env 'DD_CRASHTRACKING_ENABLED'
1081
+ o.env "DD_CRASHTRACKING_ENABLED"
1091
1082
  end
1092
1083
  end
1093
1084
 
@@ -1096,7 +1087,7 @@ module Datadog
1096
1087
  # @default `DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED` environment variable, otherwise `true`
1097
1088
  # @return [Boolean]
1098
1089
  option :experimental_propagate_process_tags_enabled do |o|
1099
- o.env 'DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED'
1090
+ o.env "DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED"
1100
1091
  o.default true
1101
1092
  o.type :bool
1102
1093
  end
@@ -1130,8 +1121,6 @@ module Datadog
1130
1121
  extend Datadog::Tracing::Configuration::Settings
1131
1122
 
1132
1123
  extend Datadog::OpenTelemetry::Configuration::Settings
1133
-
1134
- extend Datadog::SymbolDatabase::Configuration::Settings
1135
1124
  end
1136
1125
  # standard:enable Metrics/BlockLength
1137
1126
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../utils/only_once'
3
+ require_relative "../utils/only_once"
4
4
 
5
5
  module Datadog
6
6
  module Core
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'set'
3
+ require "set"
4
4
 
5
5
  # This file is auto-generated from `supported-configurations.json` by `rake local_config_map:generate`.
6
6
  # Do not change manually! Please refer to `docs/AccessEnvironmentVariables.md` for more information.
@@ -19,10 +19,12 @@ module Datadog
19
19
  "DD_API_SECURITY_DOWNSTREAM_BODY_ANALYSIS_SAMPLE_RATE",
20
20
  "DD_API_SECURITY_ENABLED",
21
21
  "DD_API_SECURITY_ENDPOINT_COLLECTION_ENABLED",
22
+ "DD_API_SECURITY_MAX_DOWNSTREAM_BODY_BYTES",
22
23
  "DD_API_SECURITY_MAX_DOWNSTREAM_REQUEST_BODY_ANALYSIS",
23
24
  "DD_API_SECURITY_REQUEST_SAMPLE_RATE",
24
25
  "DD_API_SECURITY_SAMPLE_DELAY",
25
26
  "DD_APM_TRACING_ENABLED",
27
+ "DD_APPSEC_AGENTIC_ONBOARDING",
26
28
  "DD_APPSEC_AUTOMATED_USER_EVENTS_TRACKING",
27
29
  "DD_APPSEC_AUTO_USER_INSTRUMENTATION_MODE",
28
30
  "DD_APPSEC_BODY_PARSING_SIZE_LIMIT",
@@ -49,6 +51,7 @@ module Datadog
49
51
  "DD_DBM_PROPAGATION_MODE",
50
52
  "DD_DISABLE_DATADOG_RAILS",
51
53
  "DD_DYNAMIC_INSTRUMENTATION_ENABLED",
54
+ "DD_DYNAMIC_INSTRUMENTATION_MAX_TIME_TO_SERIALIZE",
52
55
  "DD_DYNAMIC_INSTRUMENTATION_PROBE_FILE",
53
56
  "DD_DYNAMIC_INSTRUMENTATION_REDACTED_IDENTIFIERS",
54
57
  "DD_DYNAMIC_INSTRUMENTATION_REDACTED_TYPES",
@@ -57,8 +60,11 @@ module Datadog
57
60
  "DD_ERROR_TRACKING_HANDLED_ERRORS",
58
61
  "DD_ERROR_TRACKING_HANDLED_ERRORS_INCLUDE",
59
62
  "DD_EXPERIMENTAL_FLAGGING_PROVIDER_ENABLED",
63
+ "DD_EXPERIMENTAL_FLAGGING_PROVIDER_SPAN_ENRICHMENT_ENABLED",
64
+ "DD_EXPERIMENTAL_NATIVE_TRANSPORT_ENABLED",
60
65
  "DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED",
61
66
  "DD_EXTERNAL_ENV",
67
+ "DD_FLAGGING_EVALUATION_COUNTS_ENABLED",
62
68
  "DD_GIT_COMMIT_SHA",
63
69
  "DD_GIT_REPOSITORY_URL",
64
70
  "DD_HEALTH_METRICS_ENABLED",
@@ -81,6 +87,7 @@ module Datadog
81
87
  "DD_PROFILING_EXPERIMENTAL_HEAP_ENABLED",
82
88
  "DD_PROFILING_EXPERIMENTAL_HEAP_SAMPLE_RATE",
83
89
  "DD_PROFILING_EXPERIMENTAL_HEAP_SIZE_ENABLED",
90
+ "DD_PROFILING_EXPERIMENTAL_SHOW_CLASSES_ENABLED",
84
91
  "DD_PROFILING_EXPERIMENTAL_USE_SYSTEM_DNS",
85
92
  "DD_PROFILING_GC_ENABLED",
86
93
  "DD_PROFILING_GVL_ENABLED",
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'configuration/components'
4
- require_relative 'configuration/settings'
5
- require_relative 'telemetry/emitter'
6
- require_relative 'logger'
7
- require_relative 'pin'
3
+ require_relative "configuration/components"
4
+ require_relative "configuration/settings"
5
+ require_relative "telemetry/emitter"
6
+ require_relative "logger"
7
+ require_relative "pin"
8
8
 
9
9
  module Datadog
10
10
  module Core
@@ -239,7 +239,7 @@ module Datadog
239
239
  rescue ThreadError => e
240
240
  logger_without_components.error(
241
241
  "Detected deadlock during datadog initialization: #{e.class}: #{e.message}. " \
242
- 'Please report this at https://github.com/datadog/dd-trace-rb/blob/master/CONTRIBUTING.md#found-a-bug' \
242
+ "Please report this at https://github.com/datadog/dd-trace-rb/blob/master/CONTRIBUTING.md#found-a-bug" \
243
243
  "\n\tSource:\n\t#{Array(e.backtrace).join("\n\t")}"
244
244
  )
245
245
  nil
@@ -296,7 +296,7 @@ module Datadog
296
296
 
297
297
  @temp_config_logger ||= begin
298
298
  debug_env_value = DATADOG_ENV[Ext::Diagnostics::ENV_DEBUG_ENABLED]&.strip&.downcase
299
- debug_value = debug_env_value == 'true' || debug_env_value == '1'
299
+ debug_value = debug_env_value == "true" || debug_env_value == "1"
300
300
 
301
301
  logger = Core::Logger.new($stderr)
302
302
  # We cannot access config and the default level is INFO, so we need to set the level manually
@@ -317,7 +317,7 @@ module Datadog
317
317
  slow_shutdown = shutdown_thread.join(print_message_treshold_seconds).nil?
318
318
 
319
319
  if slow_shutdown
320
- logger.info 'Reporting remaining data... Press ctrl+c to exit immediately.'
320
+ logger.info "Reporting remaining data... Press ctrl+c to exit immediately."
321
321
  shutdown_thread.join
322
322
  end
323
323
 
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'utils'
4
- require_relative '../../environment/process'
5
- require_relative '../../process_discovery'
3
+ require_relative "utils"
4
+ require_relative "../../environment/process"
5
+ require_relative "../../process_discovery"
6
6
 
7
7
  module Datadog
8
8
  module Core
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'libdatadog'
3
+ require "libdatadog"
4
4
 
5
- require_relative 'tag_builder'
5
+ require_relative "tag_builder"
6
6
 
7
7
  module Datadog
8
8
  module Core
@@ -21,11 +21,11 @@ module Datadog
21
21
  agent_base_url = agent_settings.url
22
22
 
23
23
  ld_library_path = ::Libdatadog.ld_library_path
24
- logger.warn('Missing ld_library_path; cannot enable crash tracking') unless ld_library_path
24
+ logger.warn("Missing ld_library_path; cannot enable crash tracking") unless ld_library_path
25
25
 
26
26
  path_to_crashtracking_receiver_binary = ::Libdatadog.path_to_crashtracking_receiver_binary
27
27
  unless path_to_crashtracking_receiver_binary
28
- logger.warn('Missing path_to_crashtracking_receiver_binary; cannot enable crash tracking')
28
+ logger.warn("Missing path_to_crashtracking_receiver_binary; cannot enable crash tracking")
29
29
  end
30
30
 
31
31
  return unless agent_base_url
@@ -97,10 +97,10 @@ module Datadog
97
97
  # @type var frames_data: Array[[String, String, Integer]]
98
98
  frames_data = backtrace_slice.map do |loc|
99
99
  file = loc.path
100
- file = '<unknown>' if file.nil? || file.empty? || !file.is_a?(String)
100
+ file = "<unknown>" if file.nil? || file.empty? || !file.is_a?(String)
101
101
 
102
102
  function = loc.label
103
- function = '<unknown>' if function.nil? || function.empty? || !function.is_a?(String)
103
+ function = "<unknown>" if function.nil? || function.empty? || !function.is_a?(String)
104
104
 
105
105
  line = loc.lineno
106
106
  line = 0 if line.nil? || line < 0 || !line.is_a?(Integer)
@@ -111,7 +111,7 @@ module Datadog
111
111
  # Add truncation indicator frame if we had to cut off frames
112
112
  if was_truncated
113
113
  truncated_count = all_backtrace_locations.length - max_exception_stack_frames
114
- frames_data << ['<truncated>', "<truncated #{truncated_count} more frames>", 0]
114
+ frames_data << ["<truncated>", "<truncated #{truncated_count} more frames>", 0]
115
115
  end
116
116
 
117
117
  exception_message = exception.message
@@ -123,12 +123,12 @@ module Datadog
123
123
  frames_data,
124
124
  )
125
125
 
126
- logger.debug('Crashtracker failed to report unhandled exception to crash tracker') unless success
126
+ logger.debug("Crashtracker failed to report unhandled exception to crash tracker") unless success
127
127
  end
128
128
 
129
129
  def stop
130
130
  self.class._native_stop
131
- logger.debug('Crash tracking stopped successfully')
131
+ logger.debug("Crash tracking stopped successfully")
132
132
  rescue => e
133
133
  logger.error("Failed to stop crash tracking: #{e.class}: #{e.message}")
134
134
  end
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../tag_builder'
4
- require_relative '../utils'
5
- require_relative '../environment/process'
3
+ require_relative "../tag_builder"
4
+ require_relative "../utils"
5
+ require_relative "../environment/process"
6
6
 
7
7
  module Datadog
8
8
  module Core
@@ -11,12 +11,12 @@ module Datadog
11
11
  module TagBuilder
12
12
  def self.call(settings)
13
13
  hash = Core::TagBuilder.tags(settings).merge(
14
- 'is_crash' => 'true',
14
+ "is_crash" => "true",
15
15
  )
16
16
 
17
17
  if settings.experimental_propagate_process_tags_enabled
18
18
  process_tags = Environment::Process.serialized
19
- hash['process_tags'] = process_tags unless process_tags.empty?
19
+ hash["process_tags"] = process_tags unless process_tags.empty?
20
20
  end
21
21
 
22
22
  Utils.encode_tags(hash)
@@ -19,7 +19,7 @@ module Datadog
19
19
 
20
20
  logger.warn do
21
21
  message = yield
22
- message += ' This will be enforced in the next major release.' if disallowed_next_major
22
+ message += " This will be enforced in the next major release." if disallowed_next_major
23
23
  message
24
24
  end
25
25