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,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../../identity'
4
- require_relative '../../../appsec/trace_keeper'
3
+ require_relative "../../identity"
4
+ require_relative "../../../appsec/trace_keeper"
5
5
 
6
6
  module Datadog
7
7
  module Kit
@@ -9,17 +9,17 @@ module Datadog
9
9
  module Events
10
10
  # The second version of Business Logic Events SDK
11
11
  module V2
12
- SIGNUP_EVENT = 'users.signup'
13
- LOGIN_SUCCESS_EVENT = 'users.login.success'
14
- LOGIN_FAILURE_EVENT = 'users.login.failure'
12
+ SIGNUP_EVENT = "users.signup"
13
+ LOGIN_SUCCESS_EVENT = "users.login.success"
14
+ LOGIN_FAILURE_EVENT = "users.login.failure"
15
15
 
16
- TELEMETRY_METRICS_NAMESPACE = 'appsec'
17
- TELEMETRY_METRICS_SDK_EVENT = 'sdk.event'
18
- TELEMETRY_METRICS_SDK_VERSION = 'v2'
16
+ TELEMETRY_METRICS_NAMESPACE = "appsec"
17
+ TELEMETRY_METRICS_SDK_EVENT = "sdk.event"
18
+ TELEMETRY_METRICS_SDK_VERSION = "v2"
19
19
  TELEMETRY_METRICS_EVENTS_INTO_TYPES = {
20
- LOGIN_SUCCESS_EVENT => 'login_success',
21
- LOGIN_FAILURE_EVENT => 'login_failure',
22
- SIGNUP_EVENT => 'signup'
20
+ LOGIN_SUCCESS_EVENT => "login_success",
21
+ LOGIN_FAILURE_EVENT => "login_failure",
22
+ SIGNUP_EVENT => "signup"
23
23
  }.freeze
24
24
 
25
25
  class << self
@@ -50,31 +50,31 @@ module Datadog
50
50
 
51
51
  if trace.nil? || span.nil?
52
52
  return Datadog.logger.warn(
53
- 'Kit::AppSec: Tracing is not enabled. Please enable tracing if you want to track events'
53
+ "Kit::AppSec: Tracing is not enabled. Please enable tracing if you want to track events"
54
54
  )
55
55
  end
56
56
 
57
- raise TypeError, '`login` argument must be a String' unless login.is_a?(String)
58
- raise TypeError, '`metadata` argument must be a Hash' unless metadata.is_a?(Hash)
57
+ raise TypeError, "`login` argument must be a String" unless login.is_a?(String)
58
+ raise TypeError, "`metadata` argument must be a Hash" unless metadata.is_a?(Hash)
59
59
 
60
60
  user_attributes = build_user_attributes(user_or_id, login)
61
61
 
62
62
  set_span_tags(span, metadata, namespace: LOGIN_SUCCESS_EVENT)
63
63
  set_span_tags(span, user_attributes, namespace: "#{LOGIN_SUCCESS_EVENT}.usr")
64
- span.set_tag('appsec.events.users.login.success.track', 'true')
65
- span.set_tag('_dd.appsec.events.users.login.success.sdk', 'true')
64
+ span.set_tag("appsec.events.users.login.success.track", "true")
65
+ span.set_tag("_dd.appsec.events.users.login.success.sdk", "true")
66
66
 
67
67
  ::Datadog::AppSec::TraceKeeper.keep!(trace)
68
68
 
69
69
  record_event_telemetry_metric(LOGIN_SUCCESS_EVENT)
70
- ::Datadog::AppSec::Instrumentation.gateway.push('appsec.events.user_lifecycle', LOGIN_SUCCESS_EVENT)
70
+ ::Datadog::AppSec::Instrumentation.gateway.push("appsec.events.user_lifecycle", LOGIN_SUCCESS_EVENT)
71
71
 
72
72
  return Kit::Identity.set_user(trace, span, **user_attributes) if user_attributes.key?(:id)
73
73
 
74
74
  # NOTE: This is a fallback for the case when we don't have an ID,
75
75
  # but need to trigger WAF.
76
76
  user = ::Datadog::AppSec::Instrumentation::Gateway::User.new(nil, login)
77
- ::Datadog::AppSec::Instrumentation.gateway.push('identity.set_user', user)
77
+ ::Datadog::AppSec::Instrumentation.gateway.push("identity.set_user", user)
78
78
  end
79
79
 
80
80
  # Attach user login failure information to the service entry span
@@ -102,30 +102,30 @@ module Datadog
102
102
 
103
103
  if trace.nil? || span.nil?
104
104
  return Datadog.logger.warn(
105
- 'Kit::AppSec: Tracing is not enabled. Please enable tracing if you want to track events'
105
+ "Kit::AppSec: Tracing is not enabled. Please enable tracing if you want to track events"
106
106
  )
107
107
  end
108
108
 
109
- raise TypeError, '`login` argument must be a String' unless login.is_a?(String)
110
- raise TypeError, '`metadata` argument must be a Hash' unless metadata.is_a?(Hash)
109
+ raise TypeError, "`login` argument must be a String" unless login.is_a?(String)
110
+ raise TypeError, "`metadata` argument must be a Hash" unless metadata.is_a?(Hash)
111
111
 
112
112
  unless user_exists.is_a?(TrueClass) || user_exists.is_a?(FalseClass)
113
- raise TypeError, '`user_exists` argument must be a boolean'
113
+ raise TypeError, "`user_exists` argument must be a boolean"
114
114
  end
115
115
 
116
116
  set_span_tags(span, metadata, namespace: LOGIN_FAILURE_EVENT)
117
- span.set_tag('appsec.events.users.login.failure.track', 'true')
118
- span.set_tag('_dd.appsec.events.users.login.failure.sdk', 'true')
119
- span.set_tag('appsec.events.users.login.failure.usr.login', login)
120
- span.set_tag('appsec.events.users.login.failure.usr.exists', user_exists.to_s)
117
+ span.set_tag("appsec.events.users.login.failure.track", "true")
118
+ span.set_tag("_dd.appsec.events.users.login.failure.sdk", "true")
119
+ span.set_tag("appsec.events.users.login.failure.usr.login", login)
120
+ span.set_tag("appsec.events.users.login.failure.usr.exists", user_exists.to_s)
121
121
 
122
122
  ::Datadog::AppSec::TraceKeeper.keep!(trace)
123
123
 
124
124
  record_event_telemetry_metric(LOGIN_FAILURE_EVENT)
125
- ::Datadog::AppSec::Instrumentation.gateway.push('appsec.events.user_lifecycle', LOGIN_FAILURE_EVENT)
125
+ ::Datadog::AppSec::Instrumentation.gateway.push("appsec.events.user_lifecycle", LOGIN_FAILURE_EVENT)
126
126
 
127
127
  user = ::Datadog::AppSec::Instrumentation::Gateway::User.new(nil, login)
128
- ::Datadog::AppSec::Instrumentation.gateway.push('identity.set_user', user)
128
+ ::Datadog::AppSec::Instrumentation.gateway.push("identity.set_user", user)
129
129
  end
130
130
 
131
131
  # Attach user signup information to the service entry span
@@ -155,19 +155,19 @@ module Datadog
155
155
 
156
156
  if trace.nil? || span.nil?
157
157
  return Datadog.logger.warn(
158
- 'Kit::AppSec: Tracing is not enabled. Please enable tracing if you want to track events'
158
+ "Kit::AppSec: Tracing is not enabled. Please enable tracing if you want to track events"
159
159
  )
160
160
  end
161
161
 
162
- raise TypeError, '`login` argument must be a String' unless login.is_a?(String)
163
- raise TypeError, '`metadata` argument must be a Hash' unless metadata.is_a?(Hash)
162
+ raise TypeError, "`login` argument must be a String" unless login.is_a?(String)
163
+ raise TypeError, "`metadata` argument must be a Hash" unless metadata.is_a?(Hash)
164
164
 
165
165
  user_attributes = build_user_attributes(user_or_id, login)
166
166
 
167
167
  set_span_tags(span, metadata, namespace: SIGNUP_EVENT)
168
168
  set_span_tags(span, user_attributes, namespace: "#{SIGNUP_EVENT}.usr")
169
- span.set_tag('appsec.events.users.signup.track', 'true')
170
- span.set_tag('_dd.appsec.events.users.signup.sdk', 'true')
169
+ span.set_tag("appsec.events.users.signup.track", "true")
170
+ span.set_tag("_dd.appsec.events.users.signup.sdk", "true")
171
171
 
172
172
  ::Datadog::AppSec::TraceKeeper.keep!(trace)
173
173
 
@@ -179,7 +179,7 @@ module Datadog
179
179
  # NOTE: {Datadog::Kit::Identity.set_user} requires an ID,
180
180
  # but WAF can evaluate login alone
181
181
  user = ::Datadog::AppSec::Instrumentation::Gateway::User.new(nil, login)
182
- ::Datadog::AppSec::Instrumentation.gateway.push('identity.set_user', user)
182
+ ::Datadog::AppSec::Instrumentation.gateway.push("identity.set_user", user)
183
183
  end
184
184
  end
185
185
 
@@ -202,7 +202,7 @@ module Datadog
202
202
  end
203
203
 
204
204
  def build_user_attributes(user_or_id, login)
205
- raise TypeError, '`login` argument must be a String' unless login.is_a?(String)
205
+ raise TypeError, "`login` argument must be a String" unless login.is_a?(String)
206
206
 
207
207
  case user_or_id
208
208
  when nil
@@ -210,12 +210,12 @@ module Datadog
210
210
  when String
211
211
  {login: login, id: user_or_id}
212
212
  when Hash
213
- raise ArgumentError, 'missing required user key `:id`' unless user_or_id.key?(:id)
214
- raise TypeError, 'user key `:id` must be a String' unless user_or_id[:id].is_a?(String)
213
+ raise ArgumentError, "missing required user key `:id`" unless user_or_id.key?(:id)
214
+ raise TypeError, "user key `:id` must be a String" unless user_or_id[:id].is_a?(String)
215
215
 
216
216
  user_or_id.merge(login: login)
217
217
  else
218
- raise TypeError, '`user_or_id` argument must be either String or Hash'
218
+ raise TypeError, "`user_or_id` argument must be either String or Hash"
219
219
  end
220
220
  end
221
221
 
@@ -235,7 +235,7 @@ module Datadog
235
235
 
236
236
  if telemetry.nil?
237
237
  return Datadog.logger.debug(
238
- 'Kit::AppSec: Telemetry component is unavailable. Skip recording SDK metrics'
238
+ "Kit::AppSec: Telemetry component is unavailable. Skip recording SDK metrics"
239
239
  )
240
240
  end
241
241
 
@@ -1,17 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../identity'
4
- require_relative '../../appsec/trace_keeper'
3
+ require_relative "../identity"
4
+ require_relative "../../appsec/trace_keeper"
5
5
 
6
6
  module Datadog
7
7
  module Kit
8
8
  module AppSec
9
9
  # Tracking events
10
10
  module Events
11
- LOGIN_SUCCESS_EVENT = 'users.login.success'
12
- LOGIN_FAILURE_EVENT = 'users.login.failure'
13
- SIGNUP_EVENT = 'users.signup'
14
- USER_LOGIN_KEYS = ['usr.login', :"usr.login"].freeze
11
+ LOGIN_SUCCESS_EVENT = "users.login.success"
12
+ LOGIN_FAILURE_EVENT = "users.login.failure"
13
+ SIGNUP_EVENT = "users.signup"
14
+ USER_LOGIN_KEYS = ["usr.login", :"usr.login"].freeze
15
15
 
16
16
  class << self
17
17
  # Attach login success event information to the trace
@@ -29,12 +29,12 @@ module Datadog
29
29
  # @param others [Hash<String || Symbol, String>] Additional free-form
30
30
  # event information to attach to the trace.
31
31
  def track_login_success(trace = nil, span = nil, user:, **others)
32
- set_trace_and_span_context('track_login_success', trace, span) do |active_trace, active_span|
32
+ set_trace_and_span_context("track_login_success", trace, span) do |active_trace, active_span|
33
33
  user_options = user.dup
34
34
  user_id = user_options.delete(:id)
35
- user_login = user_options[:login] || others[:"usr.login"] || others['usr.login'] || user_id
35
+ user_login = user_options[:login] || others[:"usr.login"] || others["usr.login"] || user_id
36
36
 
37
- raise ArgumentError, 'missing required key: :user => { :id }' if user_id.nil?
37
+ raise ArgumentError, "missing required key: :user => { :id }" if user_id.nil?
38
38
 
39
39
  others = others.reject { |key, _| USER_LOGIN_KEYS.include?(key) }
40
40
  others[:"usr.login"] = user_login
@@ -60,12 +60,12 @@ module Datadog
60
60
  # @param others [Hash<String || Symbol, String>] Additional free-form
61
61
  # event information to attach to the trace.
62
62
  def track_login_failure(trace = nil, span = nil, user_exists:, user_id: nil, **others)
63
- set_trace_and_span_context('track_login_failure', trace, span) do |active_trace, active_span|
64
- others[:"usr.login"] = user_id if user_id && !others.key?(:"usr.login") && !others.key?('usr.login')
63
+ set_trace_and_span_context("track_login_failure", trace, span) do |active_trace, active_span|
64
+ others[:"usr.login"] = user_id if user_id && !others.key?(:"usr.login") && !others.key?("usr.login")
65
65
  track(LOGIN_FAILURE_EVENT, active_trace, active_span, **others)
66
66
 
67
- active_span.set_tag('appsec.events.users.login.failure.usr.id', user_id) if user_id
68
- active_span.set_tag('appsec.events.users.login.failure.usr.exists', user_exists)
67
+ active_span.set_tag("appsec.events.users.login.failure.usr.id", user_id) if user_id
68
+ active_span.set_tag("appsec.events.users.login.failure.usr.exists", user_exists)
69
69
  end
70
70
  end
71
71
 
@@ -84,12 +84,12 @@ module Datadog
84
84
  # @param others [Hash<String || Symbol, String>] Additional free-form
85
85
  # event information to attach to the trace.
86
86
  def track_signup(trace = nil, span = nil, user:, **others)
87
- set_trace_and_span_context('track_signup', trace, span) do |active_trace, active_span|
87
+ set_trace_and_span_context("track_signup", trace, span) do |active_trace, active_span|
88
88
  user_options = user.dup
89
89
  user_id = user_options.delete(:id)
90
- user_login = user_options[:login] || others[:"usr.login"] || others['usr.login'] || user_id
90
+ user_login = user_options[:login] || others[:"usr.login"] || others["usr.login"] || user_id
91
91
 
92
- raise ArgumentError, 'missing required key: :user => { :id }' if user_id.nil?
92
+ raise ArgumentError, "missing required key: :user => { :id }" if user_id.nil?
93
93
 
94
94
  others = others.reject { |key, _| USER_LOGIN_KEYS.include?(key) }
95
95
  others[:"usr.login"] = user_login
@@ -118,23 +118,23 @@ module Datadog
118
118
  if trace && span
119
119
  check_trace_span_integrity(trace, span)
120
120
 
121
- span.set_tag("appsec.events.#{event}.track", 'true')
122
- span.set_tag("_dd.appsec.events.#{event}.sdk", 'true')
121
+ span.set_tag("appsec.events.#{event}.track", "true")
122
+ span.set_tag("_dd.appsec.events.#{event}.sdk", "true")
123
123
 
124
124
  others.each do |k, v|
125
- raise ArgumentError, 'key cannot be :track' if k.to_sym == :track
125
+ raise ArgumentError, "key cannot be :track" if k.to_sym == :track
126
126
 
127
127
  span.set_tag("appsec.events.#{event}.#{k}", v) unless v.nil?
128
128
  end
129
129
 
130
130
  ::Datadog::AppSec::TraceKeeper.keep!(trace)
131
131
  else
132
- set_trace_and_span_context('track', trace, span) do |active_trace, active_span|
133
- active_span.set_tag("appsec.events.#{event}.track", 'true')
134
- active_span.set_tag("_dd.appsec.events.#{event}.sdk", 'true')
132
+ set_trace_and_span_context("track", trace, span) do |active_trace, active_span|
133
+ active_span.set_tag("appsec.events.#{event}.track", "true")
134
+ active_span.set_tag("_dd.appsec.events.#{event}.sdk", "true")
135
135
 
136
136
  others.each do |k, v|
137
- raise ArgumentError, 'key cannot be :track' if k.to_sym == :track
137
+ raise ArgumentError, "key cannot be :track" if k.to_sym == :track
138
138
 
139
139
  active_span.set_tag("appsec.events.#{event}.#{k}", v) unless v.nil?
140
140
  end
@@ -143,7 +143,7 @@ module Datadog
143
143
  end
144
144
  end
145
145
 
146
- ::Datadog::AppSec::Instrumentation.gateway.push('appsec.events.user_lifecycle', event)
146
+ ::Datadog::AppSec::Instrumentation.gateway.push("appsec.events.user_lifecycle", event)
147
147
  end
148
148
 
149
149
  private
@@ -160,7 +160,7 @@ module Datadog
160
160
  unless trace && span
161
161
  Datadog.logger.debug(
162
162
  "Tracing not enabled. Method ##{method} is a no-op. Please enable tracing if you want ##{method}" \
163
- ' to track this events'
163
+ " to track this events"
164
164
  )
165
165
  return
166
166
  end
@@ -11,9 +11,9 @@ module Datadog
11
11
  current_size, maximum_size = Process.getrlimit(:CORE)
12
12
  core_pattern =
13
13
  begin
14
- File.read('/proc/sys/kernel/core_pattern').strip
14
+ File.read("/proc/sys/kernel/core_pattern").strip
15
15
  rescue
16
- '(Could not open /proc/sys/kernel/core_pattern)'
16
+ "(Could not open /proc/sys/kernel/core_pattern)"
17
17
  end
18
18
 
19
19
  enabled_status = "Maximum size: #{maximum_size} Output pattern: '#{core_pattern}'"
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../appsec/instrumentation/gateway/argument'
3
+ require_relative "../appsec/instrumentation/gateway/argument"
4
4
 
5
5
  module Datadog
6
6
  module Kit
@@ -39,39 +39,39 @@ module Datadog
39
39
  def set_user(
40
40
  trace = nil, span = nil, id:, email: nil, name: nil, session_id: nil, role: nil, scope: nil, **others
41
41
  )
42
- raise ArgumentError, 'missing required key: :id' if id.nil?
42
+ raise ArgumentError, "missing required key: :id" if id.nil?
43
43
 
44
44
  # enforce types
45
45
 
46
- raise TypeError, ':id must be a String' unless id.is_a?(String)
47
- raise TypeError, ':email must be a String' unless email.nil? || email.is_a?(String)
48
- raise TypeError, ':name must be a String' unless name.nil? || name.is_a?(String)
49
- raise TypeError, ':session_id must be a String' unless session_id.nil? || session_id.is_a?(String)
50
- raise TypeError, ':role must be a String' unless role.nil? || role.is_a?(String)
51
- raise TypeError, ':scope must be a String' unless scope.nil? || scope.is_a?(String)
46
+ raise TypeError, ":id must be a String" unless id.is_a?(String)
47
+ raise TypeError, ":email must be a String" unless email.nil? || email.is_a?(String)
48
+ raise TypeError, ":name must be a String" unless name.nil? || name.is_a?(String)
49
+ raise TypeError, ":session_id must be a String" unless session_id.nil? || session_id.is_a?(String)
50
+ raise TypeError, ":role must be a String" unless role.nil? || role.is_a?(String)
51
+ raise TypeError, ":scope must be a String" unless scope.nil? || scope.is_a?(String)
52
52
 
53
53
  others.each do |k, v|
54
54
  raise TypeError, "#{k.inspect} must be a String" unless v.nil? || v.is_a?(String)
55
55
  end
56
56
 
57
- set_trace_and_span_context('set_user', trace, span) do |_active_trace, active_span|
57
+ set_trace_and_span_context("set_user", trace, span) do |_active_trace, active_span|
58
58
  # set tags once data is known consistent
59
- active_span.set_tag('usr.id', id)
60
- active_span.set_tag('usr.email', email) unless email.nil?
61
- active_span.set_tag('usr.name', name) unless name.nil?
62
- active_span.set_tag('usr.session_id', session_id) unless session_id.nil?
63
- active_span.set_tag('usr.role', role) unless role.nil?
64
- active_span.set_tag('usr.scope', scope) unless scope.nil?
59
+ active_span.set_tag("usr.id", id)
60
+ active_span.set_tag("usr.email", email) unless email.nil?
61
+ active_span.set_tag("usr.name", name) unless name.nil?
62
+ active_span.set_tag("usr.session_id", session_id) unless session_id.nil?
63
+ active_span.set_tag("usr.role", role) unless role.nil?
64
+ active_span.set_tag("usr.scope", scope) unless scope.nil?
65
65
 
66
66
  others.each do |k, v|
67
67
  active_span.set_tag("usr.#{k}", v) unless v.nil?
68
68
  end
69
69
 
70
70
  if Datadog::AppSec.active_context
71
- active_span.set_tag('_dd.appsec.user.collection_mode', 'sdk')
71
+ active_span.set_tag("_dd.appsec.user.collection_mode", "sdk")
72
72
 
73
73
  user = ::Datadog::AppSec::Instrumentation::Gateway::User.new(id, others[:login], session_id)
74
- ::Datadog::AppSec::Instrumentation.gateway.push('identity.set_user', user)
74
+ ::Datadog::AppSec::Instrumentation.gateway.push("identity.set_user", user)
75
75
  end
76
76
  end
77
77
  end
@@ -96,7 +96,7 @@ module Datadog
96
96
  unless trace && span
97
97
  Datadog.logger.debug(
98
98
  "Tracing not enabled. Method ##{method} is a no-op. Please enable tracing if you want ##{method}" \
99
- ' to track this events'
99
+ " to track this events"
100
100
  )
101
101
  return
102
102
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # Needed since this file can be loaded without core
4
- require_relative '../../ruby_version'
4
+ require_relative "../../ruby_version"
5
5
 
6
6
  module Datadog
7
7
  module Kit
@@ -56,8 +56,8 @@ module Datadog
56
56
  # @param dynamic [Boolean] if true, skip method existence check (for method_missing-handled methods)
57
57
  # @return [void]
58
58
  def trace_method(mod, method_name, span_name: nil, dynamic: false)
59
- raise ArgumentError, 'mod is not a module' unless mod.is_a?(Module)
60
- raise ArgumentError, 'ambiguous span name: provide one or define mod.name' if mod.name.nil? && span_name.nil?
59
+ raise ArgumentError, "mod is not a module" unless mod.is_a?(Module)
60
+ raise ArgumentError, "ambiguous span name: provide one or define mod.name" if mod.name.nil? && span_name.nil?
61
61
 
62
62
  is_private = mod.private_method_defined?(method_name)
63
63
  is_protected = mod.protected_method_defined?(method_name)
@@ -72,19 +72,19 @@ module Datadog
72
72
  span_name ||= hook_point
73
73
 
74
74
  unless span_name.is_a?(String)
75
- raise ArgumentError, 'span name is not a String'
75
+ raise ArgumentError, "span name is not a String"
76
76
  end
77
77
 
78
- args = RubyVersion.is?('>= 2.7') ? '...' : '*args, &block'
78
+ args = RubyVersion.is?(">= 2.7") ? "..." : "*args, &block"
79
79
 
80
80
  hook_module = Module.new do
81
81
  define_singleton_method(:inspect) do
82
- suffix = custom_span_name ? ", #{custom_span_name.inspect}" : ''
82
+ suffix = custom_span_name ? ", #{custom_span_name.inspect}" : ""
83
83
  name || "#<Datadog::Tracing::Kit::MethodTracer(#{method_name.inspect}#{suffix})>"
84
84
  end
85
85
 
86
86
  define_singleton_method(:to_s) do
87
- suffix = custom_span_name ? ", #{custom_span_name.inspect}" : ''
87
+ suffix = custom_span_name ? ", #{custom_span_name.inspect}" : ""
88
88
  name || "#<Datadog::Tracing::Kit::MethodTracer(#{method_name.inspect}#{suffix})>"
89
89
  end
90
90
 
data/lib/datadog/kit.rb CHANGED
@@ -8,4 +8,4 @@ module Datadog
8
8
  end
9
9
  end
10
10
 
11
- require_relative 'kit/identity'
11
+ require_relative "kit/identity"
@@ -1,32 +1,36 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'transport'
4
- require_relative 'evaluation_engine'
5
- require_relative 'exposures/buffer'
6
- require_relative 'exposures/worker'
7
- require_relative 'exposures/deduplicator'
8
- require_relative 'exposures/reporter'
9
- require_relative 'metrics/flag_eval_metrics'
3
+ require_relative "transport"
4
+ require_relative "evaluation_engine"
5
+ require_relative "exposures/buffer"
6
+ require_relative "exposures/worker"
7
+ require_relative "exposures/deduplicator"
8
+ require_relative "exposures/reporter"
9
+ require_relative "metrics/flag_eval_metrics"
10
+ require_relative "flag_evaluation/writer"
11
+ require_relative "hooks/flag_eval_metrics_hook"
12
+ require_relative "hooks/flag_eval_evp_hook"
13
+ require_relative "hooks/span_enrichment_hook"
10
14
 
11
15
  module Datadog
12
16
  module OpenFeature
13
17
  # This class is the entry point for the OpenFeature component
14
18
  class Component
15
- attr_reader :engine, :flag_eval_metrics_hook, :flag_eval_evp_hook
19
+ attr_reader :engine, :flag_eval_metrics_hook, :flag_eval_evp_hook, :span_enrichment_hook
16
20
 
17
21
  def self.build(settings, agent_settings, logger:, telemetry:)
18
22
  return unless settings.respond_to?(:open_feature) && settings.open_feature.enabled
19
23
 
20
24
  unless settings.respond_to?(:remote) && settings.remote.enabled
21
- message = 'OpenFeature could not be enabled as Remote Configuration is currently disabled. ' \
22
- 'To enable Remote Configuration, see https://docs.datadoghq.com/remote_configuration/.'
25
+ message = "OpenFeature could not be enabled as Remote Configuration is currently disabled. " \
26
+ "To enable Remote Configuration, see https://docs.datadoghq.com/remote_configuration/."
23
27
 
24
28
  logger.warn(message)
25
29
  return
26
30
  end
27
31
 
28
- if RUBY_ENGINE != 'ruby'
29
- message = 'OpenFeature could not be enabled as MRI is required, ' \
32
+ if RUBY_ENGINE != "ruby"
33
+ message = "OpenFeature could not be enabled as MRI is required, " \
30
34
  "but running on #{RUBY_ENGINE.inspect}"
31
35
 
32
36
  logger.warn(message)
@@ -34,9 +38,9 @@ module Datadog
34
38
  end
35
39
 
36
40
  if (libdatadog_api_failure = Core::LIBDATADOG_API_FAILURE)
37
- message = 'OpenFeature could not be enabled as `libdatadog` is not loaded: ' \
41
+ message = "OpenFeature could not be enabled as `libdatadog` is not loaded: " \
38
42
  "#{libdatadog_api_failure.inspect}. For help solving this issue, " \
39
- 'please contact Datadog support at https://docs.datadoghq.com/help/.'
43
+ "please contact Datadog support at https://docs.datadoghq.com/help/."
40
44
 
41
45
  logger.warn(message)
42
46
  return
@@ -58,42 +62,47 @@ module Datadog
58
62
  @agent_settings = agent_settings
59
63
  @flag_eval_metrics_hook = create_flag_eval_metrics_hook
60
64
  @flag_eval_evp_hook = create_flag_eval_evp_hook
65
+ @span_enrichment_hook = create_span_enrichment_hook
61
66
  end
62
67
 
63
68
  def shutdown!
64
69
  @worker.graceful_shutdown
65
70
  @flag_eval_evp_writer&.stop
71
+ # Symmetric teardown: drop any accumulated span-enrichment state and
72
+ # subscriptions (Ruby CLAUDE.md mandates closing resources).
73
+ @span_enrichment_hook&.shutdown
66
74
  end
67
75
 
68
76
  private
69
77
 
70
78
  def create_flag_eval_metrics_hook
71
- require_relative 'hooks/flag_eval_metrics_hook'
72
79
  return unless Hooks::FlagEvalMetricsHook.available?
73
80
 
74
81
  metrics = Metrics::FlagEvalMetrics.new(telemetry: @telemetry, logger: @logger)
75
82
  Hooks::FlagEvalMetricsHook.new(metrics)
76
- rescue LoadError
77
- nil
78
83
  end
79
84
 
80
85
  # Killswitch: DD_FLAGGING_EVALUATION_COUNTS_ENABLED (default on) gates only the EVP path.
81
86
  # Read through the datadog config registry, not raw ENV.
82
87
  def create_flag_eval_evp_hook
83
88
  return unless @settings.open_feature.evaluation_counts_enabled
84
-
85
- require_relative 'hooks/flag_eval_evp_hook'
86
89
  return unless Hooks::FlagEvalEVPHook.available?
87
90
 
88
91
  evp_transport = Transport::HTTP.build_flagevaluations(
89
92
  agent_settings: @agent_settings,
90
93
  logger: @logger,
91
94
  )
92
- require_relative 'flag_evaluation/writer'
93
95
  @flag_eval_evp_writer = FlagEvaluation::Writer.new(transport: evp_transport, logger: @logger, telemetry: @telemetry)
94
96
  Hooks::FlagEvalEVPHook.new(@flag_eval_evp_writer)
95
- rescue LoadError
96
- nil
97
+ end
98
+
99
+ # Construct the span-enrichment hook only when the opt-in gate is on, so
100
+ # there is no idle per-span overhead when disabled.
101
+ def create_span_enrichment_hook
102
+ return unless @settings.open_feature.span_enrichment_enabled
103
+
104
+ store = Hooks::SpanEnrichmentHook::SpanEnrichmentStateStore.new
105
+ Hooks::SpanEnrichmentHook.new(store, logger: @logger)
97
106
  end
98
107
  end
99
108
  end
@@ -17,7 +17,20 @@ module Datadog
17
17
  settings :open_feature do
18
18
  option :enabled do |o|
19
19
  o.type :bool
20
- o.env 'DD_EXPERIMENTAL_FLAGGING_PROVIDER_ENABLED'
20
+ o.env "DD_EXPERIMENTAL_FLAGGING_PROVIDER_ENABLED"
21
+ o.default false
22
+ end
23
+
24
+ # Opt-in gate for APM feature-flag span enrichment. When enabled,
25
+ # the provider attaches `ffe_*` tags to the local root APM span on
26
+ # finish. Distinct from `:enabled` (the provider gate) and off by
27
+ # default so it can be rolled out independently.
28
+ #
29
+ # TODO: benchmark the per-span-finish overhead on a high-span-count
30
+ # trace with this gate on before enabling it by default.
31
+ option :span_enrichment_enabled do |o|
32
+ o.type :bool
33
+ o.env "DD_EXPERIMENTAL_FLAGGING_PROVIDER_SPAN_ENRICHMENT_ENABLED"
21
34
  o.default false
22
35
  end
23
36
 
@@ -25,7 +38,7 @@ module Datadog
25
38
  # disabled the existing OTel `feature_flag.evaluations` metric is unaffected.
26
39
  option :evaluation_counts_enabled do |o|
27
40
  o.type :bool
28
- o.env 'DD_FLAGGING_EVALUATION_COUNTS_ENABLED'
41
+ o.env "DD_FLAGGING_EVALUATION_COUNTS_ENABLED"
29
42
  o.default true
30
43
  end
31
44
  end
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'ext'
4
- require_relative 'noop_evaluator'
5
- require_relative 'native_evaluator'
6
- require_relative 'resolution_details'
3
+ require_relative "ext"
4
+ require_relative "noop_evaluator"
5
+ require_relative "native_evaluator"
6
+ require_relative "resolution_details"
7
7
 
8
8
  module Datadog
9
9
  module OpenFeature
@@ -39,7 +39,7 @@ module Datadog
39
39
 
40
40
  result
41
41
  rescue => e
42
- @telemetry.report(e, description: 'OpenFeature: Failed to fetch flag value')
42
+ @telemetry.report(e, description: "OpenFeature: Failed to fetch flag value")
43
43
 
44
44
  ResolutionDetails.build_error(
45
45
  value: default_value, error_code: Ext::GENERAL, error_message: "#{e.class}: #{e.message}"
@@ -51,14 +51,14 @@ module Datadog
51
51
  # in the format expected by `libdatadog` without any modifications
52
52
  def reconfigure!(configuration)
53
53
  if configuration.nil?
54
- @logger.debug('OpenFeature: Removing configuration')
54
+ @logger.debug("OpenFeature: Removing configuration")
55
55
 
56
56
  return @evaluator = NoopEvaluator.new(configuration)
57
57
  end
58
58
 
59
59
  @evaluator = NativeEvaluator.new(configuration)
60
60
  rescue => e
61
- message = 'OpenFeature: Failed to reconfigure, reverting to the previous configuration'
61
+ message = "OpenFeature: Failed to reconfigure, reverting to the previous configuration"
62
62
 
63
63
  @logger.error("#{message}, #{e.class}: #{e.message}")
64
64
  @telemetry.report(e, description: "#{message} (#{e.class})")
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../../core/buffer/cruby'
3
+ require_relative "../../core/buffer/cruby"
4
4
 
5
5
  module Datadog
6
6
  module OpenFeature