dd-trace 6.16.0 → 6.17.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 (334) hide show
  1. package/ci/diagnose.js +0 -23
  2. package/ci/test-optimization-validation/approval-artifacts.js +0 -3
  3. package/ci/test-optimization-validation/approval.js +0 -6
  4. package/ci/test-optimization-validation/artifact-id.js +0 -1
  5. package/ci/test-optimization-validation/bounded-json.js +0 -1
  6. package/ci/test-optimization-validation/cli.js +0 -12
  7. package/ci/test-optimization-validation/command-output-policy.js +0 -1
  8. package/ci/test-optimization-validation/command-runner.js +0 -3
  9. package/ci/test-optimization-validation/environment.js +0 -4
  10. package/ci/test-optimization-validation/executable-approval.js +0 -1
  11. package/ci/test-optimization-validation/executable.js +0 -5
  12. package/ci/test-optimization-validation/framework-adapters/cucumber.js +0 -6
  13. package/ci/test-optimization-validation/framework-adapters/cypress.js +0 -3
  14. package/ci/test-optimization-validation/framework-adapters/playwright.js +0 -6
  15. package/ci/test-optimization-validation/framework-adapters/vitest.js +0 -4
  16. package/ci/test-optimization-validation/generated-test-contract.js +0 -5
  17. package/ci/test-optimization-validation/generated-verifier.js +0 -1
  18. package/ci/test-optimization-validation/literal-environment.js +0 -1
  19. package/ci/test-optimization-validation/manifest-scaffold.js +0 -17
  20. package/ci/test-optimization-validation/manifest-schema.js +0 -21
  21. package/ci/test-optimization-validation/offline-fixtures.js +0 -4
  22. package/ci/test-optimization-validation/plan-writer.js +0 -11
  23. package/ci/test-optimization-validation/preflight-runner.js +0 -1
  24. package/ci/test-optimization-validation/redaction.js +0 -4
  25. package/ci/test-optimization-validation/report-writer.js +0 -16
  26. package/ci/test-optimization-validation/runner-command.js +0 -3
  27. package/ci/test-optimization-validation/runner-contract.js +0 -4
  28. package/ci/test-optimization-validation/safe-files.js +0 -1
  29. package/ci/test-optimization-validation/scenarios/basic-reporting.js +0 -1
  30. package/ci/test-optimization-validation/scenarios/ci-wiring.js +0 -1
  31. package/ci/test-optimization-validation/source-text.js +0 -3
  32. package/ci/vitest-no-worker-init-setup.mjs +41 -16
  33. package/index.d.ts +165 -0
  34. package/package.json +17 -16
  35. package/packages/datadog-esbuild/src/utils.js +0 -2
  36. package/packages/datadog-instrumentations/src/aerospike.js +28 -6
  37. package/packages/datadog-instrumentations/src/aws-durable-execution-sdk-js.js +0 -2
  38. package/packages/datadog-instrumentations/src/aws-sdk.js +0 -2
  39. package/packages/datadog-instrumentations/src/claude-agent-sdk.js +0 -2
  40. package/packages/datadog-instrumentations/src/console.js +97 -0
  41. package/packages/datadog-instrumentations/src/cucumber.js +72 -12
  42. package/packages/datadog-instrumentations/src/cypress-config.js +0 -23
  43. package/packages/datadog-instrumentations/src/helpers/channel.js +0 -2
  44. package/packages/datadog-instrumentations/src/helpers/graphql-jit-runtime.js +0 -5
  45. package/packages/datadog-instrumentations/src/helpers/hooks.js +8 -0
  46. package/packages/datadog-instrumentations/src/helpers/instrumentation-utils.js +0 -3
  47. package/packages/datadog-instrumentations/src/helpers/pool-acquire.js +0 -6
  48. package/packages/datadog-instrumentations/src/helpers/register.js +4 -0
  49. package/packages/datadog-instrumentations/src/helpers/rewriter/index.js +72 -24
  50. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentation-registry.js +39 -0
  51. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/index.js +3 -17
  52. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/playwright.js +12 -0
  53. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/postgres.js +36 -0
  54. package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/supabase.js +128 -0
  55. package/packages/datadog-instrumentations/src/helpers/rewriter/targets.json +16 -0
  56. package/packages/datadog-instrumentations/src/helpers/rewriter/transforms/postgres.js +388 -0
  57. package/packages/datadog-instrumentations/src/helpers/rewriter/transforms.js +0 -5
  58. package/packages/datadog-instrumentations/src/helpers/router-helper.js +0 -1
  59. package/packages/datadog-instrumentations/src/jest.js +141 -51
  60. package/packages/datadog-instrumentations/src/knex.js +0 -1
  61. package/packages/datadog-instrumentations/src/mariadb-bundle.js +0 -24
  62. package/packages/datadog-instrumentations/src/mariadb.js +0 -2
  63. package/packages/datadog-instrumentations/src/mocha/common.js +0 -1
  64. package/packages/datadog-instrumentations/src/mocha/main.js +22 -25
  65. package/packages/datadog-instrumentations/src/mocha/utils.js +119 -49
  66. package/packages/datadog-instrumentations/src/mocha/webdriverio-protocol.js +0 -6
  67. package/packages/datadog-instrumentations/src/mocha/worker.js +14 -17
  68. package/packages/datadog-instrumentations/src/mysql2.js +0 -2
  69. package/packages/datadog-instrumentations/src/openai-realtime/audio-accumulator.js +241 -0
  70. package/packages/datadog-instrumentations/src/openai-realtime/events.js +76 -0
  71. package/packages/datadog-instrumentations/src/openai-realtime/index.js +301 -0
  72. package/packages/datadog-instrumentations/src/openai-realtime/session.js +998 -0
  73. package/packages/datadog-instrumentations/src/openai-realtime/turns.js +211 -0
  74. package/packages/datadog-instrumentations/src/openai.js +51 -12
  75. package/packages/datadog-instrumentations/src/oracledb.js +9 -3
  76. package/packages/datadog-instrumentations/src/playwright-reporter.js +3 -16
  77. package/packages/datadog-instrumentations/src/playwright.js +238 -55
  78. package/packages/datadog-instrumentations/src/postgres.js +7 -0
  79. package/packages/datadog-instrumentations/src/router.js +0 -2
  80. package/packages/datadog-instrumentations/src/rum-browser-scripts.js +0 -2
  81. package/packages/datadog-instrumentations/src/sequelize.js +0 -1
  82. package/packages/datadog-instrumentations/src/supabase.js +15 -0
  83. package/packages/datadog-instrumentations/src/vitest-main-no-worker-init.js +18 -18
  84. package/packages/datadog-instrumentations/src/vitest-main.js +37 -17
  85. package/packages/datadog-instrumentations/src/vitest-util.js +7 -1
  86. package/packages/datadog-instrumentations/src/vitest-worker.js +49 -13
  87. package/packages/datadog-instrumentations/src/webdriverio.js +23 -42
  88. package/packages/datadog-instrumentations/src/ws.js +0 -1
  89. package/packages/datadog-plugin-ai/src/utils.js +0 -2
  90. package/packages/datadog-plugin-aws-durable-execution-sdk-js/src/trace-checkpoint.js +0 -1
  91. package/packages/datadog-plugin-aws-durable-execution-sdk-js/src/util.js +0 -2
  92. package/packages/datadog-plugin-aws-sdk/src/base.js +0 -1
  93. package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/utils.js +0 -1
  94. package/packages/datadog-plugin-aws-sdk/src/services/eventbridge.js +0 -1
  95. package/packages/datadog-plugin-aws-sdk/src/util.js +0 -1
  96. package/packages/datadog-plugin-azure-durable-functions/src/index.js +0 -1
  97. package/packages/datadog-plugin-cucumber/src/index.js +10 -0
  98. package/packages/datadog-plugin-cypress/src/cypress-plugin.js +171 -75
  99. package/packages/datadog-plugin-cypress/src/finalization.js +0 -3
  100. package/packages/datadog-plugin-cypress/src/source-map-utils.js +0 -4
  101. package/packages/datadog-plugin-cypress/src/support.js +52 -7
  102. package/packages/datadog-plugin-graphql/src/resolve-error.js +1 -2
  103. package/packages/datadog-plugin-graphql/src/utils.js +0 -5
  104. package/packages/datadog-plugin-jest/src/index.js +13 -0
  105. package/packages/datadog-plugin-kafkajs/src/producer.js +0 -1
  106. package/packages/datadog-plugin-mocha/src/index.js +39 -11
  107. package/packages/datadog-plugin-mongodb-core/src/query.js +0 -1
  108. package/packages/datadog-plugin-openai/src/index.js +16 -1
  109. package/packages/datadog-plugin-openai/src/realtime.js +144 -0
  110. package/packages/datadog-plugin-openai-agents/src/integration.js +0 -4
  111. package/packages/datadog-plugin-openai-agents/src/util.js +0 -1
  112. package/packages/datadog-plugin-playwright/src/index.js +76 -9
  113. package/packages/datadog-plugin-postgres/src/index.js +167 -0
  114. package/packages/datadog-plugin-prisma/src/datadog-tracing-helper.js +0 -1
  115. package/packages/datadog-plugin-redis/src/index.js +15 -1
  116. package/packages/datadog-plugin-supabase/src/error.js +18 -0
  117. package/packages/datadog-plugin-supabase/src/index.js +21 -0
  118. package/packages/datadog-plugin-supabase/src/supabase-auth-js-gotrueclient-getuser.js +69 -0
  119. package/packages/datadog-plugin-supabase/src/supabase-functions-js-functionsclient-invoke.js +70 -0
  120. package/packages/datadog-plugin-supabase/src/supabase-postgrest-js-postgrestbuilder-then.js +122 -0
  121. package/packages/datadog-plugin-supabase/src/supabase-realtime-js-realtimechannel-send.js +66 -0
  122. package/packages/datadog-plugin-supabase/src/supabase-storage-js-handle-request.js +93 -0
  123. package/packages/datadog-plugin-supabase/src/url.js +17 -0
  124. package/packages/datadog-plugin-vitest/src/index.js +10 -0
  125. package/packages/datadog-plugin-ws/src/util.js +0 -4
  126. package/packages/datadog-turbopack/index.js +0 -6
  127. package/packages/datadog-turbopack/src/loader.js +0 -16
  128. package/packages/datadog-webpack/src/loader.js +0 -1
  129. package/packages/dd-trace/src/aiguard/client.js +2 -3
  130. package/packages/dd-trace/src/aiguard/evaluation.js +6 -12
  131. package/packages/dd-trace/src/aiguard/index.js +2 -2
  132. package/packages/dd-trace/src/aiguard/integrations/index.js +1 -1
  133. package/packages/dd-trace/src/aiguard/integrations/openai.js +81 -7
  134. package/packages/dd-trace/src/aiguard/messages/anthropic.js +0 -2
  135. package/packages/dd-trace/src/aiguard/messages/openai.js +64 -1
  136. package/packages/dd-trace/src/aiguard/messages/utils.js +0 -1
  137. package/packages/dd-trace/src/aiguard/redaction.js +0 -1
  138. package/packages/dd-trace/src/aiguard/sdk.js +1 -1
  139. package/packages/dd-trace/src/appsec/activation.js +1 -1
  140. package/packages/dd-trace/src/appsec/api_security/normalized-route.js +0 -5
  141. package/packages/dd-trace/src/appsec/api_security/sampler.js +0 -4
  142. package/packages/dd-trace/src/appsec/blocking/index.js +3 -3
  143. package/packages/dd-trace/src/appsec/downstream_requests.js +1 -4
  144. package/packages/dd-trace/src/appsec/iast/index.js +1 -1
  145. package/packages/dd-trace/src/appsec/iast/overhead-controller.js +5 -5
  146. package/packages/dd-trace/src/appsec/iast/taint-tracking/index.js +1 -1
  147. package/packages/dd-trace/src/appsec/iast/taint-tracking/plugin.js +1 -1
  148. package/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter.js +3 -3
  149. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/sql-sensitive-analyzer.js +8 -10
  150. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-handler.js +2 -2
  151. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/utils.js +4 -1
  152. package/packages/dd-trace/src/appsec/iast/vulnerability-reporter.js +7 -7
  153. package/packages/dd-trace/src/appsec/index.js +2 -2
  154. package/packages/dd-trace/src/appsec/lambda.js +71 -2
  155. package/packages/dd-trace/src/appsec/rasp/utils.js +5 -1
  156. package/packages/dd-trace/src/appsec/remote_config.js +8 -6
  157. package/packages/dd-trace/src/appsec/reporter.js +10 -6
  158. package/packages/dd-trace/src/appsec/rule_manager.js +3 -3
  159. package/packages/dd-trace/src/appsec/sdk/track_event.js +0 -2
  160. package/packages/dd-trace/src/appsec/waf/index.js +2 -2
  161. package/packages/dd-trace/src/appsec/waf/waf_manager.js +8 -5
  162. package/packages/dd-trace/src/carrier.js +0 -5
  163. package/packages/dd-trace/src/ci-visibility/dynamic-atr-retries.js +104 -0
  164. package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/worker/index.js +0 -2
  165. package/packages/dd-trace/src/ci-visibility/efd-retry-policy.js +34 -3
  166. package/packages/dd-trace/src/ci-visibility/exporters/agentless/coverage-writer.js +0 -1
  167. package/packages/dd-trace/src/ci-visibility/exporters/agentless/di-logs-writer.js +0 -1
  168. package/packages/dd-trace/src/ci-visibility/exporters/agentless/writer.js +0 -1
  169. package/packages/dd-trace/src/ci-visibility/exporters/ci-validation/index.js +0 -4
  170. package/packages/dd-trace/src/ci-visibility/exporters/ci-validation/msgpack-to-json.js +0 -1
  171. package/packages/dd-trace/src/ci-visibility/exporters/ci-validation/sink.js +0 -2
  172. package/packages/dd-trace/src/ci-visibility/exporters/ci-visibility-exporter.js +37 -15
  173. package/packages/dd-trace/src/ci-visibility/exporters/git/git_metadata.js +0 -3
  174. package/packages/dd-trace/src/ci-visibility/exporters/request.js +0 -11
  175. package/packages/dd-trace/src/ci-visibility/exporters/settings-cache-key.js +0 -1
  176. package/packages/dd-trace/src/ci-visibility/intelligent-test-runner/get-skippable-suites.js +0 -1
  177. package/packages/dd-trace/src/ci-visibility/requests/fs-cache.js +0 -6
  178. package/packages/dd-trace/src/ci-visibility/requests/get-library-configuration.js +2 -2
  179. package/packages/dd-trace/src/ci-visibility/requests/rate-limit.js +0 -1
  180. package/packages/dd-trace/src/ci-visibility/requests/upload-test-screenshot.js +0 -5
  181. package/packages/dd-trace/src/ci-visibility/requests/video-request.js +0 -1
  182. package/packages/dd-trace/src/ci-visibility/telemetry.js +13 -0
  183. package/packages/dd-trace/src/ci-visibility/test-optimization-cache.js +0 -1
  184. package/packages/dd-trace/src/ci-visibility/test-screenshot.js +0 -2
  185. package/packages/dd-trace/src/ci-visibility/test-video.js +0 -1
  186. package/packages/dd-trace/src/config/defaults.js +3 -2
  187. package/packages/dd-trace/src/config/generated-config-types.d.ts +73 -67
  188. package/packages/dd-trace/src/config/helper.js +0 -1
  189. package/packages/dd-trace/src/config/index.js +24 -24
  190. package/packages/dd-trace/src/config/parsers.js +34 -6
  191. package/packages/dd-trace/src/config/remote_config.js +25 -109
  192. package/packages/dd-trace/src/config/supported-configurations.json +139 -10
  193. package/packages/dd-trace/src/datastreams/encoding.js +0 -1
  194. package/packages/dd-trace/src/datastreams/pathway.js +0 -1
  195. package/packages/dd-trace/src/debugger/constants.js +10 -0
  196. package/packages/dd-trace/src/debugger/devtools_client/breakpoints.js +62 -10
  197. package/packages/dd-trace/src/debugger/devtools_client/config.js +2 -0
  198. package/packages/dd-trace/src/debugger/devtools_client/guardrail-metrics.js +15 -0
  199. package/packages/dd-trace/src/debugger/devtools_client/index.js +103 -27
  200. package/packages/dd-trace/src/debugger/devtools_client/json-buffer.js +50 -7
  201. package/packages/dd-trace/src/debugger/devtools_client/log.js +3 -1
  202. package/packages/dd-trace/src/debugger/devtools_client/probe_sampler.js +21 -8
  203. package/packages/dd-trace/src/debugger/devtools_client/send.js +40 -14
  204. package/packages/dd-trace/src/debugger/devtools_client/snapshot/index.js +53 -13
  205. package/packages/dd-trace/src/debugger/devtools_client/snapshot/processor.js +118 -71
  206. package/packages/dd-trace/src/debugger/devtools_client/snapshot-pruner.js +0 -3
  207. package/packages/dd-trace/src/debugger/devtools_client/status.js +20 -6
  208. package/packages/dd-trace/src/debugger/guardrail-metrics.js +167 -0
  209. package/packages/dd-trace/src/debugger/index.js +50 -2
  210. package/packages/dd-trace/src/debugger/inspect-segment.js +0 -3
  211. package/packages/dd-trace/src/debugger/probe_sampler.js +133 -9
  212. package/packages/dd-trace/src/debugger/probe_sampler_constants.js +31 -1
  213. package/packages/dd-trace/src/dogstatsd.js +0 -23
  214. package/packages/dd-trace/src/encode/0.4-cross-payload.js +0 -3
  215. package/packages/dd-trace/src/encode/0.4.js +0 -7
  216. package/packages/dd-trace/src/encode/0.5.js +0 -2
  217. package/packages/dd-trace/src/encode/tags-processors.js +0 -1
  218. package/packages/dd-trace/src/evp_proxy/discovery.js +0 -1
  219. package/packages/dd-trace/src/evp_proxy/path.js +0 -2
  220. package/packages/dd-trace/src/exporters/agent/writer.js +0 -1
  221. package/packages/dd-trace/src/exporters/agentless/index.js +0 -1
  222. package/packages/dd-trace/src/exporters/agentless/intake.js +0 -1
  223. package/packages/dd-trace/src/exporters/agentless/writer.js +0 -3
  224. package/packages/dd-trace/src/exporters/common/final-flush-request-tracker.js +0 -6
  225. package/packages/dd-trace/src/exporters/common/request.js +1 -0
  226. package/packages/dd-trace/src/exporters/common/url.js +0 -2
  227. package/packages/dd-trace/src/exporters/common/writer.js +0 -2
  228. package/packages/dd-trace/src/id.js +0 -11
  229. package/packages/dd-trace/src/llmobs/audio-codec.js +192 -0
  230. package/packages/dd-trace/src/llmobs/audio-utils.js +121 -0
  231. package/packages/dd-trace/src/llmobs/constants/audio.js +35 -0
  232. package/packages/dd-trace/src/llmobs/constants/prompts.js +14 -0
  233. package/packages/dd-trace/src/llmobs/constants/tags.js +17 -0
  234. package/packages/dd-trace/src/llmobs/eval-metric.js +0 -6
  235. package/packages/dd-trace/src/llmobs/experiments/dataset.js +0 -4
  236. package/packages/dd-trace/src/llmobs/experiments/experiment.js +0 -3
  237. package/packages/dd-trace/src/llmobs/experiments/index.js +7 -6
  238. package/packages/dd-trace/src/llmobs/experiments/util.js +1 -11
  239. package/packages/dd-trace/src/llmobs/index.js +1 -3
  240. package/packages/dd-trace/src/llmobs/noop.js +10 -0
  241. package/packages/dd-trace/src/llmobs/plugins/ai/util.js +0 -4
  242. package/packages/dd-trace/src/llmobs/plugins/anthropic/util.js +0 -1
  243. package/packages/dd-trace/src/llmobs/plugins/genai/util.js +0 -4
  244. package/packages/dd-trace/src/llmobs/plugins/modelcontextprotocol-sdk/utils.js +0 -2
  245. package/packages/dd-trace/src/llmobs/plugins/openai/constants.js +0 -2
  246. package/packages/dd-trace/src/llmobs/plugins/openai/index.js +4 -6
  247. package/packages/dd-trace/src/llmobs/plugins/openai/realtime.js +285 -0
  248. package/packages/dd-trace/src/llmobs/plugins/openai/utils.js +16 -3
  249. package/packages/dd-trace/src/llmobs/prompts/cache.js +272 -0
  250. package/packages/dd-trace/src/llmobs/prompts/manager.js +639 -0
  251. package/packages/dd-trace/src/llmobs/prompts/noop.js +29 -0
  252. package/packages/dd-trace/src/llmobs/prompts/prompt.js +92 -0
  253. package/packages/dd-trace/src/llmobs/sdk.js +21 -6
  254. package/packages/dd-trace/src/llmobs/span_processor.js +81 -2
  255. package/packages/dd-trace/src/llmobs/tagger.js +30 -7
  256. package/packages/dd-trace/src/llmobs/telemetry.js +36 -4
  257. package/packages/dd-trace/src/llmobs/util.js +0 -34
  258. package/packages/dd-trace/src/llmobs/writers/base.js +0 -1
  259. package/packages/dd-trace/src/llmobs/writers/util.js +1 -2
  260. package/packages/dd-trace/src/log/channels.js +3 -0
  261. package/packages/dd-trace/src/log/index.js +23 -5
  262. package/packages/dd-trace/src/log-submission/log-submission-plugin.js +74 -6
  263. package/packages/dd-trace/src/msgpack/chunk.js +0 -1
  264. package/packages/dd-trace/src/openfeature/agentless_configuration_source.js +0 -12
  265. package/packages/dd-trace/src/openfeature/encoding.js +0 -2
  266. package/packages/dd-trace/src/openfeature/eval-metrics-hook.js +0 -1
  267. package/packages/dd-trace/src/openfeature/index.js +0 -4
  268. package/packages/dd-trace/src/openfeature/span-enrichment-hook.js +0 -1
  269. package/packages/dd-trace/src/openfeature/span-enrichment.js +0 -4
  270. package/packages/dd-trace/src/openfeature/writers/base.js +0 -6
  271. package/packages/dd-trace/src/openfeature/writers/exposures.js +0 -5
  272. package/packages/dd-trace/src/openfeature/writers/util.js +0 -4
  273. package/packages/dd-trace/src/opentelemetry/logs/logger.js +0 -1
  274. package/packages/dd-trace/src/opentelemetry/logs/logger_provider.js +0 -1
  275. package/packages/dd-trace/src/opentelemetry/logs/otlp_http_log_exporter.js +0 -1
  276. package/packages/dd-trace/src/opentelemetry/logs/otlp_transformer.js +0 -2
  277. package/packages/dd-trace/src/opentelemetry/metrics/meter_provider.js +0 -1
  278. package/packages/dd-trace/src/opentelemetry/metrics/otlp_span_stats_transformer.js +0 -1
  279. package/packages/dd-trace/src/opentelemetry/metrics/otlp_transformer.js +0 -1
  280. package/packages/dd-trace/src/opentelemetry/metrics/periodic_metric_reader.js +1 -14
  281. package/packages/dd-trace/src/opentelemetry/metrics/time.js +0 -1
  282. package/packages/dd-trace/src/opentelemetry/otlp/otlp_http_exporter_base.js +30 -13
  283. package/packages/dd-trace/src/opentelemetry/otlp/otlp_transformer_base.js +0 -1
  284. package/packages/dd-trace/src/opentelemetry/span-helpers.js +0 -1
  285. package/packages/dd-trace/src/opentelemetry/trace/otlp_http_trace_exporter.js +0 -1
  286. package/packages/dd-trace/src/opentelemetry/trace/otlp_transformer.js +0 -3
  287. package/packages/dd-trace/src/opentracing/propagation/text_map.js +0 -6
  288. package/packages/dd-trace/src/opentracing/span_context.js +0 -1
  289. package/packages/dd-trace/src/otel-thread-ctx.js +38 -11
  290. package/packages/dd-trace/src/payload-tagging/tagging.js +15 -3
  291. package/packages/dd-trace/src/plugins/ci_plugin.js +0 -1
  292. package/packages/dd-trace/src/plugins/database.js +2 -6
  293. package/packages/dd-trace/src/plugins/index.js +7 -0
  294. package/packages/dd-trace/src/plugins/plugin.js +0 -4
  295. package/packages/dd-trace/src/plugins/tracing.js +1 -1
  296. package/packages/dd-trace/src/plugins/util/git.js +1 -3
  297. package/packages/dd-trace/src/plugins/util/http-otel-semantics.js +0 -1
  298. package/packages/dd-trace/src/plugins/util/llm.js +0 -2
  299. package/packages/dd-trace/src/plugins/util/status-validator.js +0 -1
  300. package/packages/dd-trace/src/plugins/util/test.js +21 -20
  301. package/packages/dd-trace/src/plugins/util/url.js +0 -5
  302. package/packages/dd-trace/src/priority_sampler.js +0 -6
  303. package/packages/dd-trace/src/process-tags/index.js +0 -1
  304. package/packages/dd-trace/src/profiler.js +132 -35
  305. package/packages/dd-trace/src/profiling/exporters/event_serializer.js +0 -1
  306. package/packages/dd-trace/src/profiling/profiler.js +101 -41
  307. package/packages/dd-trace/src/profiling/ssi-heuristics.js +29 -15
  308. package/packages/dd-trace/src/propagation-hash/index.js +0 -1
  309. package/packages/dd-trace/src/proxy.js +21 -45
  310. package/packages/dd-trace/src/random_sampler.js +0 -4
  311. package/packages/dd-trace/src/rate_limiter.js +0 -4
  312. package/packages/dd-trace/src/remote_config/capabilities.js +1 -9
  313. package/packages/dd-trace/src/remote_config/index.js +0 -1
  314. package/packages/dd-trace/src/runtime_metrics/otlp_runtime_metrics.js +0 -3
  315. package/packages/dd-trace/src/sampler.js +0 -4
  316. package/packages/dd-trace/src/sampling_rule.js +0 -7
  317. package/packages/dd-trace/src/serverless/vercel.js +0 -1
  318. package/packages/dd-trace/src/serverless.js +0 -1
  319. package/packages/dd-trace/src/service-naming/index.js +0 -1
  320. package/packages/dd-trace/src/service-naming/schemas/util.js +0 -1
  321. package/packages/dd-trace/src/service-naming/schemas/v0/storage.js +7 -0
  322. package/packages/dd-trace/src/service-naming/schemas/v1/storage.js +5 -0
  323. package/packages/dd-trace/src/span_processor.js +2 -2
  324. package/packages/dd-trace/src/span_sampler.js +0 -1
  325. package/packages/dd-trace/src/standalone/product.js +2 -2
  326. package/packages/dd-trace/src/standalone/tracesource.js +0 -1
  327. package/packages/dd-trace/src/startup-log.js +1 -1
  328. package/packages/dd-trace/src/telemetry/endpoints.js +0 -8
  329. package/packages/dd-trace/src/telemetry/logs/index.js +16 -5
  330. package/packages/dd-trace/src/telemetry/logs/log-collector.js +16 -6
  331. package/packages/dd-trace/src/telemetry/metrics.js +0 -2
  332. package/packages/dd-trace/src/telemetry/telemetry.js +4 -1
  333. package/packages/dd-trace/src/util.js +13 -1
  334. package/vendor/dist/@datadog/openfeature-node-server/index.js +1 -1
@@ -4,11 +4,18 @@
4
4
  export interface GeneratedConfig {
5
5
  _DD_APM_TRACING_AGENTLESS_ENABLED: boolean;
6
6
  _DD_TRACE_METRICS_OTEL_FLUSH_INTERVAL: number;
7
+ aiguard: {
8
+ DD_AI_GUARD_ANALYZE_STREAM_RESPONSES_ENABLED: boolean;
9
+ DD_AI_GUARD_BLOCK: boolean;
10
+ DD_AI_GUARD_ENABLED: boolean;
11
+ DD_AI_GUARD_ENDPOINT: string | undefined;
12
+ DD_AI_GUARD_MAX_CONTENT_SIZE: number;
13
+ DD_AI_GUARD_MAX_MESSAGES_LENGTH: number;
14
+ DD_AI_GUARD_REDACTION_ENABLED: boolean;
15
+ DD_AI_GUARD_TIMEOUT: number;
16
+ };
7
17
  apmTracingEnabled: boolean;
8
18
  appsec: {
9
- blockedTemplateGraphql: string | undefined;
10
- blockedTemplateHtml: string | undefined;
11
- blockedTemplateJson: string | undefined;
12
19
  DD_API_SECURITY_DOWNSTREAM_BODY_ANALYSIS_SAMPLE_RATE: number;
13
20
  DD_API_SECURITY_ENABLED: boolean;
14
21
  DD_API_SECURITY_ENDPOINT_COLLECTION_ENABLED: boolean;
@@ -17,30 +24,26 @@ export interface GeneratedConfig {
17
24
  DD_API_SECURITY_MAX_DOWNSTREAM_REQUEST_BODY_ANALYSIS: number;
18
25
  DD_API_SECURITY_SAMPLE_DELAY: number;
19
26
  DD_APPSEC_AGENTIC_ONBOARDING: string;
27
+ DD_APPSEC_AUTO_USER_INSTRUMENTATION_MODE: string;
28
+ DD_APPSEC_COLLECT_ALL_HEADERS: boolean;
29
+ DD_APPSEC_ENABLED: boolean | undefined;
30
+ DD_APPSEC_GRAPHQL_BLOCKED_TEMPLATE_JSON: string | undefined;
31
+ DD_APPSEC_HEADER_COLLECTION_REDACTION_ENABLED: boolean;
32
+ DD_APPSEC_HTTP_BLOCKED_TEMPLATE_HTML: string | undefined;
33
+ DD_APPSEC_HTTP_BLOCKED_TEMPLATE_JSON: string | undefined;
34
+ DD_APPSEC_MAX_COLLECTED_HEADERS: number;
35
+ DD_APPSEC_MAX_STACK_TRACE_DEPTH: number;
36
+ DD_APPSEC_MAX_STACK_TRACES: number;
37
+ DD_APPSEC_OBFUSCATION_PARAMETER_KEY_REGEXP: string;
38
+ DD_APPSEC_OBFUSCATION_PARAMETER_VALUE_REGEXP: string;
39
+ DD_APPSEC_RASP_COLLECT_REQUEST_BODY: boolean;
40
+ DD_APPSEC_RASP_ENABLED: boolean;
41
+ DD_APPSEC_RULES: string | undefined;
20
42
  DD_APPSEC_SCA_ENABLED: boolean | undefined;
21
- enabled: boolean | undefined;
22
- eventTracking: {
23
- mode: string;
24
- };
25
- extendedHeadersCollection: {
26
- enabled: boolean;
27
- maxHeaders: number;
28
- redaction: boolean;
29
- };
30
- obfuscatorKeyRegex: string;
31
- obfuscatorValueRegex: string;
32
- rasp: {
33
- bodyCollection: boolean;
34
- enabled: boolean;
35
- };
36
- rateLimit: number;
37
- rules: string | undefined;
38
- stackTrace: {
39
- enabled: boolean;
40
- maxDepth: number;
41
- maxStackTraces: number;
42
- };
43
- wafTimeout: number;
43
+ DD_APPSEC_STACK_TRACE_ENABLED: boolean;
44
+ DD_APPSEC_TRACE_RATE_LIMIT: number;
45
+ DD_APPSEC_WAF_TIMEOUT: number;
46
+ DD_EXPERIMENTAL_APPSEC_STANDALONE_ENABLED: boolean;
44
47
  };
45
48
  baggageMaxBytes: number;
46
49
  baggageMaxItems: number;
@@ -68,7 +71,6 @@ export interface GeneratedConfig {
68
71
  DD_AGENTLESS_ENABLED: boolean;
69
72
  DD_AGENTLESS_LOG_SUBMISSION_ENABLED: boolean;
70
73
  DD_AGENTLESS_LOG_SUBMISSION_URL: string | undefined;
71
- DD_AI_GUARD_ANALYZE_STREAM_RESPONSES_ENABLED: boolean;
72
74
  DD_API_KEY: string | undefined;
73
75
  DD_APM_FLUSH_DEADLINE_MILLISECONDS: number;
74
76
  DD_APP_KEY: string | undefined;
@@ -116,6 +118,10 @@ export interface GeneratedConfig {
116
118
  DD_INTERNAL_PROFILING_LONG_LIVED_THRESHOLD: number;
117
119
  DD_INTERNAL_PROFILING_TIMELINE_SAMPLING_ENABLED: boolean;
118
120
  DD_LAMBDA_HANDLER: string | undefined;
121
+ DD_LLMOBS_PROMPTS_CACHE_DIR: string | undefined;
122
+ DD_LLMOBS_PROMPTS_CACHE_TTL: number;
123
+ DD_LLMOBS_PROMPTS_FILE_CACHE_ENABLED: boolean;
124
+ DD_LLMOBS_PROMPTS_TIMEOUT: number;
119
125
  DD_LOGS_OTEL_ENABLED: boolean;
120
126
  DD_METRICS_OTEL_ENABLED: boolean;
121
127
  DD_MINI_AGENT_PATH: string | undefined;
@@ -132,7 +138,7 @@ export interface GeneratedConfig {
132
138
  DD_PROFILING_EXPERIMENTAL_CPU_ENABLED: boolean;
133
139
  DD_PROFILING_EXPERIMENTAL_ENDPOINT_COLLECTION_ENABLED: boolean;
134
140
  DD_PROFILING_EXPERIMENTAL_OOM_EXPORT_STRATEGIES: string[];
135
- DD_PROFILING_EXPERIMENTAL_OOM_HEAP_LIMIT_EXTENSION_SIZE: number;
141
+ DD_PROFILING_EXPERIMENTAL_OOM_HEAP_LIMIT_EXTENSION_SIZE: number | 'auto';
136
142
  DD_PROFILING_EXPERIMENTAL_OOM_MAX_HEAP_EXTENSION_COUNT: number;
137
143
  DD_PROFILING_EXPERIMENTAL_OOM_MONITORING_ENABLED: boolean;
138
144
  DD_PROFILING_EXPERIMENTAL_TIMELINE_ENABLED: boolean;
@@ -359,6 +365,7 @@ export interface GeneratedConfig {
359
365
  DD_TRACE_PLAYWRIGHT_CORE_ENABLED: boolean;
360
366
  DD_TRACE_PLAYWRIGHT_ENABLED: boolean;
361
367
  DD_TRACE_PLAYWRIGHT_TEST_ENABLED: boolean;
368
+ DD_TRACE_POSTGRES_ENABLED: boolean;
362
369
  DD_TRACE_PRISMA_ENABLED: boolean;
363
370
  DD_TRACE_PROCESS_ENABLED: boolean;
364
371
  DD_TRACE_PROMISE_ENABLED: boolean;
@@ -387,6 +394,7 @@ export interface GeneratedConfig {
387
394
  DD_TRACE_SPAN_LEAK_DEBUG: number;
388
395
  DD_TRACE_SQLITE3_ENABLED: boolean;
389
396
  DD_TRACE_SUFFIXPLUGIN_ENABLED: boolean;
397
+ DD_TRACE_SUPABASE_ENABLED: boolean;
390
398
  DD_TRACE_TAGS: Record<string, string> | undefined;
391
399
  DD_TRACE_TEDIOUS_ENABLED: boolean;
392
400
  DD_TRACE_UNDICI_ENABLED: boolean;
@@ -415,20 +423,6 @@ export interface GeneratedConfig {
415
423
  };
416
424
  env: string | undefined;
417
425
  experimental: {
418
- aiguard: {
419
- block: boolean;
420
- enabled: boolean;
421
- endpoint: string | undefined;
422
- maxContentSize: number;
423
- maxMessagesLength: number;
424
- redactionEnabled: boolean;
425
- timeout: number;
426
- };
427
- appsec: {
428
- standalone: {
429
- enabled: boolean;
430
- };
431
- };
432
426
  b3: boolean;
433
427
  enableGetRumData: boolean;
434
428
  exporter: string;
@@ -452,20 +446,18 @@ export interface GeneratedConfig {
452
446
  headerTags: string[];
453
447
  hostname: string;
454
448
  iast: {
455
- dbRowsToTaint: number;
449
+ DD_IAST_DB_ROWS_TO_TAINT: number;
450
+ DD_IAST_DEDUPLICATION_ENABLED: boolean;
451
+ DD_IAST_ENABLED: boolean;
452
+ DD_IAST_MAX_CONCURRENT_REQUESTS: number;
453
+ DD_IAST_MAX_CONTEXT_OPERATIONS: number;
454
+ DD_IAST_REDACTION_ENABLED: boolean;
455
+ DD_IAST_REDACTION_NAME_PATTERN: string;
456
+ DD_IAST_REDACTION_VALUE_PATTERN: string;
457
+ DD_IAST_REQUEST_SAMPLING: number;
456
458
  DD_IAST_SECURITY_CONTROLS_CONFIGURATION: string | undefined;
457
- deduplicationEnabled: boolean;
458
- enabled: boolean;
459
- maxConcurrentRequests: number;
460
- maxContextOperations: number;
461
- redactionEnabled: boolean;
462
- redactionNamePattern: string;
463
- redactionValuePattern: string;
464
- requestSampling: number;
465
- stackTrace: {
466
- enabled: boolean;
467
- };
468
- telemetryVerbosity: string;
459
+ DD_IAST_STACK_TRACE_ENABLED: boolean;
460
+ DD_IAST_TELEMETRY_VERBOSITY: string;
469
461
  };
470
462
  inferredProxyServicesEnabled: boolean;
471
463
  langchain: {
@@ -474,19 +466,20 @@ export interface GeneratedConfig {
474
466
  };
475
467
  legacyBaggageEnabled: boolean;
476
468
  llmobs: {
477
- agentlessEnabled: boolean | undefined;
469
+ DD_LLMOBS_AGENTLESS_ENABLED: boolean | undefined;
478
470
  DD_LLMOBS_ENABLED: boolean;
479
- mlApp: string | undefined;
480
- projectName: string | undefined;
481
- sampleRate: number;
471
+ DD_LLMOBS_ML_APP: string | undefined;
472
+ DD_LLMOBS_PROJECT_NAME: string | undefined;
473
+ DD_LLMOBS_SAMPLE_RATE: number;
482
474
  };
483
475
  logInjection: boolean;
484
476
  logLevel: "debug" | "info" | "warn" | "error";
485
477
  middlewareTracingEnabled: boolean;
486
478
  openai: {
479
+ DD_OPENAI_LOGS_ENABLED: boolean;
480
+ DD_OPENAI_REALTIME_ENABLED: boolean;
487
481
  DD_OPENAI_SPAN_CHAR_LIMIT: number;
488
482
  };
489
- openAiLogsEnabled: boolean;
490
483
  OTEL_BSP_MAX_EXPORT_BATCH_SIZE: number;
491
484
  OTEL_BSP_MAX_QUEUE_SIZE: number;
492
485
  OTEL_BSP_SCHEDULE_DELAY: number;
@@ -494,14 +487,14 @@ export interface GeneratedConfig {
494
487
  OTEL_EXPORTER_OTLP_HEADERS: Record<string, string> | undefined;
495
488
  OTEL_EXPORTER_OTLP_LOGS_ENDPOINT: string;
496
489
  OTEL_EXPORTER_OTLP_LOGS_HEADERS: Record<string, string> | undefined;
497
- OTEL_EXPORTER_OTLP_LOGS_PROTOCOL: string;
490
+ OTEL_EXPORTER_OTLP_LOGS_PROTOCOL: "grpc" | "http/json" | "http/protobuf";
498
491
  OTEL_EXPORTER_OTLP_LOGS_TIMEOUT: number;
499
492
  OTEL_EXPORTER_OTLP_METRICS_ENDPOINT: string;
500
493
  OTEL_EXPORTER_OTLP_METRICS_HEADERS: Record<string, string> | undefined;
501
- OTEL_EXPORTER_OTLP_METRICS_PROTOCOL: string;
494
+ OTEL_EXPORTER_OTLP_METRICS_PROTOCOL: "grpc" | "http/json" | "http/protobuf";
502
495
  OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE: "DELTA" | "CUMULATIVE" | "LOWMEMORY";
503
496
  OTEL_EXPORTER_OTLP_METRICS_TIMEOUT: number;
504
- OTEL_EXPORTER_OTLP_PROTOCOL: string;
497
+ OTEL_EXPORTER_OTLP_PROTOCOL: "grpc" | "http/json" | "http/protobuf";
505
498
  OTEL_EXPORTER_OTLP_TIMEOUT: number;
506
499
  OTEL_EXPORTER_OTLP_TRACES_ENDPOINT: string;
507
500
  OTEL_EXPORTER_OTLP_TRACES_HEADERS: Record<string, string> | undefined;
@@ -566,6 +559,8 @@ export interface GeneratedConfig {
566
559
  DD_CIVISIBILITY_CODE_COVERAGE_REPORT_UPLOAD_ENABLED: boolean;
567
560
  DD_CIVISIBILITY_DANGEROUSLY_FORCE_COVERAGE: boolean;
568
561
  DD_CIVISIBILITY_DANGEROUSLY_FORCE_TEST_SKIPPING: boolean;
562
+ DD_CIVISIBILITY_DYNAMIC_ATR_BUCKETS: string[] | undefined;
563
+ DD_CIVISIBILITY_DYNAMIC_ATR_ENABLED: boolean;
569
564
  DD_CIVISIBILITY_EARLY_FLAKE_DETECTION_ENABLED: boolean;
570
565
  DD_CIVISIBILITY_ENABLED: boolean;
571
566
  DD_CIVISIBILITY_FLAKY_RETRY_COUNT: number;
@@ -665,6 +660,8 @@ export interface GeneratedEnvVarConfig {
665
660
  DD_CIVISIBILITY_CODE_COVERAGE_REPORT_UPLOAD_ENABLED: boolean;
666
661
  DD_CIVISIBILITY_DANGEROUSLY_FORCE_COVERAGE: boolean;
667
662
  DD_CIVISIBILITY_DANGEROUSLY_FORCE_TEST_SKIPPING: boolean;
663
+ DD_CIVISIBILITY_DYNAMIC_ATR_BUCKETS: string[] | undefined;
664
+ DD_CIVISIBILITY_DYNAMIC_ATR_ENABLED: boolean;
668
665
  DD_CIVISIBILITY_EARLY_FLAKE_DETECTION_ENABLED: boolean;
669
666
  DD_CIVISIBILITY_ENABLED: boolean;
670
667
  DD_CIVISIBILITY_FLAKY_RETRY_COUNT: number;
@@ -768,6 +765,12 @@ export interface GeneratedEnvVarConfig {
768
765
  DD_LLMOBS_ENABLED: boolean;
769
766
  DD_LLMOBS_ML_APP: string | undefined;
770
767
  DD_LLMOBS_PROJECT_NAME: string | undefined;
768
+ DD_LLMOBS_PROMPTS_CACHE_DIR: string | undefined;
769
+ DD_LLMOBS_PROMPTS_CACHE_TTL: number;
770
+ DD_LLMOBS_PROMPTS_CACHE_TTL_SECONDS: number;
771
+ DD_LLMOBS_PROMPTS_FILE_CACHE_ENABLED: boolean;
772
+ DD_LLMOBS_PROMPTS_TIMEOUT: number;
773
+ DD_LLMOBS_PROMPTS_TIMEOUT_SECONDS: number;
771
774
  DD_LLMOBS_SAMPLE_RATE: number;
772
775
  DD_LOG_LEVEL: "debug" | "info" | "warn" | "error";
773
776
  DD_LOGS_INJECTION: boolean;
@@ -775,6 +778,7 @@ export interface GeneratedEnvVarConfig {
775
778
  DD_METRICS_OTEL_ENABLED: boolean;
776
779
  DD_MINI_AGENT_PATH: string | undefined;
777
780
  DD_OPENAI_LOGS_ENABLED: boolean;
781
+ DD_OPENAI_REALTIME_ENABLED: boolean;
778
782
  DD_OPENAI_SPAN_CHAR_LIMIT: number;
779
783
  DD_PIPELINE_EXECUTION_ID: string | undefined;
780
784
  DD_PLAYWRIGHT_WORKER: string | undefined;
@@ -790,7 +794,7 @@ export interface GeneratedEnvVarConfig {
790
794
  DD_PROFILING_EXPERIMENTAL_CPU_ENABLED: boolean;
791
795
  DD_PROFILING_EXPERIMENTAL_ENDPOINT_COLLECTION_ENABLED: boolean;
792
796
  DD_PROFILING_EXPERIMENTAL_OOM_EXPORT_STRATEGIES: string[];
793
- DD_PROFILING_EXPERIMENTAL_OOM_HEAP_LIMIT_EXTENSION_SIZE: number;
797
+ DD_PROFILING_EXPERIMENTAL_OOM_HEAP_LIMIT_EXTENSION_SIZE: number | 'auto';
794
798
  DD_PROFILING_EXPERIMENTAL_OOM_MAX_HEAP_EXTENSION_COUNT: number;
795
799
  DD_PROFILING_EXPERIMENTAL_OOM_MONITORING_ENABLED: boolean;
796
800
  DD_PROFILING_EXPERIMENTAL_TIMELINE_ENABLED: boolean;
@@ -1073,6 +1077,7 @@ export interface GeneratedEnvVarConfig {
1073
1077
  DD_TRACE_PLAYWRIGHT_CORE_ENABLED: boolean;
1074
1078
  DD_TRACE_PLAYWRIGHT_ENABLED: boolean;
1075
1079
  DD_TRACE_PLAYWRIGHT_TEST_ENABLED: boolean;
1080
+ DD_TRACE_POSTGRES_ENABLED: boolean;
1076
1081
  DD_TRACE_PRISMA_ENABLED: boolean;
1077
1082
  DD_TRACE_PROCESS_ENABLED: boolean;
1078
1083
  DD_TRACE_PROMISE_ENABLED: boolean;
@@ -1111,6 +1116,7 @@ export interface GeneratedEnvVarConfig {
1111
1116
  DD_TRACE_STARTUP_LOGS: boolean;
1112
1117
  DD_TRACE_STATS_COMPUTATION_ENABLED: boolean;
1113
1118
  DD_TRACE_SUFFIXPLUGIN_ENABLED: boolean;
1119
+ DD_TRACE_SUPABASE_ENABLED: boolean;
1114
1120
  DD_TRACE_TAGS: Record<string, string> | undefined;
1115
1121
  DD_TRACE_TEDIOUS_ENABLED: boolean;
1116
1122
  DD_TRACE_TELEMETRY_ENABLED: boolean;
@@ -1140,14 +1146,14 @@ export interface GeneratedEnvVarConfig {
1140
1146
  OTEL_EXPORTER_OTLP_HEADERS: Record<string, string> | undefined;
1141
1147
  OTEL_EXPORTER_OTLP_LOGS_ENDPOINT: string | undefined;
1142
1148
  OTEL_EXPORTER_OTLP_LOGS_HEADERS: Record<string, string> | undefined;
1143
- OTEL_EXPORTER_OTLP_LOGS_PROTOCOL: string;
1149
+ OTEL_EXPORTER_OTLP_LOGS_PROTOCOL: "grpc" | "http/json" | "http/protobuf";
1144
1150
  OTEL_EXPORTER_OTLP_LOGS_TIMEOUT: number;
1145
1151
  OTEL_EXPORTER_OTLP_METRICS_ENDPOINT: string | undefined;
1146
1152
  OTEL_EXPORTER_OTLP_METRICS_HEADERS: Record<string, string> | undefined;
1147
- OTEL_EXPORTER_OTLP_METRICS_PROTOCOL: string;
1153
+ OTEL_EXPORTER_OTLP_METRICS_PROTOCOL: "grpc" | "http/json" | "http/protobuf";
1148
1154
  OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE: "DELTA" | "CUMULATIVE" | "LOWMEMORY";
1149
1155
  OTEL_EXPORTER_OTLP_METRICS_TIMEOUT: number;
1150
- OTEL_EXPORTER_OTLP_PROTOCOL: string;
1156
+ OTEL_EXPORTER_OTLP_PROTOCOL: "grpc" | "http/json" | "http/protobuf";
1151
1157
  OTEL_EXPORTER_OTLP_TIMEOUT: number;
1152
1158
  OTEL_EXPORTER_OTLP_TRACES_ENDPOINT: string | undefined;
1153
1159
  OTEL_EXPORTER_OTLP_TRACES_HEADERS: Record<string, string> | undefined;
@@ -145,7 +145,6 @@ function getEnvNameFromSource (name, source) {
145
145
 
146
146
  /**
147
147
  * @param {string} name
148
- * @returns {boolean}
149
148
  */
150
149
  function isSupportedConfiguration (name) {
151
150
  return supportedConfigurations[name] !== undefined || aliasToCanonical[name] !== undefined
@@ -67,7 +67,6 @@ channel('datadog:identity:update').subscribe(refreshRuntimeId)
67
67
  * Lazily generates the process-wide runtime ID on first access instead of at module load,
68
68
  * so modules that merely require this file without constructing a Config never pay for it.
69
69
  *
70
- * @returns {string}
71
70
  */
72
71
  function getRuntimeId () {
73
72
  runtimeId ??= uuid()
@@ -103,6 +102,10 @@ const tracerMetrics = telemetryMetrics.manager.namespace('tracers')
103
102
  /** @type {Config | null} */
104
103
  let configInstance = null
105
104
 
105
+ // Fires whenever remote config applies a new value; profiling and other RC-driven consumers
106
+ // subscribe here instead of proxy.js hardcoding a call into each of them.
107
+ const configUpdateChannel = channel('datadog:config:update')
108
+
106
109
  // An entry that is undefined means it is the default value.
107
110
  /** @type {Map<ConfigPath, TelemetrySource>} */
108
111
  const trackedConfigOrigins = new Map()
@@ -263,7 +266,7 @@ class Config extends ConfigBase {
263
266
 
264
267
  /**
265
268
  * @param {import('./helper').TracerEnv} envs
266
- * @param {'env_var' | 'local_stable_config' | 'fleet_stable_config'} source
269
+ * @param {'env_var' | 'local_stable_config' | 'fleet_stable_config' | 'remote_config'} source
267
270
  */
268
271
  #applyEnvs (envs, source) {
269
272
  for (const [name, value] of Object.entries(envs)) {
@@ -277,7 +280,7 @@ class Config extends ConfigBase {
277
280
 
278
281
  /**
279
282
  * @param {TracerOptions} options
280
- * @param {'code' | 'remote_config'} source
283
+ * @param {'code'} source
281
284
  * @param {string} [root]
282
285
  */
283
286
  #applyOptions (options, source, root = '') {
@@ -285,13 +288,8 @@ class Config extends ConfigBase {
285
288
  const fullName = root ? `${root}.${name}` : name
286
289
  let entry = optionsTable[fullName]
287
290
  if (!entry) {
288
- // TODO: Fix this by by changing remote config to use env styles.
289
- if (name !== 'DD_TRACE_ENABLED' || source !== 'remote_config') {
290
- log.warn('Unknown option %s with value %o', fullName, value)
291
- continue
292
- }
293
- // @ts-expect-error - The entry is defined in the configurationsTable.
294
- entry = configurationsTable.DD_TRACE_ENABLED
291
+ log.warn('Unknown option %s with value %o', fullName, value)
292
+ continue
295
293
  }
296
294
 
297
295
  if (entry.nestedProperties) {
@@ -337,24 +335,26 @@ class Config extends ConfigBase {
337
335
  }
338
336
 
339
337
  /**
340
- * Set the configuration with remote config settings.
341
- * Applies remote configuration, recalculates derived values, and merges all configuration sources.
338
+ * Set the configuration with SDK_CONFIGURATION remote config settings.
339
+ * Resolves env-var names via `configurationsTable`, since this payload is keyed by env var name.
342
340
  *
343
- * @param {TracerOptions|null} options - Configurations received via Remote
344
- * Config or null to reset all remote configuration
341
+ * @param {Partial<Record<import('./helper').SupportedEnvKey, string>>|null} options - Env-var-keyed
342
+ * configs received via the SDK_CONFIGURATION remote config product, or null to reset all remote configuration
345
343
  */
346
344
  setRemoteConfig (options) {
347
- // Clear all RC-managed fields to ensure previous values don't persist.
348
- // State is instead managed by the `RCClientLibConfigManager` class
345
+ // Replace the complete RC layer so omitted fields fall back to their previous source.
346
+ // TODO: Remove this reset once forward-fixing configurations explicitly unapply removed values.
349
347
  undo(this, 'remote_config')
350
348
 
351
349
  // Special case: if options is null, nothing to apply
352
350
  // This happens when all remote configs are removed
353
351
  if (options !== null) {
354
- this.#applyOptions(options, 'remote_config')
352
+ // Resolve aliases and drop configs this tracer version doesn't recognize
353
+ this.#applyEnvs(getEnvironmentVariables(options, true), 'remote_config')
355
354
  }
356
355
 
357
356
  this.#applyCalculated()
357
+ configUpdateChannel.publish(this)
358
358
  }
359
359
 
360
360
  /**
@@ -439,7 +439,7 @@ class Config extends ConfigBase {
439
439
  // Enable resource renaming when appsec is enabled and only
440
440
  // if DD_TRACE_RESOURCE_RENAMING_ENABLED is not explicitly set
441
441
  if (!trackedConfigOrigins.has('DD_TRACE_RESOURCE_RENAMING_ENABLED')) {
442
- setAndTrack(this, 'DD_TRACE_RESOURCE_RENAMING_ENABLED', this.appsec.enabled ?? false)
442
+ setAndTrack(this, 'DD_TRACE_RESOURCE_RENAMING_ENABLED', this.appsec.DD_APPSEC_ENABLED ?? false)
443
443
  }
444
444
 
445
445
  if (!trackedConfigOrigins.has('spanComputePeerService') && this.spanAttributeSchema !== 'v0') {
@@ -475,8 +475,8 @@ class Config extends ConfigBase {
475
475
  }
476
476
 
477
477
  if (!trackedConfigOrigins.has('apmTracingEnabled') &&
478
- trackedConfigOrigins.has('experimental.appsec.standalone.enabled')) {
479
- setAndTrack(this, 'apmTracingEnabled', !this.experimental.appsec.standalone.enabled)
478
+ trackedConfigOrigins.has('appsec.DD_EXPERIMENTAL_APPSEC_STANDALONE_ENABLED')) {
479
+ setAndTrack(this, 'apmTracingEnabled', !this.appsec.DD_EXPERIMENTAL_APPSEC_STANDALONE_ENABLED)
480
480
  }
481
481
 
482
482
  if (this.cloudPayloadTagging?.request || this.cloudPayloadTagging?.response) {
@@ -530,9 +530,9 @@ class Config extends ConfigBase {
530
530
  // For LLMObs, we want to auto enable it when other llmobs options are defined.
531
531
  if (!this.llmobs.DD_LLMOBS_ENABLED &&
532
532
  !trackedConfigOrigins.has('llmobs.DD_LLMOBS_ENABLED') &&
533
- (trackedConfigOrigins.has('llmobs.agentlessEnabled') ||
534
- trackedConfigOrigins.has('llmobs.mlApp') ||
535
- trackedConfigOrigins.has('llmobs.projectName'))) {
533
+ (trackedConfigOrigins.has('llmobs.DD_LLMOBS_AGENTLESS_ENABLED') ||
534
+ trackedConfigOrigins.has('llmobs.DD_LLMOBS_ML_APP') ||
535
+ trackedConfigOrigins.has('llmobs.DD_LLMOBS_PROJECT_NAME'))) {
536
536
  setAndTrack(this, 'llmobs.DD_LLMOBS_ENABLED', true)
537
537
  }
538
538
 
@@ -648,7 +648,7 @@ class Config extends ConfigBase {
648
648
  setAndTrack(this, 'DD_AGENTLESS_LOG_SUBMISSION_ENABLED', true)
649
649
  }
650
650
  setAndTrack(this, 'testOptimization.DD_CIVISIBILITY_AGENTLESS_ENABLED', true)
651
- setAndTrack(this, 'llmobs.agentlessEnabled', true)
651
+ setAndTrack(this, 'llmobs.DD_LLMOBS_AGENTLESS_ENABLED', true)
652
652
  setAndTrack(this, 'featureFlags.DD_FEATURE_FLAGS_CONFIGURATION_SOURCE', 'agentless')
653
653
  if (this.DD_API_KEY === undefined) {
654
654
  setAndTrack(this, 'dynamicInstrumentation.enabled', false)
@@ -121,6 +121,23 @@ const transformers = {
121
121
  }
122
122
  return configValue
123
123
  },
124
+ /**
125
+ * @param {string} value
126
+ * @param {string} optionName
127
+ * @param {string} source
128
+ * @returns {number | 'auto' | undefined}
129
+ */
130
+ normalizeProfilingHeapLimitExtensionSize (value, optionName, source) {
131
+ if (value.toLowerCase() === 'auto') {
132
+ return 'auto'
133
+ }
134
+
135
+ const parsed = parsers.INT(value)
136
+ if (parsed === undefined) {
137
+ warnInvalidValue(value, optionName, source, 'Heap limit extension size must be an integer or "auto"')
138
+ }
139
+ return parsed
140
+ },
124
141
  /**
125
142
  * Parses DD_PROFILING_DEBUG_UPLOAD_COMPRESSION ('on' | 'off' | 'gzip[-1..9]' | 'zstd[-1..22]')
126
143
  * into the codec and level the profiler uploads with. The value's shape is already range-checked
@@ -199,6 +216,17 @@ const transformers = {
199
216
  return new URL(value)
200
217
  } catch {}
201
218
  },
219
+ /**
220
+ * @param {string} value
221
+ * @param {string} optionName
222
+ * @param {string} source
223
+ * @returns {string | undefined}
224
+ */
225
+ validateHttpUrl (value, optionName, source) {
226
+ const url = transformers.toURL(value)
227
+ if (url?.protocol === 'http:' || url?.protocol === 'https:') return value
228
+ warnInvalidValue(value, optionName, source, 'Invalid HTTP URL')
229
+ },
202
230
  validatePropagationStyles (value, optionName) {
203
231
  value = transformers.toLowerCase(value)
204
232
  for (let index = 0; index < value.length; index++) {
@@ -261,28 +289,28 @@ const parsers = {
261
289
  }
262
290
  return parsed
263
291
  },
264
- ARRAY (raw) {
292
+ ARRAY (raw, optionName) {
265
293
  // TODO: Make the parsing a helper that is reused everywhere.
266
294
  const result = []
267
295
  if (!raw) {
268
296
  return result
269
297
  }
298
+ // Dynamic ATR buckets are positional; retain empty slots for downstream validation.
299
+ const preserveEmptyEntries = optionName === 'DD_CIVISIBILITY_DYNAMIC_ATR_BUCKETS'
270
300
  let valueStart = 0
271
301
  for (let i = 0; i < raw.length; i++) {
272
302
  const char = raw[i]
273
303
  if (char === ',') {
274
304
  const value = raw.slice(valueStart, i).trim()
275
- // Auto filter empty entries.
276
- if (value.length > 0) {
305
+ if (value.length > 0 || preserveEmptyEntries) {
277
306
  result.push(value)
278
307
  }
279
308
  valueStart = i + 1
280
309
  }
281
310
  }
282
- if (valueStart < raw.length) {
311
+ if (valueStart < raw.length || preserveEmptyEntries) {
283
312
  const value = raw.slice(valueStart).trim()
284
- // Auto filter empty entries.
285
- if (value.length > 0) {
313
+ if (value.length > 0 || preserveEmptyEntries) {
286
314
  result.push(value)
287
315
  }
288
316
  }