datadog 2.19.0 → 2.21.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 (302) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +52 -1
  3. data/README.md +0 -1
  4. data/ext/libdatadog_api/extconf.rb +3 -1
  5. data/ext/libdatadog_api/process_discovery.c +5 -5
  6. data/ext/libdatadog_extconf_helpers.rb +13 -3
  7. data/lib/datadog/appsec/api_security/route_extractor.rb +6 -2
  8. data/lib/datadog/appsec/autoload.rb +1 -1
  9. data/lib/datadog/appsec/component.rb +3 -13
  10. data/lib/datadog/appsec/context.rb +23 -0
  11. data/lib/datadog/appsec/contrib/devise/patches/signin_tracking_patch.rb +2 -1
  12. data/lib/datadog/appsec/contrib/devise/patches/signup_tracking_patch.rb +2 -1
  13. data/lib/datadog/appsec/contrib/excon/ssrf_detection_middleware.rb +0 -1
  14. data/lib/datadog/appsec/contrib/faraday/ssrf_detection_middleware.rb +0 -1
  15. data/lib/datadog/appsec/contrib/rack/request_middleware.rb +14 -22
  16. data/lib/datadog/appsec/contrib/rails/gateway/watcher.rb +23 -2
  17. data/lib/datadog/appsec/contrib/rails/patcher.rb +14 -26
  18. data/lib/datadog/appsec/contrib/rails/patches/process_action_patch.rb +27 -0
  19. data/lib/datadog/appsec/contrib/rails/patches/render_to_body_patch.rb +33 -0
  20. data/lib/datadog/appsec/contrib/rest_client/request_ssrf_detection_patch.rb +0 -1
  21. data/lib/datadog/appsec/contrib/sinatra/gateway/watcher.rb +23 -0
  22. data/lib/datadog/appsec/contrib/sinatra/patcher.rb +8 -18
  23. data/lib/datadog/appsec/contrib/sinatra/patches/json_patch.rb +31 -0
  24. data/lib/datadog/appsec/event.rb +3 -18
  25. data/lib/datadog/appsec/instrumentation/gateway/argument.rb +16 -0
  26. data/lib/datadog/appsec/metrics/collector.rb +7 -3
  27. data/lib/datadog/appsec/metrics/telemetry.rb +1 -1
  28. data/lib/datadog/appsec/metrics/telemetry_exporter.rb +28 -0
  29. data/lib/datadog/appsec/metrics.rb +1 -0
  30. data/lib/datadog/appsec/security_engine/engine.rb +14 -32
  31. data/lib/datadog/appsec/security_engine/result.rb +16 -0
  32. data/lib/datadog/appsec/security_engine/runner.rb +18 -4
  33. data/lib/datadog/appsec/thread_safe_ref.rb +61 -0
  34. data/lib/datadog/appsec/trace_keeper.rb +24 -0
  35. data/lib/datadog/appsec/utils/hash_coercion.rb +23 -0
  36. data/lib/datadog/appsec.rb +0 -7
  37. data/lib/datadog/auto_instrument_base.rb +2 -1
  38. data/lib/datadog/core/configuration/agent_settings_resolver.rb +4 -4
  39. data/lib/datadog/core/configuration/components.rb +8 -2
  40. data/lib/datadog/core/configuration/config_helper.rb +100 -0
  41. data/lib/datadog/core/configuration/deprecations.rb +36 -0
  42. data/lib/datadog/core/configuration/ext.rb +0 -1
  43. data/lib/datadog/core/configuration/option.rb +55 -51
  44. data/lib/datadog/core/configuration/option_definition.rb +2 -11
  45. data/lib/datadog/core/configuration/options.rb +14 -12
  46. data/lib/datadog/core/configuration/settings.rb +10 -6
  47. data/lib/datadog/core/configuration/supported_configurations.rb +335 -0
  48. data/lib/datadog/core/configuration.rb +1 -1
  49. data/lib/datadog/core/deprecations.rb +2 -2
  50. data/lib/datadog/core/environment/ext.rb +0 -2
  51. data/lib/datadog/core/environment/git.rb +2 -2
  52. data/lib/datadog/core/environment/variable_helpers.rb +3 -3
  53. data/lib/datadog/core/metrics/client.rb +2 -2
  54. data/lib/datadog/core/process_discovery/tracer_memfd.rb +2 -4
  55. data/lib/datadog/core/process_discovery.rb +46 -23
  56. data/lib/datadog/core/runtime/ext.rb +0 -1
  57. data/lib/datadog/core/telemetry/event/app_started.rb +2 -2
  58. data/lib/datadog/core.rb +2 -0
  59. data/lib/datadog/di/boot.rb +9 -1
  60. data/lib/datadog/di/component.rb +7 -0
  61. data/lib/datadog/di/probe_file_loader/railtie.rb +15 -0
  62. data/lib/datadog/di/probe_file_loader.rb +82 -0
  63. data/lib/datadog/di/probe_notification_builder.rb +1 -1
  64. data/lib/datadog/di/remote.rb +3 -5
  65. data/lib/datadog/di.rb +0 -1
  66. data/lib/datadog/kit/appsec/events/v2.rb +5 -4
  67. data/lib/datadog/kit/appsec/events.rb +11 -10
  68. data/lib/datadog/kit/identity.rb +17 -11
  69. data/lib/datadog/opentelemetry/api/baggage.rb +2 -2
  70. data/lib/datadog/opentelemetry/api/context.rb +10 -9
  71. data/lib/datadog/opentelemetry/sdk/configurator.rb +1 -1
  72. data/lib/datadog/opentelemetry/sdk/propagator.rb +4 -4
  73. data/lib/datadog/opentelemetry/sdk/span_processor.rb +8 -8
  74. data/lib/datadog/opentelemetry/sdk/trace/span.rb +14 -10
  75. data/lib/datadog/opentelemetry/trace.rb +4 -4
  76. data/lib/datadog/profiling/collectors/info.rb +1 -1
  77. data/lib/datadog/profiling/ext.rb +2 -1
  78. data/lib/datadog/profiling/http_transport.rb +1 -1
  79. data/lib/datadog/profiling/tasks/exec.rb +2 -2
  80. data/lib/datadog/profiling.rb +6 -8
  81. data/lib/datadog/tracing/analytics.rb +1 -1
  82. data/lib/datadog/tracing/buffer.rb +7 -7
  83. data/lib/datadog/tracing/configuration/dynamic.rb +4 -6
  84. data/lib/datadog/tracing/configuration/ext.rb +3 -5
  85. data/lib/datadog/tracing/configuration/settings.rb +29 -7
  86. data/lib/datadog/tracing/context.rb +2 -2
  87. data/lib/datadog/tracing/contrib/action_cable/event.rb +1 -1
  88. data/lib/datadog/tracing/contrib/action_cable/integration.rb +1 -1
  89. data/lib/datadog/tracing/contrib/action_mailer/integration.rb +1 -1
  90. data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +4 -4
  91. data/lib/datadog/tracing/contrib/action_pack/integration.rb +1 -1
  92. data/lib/datadog/tracing/contrib/action_view/events/render_template.rb +1 -1
  93. data/lib/datadog/tracing/contrib/active_job/event.rb +8 -8
  94. data/lib/datadog/tracing/contrib/active_job/events/discard.rb +1 -1
  95. data/lib/datadog/tracing/contrib/active_job/events/enqueue.rb +1 -1
  96. data/lib/datadog/tracing/contrib/active_job/events/enqueue_at.rb +1 -1
  97. data/lib/datadog/tracing/contrib/active_job/events/enqueue_retry.rb +1 -1
  98. data/lib/datadog/tracing/contrib/active_job/events/perform.rb +1 -1
  99. data/lib/datadog/tracing/contrib/active_job/events/retry_stopped.rb +1 -1
  100. data/lib/datadog/tracing/contrib/active_job/integration.rb +1 -1
  101. data/lib/datadog/tracing/contrib/active_model_serializers/events/render.rb +1 -1
  102. data/lib/datadog/tracing/contrib/active_model_serializers/events/serialize.rb +3 -3
  103. data/lib/datadog/tracing/contrib/active_model_serializers/integration.rb +1 -2
  104. data/lib/datadog/tracing/contrib/active_record/configuration/resolver.rb +1 -1
  105. data/lib/datadog/tracing/contrib/active_record/events/instantiation.rb +1 -1
  106. data/lib/datadog/tracing/contrib/active_record/events/sql.rb +5 -5
  107. data/lib/datadog/tracing/contrib/active_record/integration.rb +1 -1
  108. data/lib/datadog/tracing/contrib/active_record/utils.rb +15 -15
  109. data/lib/datadog/tracing/contrib/active_support/cache/events/cache.rb +6 -6
  110. data/lib/datadog/tracing/contrib/active_support/integration.rb +1 -1
  111. data/lib/datadog/tracing/contrib/active_support/notifications/event.rb +2 -1
  112. data/lib/datadog/tracing/contrib/active_support/notifications/subscription.rb +7 -9
  113. data/lib/datadog/tracing/contrib/aws/ext.rb +1 -1
  114. data/lib/datadog/tracing/contrib/aws/instrumentation.rb +2 -2
  115. data/lib/datadog/tracing/contrib/aws/parsed_context.rb +3 -1
  116. data/lib/datadog/tracing/contrib/aws/patcher.rb +5 -1
  117. data/lib/datadog/tracing/contrib/aws/service/base.rb +2 -1
  118. data/lib/datadog/tracing/contrib/aws/service/dynamodb.rb +1 -1
  119. data/lib/datadog/tracing/contrib/aws/service/eventbridge.rb +1 -1
  120. data/lib/datadog/tracing/contrib/aws/service/kinesis.rb +1 -1
  121. data/lib/datadog/tracing/contrib/aws/service/s3.rb +1 -1
  122. data/lib/datadog/tracing/contrib/aws/service/sns.rb +1 -1
  123. data/lib/datadog/tracing/contrib/aws/service/sqs.rb +1 -1
  124. data/lib/datadog/tracing/contrib/aws/service/states.rb +1 -1
  125. data/lib/datadog/tracing/contrib/aws/services.rb +7 -7
  126. data/lib/datadog/tracing/contrib/concurrent_ruby/async_patch.rb +1 -1
  127. data/lib/datadog/tracing/contrib/concurrent_ruby/context_composite_executor_service.rb +1 -1
  128. data/lib/datadog/tracing/contrib/concurrent_ruby/future_patch.rb +1 -1
  129. data/lib/datadog/tracing/contrib/concurrent_ruby/integration.rb +1 -1
  130. data/lib/datadog/tracing/contrib/concurrent_ruby/promises_future_patch.rb +1 -1
  131. data/lib/datadog/tracing/contrib/configurable.rb +6 -6
  132. data/lib/datadog/tracing/contrib/configuration/resolvers/pattern_resolver.rb +4 -4
  133. data/lib/datadog/tracing/contrib/dalli/ext.rb +3 -2
  134. data/lib/datadog/tracing/contrib/dalli/integration.rb +1 -1
  135. data/lib/datadog/tracing/contrib/delayed_job/integration.rb +1 -1
  136. data/lib/datadog/tracing/contrib/elasticsearch/ext.rb +3 -2
  137. data/lib/datadog/tracing/contrib/elasticsearch/integration.rb +4 -4
  138. data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +51 -53
  139. data/lib/datadog/tracing/contrib/elasticsearch/quantize.rb +5 -5
  140. data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +2 -2
  141. data/lib/datadog/tracing/contrib/ethon/ext.rb +3 -2
  142. data/lib/datadog/tracing/contrib/ethon/integration.rb +1 -1
  143. data/lib/datadog/tracing/contrib/excon/ext.rb +3 -2
  144. data/lib/datadog/tracing/contrib/excon/integration.rb +1 -1
  145. data/lib/datadog/tracing/contrib/excon/middleware.rb +2 -2
  146. data/lib/datadog/tracing/contrib/ext.rb +3 -3
  147. data/lib/datadog/tracing/contrib/extensions.rb +9 -9
  148. data/lib/datadog/tracing/contrib/faraday/ext.rb +3 -2
  149. data/lib/datadog/tracing/contrib/faraday/integration.rb +1 -1
  150. data/lib/datadog/tracing/contrib/faraday/middleware.rb +4 -2
  151. data/lib/datadog/tracing/contrib/grape/endpoint.rb +8 -8
  152. data/lib/datadog/tracing/contrib/grape/integration.rb +1 -1
  153. data/lib/datadog/tracing/contrib/graphql/integration.rb +1 -1
  154. data/lib/datadog/tracing/contrib/graphql/patcher.rb +2 -2
  155. data/lib/datadog/tracing/contrib/graphql/unified_trace.rb +36 -25
  156. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +8 -8
  157. data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +3 -3
  158. data/lib/datadog/tracing/contrib/grpc/distributed/fetcher.rb +1 -1
  159. data/lib/datadog/tracing/contrib/grpc/integration.rb +1 -1
  160. data/lib/datadog/tracing/contrib/hanami/ext.rb +2 -2
  161. data/lib/datadog/tracing/contrib/hanami/integration.rb +1 -1
  162. data/lib/datadog/tracing/contrib/hanami/renderer_policy_tracing.rb +1 -1
  163. data/lib/datadog/tracing/contrib/hanami/router_tracing.rb +9 -11
  164. data/lib/datadog/tracing/contrib/http/distributed/fetcher.rb +4 -4
  165. data/lib/datadog/tracing/contrib/http/ext.rb +3 -2
  166. data/lib/datadog/tracing/contrib/http/instrumentation.rb +5 -5
  167. data/lib/datadog/tracing/contrib/httpclient/ext.rb +3 -2
  168. data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +3 -3
  169. data/lib/datadog/tracing/contrib/httpclient/integration.rb +1 -1
  170. data/lib/datadog/tracing/contrib/httprb/ext.rb +3 -2
  171. data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +4 -4
  172. data/lib/datadog/tracing/contrib/httprb/integration.rb +1 -1
  173. data/lib/datadog/tracing/contrib/kafka/event.rb +1 -1
  174. data/lib/datadog/tracing/contrib/kafka/events/connection/request.rb +1 -1
  175. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_batch.rb +1 -1
  176. data/lib/datadog/tracing/contrib/kafka/events/consumer/process_message.rb +1 -1
  177. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/heartbeat.rb +1 -1
  178. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/join_group.rb +1 -1
  179. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/leave_group.rb +1 -1
  180. data/lib/datadog/tracing/contrib/kafka/events/consumer_group/sync_group.rb +1 -1
  181. data/lib/datadog/tracing/contrib/kafka/events/produce_operation/send_messages.rb +1 -1
  182. data/lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb +1 -1
  183. data/lib/datadog/tracing/contrib/kafka/integration.rb +1 -1
  184. data/lib/datadog/tracing/contrib/karafka/monitor.rb +13 -13
  185. data/lib/datadog/tracing/contrib/karafka/patcher.rb +4 -4
  186. data/lib/datadog/tracing/contrib/lograge/instrumentation.rb +1 -1
  187. data/lib/datadog/tracing/contrib/lograge/integration.rb +1 -1
  188. data/lib/datadog/tracing/contrib/mongodb/configuration/settings.rb +1 -1
  189. data/lib/datadog/tracing/contrib/mongodb/ext.rb +1 -1
  190. data/lib/datadog/tracing/contrib/mongodb/integration.rb +1 -1
  191. data/lib/datadog/tracing/contrib/mongodb/parsers.rb +1 -1
  192. data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +6 -6
  193. data/lib/datadog/tracing/contrib/mysql2/ext.rb +1 -1
  194. data/lib/datadog/tracing/contrib/mysql2/integration.rb +1 -1
  195. data/lib/datadog/tracing/contrib/opensearch/configuration/settings.rb +1 -1
  196. data/lib/datadog/tracing/contrib/opensearch/ext.rb +3 -2
  197. data/lib/datadog/tracing/contrib/opensearch/integration.rb +1 -2
  198. data/lib/datadog/tracing/contrib/opensearch/patcher.rb +68 -70
  199. data/lib/datadog/tracing/contrib/opensearch/quantize.rb +5 -5
  200. data/lib/datadog/tracing/contrib/patcher.rb +7 -9
  201. data/lib/datadog/tracing/contrib/pg/integration.rb +1 -1
  202. data/lib/datadog/tracing/contrib/presto/ext.rb +1 -1
  203. data/lib/datadog/tracing/contrib/presto/instrumentation.rb +3 -3
  204. data/lib/datadog/tracing/contrib/presto/integration.rb +1 -1
  205. data/lib/datadog/tracing/contrib/propagation/sql_comment/comment.rb +1 -1
  206. data/lib/datadog/tracing/contrib/propagation/sql_comment.rb +1 -1
  207. data/lib/datadog/tracing/contrib/que/integration.rb +1 -1
  208. data/lib/datadog/tracing/contrib/racecar/event.rb +1 -1
  209. data/lib/datadog/tracing/contrib/racecar/events/batch.rb +2 -2
  210. data/lib/datadog/tracing/contrib/racecar/events/consume.rb +1 -1
  211. data/lib/datadog/tracing/contrib/racecar/events/message.rb +2 -2
  212. data/lib/datadog/tracing/contrib/racecar/integration.rb +1 -1
  213. data/lib/datadog/tracing/contrib/rack/header_collection.rb +1 -1
  214. data/lib/datadog/tracing/contrib/rack/header_tagging.rb +32 -32
  215. data/lib/datadog/tracing/contrib/rack/integration.rb +1 -1
  216. data/lib/datadog/tracing/contrib/rack/middlewares.rb +21 -17
  217. data/lib/datadog/tracing/contrib/rack/patcher.rb +1 -1
  218. data/lib/datadog/tracing/contrib/rack/request_queue.rb +3 -2
  219. data/lib/datadog/tracing/contrib/rack/trace_proxy_middleware.rb +7 -1
  220. data/lib/datadog/tracing/contrib/rails/configuration/settings.rb +1 -1
  221. data/lib/datadog/tracing/contrib/rails/ext.rb +2 -1
  222. data/lib/datadog/tracing/contrib/rails/integration.rb +2 -2
  223. data/lib/datadog/tracing/contrib/rails/log_injection.rb +1 -1
  224. data/lib/datadog/tracing/contrib/rails/middlewares.rb +1 -1
  225. data/lib/datadog/tracing/contrib/rails/runner.rb +5 -4
  226. data/lib/datadog/tracing/contrib/rake/instrumentation.rb +4 -4
  227. data/lib/datadog/tracing/contrib/rake/integration.rb +1 -1
  228. data/lib/datadog/tracing/contrib/redis/configuration/resolver.rb +2 -2
  229. data/lib/datadog/tracing/contrib/redis/ext.rb +3 -2
  230. data/lib/datadog/tracing/contrib/redis/integration.rb +2 -2
  231. data/lib/datadog/tracing/contrib/redis/patcher.rb +4 -4
  232. data/lib/datadog/tracing/contrib/redis/quantize.rb +1 -1
  233. data/lib/datadog/tracing/contrib/redis/tags.rb +1 -1
  234. data/lib/datadog/tracing/contrib/redis/trace_middleware.rb +4 -4
  235. data/lib/datadog/tracing/contrib/registry.rb +1 -1
  236. data/lib/datadog/tracing/contrib/resque/integration.rb +1 -1
  237. data/lib/datadog/tracing/contrib/resque/resque_job.rb +1 -1
  238. data/lib/datadog/tracing/contrib/rest_client/ext.rb +3 -2
  239. data/lib/datadog/tracing/contrib/rest_client/integration.rb +1 -1
  240. data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +3 -3
  241. data/lib/datadog/tracing/contrib/roda/instrumentation.rb +1 -1
  242. data/lib/datadog/tracing/contrib/roda/integration.rb +1 -1
  243. data/lib/datadog/tracing/contrib/semantic_logger/instrumentation.rb +1 -1
  244. data/lib/datadog/tracing/contrib/semantic_logger/integration.rb +1 -1
  245. data/lib/datadog/tracing/contrib/sequel/database.rb +5 -5
  246. data/lib/datadog/tracing/contrib/sequel/dataset.rb +1 -1
  247. data/lib/datadog/tracing/contrib/sequel/integration.rb +1 -1
  248. data/lib/datadog/tracing/contrib/sequel/utils.rb +1 -1
  249. data/lib/datadog/tracing/contrib/shoryuken/integration.rb +1 -1
  250. data/lib/datadog/tracing/contrib/sidekiq/integration.rb +1 -1
  251. data/lib/datadog/tracing/contrib/sidekiq/utils.rb +1 -1
  252. data/lib/datadog/tracing/contrib/sinatra/integration.rb +1 -1
  253. data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +38 -40
  254. data/lib/datadog/tracing/contrib/sneakers/integration.rb +1 -1
  255. data/lib/datadog/tracing/contrib/span_attribute_schema.rb +1 -1
  256. data/lib/datadog/tracing/contrib/stripe/integration.rb +1 -1
  257. data/lib/datadog/tracing/contrib/stripe/request.rb +1 -1
  258. data/lib/datadog/tracing/contrib/sucker_punch/integration.rb +1 -1
  259. data/lib/datadog/tracing/contrib/trilogy/ext.rb +1 -1
  260. data/lib/datadog/tracing/contrib/trilogy/integration.rb +1 -1
  261. data/lib/datadog/tracing/contrib/utils/quantization/hash.rb +11 -11
  262. data/lib/datadog/tracing/contrib/utils/quantization/http.rb +6 -6
  263. data/lib/datadog/tracing/diagnostics/environment_logger.rb +5 -1
  264. data/lib/datadog/tracing/distributed/b3_single.rb +1 -1
  265. data/lib/datadog/tracing/distributed/baggage.rb +73 -8
  266. data/lib/datadog/tracing/distributed/datadog.rb +4 -5
  267. data/lib/datadog/tracing/distributed/datadog_tags_codec.rb +11 -13
  268. data/lib/datadog/tracing/distributed/helpers.rb +1 -1
  269. data/lib/datadog/tracing/distributed/none.rb +4 -2
  270. data/lib/datadog/tracing/distributed/propagation.rb +4 -1
  271. data/lib/datadog/tracing/distributed/propagation_policy.rb +1 -1
  272. data/lib/datadog/tracing/distributed/trace_context.rb +22 -16
  273. data/lib/datadog/tracing/event.rb +5 -7
  274. data/lib/datadog/tracing/flush.rb +1 -1
  275. data/lib/datadog/tracing/metadata/analytics.rb +1 -1
  276. data/lib/datadog/tracing/metadata/tagging.rb +4 -4
  277. data/lib/datadog/tracing/pipeline/span_filter.rb +3 -1
  278. data/lib/datadog/tracing/pipeline/span_processor.rb +3 -1
  279. data/lib/datadog/tracing/pipeline.rb +1 -1
  280. data/lib/datadog/tracing/sampling/ext.rb +0 -2
  281. data/lib/datadog/tracing/sampling/rule_sampler.rb +30 -30
  282. data/lib/datadog/tracing/sampling/span/rule_parser.rb +1 -1
  283. data/lib/datadog/tracing/sampling/span/sampler.rb +0 -7
  284. data/lib/datadog/tracing/span.rb +1 -1
  285. data/lib/datadog/tracing/span_event.rb +10 -10
  286. data/lib/datadog/tracing/span_link.rb +12 -12
  287. data/lib/datadog/tracing/span_operation.rb +9 -11
  288. data/lib/datadog/tracing/trace_digest.rb +21 -23
  289. data/lib/datadog/tracing/trace_operation.rb +84 -88
  290. data/lib/datadog/tracing/trace_segment.rb +2 -2
  291. data/lib/datadog/tracing/tracer.rb +36 -38
  292. data/lib/datadog/tracing/transport/http/client.rb +1 -1
  293. data/lib/datadog/tracing/transport/http/traces.rb +2 -2
  294. data/lib/datadog/tracing/transport/io/client.rb +5 -5
  295. data/lib/datadog/tracing/transport/io/traces.rb +4 -4
  296. data/lib/datadog/tracing/transport/statistics.rb +1 -1
  297. data/lib/datadog/tracing/transport/traces.rb +5 -5
  298. data/lib/datadog/tracing/workers/trace_writer.rb +12 -12
  299. data/lib/datadog/tracing/workers.rb +2 -2
  300. data/lib/datadog/tracing.rb +2 -2
  301. data/lib/datadog/version.rb +1 -1
  302. metadata +18 -6
@@ -0,0 +1,335 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated from `supported-configurations.json` by `rake local_config_map:generate`.
4
+ # Do not change manually! Please refer to `docs/AccessEnvironmentVariables.md` for more information.
5
+
6
+ module Datadog
7
+ module Core
8
+ module Configuration
9
+ SUPPORTED_CONFIGURATIONS =
10
+ {"DD_AGENT_HOST" => {version: ["A"]},
11
+ "DD_API_KEY" => {version: ["A"]},
12
+ "DD_API_SECURITY_ENABLED" => {version: ["A"]},
13
+ "DD_API_SECURITY_REQUEST_SAMPLE_RATE" => {version: ["A"]},
14
+ "DD_API_SECURITY_SAMPLE_DELAY" => {version: ["A"]},
15
+ "DD_APM_TRACING_ENABLED" => {version: ["A"]},
16
+ "DD_APPSEC_AUTOMATED_USER_EVENTS_TRACKING" => {version: ["A"]},
17
+ "DD_APPSEC_AUTO_USER_INSTRUMENTATION_MODE" => {version: ["A"]},
18
+ "DD_APPSEC_ENABLED" => {version: ["A"]},
19
+ "DD_APPSEC_HTTP_BLOCKED_TEMPLATE_HTML" => {version: ["A"]},
20
+ "DD_APPSEC_HTTP_BLOCKED_TEMPLATE_JSON" => {version: ["A"]},
21
+ "DD_APPSEC_HTTP_BLOCKED_TEMPLATE_TEXT" => {version: ["A"]},
22
+ "DD_APPSEC_MAX_STACK_TRACES" => {version: ["A"]},
23
+ "DD_APPSEC_MAX_STACK_TRACE_DEPTH" => {version: ["A"]},
24
+ "DD_APPSEC_MAX_STACK_TRACE_DEPTH_TOP_PERCENT" => {version: ["A"]},
25
+ "DD_APPSEC_OBFUSCATION_PARAMETER_KEY_REGEXP" => {version: ["A"]},
26
+ "DD_APPSEC_OBFUSCATION_PARAMETER_VALUE_REGEXP" => {version: ["A"]},
27
+ "DD_APPSEC_RASP_ENABLED" => {version: ["A"]},
28
+ "DD_APPSEC_RULES" => {version: ["A"]},
29
+ "DD_APPSEC_SCA_ENABLED" => {version: ["A"]},
30
+ "DD_APPSEC_STACK_TRACE_ENABLED" => {version: ["A"]},
31
+ "DD_APPSEC_TRACE_RATE_LIMIT" => {version: ["A"]},
32
+ "DD_APPSEC_WAF_DEBUG" => {version: ["A"]},
33
+ "DD_APPSEC_WAF_TIMEOUT" => {version: ["A"]},
34
+ "DD_CRASHTRACKING_ENABLED" => {version: ["A"]},
35
+ "DD_DBM_PROPAGATION_MODE" => {version: ["A"]},
36
+ "DD_DISABLE_DATADOG_RAILS" => {version: ["A"]},
37
+ "DD_DYNAMIC_INSTRUMENTATION_ENABLED" => {version: ["A"]},
38
+ "DD_DYNAMIC_INSTRUMENTATION_PROBE_FILE" => {version: ["A"]},
39
+ "DD_DYNAMIC_INSTRUMENTATION_REDACTED_IDENTIFIERS" => {version: ["A"]},
40
+ "DD_DYNAMIC_INSTRUMENTATION_REDACTED_TYPES" => {version: ["A"]},
41
+ "DD_ENV" => {version: ["A"]},
42
+ "DD_ERROR_TRACKING_HANDLED_ERRORS" => {version: ["A"]},
43
+ "DD_ERROR_TRACKING_HANDLED_ERRORS_INCLUDE" => {version: ["A"]},
44
+ "DD_GIT_COMMIT_SHA" => {version: ["A"]},
45
+ "DD_GIT_REPOSITORY_URL" => {version: ["A"]},
46
+ "DD_HEALTH_METRICS_ENABLED" => {version: ["A"]},
47
+ "DD_INJECTION_ENABLED" => {version: ["A"]},
48
+ "DD_INJECT_FORCE" => {version: ["A"]},
49
+ "DD_INSTRUMENTATION_INSTALL_ID" => {version: ["A"]},
50
+ "DD_INSTRUMENTATION_INSTALL_TIME" => {version: ["A"]},
51
+ "DD_INSTRUMENTATION_INSTALL_TYPE" => {version: ["A"]},
52
+ "DD_INSTRUMENTATION_TELEMETRY_ENABLED" => {version: ["A"]},
53
+ "DD_INTEGRATION_SERVICE" => {version: ["A"]},
54
+ "DD_LOGS_INJECTION" => {version: ["A"]},
55
+ "DD_METRIC_AGENT_PORT" => {version: ["A"]},
56
+ "DD_PROFILING_ALLOCATION_ENABLED" => {version: ["A"]},
57
+ "DD_PROFILING_DIR_INTERRUPTION_WORKAROUND_ENABLED" => {version: ["A"]},
58
+ "DD_PROFILING_ENABLED" => {version: ["A"]},
59
+ "DD_PROFILING_ENDPOINT_COLLECTION_ENABLED" => {version: ["A"]},
60
+ "DD_PROFILING_EXPERIMENTAL_HEAP_ENABLED" => {version: ["A"]},
61
+ "DD_PROFILING_EXPERIMENTAL_HEAP_SAMPLE_RATE" => {version: ["A"]},
62
+ "DD_PROFILING_EXPERIMENTAL_HEAP_SIZE_ENABLED" => {version: ["A"]},
63
+ "DD_PROFILING_GC_ENABLED" => {version: ["A"]},
64
+ "DD_PROFILING_GVL_ENABLED" => {version: ["A"]},
65
+ "DD_PROFILING_HEAP_CLEAN_AFTER_GC_ENABLED" => {version: ["A"]},
66
+ "DD_PROFILING_MAX_FRAMES" => {version: ["A"]},
67
+ "DD_PROFILING_NATIVE_FILENAMES_ENABLED" => {version: ["A"]},
68
+ "DD_PROFILING_NO_SIGNALS_WORKAROUND_ENABLED" => {version: ["A"]},
69
+ "DD_PROFILING_OVERHEAD_TARGET_PERCENTAGE" => {version: ["A"]},
70
+ "DD_PROFILING_PREVIEW_OTEL_CONTEXT_ENABLED" => {version: ["A"]},
71
+ "DD_PROFILING_SIGHANDLER_SAMPLING_ENABLED" => {version: ["A"]},
72
+ "DD_PROFILING_SKIP_MYSQL2_CHECK" => {version: ["A"]},
73
+ "DD_PROFILING_TIMELINE_ENABLED" => {version: ["A"]},
74
+ "DD_PROFILING_UPLOAD_PERIOD" => {version: ["A"]},
75
+ "DD_PROFILING_UPLOAD_TIMEOUT" => {version: ["A"]},
76
+ "DD_REDIS_COMMAND_ARGS" => {version: ["A"]},
77
+ "DD_REMOTE_CONFIGURATION_ENABLED" => {version: ["A"]},
78
+ "DD_REMOTE_CONFIG_BOOT_TIMEOUT_SECONDS" => {version: ["A"]},
79
+ "DD_REMOTE_CONFIG_POLL_INTERVAL_SECONDS" => {version: ["A"]},
80
+ "DD_RODA_ANALYTICS_ENABLED" => {version: ["A"]},
81
+ "DD_RODA_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
82
+ "DD_RUNTIME_METRICS_ENABLED" => {version: ["A"]},
83
+ "DD_RUNTIME_METRICS_RUNTIME_ID_ENABLED" => {version: ["A"]},
84
+ "DD_SERVICE" => {version: ["B"]},
85
+ "DD_SITE" => {version: ["A"]},
86
+ "DD_SPAN_SAMPLING_RULES" => {version: ["A"]},
87
+ "DD_SPAN_SAMPLING_RULES_FILE" => {version: ["A"]},
88
+ "DD_TAGS" => {version: ["B"]},
89
+ "DD_TELEMETRY_AGENTLESS_URL" => {version: ["A"]},
90
+ "DD_TELEMETRY_DEPENDENCY_COLLECTION_ENABLED" => {version: ["A"]},
91
+ "DD_TELEMETRY_HEARTBEAT_INTERVAL" => {version: ["A"]},
92
+ "DD_TELEMETRY_LOG_COLLECTION_ENABLED" => {version: ["A"]},
93
+ "DD_TELEMETRY_METRICS_AGGREGATION_INTERVAL" => {version: ["A"]},
94
+ "DD_TELEMETRY_METRICS_ENABLED" => {version: ["A"]},
95
+ "DD_TRACE_128_BIT_TRACEID_GENERATION_ENABLED" => {version: ["A"]},
96
+ "DD_TRACE_128_BIT_TRACEID_LOGGING_ENABLED" => {version: ["A"]},
97
+ "DD_TRACE_ACTION_CABLE_ANALYTICS_ENABLED" => {version: ["A"]},
98
+ "DD_TRACE_ACTION_CABLE_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
99
+ "DD_TRACE_ACTION_CABLE_ENABLED" => {version: ["A"]},
100
+ "DD_TRACE_ACTION_MAILER_ANALYTICS_ENABLED" => {version: ["A"]},
101
+ "DD_TRACE_ACTION_MAILER_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
102
+ "DD_TRACE_ACTION_MAILER_ENABLED" => {version: ["A"]},
103
+ "DD_TRACE_ACTION_PACK_ANALYTICS_ENABLED" => {version: ["A"]},
104
+ "DD_TRACE_ACTION_PACK_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
105
+ "DD_TRACE_ACTION_PACK_ENABLED" => {version: ["A"]},
106
+ "DD_TRACE_ACTION_VIEW_ANALYTICS_ENABLED" => {version: ["A"]},
107
+ "DD_TRACE_ACTION_VIEW_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
108
+ "DD_TRACE_ACTION_VIEW_ENABLED" => {version: ["A"]},
109
+ "DD_TRACE_ACTIVE_JOB_ANALYTICS_ENABLED" => {version: ["A"]},
110
+ "DD_TRACE_ACTIVE_JOB_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
111
+ "DD_TRACE_ACTIVE_JOB_ENABLED" => {version: ["A"]},
112
+ "DD_TRACE_ACTIVE_MODEL_SERIALIZERS_ANALYTICS_ENABLED" => {version: ["A"]},
113
+ "DD_TRACE_ACTIVE_MODEL_SERIALIZERS_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
114
+ "DD_TRACE_ACTIVE_MODEL_SERIALIZERS_ENABLED" => {version: ["A"]},
115
+ "DD_TRACE_ACTIVE_RECORD_ANALYTICS_ENABLED" => {version: ["A"]},
116
+ "DD_TRACE_ACTIVE_RECORD_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
117
+ "DD_TRACE_ACTIVE_RECORD_ENABLED" => {version: ["A"]},
118
+ "DD_TRACE_ACTIVE_SUPPORT_ANALYTICS_ENABLED" => {version: ["A"]},
119
+ "DD_TRACE_ACTIVE_SUPPORT_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
120
+ "DD_TRACE_ACTIVE_SUPPORT_ENABLED" => {version: ["A"]},
121
+ "DD_TRACE_AGENT_PORT" => {version: ["A"]},
122
+ "DD_TRACE_AGENT_TIMEOUT_SECONDS" => {version: ["A"]},
123
+ "DD_TRACE_AGENT_URL" => {version: ["A"]},
124
+ "DD_TRACE_ANALYTICS_ENABLED" => {version: ["A"]},
125
+ "DD_TRACE_AWS_ANALYTICS_ENABLED" => {version: ["A"]},
126
+ "DD_TRACE_AWS_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
127
+ "DD_TRACE_AWS_ENABLED" => {version: ["A"]},
128
+ "DD_TRACE_AWS_PEER_SERVICE" => {version: ["A"]},
129
+ "DD_TRACE_AWS_SERVICE_NAME" => {version: ["A"]},
130
+ "DD_TRACE_BAGGAGE_TAG_KEYS" => {version: ["A"]},
131
+ "DD_TRACE_CLIENT_IP_ENABLED" => {version: ["A"]},
132
+ "DD_TRACE_CLIENT_IP_HEADER" => {version: ["A"]},
133
+ "DD_TRACE_CONCURRENT_RUBY_ENABLED" => {version: ["A"]},
134
+ "DD_TRACE_DALLI_ANALYTICS_ENABLED" => {version: ["A"]},
135
+ "DD_TRACE_DALLI_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
136
+ "DD_TRACE_DALLI_ENABLED" => {version: ["A"]},
137
+ "DD_TRACE_DALLI_PEER_SERVICE" => {version: ["A"]},
138
+ "DD_TRACE_DALLI_SERVICE_NAME" => {version: ["A"]},
139
+ "DD_TRACE_DEBUG" => {version: ["B"]},
140
+ "DD_TRACE_DELAYED_JOB_ANALYTICS_ENABLED" => {version: ["A"]},
141
+ "DD_TRACE_DELAYED_JOB_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
142
+ "DD_TRACE_DELAYED_JOB_ENABLED" => {version: ["A"]},
143
+ "DD_TRACE_ELASTICSEARCH_ANALYTICS_ENABLED" => {version: ["A"]},
144
+ "DD_TRACE_ELASTICSEARCH_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
145
+ "DD_TRACE_ELASTICSEARCH_ENABLED" => {version: ["A"]},
146
+ "DD_TRACE_ELASTICSEARCH_PEER_SERVICE" => {version: ["A"]},
147
+ "DD_TRACE_ELASTICSEARCH_SERVICE_NAME" => {version: ["A"]},
148
+ "DD_TRACE_ENABLED" => {version: ["B"]},
149
+ "DD_TRACE_ETHON_ANALYTICS_ENABLED" => {version: ["A"]},
150
+ "DD_TRACE_ETHON_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
151
+ "DD_TRACE_ETHON_ENABLED" => {version: ["A"]},
152
+ "DD_TRACE_ETHON_PEER_SERVICE" => {version: ["A"]},
153
+ "DD_TRACE_ETHON_SERVICE_NAME" => {version: ["A"]},
154
+ "DD_TRACE_EXCON_ANALYTICS_ENABLED" => {version: ["A"]},
155
+ "DD_TRACE_EXCON_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
156
+ "DD_TRACE_EXCON_ENABLED" => {version: ["A"]},
157
+ "DD_TRACE_EXCON_ERROR_STATUS_CODES" => {version: ["A"]},
158
+ "DD_TRACE_EXCON_PEER_SERVICE" => {version: ["A"]},
159
+ "DD_TRACE_EXCON_SERVICE_NAME" => {version: ["A"]},
160
+ "DD_TRACE_FARADAY_ANALYTICS_ENABLED" => {version: ["A"]},
161
+ "DD_TRACE_FARADAY_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
162
+ "DD_TRACE_FARADAY_ENABLED" => {version: ["A"]},
163
+ "DD_TRACE_FARADAY_ERROR_STATUS_CODES" => {version: ["A"]},
164
+ "DD_TRACE_FARADAY_PEER_SERVICE" => {version: ["A"]},
165
+ "DD_TRACE_FARADAY_SERVICE_NAME" => {version: ["A"]},
166
+ "DD_TRACE_GRAPE_ANALYTICS_ENABLED" => {version: ["A"]},
167
+ "DD_TRACE_GRAPE_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
168
+ "DD_TRACE_GRAPE_ENABLED" => {version: ["A"]},
169
+ "DD_TRACE_GRAPE_ERROR_STATUS_CODES" => {version: ["A"]},
170
+ "DD_TRACE_GRAPHQL_ANALYTICS_ENABLED" => {version: ["A"]},
171
+ "DD_TRACE_GRAPHQL_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
172
+ "DD_TRACE_GRAPHQL_ENABLED" => {version: ["A"]},
173
+ "DD_TRACE_GRAPHQL_ERROR_EXTENSIONS" => {version: ["A"]},
174
+ "DD_TRACE_GRAPHQL_WITH_UNIFIED_TRACER" => {version: ["A"]},
175
+ "DD_TRACE_GRPC_ANALYTICS_ENABLED" => {version: ["A"]},
176
+ "DD_TRACE_GRPC_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
177
+ "DD_TRACE_GRPC_ENABLED" => {version: ["A"]},
178
+ "DD_TRACE_GRPC_PEER_SERVICE" => {version: ["A"]},
179
+ "DD_TRACE_GRPC_SERVICE_NAME" => {version: ["A"]},
180
+ "DD_TRACE_HANAMI_ENABLED" => {version: ["A"]},
181
+ "DD_TRACE_HEADER_TAGS" => {version: ["A"]},
182
+ "DD_TRACE_HTTPCLIENT_ANALYTICS_ENABLED" => {version: ["A"]},
183
+ "DD_TRACE_HTTPCLIENT_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
184
+ "DD_TRACE_HTTPCLIENT_ENABLED" => {version: ["A"]},
185
+ "DD_TRACE_HTTPCLIENT_ERROR_STATUS_CODES" => {version: ["A"]},
186
+ "DD_TRACE_HTTPCLIENT_PEER_SERVICE" => {version: ["A"]},
187
+ "DD_TRACE_HTTPCLIENT_SERVICE_NAME" => {version: ["A"]},
188
+ "DD_TRACE_HTTPRB_ANALYTICS_ENABLED" => {version: ["A"]},
189
+ "DD_TRACE_HTTPRB_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
190
+ "DD_TRACE_HTTPRB_ENABLED" => {version: ["A"]},
191
+ "DD_TRACE_HTTPRB_ERROR_STATUS_CODES" => {version: ["A"]},
192
+ "DD_TRACE_HTTPRB_PEER_SERVICE" => {version: ["A"]},
193
+ "DD_TRACE_HTTPRB_SERVICE_NAME" => {version: ["A"]},
194
+ "DD_TRACE_HTTP_ANALYTICS_ENABLED" => {version: ["A"]},
195
+ "DD_TRACE_HTTP_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
196
+ "DD_TRACE_HTTP_ENABLED" => {version: ["A"]},
197
+ "DD_TRACE_HTTP_ERROR_STATUS_CODES" => {version: ["A"]},
198
+ "DD_TRACE_KAFKA_ANALYTICS_ENABLED" => {version: ["A"]},
199
+ "DD_TRACE_KAFKA_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
200
+ "DD_TRACE_KAFKA_ENABLED" => {version: ["A"]},
201
+ "DD_TRACE_KARAFKA_ENABLED" => {version: ["A"]},
202
+ "DD_TRACE_LOGRAGE_ENABLED" => {version: ["A"]},
203
+ "DD_TRACE_MEMCACHED_COMMAND_ENABLED" => {version: ["A"]},
204
+ "DD_TRACE_MONGO_ANALYTICS_ENABLED" => {version: ["A"]},
205
+ "DD_TRACE_MONGO_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
206
+ "DD_TRACE_MONGO_ENABLED" => {version: ["A"]},
207
+ "DD_TRACE_MONGO_JSON_COMMAND" => {version: ["A"]},
208
+ "DD_TRACE_MONGO_PEER_SERVICE" => {version: ["A"]},
209
+ "DD_TRACE_MONGO_SERVICE_NAME" => {version: ["A"]},
210
+ "DD_TRACE_MYSQL2_ANALYTICS_ENABLED" => {version: ["A"]},
211
+ "DD_TRACE_MYSQL2_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
212
+ "DD_TRACE_MYSQL2_ENABLED" => {version: ["A"]},
213
+ "DD_TRACE_MYSQL2_PEER_SERVICE" => {version: ["A"]},
214
+ "DD_TRACE_MYSQL2_SERVICE_NAME" => {version: ["A"]},
215
+ "DD_TRACE_NATIVE_SPAN_EVENTS" => {version: ["A"]},
216
+ "DD_TRACE_NET_HTTP_PEER_SERVICE" => {version: ["A"]},
217
+ "DD_TRACE_NET_HTTP_SERVICE_NAME" => {version: ["A"]},
218
+ "DD_TRACE_OPENSEARCH_ANALYTICS_ENABLED" => {version: ["A"]},
219
+ "DD_TRACE_OPENSEARCH_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
220
+ "DD_TRACE_OPENSEARCH_ENABLED" => {version: ["A"]},
221
+ "DD_TRACE_OPENSEARCH_PEER_SERVICE" => {version: ["A"]},
222
+ "DD_TRACE_OPENSEARCH_RESOURCE_PATTERN" => {version: ["A"]},
223
+ "DD_TRACE_OPENSEARCH_SERVICE_NAME" => {version: ["A"]},
224
+ "DD_TRACE_PEER_SERVICE_DEFAULTS_ENABLED" => {version: ["A"]},
225
+ "DD_TRACE_PEER_SERVICE_MAPPING" => {version: ["A"]},
226
+ "DD_TRACE_PG_ANALYTICS_ENABLED" => {version: ["A"]},
227
+ "DD_TRACE_PG_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
228
+ "DD_TRACE_PG_ENABLED" => {version: ["A"]},
229
+ "DD_TRACE_PG_PEER_SERVICE" => {version: ["A"]},
230
+ "DD_TRACE_PG_SERVICE_NAME" => {version: ["A"]},
231
+ "DD_TRACE_PRESTO_ANALYTICS_ENABLED" => {version: ["A"]},
232
+ "DD_TRACE_PRESTO_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
233
+ "DD_TRACE_PRESTO_ENABLED" => {version: ["A"]},
234
+ "DD_TRACE_PRESTO_PEER_SERVICE" => {version: ["A"]},
235
+ "DD_TRACE_PRESTO_SERVICE_NAME" => {version: ["A"]},
236
+ "DD_TRACE_PROPAGATION_EXTRACT_FIRST" => {version: ["A"]},
237
+ "DD_TRACE_PROPAGATION_STYLE" => {version: ["B"]},
238
+ "DD_TRACE_PROPAGATION_STYLE_EXTRACT" => {version: ["A"]},
239
+ "DD_TRACE_PROPAGATION_STYLE_INJECT" => {version: ["A"]},
240
+ "DD_TRACE_QUE_ANALYTICS_ENABLED" => {version: ["A"]},
241
+ "DD_TRACE_QUE_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
242
+ "DD_TRACE_QUE_ENABLED" => {version: ["A"]},
243
+ "DD_TRACE_QUE_TAG_ARGS_ENABLED" => {version: ["A"]},
244
+ "DD_TRACE_QUE_TAG_DATA_ENABLED" => {version: ["A"]},
245
+ "DD_TRACE_RACECAR_ANALYTICS_ENABLED" => {version: ["A"]},
246
+ "DD_TRACE_RACECAR_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
247
+ "DD_TRACE_RACECAR_ENABLED" => {version: ["A"]},
248
+ "DD_TRACE_RACK_ANALYTICS_ENABLED" => {version: ["A"]},
249
+ "DD_TRACE_RACK_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
250
+ "DD_TRACE_RACK_ENABLED" => {version: ["A"]},
251
+ "DD_TRACE_RAILS_ANALYTICS_ENABLED" => {version: ["A"]},
252
+ "DD_TRACE_RAILS_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
253
+ "DD_TRACE_RAILS_ENABLED" => {version: ["A"]},
254
+ "DD_TRACE_RAKE_ANALYTICS_ENABLED" => {version: ["A"]},
255
+ "DD_TRACE_RAKE_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
256
+ "DD_TRACE_RAKE_ENABLED" => {version: ["A"]},
257
+ "DD_TRACE_RATE_LIMIT" => {version: ["A"]},
258
+ "DD_TRACE_REDIS_ANALYTICS_ENABLED" => {version: ["A"]},
259
+ "DD_TRACE_REDIS_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
260
+ "DD_TRACE_REDIS_ENABLED" => {version: ["A"]},
261
+ "DD_TRACE_REDIS_PEER_SERVICE" => {version: ["A"]},
262
+ "DD_TRACE_REDIS_SERVICE_NAME" => {version: ["A"]},
263
+ "DD_TRACE_REMOVE_INTEGRATION_SERVICE_NAMES_ENABLED" => {version: ["A"]},
264
+ "DD_TRACE_REPORT_HOSTNAME" => {version: ["A"]},
265
+ "DD_TRACE_RESQUE_ANALYTICS_ENABLED" => {version: ["A"]},
266
+ "DD_TRACE_RESQUE_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
267
+ "DD_TRACE_RESQUE_ENABLED" => {version: ["A"]},
268
+ "DD_TRACE_REST_CLIENT_ANALYTICS_ENABLED" => {version: ["A"]},
269
+ "DD_TRACE_REST_CLIENT_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
270
+ "DD_TRACE_REST_CLIENT_ENABLED" => {version: ["A"]},
271
+ "DD_TRACE_REST_CLIENT_PEER_SERVICE" => {version: ["A"]},
272
+ "DD_TRACE_REST_CLIENT_SERVICE_NAME" => {version: ["A"]},
273
+ "DD_TRACE_RODA_ENABLED" => {version: ["A"]},
274
+ "DD_TRACE_SAMPLE_RATE" => {version: ["B"]},
275
+ "DD_TRACE_SAMPLING_RULES" => {version: ["A"]},
276
+ "DD_TRACE_SEMANTIC_LOGGER_ENABLED" => {version: ["A"]},
277
+ "DD_TRACE_SEQUEL_ANALYTICS_ENABLED" => {version: ["A"]},
278
+ "DD_TRACE_SEQUEL_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
279
+ "DD_TRACE_SEQUEL_ENABLED" => {version: ["A"]},
280
+ "DD_TRACE_SHORYUKEN_ANALYTICS_ENABLED" => {version: ["A"]},
281
+ "DD_TRACE_SHORYUKEN_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
282
+ "DD_TRACE_SHORYUKEN_ENABLED" => {version: ["A"]},
283
+ "DD_TRACE_SIDEKIQ_ANALYTICS_ENABLED" => {version: ["A"]},
284
+ "DD_TRACE_SIDEKIQ_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
285
+ "DD_TRACE_SIDEKIQ_ENABLED" => {version: ["A"]},
286
+ "DD_TRACE_SINATRA_ANALYTICS_ENABLED" => {version: ["A"]},
287
+ "DD_TRACE_SINATRA_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
288
+ "DD_TRACE_SINATRA_ENABLED" => {version: ["A"]},
289
+ "DD_TRACE_SNEAKERS_ANALYTICS_ENABLED" => {version: ["A"]},
290
+ "DD_TRACE_SNEAKERS_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
291
+ "DD_TRACE_SNEAKERS_ENABLED" => {version: ["A"]},
292
+ "DD_TRACE_STARTUP_LOGS" => {version: ["A"]},
293
+ "DD_TRACE_STRIPE_ANALYTICS_ENABLED" => {version: ["A"]},
294
+ "DD_TRACE_STRIPE_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
295
+ "DD_TRACE_STRIPE_ENABLED" => {version: ["A"]},
296
+ "DD_TRACE_SUCKER_PUNCH_ANALYTICS_ENABLED" => {version: ["A"]},
297
+ "DD_TRACE_SUCKER_PUNCH_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
298
+ "DD_TRACE_SUCKER_PUNCH_ENABLED" => {version: ["A"]},
299
+ "DD_TRACE_TEST_MODE_ENABLED" => {version: ["A"]},
300
+ "DD_TRACE_TRILOGY_ANALYTICS_ENABLED" => {version: ["A"]},
301
+ "DD_TRACE_TRILOGY_ANALYTICS_SAMPLE_RATE" => {version: ["A"]},
302
+ "DD_TRACE_TRILOGY_ENABLED" => {version: ["A"]},
303
+ "DD_TRACE_TRILOGY_PEER_SERVICE" => {version: ["A"]},
304
+ "DD_TRACE_TRILOGY_SERVICE_NAME" => {version: ["A"]},
305
+ "DD_TRACE_X_DATADOG_TAGS_MAX_LENGTH" => {version: ["A"]},
306
+ "DD_VERSION" => {version: ["A"]},
307
+ "OTEL_TRACES_SAMPLER_ARG" => {version: ["A"]}}.freeze
308
+
309
+ ALIASES =
310
+ {"DD_DISABLE_DATADOG_RAILS" => ["DISABLE_DATADOG_RAILS"],
311
+ "DD_PROFILING_GVL_ENABLED" => ["DD_PROFILING_PREVIEW_GVL_ENABLED"],
312
+ "DD_RUNTIME_METRICS_RUNTIME_ID_ENABLED" => ["DD_TRACE_EXPERIMENTAL_RUNTIME_ID_ENABLED"],
313
+ "DD_SERVICE" => ["OTEL_SERVICE_NAME"],
314
+ "DD_TAGS" => ["OTEL_RESOURCE_ATTRIBUTES"],
315
+ "DD_TRACE_DEBUG" => ["OTEL_LOG_LEVEL"],
316
+ "DD_TRACE_ENABLED" => ["OTEL_TRACES_EXPORTER"],
317
+ "DD_TRACE_PROPAGATION_STYLE" => ["OTEL_PROPAGATORS"],
318
+ "DD_TRACE_SAMPLE_RATE" => ["OTEL_TRACES_SAMPLER"]}.freeze
319
+
320
+ DEPRECATIONS =
321
+ {"DD_PROFILING_PREVIEW_GVL_ENABLED" => "(This doesn't need a deprecation message since there's an alias for it)"}.freeze
322
+
323
+ ALIAS_TO_CANONICAL =
324
+ {"DD_PROFILING_PREVIEW_GVL_ENABLED" => "DD_PROFILING_GVL_ENABLED",
325
+ "DD_TRACE_EXPERIMENTAL_RUNTIME_ID_ENABLED" => "DD_RUNTIME_METRICS_RUNTIME_ID_ENABLED",
326
+ "DISABLE_DATADOG_RAILS" => "DD_DISABLE_DATADOG_RAILS",
327
+ "OTEL_LOG_LEVEL" => "DD_TRACE_DEBUG",
328
+ "OTEL_PROPAGATORS" => "DD_TRACE_PROPAGATION_STYLE",
329
+ "OTEL_RESOURCE_ATTRIBUTES" => "DD_TAGS",
330
+ "OTEL_SERVICE_NAME" => "DD_SERVICE",
331
+ "OTEL_TRACES_EXPORTER" => "DD_TRACE_ENABLED",
332
+ "OTEL_TRACES_SAMPLER" => "DD_TRACE_SAMPLE_RATE"}.freeze
333
+ end
334
+ end
335
+ end
@@ -295,7 +295,7 @@ module Datadog
295
295
  # such as reading stable config. In this case we cannot access configuration.
296
296
 
297
297
  @temp_config_logger ||= begin
298
- debug_env_value = ENV[Ext::Diagnostics::ENV_DEBUG_ENABLED]&.strip&.downcase
298
+ debug_env_value = DATADOG_ENV[Ext::Diagnostics::ENV_DEBUG_ENABLED]&.strip&.downcase
299
299
  debug_value = debug_env_value == 'true' || debug_env_value == '1'
300
300
 
301
301
  logger = Core::Logger.new($stdout)
@@ -14,10 +14,10 @@ module Datadog
14
14
  # @yieldreturn [String] a String with the lazily evaluated deprecation message.
15
15
  # @param [Boolean] disallowed_next_major whether this deprecation will be enforced in the next major release.
16
16
  # @param [Object] key A unique key for the deprecation. Only the first message with the same key will be logged.
17
- def log_deprecation(disallowed_next_major: true, key: nil)
17
+ def log_deprecation(disallowed_next_major: true, key: nil, logger: Datadog.logger)
18
18
  return unless log_deprecation?(key)
19
19
 
20
- Datadog.logger.warn do
20
+ logger.warn do
21
21
  message = yield
22
22
  message += ' This will be enforced in the next major release.' if disallowed_next_major
23
23
  message
@@ -18,10 +18,8 @@ module Datadog
18
18
  ENV_API_KEY = 'DD_API_KEY'
19
19
  ENV_ENVIRONMENT = 'DD_ENV'
20
20
  ENV_SERVICE = 'DD_SERVICE'
21
- ENV_OTEL_SERVICE = 'OTEL_SERVICE_NAME'
22
21
  ENV_SITE = 'DD_SITE'
23
22
  ENV_TAGS = 'DD_TAGS'
24
- ENV_OTEL_RESOURCE_ATTRIBUTES = 'OTEL_RESOURCE_ATTRIBUTES'
25
23
  ENV_VERSION = 'DD_VERSION'
26
24
  FALLBACK_SERVICE_NAME =
27
25
  begin
@@ -12,13 +12,13 @@ module Datadog
12
12
  def self.git_repository_url
13
13
  return @git_repository_url if defined?(@git_repository_url)
14
14
 
15
- @git_repository_url = Utils::Url.filter_basic_auth(ENV[Datadog::Core::Git::Ext::ENV_REPOSITORY_URL])
15
+ @git_repository_url = Utils::Url.filter_basic_auth(DATADOG_ENV[Datadog::Core::Git::Ext::ENV_REPOSITORY_URL])
16
16
  end
17
17
 
18
18
  def self.git_commit_sha
19
19
  return @git_commit_sha if defined?(@git_commit_sha)
20
20
 
21
- @git_commit_sha = ENV[Datadog::Core::Git::Ext::ENV_COMMIT_SHA]
21
+ @git_commit_sha = DATADOG_ENV[Datadog::Core::Git::Ext::ENV_COMMIT_SHA]
22
22
  end
23
23
  end
24
24
  end
@@ -20,8 +20,8 @@ module Datadog
20
20
  # @return [default] if the environment value is not found
21
21
  def env_to_bool(var, default = nil, deprecation_warning: true)
22
22
  var = decode_array(var, deprecation_warning)
23
- if var && ENV.key?(var)
24
- value = ENV[var].to_s.strip
23
+ if var && DATADOG_ENV.key?(var)
24
+ value = DATADOG_ENV[var].to_s.strip
25
25
  value.downcase!
26
26
  value == 'true' || value == '1'
27
27
  else
@@ -34,7 +34,7 @@ module Datadog
34
34
  def decode_array(var, deprecation_warning)
35
35
  if var.is_a?(Array)
36
36
  var.find.with_index do |env_var, i|
37
- found = ENV.key?(env_var)
37
+ found = DATADOG_ENV.key?(env_var)
38
38
 
39
39
  # Check if we are using a non-preferred environment variable
40
40
  if deprecation_warning && found && i != 0
@@ -54,11 +54,11 @@ module Datadog
54
54
  end
55
55
 
56
56
  def default_hostname
57
- ENV.fetch(Configuration::Ext::Agent::ENV_DEFAULT_HOST, Ext::DEFAULT_HOST)
57
+ DATADOG_ENV.fetch(Configuration::Ext::Agent::ENV_DEFAULT_HOST, Ext::DEFAULT_HOST)
58
58
  end
59
59
 
60
60
  def default_port
61
- ENV.fetch(Configuration::Ext::Metrics::ENV_DEFAULT_PORT, Ext::DEFAULT_PORT).to_i
61
+ DATADOG_ENV.fetch(Configuration::Ext::Metrics::ENV_DEFAULT_PORT, Ext::DEFAULT_PORT).to_i
62
62
  end
63
63
 
64
64
  def default_statsd_client
@@ -2,11 +2,9 @@
2
2
 
3
3
  module Datadog
4
4
  module Core
5
- class ProcessDiscovery
5
+ module ProcessDiscovery
6
6
  class TracerMemfd
7
- attr_accessor :logger
8
-
9
- def shutdown!
7
+ def shutdown!(logger)
10
8
  ProcessDiscovery._native_close_tracer_memfd(self, logger)
11
9
  end
12
10
  end
@@ -2,34 +2,57 @@
2
2
 
3
3
  require 'datadog/core/process_discovery/tracer_memfd'
4
4
 
5
+ require_relative 'utils/at_fork_monkey_patch'
6
+ require_relative 'utils/only_once'
7
+
5
8
  module Datadog
6
9
  module Core
7
10
  # Class used to store tracer metadata in a native file descriptor.
8
- class ProcessDiscovery
9
- def self.get_and_store_metadata(settings, logger)
10
- if (libdatadog_api_failure = Datadog::Core::LIBDATADOG_API_FAILURE)
11
- logger.debug("Cannot enable process discovery: #{libdatadog_api_failure}")
12
- return
11
+ module ProcessDiscovery
12
+ ONLY_ONCE = Core::Utils::OnlyOnce.new
13
+
14
+ class << self
15
+ def publish(settings)
16
+ if (libdatadog_api_failure = Datadog::Core::LIBDATADOG_API_FAILURE)
17
+ Datadog.logger.debug { "Cannot enable process discovery: #{libdatadog_api_failure}" }
18
+ return
19
+ end
20
+
21
+ ONLY_ONCE.run { apply_at_fork_patch }
22
+
23
+ metadata = get_metadata(settings)
24
+
25
+ shutdown!
26
+ @file_descriptor = _native_store_tracer_metadata(Datadog.logger, **metadata)
13
27
  end
14
- metadata = get_metadata(settings)
15
- memfd = _native_store_tracer_metadata(logger, **metadata)
16
- memfd.logger = logger if memfd
17
- memfd
18
- end
19
28
 
20
- # According to the RFC, runtime_id, service_name, service_env, service_version are optional.
21
- # In the C method exposed by ddcommon, memfd_create replaces empty strings by None for these fields.
22
- private_class_method def self.get_metadata(settings)
23
- {
24
- schema_version: 1,
25
- runtime_id: Core::Environment::Identity.id,
26
- tracer_language: Core::Environment::Identity.lang,
27
- tracer_version: Core::Environment::Identity.gem_datadog_version_semver2,
28
- hostname: Core::Environment::Socket.hostname,
29
- service_name: settings.service || '',
30
- service_env: settings.env || '',
31
- service_version: settings.version || ''
32
- }
29
+ def shutdown!
30
+ @file_descriptor&.shutdown!(Datadog.logger)
31
+ @file_descriptor = nil
32
+ end
33
+
34
+ private
35
+
36
+ # According to the RFC, runtime_id, service_name, service_env, service_version are optional.
37
+ # In the C method exposed by ddcommon, memfd_create replaces empty strings by None for these fields.
38
+ def get_metadata(settings)
39
+ {
40
+ schema_version: 1,
41
+ runtime_id: Core::Environment::Identity.id,
42
+ tracer_language: Core::Environment::Identity.lang,
43
+ tracer_version: Core::Environment::Identity.gem_datadog_version_semver2,
44
+ hostname: Core::Environment::Socket.hostname,
45
+ service_name: settings.service || '',
46
+ service_env: settings.env || '',
47
+ service_version: settings.version || ''
48
+ }
49
+ end
50
+
51
+ def apply_at_fork_patch
52
+ # The runtime-id changes after a fork. We apply this patch to at_fork to ensure that the runtime-id is updated.
53
+ Utils::AtForkMonkeyPatch.apply!
54
+ Utils::AtForkMonkeyPatch.at_fork(:child) { publish(Datadog.configuration) }
55
+ end
33
56
  end
34
57
  end
35
58
  end
@@ -13,7 +13,6 @@ module Datadog
13
13
  # @public_api
14
14
  module Metrics
15
15
  ENV_ENABLED = 'DD_RUNTIME_METRICS_ENABLED'
16
- ENV_OTEL_METRICS_EXPORTER = 'OTEL_METRICS_EXPORTER'
17
16
 
18
17
  METRIC_CLASS_COUNT = 'runtime.ruby.class_count'
19
18
  METRIC_GC_PREFIX = 'runtime.ruby.gc'
@@ -100,7 +100,7 @@ module Datadog
100
100
  ),
101
101
 
102
102
  # Mix of env var, programmatic and default config, so we use unknown
103
- conf_value('DD_AGENT_TRANSPORT', agent_transport, seq_id, 'unknown'),
103
+ conf_value('DD_AGENT_TRANSPORT', agent_transport, seq_id, 'unknown'), # rubocop:disable CustomCops/EnvStringValidationCop
104
104
 
105
105
  # writer_options is defined as an option that has a Hash value.
106
106
  conf_value(
@@ -177,7 +177,7 @@ module Datadog
177
177
  list.push(
178
178
  conf_value('instrumentation_source', instrumentation_source, seq_id, 'code'),
179
179
  conf_value('DD_INJECT_FORCE', Core::Environment::VariableHelpers.env_to_bool('DD_INJECT_FORCE', false), seq_id, 'env_var'),
180
- conf_value('DD_INJECTION_ENABLED', ENV['DD_INJECTION_ENABLED'] || '', seq_id, 'env_var'),
180
+ conf_value('DD_INJECTION_ENABLED', DATADOG_ENV['DD_INJECTION_ENABLED'] || '', seq_id, 'env_var'),
181
181
  )
182
182
 
183
183
  # Add some more custom additional payload values here
data/lib/datadog/core.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative 'core/deprecations'
4
+ require_relative 'core/configuration/config_helper'
4
5
  require_relative 'core/extensions'
5
6
 
6
7
  # We must load core extensions to make certain global APIs
@@ -21,6 +22,7 @@ module Datadog
21
22
  end
22
23
  end
23
24
 
25
+ DATADOG_ENV = Core::Configuration::ConfigHelper.new
24
26
  extend Core::Extensions
25
27
 
26
28
  # Add shutdown hook:
@@ -16,7 +16,8 @@ require_relative 'serializer'
16
16
  require_relative 'transport/http'
17
17
  require_relative 'utils'
18
18
 
19
- if %w[1 true yes].include?(ENV['DD_DYNAMIC_INSTRUMENTATION_ENABLED']) # steep:ignore
19
+ if %w[1 true yes].include?(Datadog::DATADOG_ENV['DD_DYNAMIC_INSTRUMENTATION_ENABLED']) # steep:ignore
20
+
20
21
  # For initial release of Dynamic Instrumentation, activate code tracking
21
22
  # only if DI is explicitly requested in the environment.
22
23
  # Code tracking is required for line probes to work; see the comments
@@ -32,3 +33,10 @@ end
32
33
  require_relative 'contrib'
33
34
 
34
35
  Datadog::DI::Contrib.load_now_or_later
36
+
37
+ if %w[1 true yes].include?(Datadog::DATADOG_ENV['DD_DYNAMIC_INSTRUMENTATION_ENABLED']) # steep:ignore
38
+ if Datadog::DATADOG_ENV['DD_DYNAMIC_INSTRUMENTATION_PROBE_FILE']
39
+ require_relative 'probe_file_loader'
40
+ Datadog::DI::ProbeFileLoader.load_now_or_later
41
+ end
42
+ end
@@ -112,6 +112,13 @@ module Datadog
112
112
  probe_manager.close
113
113
  probe_notifier_worker.stop
114
114
  end
115
+
116
+ def parse_probe_spec_and_notify(probe_spec)
117
+ probe = ProbeBuilder.build_from_remote_config(probe_spec)
118
+ payload = probe_notification_builder.build_received(probe)
119
+ probe_notifier_worker.add_status(payload)
120
+ probe
121
+ end
115
122
  end
116
123
  end
117
124
  end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Datadog
4
+ module DI
5
+ module ProbeFileLoader
6
+ # Railtie class initializes dynamic instrumentation contrib code
7
+ # in Rails environments.
8
+ class Railtie < Rails::Railtie
9
+ initializer 'datadog.dynamic_instrumentation.load_probe_file' do |app| # steep:ignore
10
+ ProbeFileLoader.load_now
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end