dd-trace 6.16.0 → 6.18.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.
- package/ci/diagnose.js +0 -23
- package/ci/test-optimization-validation/approval-artifacts.js +0 -3
- package/ci/test-optimization-validation/approval.js +0 -6
- package/ci/test-optimization-validation/artifact-id.js +0 -1
- package/ci/test-optimization-validation/bounded-json.js +0 -1
- package/ci/test-optimization-validation/cli.js +0 -12
- package/ci/test-optimization-validation/command-output-policy.js +0 -1
- package/ci/test-optimization-validation/command-runner.js +0 -3
- package/ci/test-optimization-validation/environment.js +0 -4
- package/ci/test-optimization-validation/executable-approval.js +0 -1
- package/ci/test-optimization-validation/executable.js +0 -5
- package/ci/test-optimization-validation/framework-adapters/cucumber.js +0 -6
- package/ci/test-optimization-validation/framework-adapters/cypress.js +0 -3
- package/ci/test-optimization-validation/framework-adapters/playwright.js +0 -6
- package/ci/test-optimization-validation/framework-adapters/vitest.js +0 -4
- package/ci/test-optimization-validation/generated-test-contract.js +0 -5
- package/ci/test-optimization-validation/generated-verifier.js +0 -1
- package/ci/test-optimization-validation/literal-environment.js +0 -1
- package/ci/test-optimization-validation/manifest-scaffold.js +0 -17
- package/ci/test-optimization-validation/manifest-schema.js +0 -21
- package/ci/test-optimization-validation/offline-fixtures.js +0 -4
- package/ci/test-optimization-validation/plan-writer.js +0 -11
- package/ci/test-optimization-validation/preflight-runner.js +0 -1
- package/ci/test-optimization-validation/redaction.js +0 -4
- package/ci/test-optimization-validation/report-writer.js +0 -16
- package/ci/test-optimization-validation/runner-command.js +0 -3
- package/ci/test-optimization-validation/runner-contract.js +0 -4
- package/ci/test-optimization-validation/safe-files.js +0 -1
- package/ci/test-optimization-validation/scenarios/basic-reporting.js +0 -1
- package/ci/test-optimization-validation/scenarios/ci-wiring.js +0 -1
- package/ci/test-optimization-validation/source-text.js +0 -3
- package/ci/vitest-no-worker-init-setup.mjs +41 -16
- package/index.d.ts +208 -0
- package/package.json +17 -16
- package/packages/datadog-esbuild/src/utils.js +0 -2
- package/packages/datadog-instrumentations/src/aerospike.js +28 -6
- package/packages/datadog-instrumentations/src/aws-durable-execution-sdk-js.js +0 -2
- package/packages/datadog-instrumentations/src/aws-sdk.js +0 -2
- package/packages/datadog-instrumentations/src/claude-agent-sdk.js +0 -2
- package/packages/datadog-instrumentations/src/console.js +97 -0
- package/packages/datadog-instrumentations/src/cucumber.js +77 -12
- package/packages/datadog-instrumentations/src/cypress-config.js +27 -38
- package/packages/datadog-instrumentations/src/helpers/bundler-register.js +6 -0
- package/packages/datadog-instrumentations/src/helpers/channel.js +0 -2
- package/packages/datadog-instrumentations/src/helpers/check-require-cache.js +2 -1
- package/packages/datadog-instrumentations/src/helpers/graphql-jit-runtime.js +0 -5
- package/packages/datadog-instrumentations/src/helpers/hooks.js +8 -6
- package/packages/datadog-instrumentations/src/helpers/instrumentation-utils.js +0 -3
- package/packages/datadog-instrumentations/src/helpers/pool-acquire.js +0 -6
- package/packages/datadog-instrumentations/src/helpers/register.js +24 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/index.js +111 -26
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentation-registry.js +41 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/index.js +3 -17
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/playwright.js +55 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/postgres.js +36 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/supabase.js +128 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/webdriverio.js +13 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/targets.js +28 -3
- package/packages/datadog-instrumentations/src/helpers/rewriter/targets.json +20 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/transforms/postgres.js +388 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/transforms.js +0 -5
- package/packages/datadog-instrumentations/src/helpers/router-helper.js +0 -1
- package/packages/datadog-instrumentations/src/jest.js +165 -51
- package/packages/datadog-instrumentations/src/knex.js +0 -1
- package/packages/datadog-instrumentations/src/mariadb-bundle.js +0 -24
- package/packages/datadog-instrumentations/src/mariadb.js +0 -2
- package/packages/datadog-instrumentations/src/mocha/common.js +0 -1
- package/packages/datadog-instrumentations/src/mocha/main.js +25 -26
- package/packages/datadog-instrumentations/src/mocha/utils.js +119 -49
- package/packages/datadog-instrumentations/src/mocha/webdriverio-protocol.js +0 -6
- package/packages/datadog-instrumentations/src/mocha/worker.js +14 -17
- package/packages/datadog-instrumentations/src/mysql2.js +0 -2
- package/packages/datadog-instrumentations/src/openai-realtime/audio-accumulator.js +241 -0
- package/packages/datadog-instrumentations/src/openai-realtime/events.js +76 -0
- package/packages/datadog-instrumentations/src/openai-realtime/index.js +301 -0
- package/packages/datadog-instrumentations/src/openai-realtime/session.js +998 -0
- package/packages/datadog-instrumentations/src/openai-realtime/turns.js +211 -0
- package/packages/datadog-instrumentations/src/openai.js +51 -12
- package/packages/datadog-instrumentations/src/oracledb.js +9 -3
- package/packages/datadog-instrumentations/src/playwright-reporter.js +6 -20
- package/packages/datadog-instrumentations/src/playwright.js +280 -56
- package/packages/datadog-instrumentations/src/{azure-cosmos.js → postgres.js} +1 -1
- package/packages/datadog-instrumentations/src/router.js +0 -2
- package/packages/datadog-instrumentations/src/rum-browser-scripts.js +0 -2
- package/packages/datadog-instrumentations/src/sequelize.js +0 -1
- package/packages/datadog-instrumentations/src/supabase.js +15 -0
- package/packages/datadog-instrumentations/src/undici.js +7 -3
- package/packages/datadog-instrumentations/src/vitest-main-no-worker-init.js +18 -18
- package/packages/datadog-instrumentations/src/vitest-main.js +121 -30
- package/packages/datadog-instrumentations/src/vitest-util.js +7 -1
- package/packages/datadog-instrumentations/src/vitest-worker.js +49 -13
- package/packages/datadog-instrumentations/src/webdriverio.js +44 -47
- package/packages/datadog-instrumentations/src/ws.js +41 -2
- package/packages/datadog-plugin-ai/src/utils.js +0 -2
- package/packages/datadog-plugin-aws-durable-execution-sdk-js/src/trace-checkpoint.js +0 -1
- package/packages/datadog-plugin-aws-durable-execution-sdk-js/src/util.js +0 -2
- package/packages/datadog-plugin-aws-sdk/src/base.js +0 -1
- package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/utils.js +0 -1
- package/packages/datadog-plugin-aws-sdk/src/services/eventbridge.js +0 -1
- package/packages/datadog-plugin-aws-sdk/src/util.js +0 -1
- package/packages/datadog-plugin-azure-durable-functions/src/index.js +0 -1
- package/packages/datadog-plugin-cucumber/src/index.js +9 -0
- package/packages/datadog-plugin-cypress/src/cypress-plugin.js +211 -85
- package/packages/datadog-plugin-cypress/src/finalization.js +0 -3
- package/packages/datadog-plugin-cypress/src/index.js +3 -1
- package/packages/datadog-plugin-cypress/src/source-map-utils.js +0 -4
- package/packages/datadog-plugin-cypress/src/support.js +52 -7
- package/packages/datadog-plugin-graphql/src/resolve-error.js +1 -2
- package/packages/datadog-plugin-graphql/src/utils.js +0 -5
- package/packages/datadog-plugin-jest/src/index.js +12 -0
- package/packages/datadog-plugin-kafkajs/src/producer.js +0 -1
- package/packages/datadog-plugin-mocha/src/index.js +38 -11
- package/packages/datadog-plugin-mongodb-core/src/query.js +0 -1
- package/packages/datadog-plugin-openai/src/index.js +16 -1
- package/packages/datadog-plugin-openai/src/realtime.js +144 -0
- package/packages/datadog-plugin-openai-agents/src/integration.js +0 -4
- package/packages/datadog-plugin-openai-agents/src/util.js +0 -1
- package/packages/datadog-plugin-playwright/src/index.js +81 -9
- package/packages/datadog-plugin-postgres/src/index.js +167 -0
- package/packages/datadog-plugin-prisma/src/datadog-tracing-helper.js +0 -1
- package/packages/datadog-plugin-redis/src/index.js +15 -1
- package/packages/datadog-plugin-supabase/src/error.js +18 -0
- package/packages/datadog-plugin-supabase/src/index.js +21 -0
- package/packages/datadog-plugin-supabase/src/supabase-auth-js-gotrueclient-getuser.js +69 -0
- package/packages/datadog-plugin-supabase/src/supabase-functions-js-functionsclient-invoke.js +70 -0
- package/packages/datadog-plugin-supabase/src/supabase-postgrest-js-postgrestbuilder-then.js +122 -0
- package/packages/datadog-plugin-supabase/src/supabase-realtime-js-realtimechannel-send.js +66 -0
- package/packages/datadog-plugin-supabase/src/supabase-storage-js-handle-request.js +93 -0
- package/packages/datadog-plugin-supabase/src/url.js +17 -0
- package/packages/datadog-plugin-vitest/src/index.js +9 -0
- package/packages/datadog-plugin-ws/src/producer.js +1 -1
- package/packages/datadog-plugin-ws/src/util.js +0 -4
- package/packages/datadog-shimmer/src/shimmer.js +14 -10
- package/packages/datadog-turbopack/index.js +4 -7
- package/packages/datadog-turbopack/src/loader.js +6 -18
- package/packages/datadog-webpack/src/loader.js +0 -1
- package/packages/dd-trace/src/agent/info.js +5 -4
- package/packages/dd-trace/src/aiguard/client.js +2 -3
- package/packages/dd-trace/src/aiguard/evaluation.js +6 -12
- package/packages/dd-trace/src/aiguard/index.js +2 -2
- package/packages/dd-trace/src/aiguard/integrations/index.js +1 -1
- package/packages/dd-trace/src/aiguard/integrations/openai.js +81 -7
- package/packages/dd-trace/src/aiguard/messages/anthropic.js +0 -2
- package/packages/dd-trace/src/aiguard/messages/openai.js +64 -1
- package/packages/dd-trace/src/aiguard/messages/utils.js +0 -1
- package/packages/dd-trace/src/aiguard/redaction.js +0 -1
- package/packages/dd-trace/src/aiguard/sdk.js +1 -1
- package/packages/dd-trace/src/appsec/activation.js +1 -1
- package/packages/dd-trace/src/appsec/api_security/normalized-route.js +0 -5
- package/packages/dd-trace/src/appsec/api_security/sampler.js +0 -4
- package/packages/dd-trace/src/appsec/blocking/index.js +3 -3
- package/packages/dd-trace/src/appsec/downstream_requests.js +1 -4
- package/packages/dd-trace/src/appsec/iast/index.js +1 -1
- package/packages/dd-trace/src/appsec/iast/overhead-controller.js +5 -5
- package/packages/dd-trace/src/appsec/iast/taint-tracking/index.js +1 -1
- package/packages/dd-trace/src/appsec/iast/taint-tracking/plugin.js +1 -1
- package/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter.js +3 -3
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/sql-sensitive-analyzer.js +8 -10
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-handler.js +2 -2
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/utils.js +4 -1
- package/packages/dd-trace/src/appsec/iast/vulnerability-reporter.js +7 -7
- package/packages/dd-trace/src/appsec/index.js +2 -2
- package/packages/dd-trace/src/appsec/lambda.js +71 -2
- package/packages/dd-trace/src/appsec/rasp/utils.js +5 -1
- package/packages/dd-trace/src/appsec/remote_config.js +8 -6
- package/packages/dd-trace/src/appsec/reporter.js +10 -6
- package/packages/dd-trace/src/appsec/rule_manager.js +3 -3
- package/packages/dd-trace/src/appsec/sdk/track_event.js +0 -2
- package/packages/dd-trace/src/appsec/waf/index.js +2 -2
- package/packages/dd-trace/src/appsec/waf/waf_manager.js +8 -5
- package/packages/dd-trace/src/carrier.js +0 -5
- package/packages/dd-trace/src/ci-visibility/dynamic-atr-retries.js +104 -0
- package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/worker/index.js +0 -2
- package/packages/dd-trace/src/ci-visibility/efd-retry-policy.js +34 -3
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/coverage-writer.js +0 -1
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/di-logs-writer.js +0 -1
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/writer.js +0 -1
- package/packages/dd-trace/src/ci-visibility/exporters/ci-validation/index.js +0 -4
- package/packages/dd-trace/src/ci-visibility/exporters/ci-validation/msgpack-to-json.js +0 -1
- package/packages/dd-trace/src/ci-visibility/exporters/ci-validation/sink.js +0 -2
- package/packages/dd-trace/src/ci-visibility/exporters/ci-visibility-exporter.js +37 -15
- package/packages/dd-trace/src/ci-visibility/exporters/git/git_metadata.js +0 -3
- package/packages/dd-trace/src/ci-visibility/exporters/request.js +0 -11
- package/packages/dd-trace/src/ci-visibility/exporters/settings-cache-key.js +0 -1
- package/packages/dd-trace/src/ci-visibility/intelligent-test-runner/get-skippable-suites.js +0 -1
- package/packages/dd-trace/src/ci-visibility/requests/fs-cache.js +0 -6
- package/packages/dd-trace/src/ci-visibility/requests/get-library-configuration.js +2 -2
- package/packages/dd-trace/src/ci-visibility/requests/rate-limit.js +0 -1
- package/packages/dd-trace/src/ci-visibility/requests/upload-test-screenshot.js +0 -5
- package/packages/dd-trace/src/ci-visibility/requests/video-request.js +0 -1
- package/packages/dd-trace/src/ci-visibility/telemetry.js +13 -0
- package/packages/dd-trace/src/ci-visibility/test-optimization-cache.js +0 -1
- package/packages/dd-trace/src/ci-visibility/test-screenshot.js +0 -2
- package/packages/dd-trace/src/ci-visibility/test-video.js +0 -1
- package/packages/dd-trace/src/config/defaults.js +3 -2
- package/packages/dd-trace/src/config/generated-config-types.d.ts +88 -82
- package/packages/dd-trace/src/config/helper.js +0 -1
- package/packages/dd-trace/src/config/index.js +31 -30
- package/packages/dd-trace/src/config/parsers.js +34 -6
- package/packages/dd-trace/src/config/remote_config.js +25 -109
- package/packages/dd-trace/src/config/supported-configurations.json +150 -10
- package/packages/dd-trace/src/datastreams/encoding.js +0 -1
- package/packages/dd-trace/src/datastreams/pathway.js +0 -1
- package/packages/dd-trace/src/debugger/constants.js +10 -0
- package/packages/dd-trace/src/debugger/devtools_client/breakpoints.js +62 -10
- package/packages/dd-trace/src/debugger/devtools_client/config.js +4 -1
- package/packages/dd-trace/src/debugger/devtools_client/guardrail-metrics.js +15 -0
- package/packages/dd-trace/src/debugger/devtools_client/index.js +103 -27
- package/packages/dd-trace/src/debugger/devtools_client/json-buffer.js +50 -7
- package/packages/dd-trace/src/debugger/devtools_client/log.js +3 -1
- package/packages/dd-trace/src/debugger/devtools_client/probe_sampler.js +21 -8
- package/packages/dd-trace/src/debugger/devtools_client/send.js +41 -15
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/index.js +53 -13
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/processor.js +118 -71
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/redaction.js +5 -3
- package/packages/dd-trace/src/debugger/devtools_client/snapshot-pruner.js +0 -3
- package/packages/dd-trace/src/debugger/devtools_client/status.js +21 -7
- package/packages/dd-trace/src/debugger/guardrail-metrics.js +167 -0
- package/packages/dd-trace/src/debugger/index.js +51 -3
- package/packages/dd-trace/src/debugger/inspect-segment.js +0 -3
- package/packages/dd-trace/src/debugger/probe_sampler.js +133 -9
- package/packages/dd-trace/src/debugger/probe_sampler_constants.js +31 -1
- package/packages/dd-trace/src/dogstatsd.js +0 -23
- package/packages/dd-trace/src/encode/0.4-cross-payload.js +0 -3
- package/packages/dd-trace/src/encode/0.4.js +0 -7
- package/packages/dd-trace/src/encode/0.5.js +0 -2
- package/packages/dd-trace/src/encode/tags-processors.js +0 -1
- package/packages/dd-trace/src/evp_proxy/constants.js +2 -0
- package/packages/dd-trace/src/evp_proxy/direct.js +17 -13
- package/packages/dd-trace/src/evp_proxy/discovery.js +14 -11
- package/packages/dd-trace/src/evp_proxy/path.js +21 -9
- package/packages/dd-trace/src/exporters/agent/writer.js +0 -1
- package/packages/dd-trace/src/exporters/agentless/index.js +0 -1
- package/packages/dd-trace/src/exporters/agentless/intake.js +0 -1
- package/packages/dd-trace/src/exporters/agentless/writer.js +0 -3
- package/packages/dd-trace/src/exporters/common/final-flush-request-tracker.js +0 -6
- package/packages/dd-trace/src/exporters/common/request.js +1 -0
- package/packages/dd-trace/src/exporters/common/url.js +33 -4
- package/packages/dd-trace/src/exporters/common/writer.js +0 -2
- package/packages/dd-trace/src/id.js +0 -11
- package/packages/dd-trace/src/llmobs/audio-codec.js +192 -0
- package/packages/dd-trace/src/llmobs/audio-utils.js +121 -0
- package/packages/dd-trace/src/llmobs/constants/audio.js +35 -0
- package/packages/dd-trace/src/llmobs/constants/prompts.js +14 -0
- package/packages/dd-trace/src/llmobs/constants/tags.js +17 -0
- package/packages/dd-trace/src/llmobs/eval-metric.js +0 -6
- package/packages/dd-trace/src/llmobs/experiments/dataset.js +0 -4
- package/packages/dd-trace/src/llmobs/experiments/experiment.js +0 -3
- package/packages/dd-trace/src/llmobs/experiments/index.js +7 -6
- package/packages/dd-trace/src/llmobs/experiments/util.js +1 -11
- package/packages/dd-trace/src/llmobs/index.js +1 -3
- package/packages/dd-trace/src/llmobs/noop.js +10 -0
- package/packages/dd-trace/src/llmobs/plugins/ai/util.js +0 -4
- package/packages/dd-trace/src/llmobs/plugins/anthropic/util.js +0 -1
- package/packages/dd-trace/src/llmobs/plugins/genai/util.js +0 -4
- package/packages/dd-trace/src/llmobs/plugins/modelcontextprotocol-sdk/utils.js +0 -2
- package/packages/dd-trace/src/llmobs/plugins/openai/constants.js +0 -2
- package/packages/dd-trace/src/llmobs/plugins/openai/index.js +4 -6
- package/packages/dd-trace/src/llmobs/plugins/openai/realtime.js +285 -0
- package/packages/dd-trace/src/llmobs/plugins/openai/utils.js +16 -3
- package/packages/dd-trace/src/llmobs/prompts/cache.js +272 -0
- package/packages/dd-trace/src/llmobs/prompts/manager.js +647 -0
- package/packages/dd-trace/src/llmobs/prompts/noop.js +29 -0
- package/packages/dd-trace/src/llmobs/prompts/prompt.js +158 -0
- package/packages/dd-trace/src/llmobs/sdk.js +21 -6
- package/packages/dd-trace/src/llmobs/span_processor.js +81 -2
- package/packages/dd-trace/src/llmobs/tagger.js +39 -11
- package/packages/dd-trace/src/llmobs/telemetry.js +36 -4
- package/packages/dd-trace/src/llmobs/util.js +0 -34
- package/packages/dd-trace/src/llmobs/writers/base.js +0 -1
- package/packages/dd-trace/src/llmobs/writers/util.js +1 -2
- package/packages/dd-trace/src/log/channels.js +3 -0
- package/packages/dd-trace/src/log/index.js +23 -5
- package/packages/dd-trace/src/log-submission/log-submission-plugin.js +74 -6
- package/packages/dd-trace/src/msgpack/chunk.js +0 -1
- package/packages/dd-trace/src/openfeature/agentless_configuration_source.js +0 -12
- package/packages/dd-trace/src/openfeature/configuration_source.js +4 -1
- package/packages/dd-trace/src/openfeature/encoding.js +0 -2
- package/packages/dd-trace/src/openfeature/eval-metrics-hook.js +0 -1
- package/packages/dd-trace/src/openfeature/flagging_provider.js +3 -3
- package/packages/dd-trace/src/openfeature/index.js +6 -6
- package/packages/dd-trace/src/openfeature/span-enrichment-hook.js +0 -1
- package/packages/dd-trace/src/openfeature/span-enrichment.js +0 -4
- package/packages/dd-trace/src/openfeature/writers/base.js +90 -23
- package/packages/dd-trace/src/openfeature/writers/exposures.js +4 -5
- package/packages/dd-trace/src/openfeature/writers/util.js +104 -37
- package/packages/dd-trace/src/opentelemetry/logs/logger.js +0 -1
- package/packages/dd-trace/src/opentelemetry/logs/logger_provider.js +0 -1
- package/packages/dd-trace/src/opentelemetry/logs/otlp_http_log_exporter.js +0 -1
- package/packages/dd-trace/src/opentelemetry/logs/otlp_transformer.js +0 -2
- package/packages/dd-trace/src/opentelemetry/metrics/meter_provider.js +0 -1
- package/packages/dd-trace/src/opentelemetry/metrics/otlp_span_stats_transformer.js +0 -1
- package/packages/dd-trace/src/opentelemetry/metrics/otlp_transformer.js +0 -1
- package/packages/dd-trace/src/opentelemetry/metrics/periodic_metric_reader.js +1 -14
- package/packages/dd-trace/src/opentelemetry/metrics/time.js +0 -1
- package/packages/dd-trace/src/opentelemetry/otlp/otlp_http_exporter_base.js +30 -13
- package/packages/dd-trace/src/opentelemetry/otlp/otlp_transformer_base.js +0 -1
- package/packages/dd-trace/src/opentelemetry/span-helpers.js +0 -1
- package/packages/dd-trace/src/opentelemetry/trace/otlp_http_trace_exporter.js +0 -1
- package/packages/dd-trace/src/opentelemetry/trace/otlp_transformer.js +0 -3
- package/packages/dd-trace/src/opentracing/propagation/text_map.js +0 -6
- package/packages/dd-trace/src/opentracing/span_context.js +0 -1
- package/packages/dd-trace/src/opentracing/tracer.js +3 -3
- package/packages/dd-trace/src/otel-thread-ctx.js +38 -11
- package/packages/dd-trace/src/payload-tagging/tagging.js +15 -3
- package/packages/dd-trace/src/plugin_manager.js +27 -8
- package/packages/dd-trace/src/plugins/ci_plugin.js +1 -2
- package/packages/dd-trace/src/plugins/database.js +2 -6
- package/packages/dd-trace/src/plugins/index.js +7 -0
- package/packages/dd-trace/src/plugins/plugin.js +0 -4
- package/packages/dd-trace/src/plugins/tracing.js +1 -1
- package/packages/dd-trace/src/plugins/util/git.js +1 -3
- package/packages/dd-trace/src/plugins/util/http-otel-semantics.js +0 -1
- package/packages/dd-trace/src/plugins/util/llm.js +0 -2
- package/packages/dd-trace/src/plugins/util/status-validator.js +0 -1
- package/packages/dd-trace/src/plugins/util/test.js +26 -20
- package/packages/dd-trace/src/plugins/util/url.js +0 -5
- package/packages/dd-trace/src/priority_sampler.js +0 -6
- package/packages/dd-trace/src/process-tags/index.js +0 -1
- package/packages/dd-trace/src/profiler.js +132 -35
- package/packages/dd-trace/src/profiling/exporters/event_serializer.js +0 -1
- package/packages/dd-trace/src/profiling/profiler.js +101 -41
- package/packages/dd-trace/src/profiling/ssi-heuristics.js +29 -15
- package/packages/dd-trace/src/propagation-hash/index.js +0 -1
- package/packages/dd-trace/src/proxy.js +23 -47
- package/packages/dd-trace/src/random_sampler.js +0 -4
- package/packages/dd-trace/src/rate_limiter.js +0 -4
- package/packages/dd-trace/src/remote_config/capabilities.js +1 -9
- package/packages/dd-trace/src/remote_config/index.js +0 -1
- package/packages/dd-trace/src/runtime_metrics/otlp_runtime_metrics.js +0 -3
- package/packages/dd-trace/src/sampler.js +0 -4
- package/packages/dd-trace/src/sampling_rule.js +0 -7
- package/packages/dd-trace/src/serverless/vercel.js +0 -1
- package/packages/dd-trace/src/serverless.js +0 -1
- package/packages/dd-trace/src/service-naming/index.js +0 -1
- package/packages/dd-trace/src/service-naming/schemas/util.js +0 -1
- package/packages/dd-trace/src/service-naming/schemas/v0/storage.js +7 -0
- package/packages/dd-trace/src/service-naming/schemas/v1/storage.js +5 -0
- package/packages/dd-trace/src/span_processor.js +2 -2
- package/packages/dd-trace/src/span_sampler.js +0 -1
- package/packages/dd-trace/src/standalone/product.js +2 -2
- package/packages/dd-trace/src/standalone/tracesource.js +0 -1
- package/packages/dd-trace/src/startup-log.js +1 -1
- package/packages/dd-trace/src/telemetry/endpoints.js +0 -8
- package/packages/dd-trace/src/telemetry/logs/index.js +16 -5
- package/packages/dd-trace/src/telemetry/logs/log-collector.js +16 -6
- package/packages/dd-trace/src/telemetry/metrics.js +0 -2
- package/packages/dd-trace/src/telemetry/send-data.js +2 -1
- package/packages/dd-trace/src/telemetry/telemetry.js +4 -1
- package/packages/dd-trace/src/tracer.js +5 -4
- package/packages/dd-trace/src/util.js +13 -1
- package/vendor/dist/@datadog/openfeature-node-server/index.js +1 -1
- package/packages/datadog-instrumentations/src/bullmq.js +0 -11
- package/packages/datadog-instrumentations/src/langchain.js +0 -7
- package/packages/datadog-instrumentations/src/langgraph.js +0 -7
- package/packages/datadog-instrumentations/src/mercurius.js +0 -11
|
@@ -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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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;
|
|
@@ -406,41 +414,21 @@ export interface GeneratedConfig {
|
|
|
406
414
|
};
|
|
407
415
|
dsmEnabled: boolean;
|
|
408
416
|
dynamicInstrumentation: {
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
417
|
+
DD_DYNAMIC_INSTRUMENTATION_CAPTURE_TIMEOUT_MS: number;
|
|
418
|
+
DD_DYNAMIC_INSTRUMENTATION_ENABLED: boolean;
|
|
419
|
+
DD_DYNAMIC_INSTRUMENTATION_PROBE_FILE: string | undefined;
|
|
420
|
+
DD_DYNAMIC_INSTRUMENTATION_REDACTED_IDENTIFIERS: string[];
|
|
421
|
+
DD_DYNAMIC_INSTRUMENTATION_REDACTION_EXCLUDED_IDENTIFIERS: string[];
|
|
422
|
+
DD_DYNAMIC_INSTRUMENTATION_UPLOAD_INTERVAL_SECONDS: number;
|
|
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
|
-
enableGetRumData: boolean;
|
|
434
|
-
exporter: string;
|
|
435
|
-
flaggingProvider: {
|
|
436
|
-
enabled: boolean;
|
|
437
|
-
initializationTimeoutMs: number;
|
|
438
|
-
spanEnrichment: {
|
|
439
|
-
enabled: boolean;
|
|
440
|
-
};
|
|
441
|
-
};
|
|
442
427
|
};
|
|
443
428
|
featureFlags: {
|
|
429
|
+
DD_EXPERIMENTAL_FLAGGING_PROVIDER_ENABLED: boolean;
|
|
430
|
+
DD_EXPERIMENTAL_FLAGGING_PROVIDER_INITIALIZATION_TIMEOUT_MS: number;
|
|
431
|
+
DD_EXPERIMENTAL_FLAGGING_PROVIDER_SPAN_ENRICHMENT_ENABLED: boolean;
|
|
444
432
|
DD_FEATURE_FLAGS_CONFIGURATION_SOURCE: string;
|
|
445
433
|
DD_FEATURE_FLAGS_CONFIGURATION_SOURCE_AGENTLESS_BASE_URL: string | undefined;
|
|
446
434
|
DD_FEATURE_FLAGS_CONFIGURATION_SOURCE_AGENTLESS_POLL_INTERVAL_SECONDS: number;
|
|
@@ -452,20 +440,18 @@ export interface GeneratedConfig {
|
|
|
452
440
|
headerTags: string[];
|
|
453
441
|
hostname: string;
|
|
454
442
|
iast: {
|
|
455
|
-
|
|
443
|
+
DD_IAST_DB_ROWS_TO_TAINT: number;
|
|
444
|
+
DD_IAST_DEDUPLICATION_ENABLED: boolean;
|
|
445
|
+
DD_IAST_ENABLED: boolean;
|
|
446
|
+
DD_IAST_MAX_CONCURRENT_REQUESTS: number;
|
|
447
|
+
DD_IAST_MAX_CONTEXT_OPERATIONS: number;
|
|
448
|
+
DD_IAST_REDACTION_ENABLED: boolean;
|
|
449
|
+
DD_IAST_REDACTION_NAME_PATTERN: string;
|
|
450
|
+
DD_IAST_REDACTION_VALUE_PATTERN: string;
|
|
451
|
+
DD_IAST_REQUEST_SAMPLING: number;
|
|
456
452
|
DD_IAST_SECURITY_CONTROLS_CONFIGURATION: string | undefined;
|
|
457
|
-
|
|
458
|
-
|
|
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;
|
|
453
|
+
DD_IAST_STACK_TRACE_ENABLED: boolean;
|
|
454
|
+
DD_IAST_TELEMETRY_VERBOSITY: string;
|
|
469
455
|
};
|
|
470
456
|
inferredProxyServicesEnabled: boolean;
|
|
471
457
|
langchain: {
|
|
@@ -474,19 +460,20 @@ export interface GeneratedConfig {
|
|
|
474
460
|
};
|
|
475
461
|
legacyBaggageEnabled: boolean;
|
|
476
462
|
llmobs: {
|
|
477
|
-
|
|
463
|
+
DD_LLMOBS_AGENTLESS_ENABLED: boolean | undefined;
|
|
478
464
|
DD_LLMOBS_ENABLED: boolean;
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
465
|
+
DD_LLMOBS_ML_APP: string | undefined;
|
|
466
|
+
DD_LLMOBS_PROJECT_NAME: string | undefined;
|
|
467
|
+
DD_LLMOBS_SAMPLE_RATE: number;
|
|
482
468
|
};
|
|
483
469
|
logInjection: boolean;
|
|
484
470
|
logLevel: "debug" | "info" | "warn" | "error";
|
|
485
471
|
middlewareTracingEnabled: boolean;
|
|
486
472
|
openai: {
|
|
473
|
+
DD_OPENAI_LOGS_ENABLED: boolean;
|
|
474
|
+
DD_OPENAI_REALTIME_ENABLED: boolean;
|
|
487
475
|
DD_OPENAI_SPAN_CHAR_LIMIT: number;
|
|
488
476
|
};
|
|
489
|
-
openAiLogsEnabled: boolean;
|
|
490
477
|
OTEL_BSP_MAX_EXPORT_BATCH_SIZE: number;
|
|
491
478
|
OTEL_BSP_MAX_QUEUE_SIZE: number;
|
|
492
479
|
OTEL_BSP_SCHEDULE_DELAY: number;
|
|
@@ -494,14 +481,14 @@ export interface GeneratedConfig {
|
|
|
494
481
|
OTEL_EXPORTER_OTLP_HEADERS: Record<string, string> | undefined;
|
|
495
482
|
OTEL_EXPORTER_OTLP_LOGS_ENDPOINT: string;
|
|
496
483
|
OTEL_EXPORTER_OTLP_LOGS_HEADERS: Record<string, string> | undefined;
|
|
497
|
-
OTEL_EXPORTER_OTLP_LOGS_PROTOCOL:
|
|
484
|
+
OTEL_EXPORTER_OTLP_LOGS_PROTOCOL: "grpc" | "http/json" | "http/protobuf";
|
|
498
485
|
OTEL_EXPORTER_OTLP_LOGS_TIMEOUT: number;
|
|
499
486
|
OTEL_EXPORTER_OTLP_METRICS_ENDPOINT: string;
|
|
500
487
|
OTEL_EXPORTER_OTLP_METRICS_HEADERS: Record<string, string> | undefined;
|
|
501
|
-
OTEL_EXPORTER_OTLP_METRICS_PROTOCOL:
|
|
488
|
+
OTEL_EXPORTER_OTLP_METRICS_PROTOCOL: "grpc" | "http/json" | "http/protobuf";
|
|
502
489
|
OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE: "DELTA" | "CUMULATIVE" | "LOWMEMORY";
|
|
503
490
|
OTEL_EXPORTER_OTLP_METRICS_TIMEOUT: number;
|
|
504
|
-
OTEL_EXPORTER_OTLP_PROTOCOL:
|
|
491
|
+
OTEL_EXPORTER_OTLP_PROTOCOL: "grpc" | "http/json" | "http/protobuf";
|
|
505
492
|
OTEL_EXPORTER_OTLP_TIMEOUT: number;
|
|
506
493
|
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT: string;
|
|
507
494
|
OTEL_EXPORTER_OTLP_TRACES_HEADERS: Record<string, string> | undefined;
|
|
@@ -529,6 +516,9 @@ export interface GeneratedConfig {
|
|
|
529
516
|
pollInterval: number;
|
|
530
517
|
};
|
|
531
518
|
reportHostname: boolean;
|
|
519
|
+
rum: {
|
|
520
|
+
DD_TRACE_EXPERIMENTAL_GET_RUM_DATA_ENABLED: boolean;
|
|
521
|
+
};
|
|
532
522
|
runtimeMetrics: {
|
|
533
523
|
enabled: boolean;
|
|
534
524
|
eventLoop: boolean;
|
|
@@ -566,6 +556,8 @@ export interface GeneratedConfig {
|
|
|
566
556
|
DD_CIVISIBILITY_CODE_COVERAGE_REPORT_UPLOAD_ENABLED: boolean;
|
|
567
557
|
DD_CIVISIBILITY_DANGEROUSLY_FORCE_COVERAGE: boolean;
|
|
568
558
|
DD_CIVISIBILITY_DANGEROUSLY_FORCE_TEST_SKIPPING: boolean;
|
|
559
|
+
DD_CIVISIBILITY_DYNAMIC_ATR_BUCKETS: string[] | undefined;
|
|
560
|
+
DD_CIVISIBILITY_DYNAMIC_ATR_ENABLED: boolean;
|
|
569
561
|
DD_CIVISIBILITY_EARLY_FLAKE_DETECTION_ENABLED: boolean;
|
|
570
562
|
DD_CIVISIBILITY_ENABLED: boolean;
|
|
571
563
|
DD_CIVISIBILITY_FLAKY_RETRY_COUNT: number;
|
|
@@ -599,6 +591,9 @@ export interface GeneratedConfig {
|
|
|
599
591
|
traceWebsocketMessagesEnabled: boolean;
|
|
600
592
|
traceWebsocketMessagesInheritSampling: boolean;
|
|
601
593
|
traceWebsocketMessagesSeparateTraces: boolean;
|
|
594
|
+
tracing: {
|
|
595
|
+
DD_TRACE_EXPERIMENTAL_EXPORTER: string;
|
|
596
|
+
};
|
|
602
597
|
url: string | URL;
|
|
603
598
|
version: string | undefined;
|
|
604
599
|
vertexai: {
|
|
@@ -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:
|
|
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:
|
|
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:
|
|
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'
|
|
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
|
-
|
|
289
|
-
|
|
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
|
-
*
|
|
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 {
|
|
344
|
-
*
|
|
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
|
-
//
|
|
348
|
-
//
|
|
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
|
|
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
|
/**
|
|
@@ -370,8 +370,8 @@ class Config extends ConfigBase {
|
|
|
370
370
|
|
|
371
371
|
if (this.featureFlags.DD_FEATURE_FLAGS_ENABLED &&
|
|
372
372
|
!trackedConfigOrigins.has('featureFlags.DD_FEATURE_FLAGS_CONFIGURATION_SOURCE') &&
|
|
373
|
-
trackedConfigOrigins.has('
|
|
374
|
-
if (this.
|
|
373
|
+
trackedConfigOrigins.has('featureFlags.DD_EXPERIMENTAL_FLAGGING_PROVIDER_ENABLED')) {
|
|
374
|
+
if (this.featureFlags.DD_EXPERIMENTAL_FLAGGING_PROVIDER_ENABLED) {
|
|
375
375
|
setAndTrack(this, 'featureFlags.DD_FEATURE_FLAGS_CONFIGURATION_SOURCE', 'remote_config')
|
|
376
376
|
} else {
|
|
377
377
|
setAndTrack(this, 'featureFlags.DD_FEATURE_FLAGS_ENABLED', false)
|
|
@@ -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.
|
|
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('
|
|
479
|
-
setAndTrack(this, 'apmTracingEnabled', !this.
|
|
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) {
|
|
@@ -505,7 +505,8 @@ class Config extends ConfigBase {
|
|
|
505
505
|
// dd-trace's own sampling policy in that case.
|
|
506
506
|
if (!trackedConfigOrigins.has('sampleRate') &&
|
|
507
507
|
(trackedConfigOrigins.has('OTEL_TRACES_SAMPLER') ||
|
|
508
|
-
(this.OTEL_TRACES_EXPORTER === 'otlp' &&
|
|
508
|
+
(this.OTEL_TRACES_EXPORTER === 'otlp' &&
|
|
509
|
+
this.tracing.DD_TRACE_EXPERIMENTAL_EXPORTER !== 'electron'))) {
|
|
509
510
|
setAndTrack(this, 'sampleRate',
|
|
510
511
|
getFromOtelSamplerMap(this.OTEL_TRACES_SAMPLER, this.OTEL_TRACES_SAMPLER_ARG))
|
|
511
512
|
}
|
|
@@ -530,9 +531,9 @@ class Config extends ConfigBase {
|
|
|
530
531
|
// For LLMObs, we want to auto enable it when other llmobs options are defined.
|
|
531
532
|
if (!this.llmobs.DD_LLMOBS_ENABLED &&
|
|
532
533
|
!trackedConfigOrigins.has('llmobs.DD_LLMOBS_ENABLED') &&
|
|
533
|
-
(trackedConfigOrigins.has('llmobs.
|
|
534
|
-
trackedConfigOrigins.has('llmobs.
|
|
535
|
-
trackedConfigOrigins.has('llmobs.
|
|
534
|
+
(trackedConfigOrigins.has('llmobs.DD_LLMOBS_AGENTLESS_ENABLED') ||
|
|
535
|
+
trackedConfigOrigins.has('llmobs.DD_LLMOBS_ML_APP') ||
|
|
536
|
+
trackedConfigOrigins.has('llmobs.DD_LLMOBS_PROJECT_NAME'))) {
|
|
536
537
|
setAndTrack(this, 'llmobs.DD_LLMOBS_ENABLED', true)
|
|
537
538
|
}
|
|
538
539
|
|
|
@@ -638,7 +639,7 @@ class Config extends ConfigBase {
|
|
|
638
639
|
}
|
|
639
640
|
|
|
640
641
|
const isTestOptimizationWorker = this.isCiVisibility &&
|
|
641
|
-
TEST_OPTIMIZATION_WORKER_EXPORTERS.has(this.
|
|
642
|
+
TEST_OPTIMIZATION_WORKER_EXPORTERS.has(this.tracing.DD_TRACE_EXPERIMENTAL_EXPORTER)
|
|
642
643
|
if (isTestOptimizationWorker) {
|
|
643
644
|
setAndTrack(this, 'telemetry.DD_INSTRUMENTATION_TELEMETRY_ENABLED', false)
|
|
644
645
|
}
|
|
@@ -648,10 +649,10 @@ class Config extends ConfigBase {
|
|
|
648
649
|
setAndTrack(this, 'DD_AGENTLESS_LOG_SUBMISSION_ENABLED', true)
|
|
649
650
|
}
|
|
650
651
|
setAndTrack(this, 'testOptimization.DD_CIVISIBILITY_AGENTLESS_ENABLED', true)
|
|
651
|
-
setAndTrack(this, 'llmobs.
|
|
652
|
+
setAndTrack(this, 'llmobs.DD_LLMOBS_AGENTLESS_ENABLED', true)
|
|
652
653
|
setAndTrack(this, 'featureFlags.DD_FEATURE_FLAGS_CONFIGURATION_SOURCE', 'agentless')
|
|
653
654
|
if (this.DD_API_KEY === undefined) {
|
|
654
|
-
setAndTrack(this, 'dynamicInstrumentation.
|
|
655
|
+
setAndTrack(this, 'dynamicInstrumentation.DD_DYNAMIC_INSTRUMENTATION_ENABLED', false)
|
|
655
656
|
}
|
|
656
657
|
setAndTrack(this, 'runtimeMetrics.enabled', false)
|
|
657
658
|
setAndTrack(this, 'dsmEnabled', false)
|
|
@@ -667,7 +668,7 @@ class Config extends ConfigBase {
|
|
|
667
668
|
}
|
|
668
669
|
|
|
669
670
|
if (agentlessTracingEnabled && !this.isCiVisibility) {
|
|
670
|
-
setAndTrack(this, '
|
|
671
|
+
setAndTrack(this, 'tracing.DD_TRACE_EXPERIMENTAL_EXPORTER', 'agentless')
|
|
671
672
|
// Disable client-side stats computation
|
|
672
673
|
setAndTrack(this, 'stats.DD_TRACE_STATS_COMPUTATION_ENABLED', false)
|
|
673
674
|
// Enable hostname reporting
|
|
@@ -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
|
-
|
|
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
|
-
|
|
285
|
-
if (value.length > 0) {
|
|
313
|
+
if (value.length > 0 || preserveEmptyEntries) {
|
|
286
314
|
result.push(value)
|
|
287
315
|
}
|
|
288
316
|
}
|