dd-trace 6.15.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.
- package/README.md +15 -0
- 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 +4 -8
- 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/package-check.js +4 -1
- 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 +1 -2
- package/ci/test-optimization-validation/source-text.js +0 -3
- package/ci/vitest-no-worker-init-setup.mjs +41 -16
- package/index.d.ts +169 -0
- package/next.d.ts +27 -0
- package/next.js +3 -0
- package/package.json +28 -23
- package/packages/datadog-esbuild/index.js +14 -1
- package/packages/datadog-esbuild/src/resolver.js +284 -0
- package/packages/datadog-esbuild/src/utils.js +162 -120
- package/packages/datadog-instrumentations/src/aerospike.js +28 -6
- package/packages/datadog-instrumentations/src/ai.js +39 -97
- package/packages/datadog-instrumentations/src/anthropic.js +76 -134
- package/packages/datadog-instrumentations/src/aws-durable-execution-sdk-js.js +1 -3
- package/packages/datadog-instrumentations/src/aws-sdk.js +0 -2
- package/packages/datadog-instrumentations/src/azure-cosmos.js +1 -1
- package/packages/datadog-instrumentations/src/azure-durable-functions.js +23 -9
- package/packages/datadog-instrumentations/src/azure-functions.js +48 -0
- package/packages/datadog-instrumentations/src/bullmq.js +1 -1
- package/packages/datadog-instrumentations/src/claude-agent-sdk.js +1 -3
- package/packages/datadog-instrumentations/src/console.js +97 -0
- package/packages/datadog-instrumentations/src/cucumber.js +72 -12
- package/packages/datadog-instrumentations/src/cypress-config.js +0 -23
- package/packages/datadog-instrumentations/src/dd-trace-api.js +2 -2
- package/packages/datadog-instrumentations/src/graphql.js +1 -1
- package/packages/datadog-instrumentations/src/helpers/bundler-register.js +39 -14
- package/packages/datadog-instrumentations/src/helpers/channel.js +0 -2
- package/packages/datadog-instrumentations/src/helpers/graphql-jit-runtime.js +0 -5
- package/packages/datadog-instrumentations/src/helpers/hooks.js +8 -0
- package/packages/datadog-instrumentations/src/helpers/instrument.js +25 -8
- package/packages/datadog-instrumentations/src/helpers/instrumentation-utils.js +69 -0
- package/packages/datadog-instrumentations/src/helpers/pool-acquire.js +0 -6
- package/packages/datadog-instrumentations/src/helpers/register.js +13 -64
- package/packages/datadog-instrumentations/src/helpers/rewriter/index.js +109 -29
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentation-registry.js +39 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/azure-durable-functions.js +17 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/index.js +3 -16
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/playwright.js +12 -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 +6 -7
- package/packages/datadog-instrumentations/src/helpers/rewriter/targets.json +17 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/transforms/postgres.js +388 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/transforms.js +99 -75
- package/packages/datadog-instrumentations/src/helpers/router-helper.js +0 -1
- package/packages/datadog-instrumentations/src/jest.js +141 -51
- package/packages/datadog-instrumentations/src/knex.js +0 -1
- package/packages/datadog-instrumentations/src/langchain.js +1 -1
- package/packages/datadog-instrumentations/src/langgraph.js +1 -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/mercurius.js +1 -1
- package/packages/datadog-instrumentations/src/mocha/common.js +0 -1
- package/packages/datadog-instrumentations/src/mocha/main.js +22 -25
- 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/modelcontextprotocol-sdk.js +1 -1
- package/packages/datadog-instrumentations/src/mysql2.js +0 -2
- package/packages/datadog-instrumentations/src/openai-agents.js +1 -1
- 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 +97 -80
- package/packages/datadog-instrumentations/src/oracledb.js +9 -3
- package/packages/datadog-instrumentations/src/playwright-reporter.js +3 -16
- package/packages/datadog-instrumentations/src/playwright.js +238 -55
- package/packages/datadog-instrumentations/src/postgres.js +7 -0
- 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/vitest-main-no-worker-init.js +18 -18
- package/packages/datadog-instrumentations/src/vitest-main.js +37 -17
- package/packages/datadog-instrumentations/src/vitest-util.js +7 -1
- package/packages/datadog-instrumentations/src/vitest-worker.js +56 -23
- package/packages/datadog-instrumentations/src/webdriverio.js +23 -42
- package/packages/datadog-instrumentations/src/ws.js +0 -1
- 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 +7 -2
- 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-cosmos/src/index.js +1 -1
- package/packages/datadog-plugin-azure-durable-functions/src/index.js +95 -1
- package/packages/datadog-plugin-cucumber/src/index.js +10 -0
- package/packages/datadog-plugin-cypress/src/cypress-plugin.js +171 -75
- package/packages/datadog-plugin-cypress/src/finalization.js +0 -3
- 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-google-cloud-pubsub/src/consumer.js +2 -24
- package/packages/datadog-plugin-google-cloud-pubsub/src/pubsub-push-subscription.js +2 -36
- package/packages/datadog-plugin-google-cloud-pubsub/src/pubsub-request-context.js +31 -0
- package/packages/datadog-plugin-graphql/src/resolve-error.js +32 -11
- package/packages/datadog-plugin-graphql/src/utils.js +0 -5
- package/packages/datadog-plugin-jest/src/index.js +13 -0
- package/packages/datadog-plugin-kafkajs/src/producer.js +0 -1
- package/packages/datadog-plugin-mocha/src/index.js +39 -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 +76 -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 +10 -0
- package/packages/datadog-plugin-ws/src/util.js +0 -4
- package/packages/datadog-turbopack/index.js +206 -0
- package/packages/datadog-turbopack/src/constants.js +5 -0
- package/packages/datadog-turbopack/src/loader.js +484 -0
- package/packages/datadog-webpack/src/loader.js +0 -1
- 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 +3 -2
- package/packages/dd-trace/src/aiguard/integrations/anthropic.js +53 -25
- package/packages/dd-trace/src/aiguard/integrations/evaluate.js +49 -25
- package/packages/dd-trace/src/aiguard/integrations/index.js +4 -3
- package/packages/dd-trace/src/aiguard/integrations/openai.js +132 -29
- package/packages/dd-trace/src/aiguard/integrations/vercel-ai.js +116 -42
- 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 +29 -2
- package/packages/dd-trace/src/aiguard/messages/vercel-ai.js +25 -0
- 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-analyzers/url-sensitive-analyzer.js +2 -2
- 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/telemetry/api_security.js +1 -3
- package/packages/dd-trace/src/appsec/telemetry/common.js +4 -0
- package/packages/dd-trace/src/appsec/telemetry/index.js +23 -5
- package/packages/dd-trace/src/appsec/telemetry/rasp.js +1 -20
- package/packages/dd-trace/src/appsec/telemetry/user.js +1 -3
- package/packages/dd-trace/src/appsec/telemetry/waf.js +1 -20
- 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 +74 -66
- package/packages/dd-trace/src/config/helper.js +9 -2
- package/packages/dd-trace/src/config/index.js +44 -29
- 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 +146 -9
- 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 +76 -17
- package/packages/dd-trace/src/debugger/devtools_client/config.js +2 -0
- 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 +34 -8
- package/packages/dd-trace/src/debugger/devtools_client/send.js +40 -14
- 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-pruner.js +0 -3
- package/packages/dd-trace/src/debugger/devtools_client/status.js +20 -6
- package/packages/dd-trace/src/debugger/guardrail-metrics.js +167 -0
- package/packages/dd-trace/src/debugger/index.js +50 -2
- 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/discovery.js +3 -5
- package/packages/dd-trace/src/evp_proxy/path.js +11 -4
- 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/docker.js +4 -1
- package/packages/dd-trace/src/exporters/common/final-flush-request-tracker.js +0 -6
- package/packages/dd-trace/src/exporters/common/proxy.js +3 -0
- package/packages/dd-trace/src/exporters/common/request.js +1 -0
- package/packages/dd-trace/src/exporters/common/url.js +0 -2
- 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 +639 -0
- package/packages/dd-trace/src/llmobs/prompts/noop.js +29 -0
- package/packages/dd-trace/src/llmobs/prompts/prompt.js +92 -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 +30 -7
- 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/encoding.js +0 -2
- package/packages/dd-trace/src/openfeature/eval-metrics-hook.js +0 -1
- package/packages/dd-trace/src/openfeature/index.js +0 -4
- 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 +0 -6
- package/packages/dd-trace/src/openfeature/writers/exposures.js +0 -5
- package/packages/dd-trace/src/openfeature/writers/util.js +0 -4
- 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/index.js +1 -1
- package/packages/dd-trace/src/opentelemetry/metrics/meter_provider.js +4 -4
- 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 +103 -35
- package/packages/dd-trace/src/opentelemetry/metrics/time.js +0 -1
- package/packages/dd-trace/src/opentelemetry/otlp/otlp_http_exporter_base.js +36 -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/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 +9 -3
- package/packages/dd-trace/src/plugins/ci_plugin.js +0 -1
- package/packages/dd-trace/src/plugins/database.js +2 -6
- package/packages/dd-trace/src/plugins/index.js +8 -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 +25 -21
- 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 +21 -45
- 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/telemetry.js +4 -1
- package/packages/dd-trace/src/util.js +13 -1
- package/vendor/dist/@datadog/openfeature-node-server/index.js +1 -1
- package/packages/dd-trace/src/llmobs/plugins/claude-agent-sdk/utils.js +0 -10
|
@@ -46,7 +46,6 @@ function isValidId (value) {
|
|
|
46
46
|
* Renders an idempotency key into a value safe to carry in the upload's query string.
|
|
47
47
|
*
|
|
48
48
|
* @param {string} idempotencyKey - Raw per-artifact idempotency key
|
|
49
|
-
* @returns {string} Query-safe, deterministic representation of the key
|
|
50
49
|
*/
|
|
51
50
|
function toIdempotencyQueryValue (idempotencyKey) {
|
|
52
51
|
const separatorIndex = idempotencyKey.indexOf(':')
|
|
@@ -76,7 +75,6 @@ function toIdempotencyQueryValue (idempotencyKey) {
|
|
|
76
75
|
* @param {number} [options.deadline] - Absolute finalization deadline in epoch milliseconds
|
|
77
76
|
* @param {AbortSignal} [options.signal] - Signal used to cancel the upload
|
|
78
77
|
* @param {Function} callback - Callback function (err)
|
|
79
|
-
* @returns {void}
|
|
80
78
|
*/
|
|
81
79
|
function uploadTestMedia (options, callback) {
|
|
82
80
|
const {
|
|
@@ -216,7 +214,6 @@ function uploadTestMedia (options, callback) {
|
|
|
216
214
|
*
|
|
217
215
|
* @param {object} options - Upload options
|
|
218
216
|
* @param {Function} callback - Callback function (err)
|
|
219
|
-
* @returns {void}
|
|
220
217
|
*/
|
|
221
218
|
function uploadTestScreenshot (options, callback) {
|
|
222
219
|
uploadTestMedia({ ...options, kind: 'screenshot' }, callback)
|
|
@@ -227,7 +224,6 @@ function uploadTestScreenshot (options, callback) {
|
|
|
227
224
|
*
|
|
228
225
|
* @param {object} options - Upload options
|
|
229
226
|
* @param {Function} callback - Callback function (err)
|
|
230
|
-
* @returns {void}
|
|
231
227
|
*/
|
|
232
228
|
function uploadTestVideo (options, callback) {
|
|
233
229
|
uploadTestMedia({ ...options, kind: 'video' }, callback)
|
|
@@ -238,7 +234,6 @@ function uploadTestVideo (options, callback) {
|
|
|
238
234
|
*
|
|
239
235
|
* @param {object} options - Upload options
|
|
240
236
|
* @param {Function} callback - Callback function (err)
|
|
241
|
-
* @returns {void}
|
|
242
237
|
*/
|
|
243
238
|
function uploadTestSuiteVideo (options, callback) {
|
|
244
239
|
uploadTestMedia({ ...options, kind: 'video' }, callback)
|
|
@@ -21,7 +21,6 @@ let activeRequests = 0
|
|
|
21
21
|
* @param {object} options - HTTP request options
|
|
22
22
|
* @param {(error: Error|null, result?: string|null, statusCode?: number,
|
|
23
23
|
* headers?: import('node:http').IncomingHttpHeaders) => void} callback
|
|
24
|
-
* @returns {void}
|
|
25
24
|
*/
|
|
26
25
|
function requestVideo (body, options, callback) {
|
|
27
26
|
if (activeRequests >= MAX_ACTIVE_REQUESTS) {
|
|
@@ -75,6 +75,16 @@ function distributionMetric (name, tags, measure) {
|
|
|
75
75
|
ciVisibilityMetrics.distribution(name, formatMetricTags(tags)).track(measure)
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
+
/**
|
|
79
|
+
* Records that dynamic, duration-based ATR retries are enabled for this session.
|
|
80
|
+
*
|
|
81
|
+
* @param {boolean} hasCustomBuckets
|
|
82
|
+
*/
|
|
83
|
+
function recordDynamicAtrRetries (hasCustomBuckets) {
|
|
84
|
+
const tags = hasCustomBuckets ? { has_custom_buckets: 'true' } : {}
|
|
85
|
+
incrementCountMetric(TELEMETRY_DYNAMIC_ATR_RETRIES_ENABLED, tags)
|
|
86
|
+
}
|
|
87
|
+
|
|
78
88
|
// CI Visibility telemetry events
|
|
79
89
|
const TELEMETRY_TEST_SESSION = 'test_session'
|
|
80
90
|
const TELEMETRY_EVENT_CREATED = 'event_created'
|
|
@@ -134,6 +144,7 @@ const TELEMETRY_TEST_MANAGEMENT_TESTS_MS = 'test_management_tests.request_ms'
|
|
|
134
144
|
const TELEMETRY_TEST_MANAGEMENT_TESTS_ERRORS = 'test_management_tests.request_errors'
|
|
135
145
|
const TELEMETRY_TEST_MANAGEMENT_TESTS_RESPONSE_TESTS = 'test_management_tests.response_tests'
|
|
136
146
|
const TELEMETRY_TEST_MANAGEMENT_TESTS_RESPONSE_BYTES = 'test_management_tests.response_bytes'
|
|
147
|
+
const TELEMETRY_DYNAMIC_ATR_RETRIES_ENABLED = 'dynamic_atr_retries.enabled'
|
|
137
148
|
|
|
138
149
|
function getErrorTypeFromStatusCode (statusCode) {
|
|
139
150
|
if (typeof statusCode !== 'number') return 'network'
|
|
@@ -149,6 +160,7 @@ function getErrorTypeFromStatusCode (statusCode) {
|
|
|
149
160
|
module.exports = {
|
|
150
161
|
incrementCountMetric,
|
|
151
162
|
distributionMetric,
|
|
163
|
+
recordDynamicAtrRetries,
|
|
152
164
|
TELEMETRY_TEST_SESSION,
|
|
153
165
|
TELEMETRY_EVENT_CREATED,
|
|
154
166
|
TELEMETRY_EVENT_FINISHED,
|
|
@@ -204,4 +216,5 @@ module.exports = {
|
|
|
204
216
|
TELEMETRY_TEST_MANAGEMENT_TESTS_ERRORS,
|
|
205
217
|
TELEMETRY_TEST_MANAGEMENT_TESTS_RESPONSE_TESTS,
|
|
206
218
|
TELEMETRY_TEST_MANAGEMENT_TESTS_RESPONSE_BYTES,
|
|
219
|
+
TELEMETRY_DYNAMIC_ATR_RETRIES_ENABLED,
|
|
207
220
|
}
|
|
@@ -22,7 +22,6 @@ function getSettingsCachePath () {
|
|
|
22
22
|
/**
|
|
23
23
|
* Sets up the test optimization settings cache file path.
|
|
24
24
|
* Returns the existing path if already set, otherwise creates a new one.
|
|
25
|
-
* @returns {string} The cache file path.
|
|
26
25
|
*/
|
|
27
26
|
function setupSettingsCachePath () {
|
|
28
27
|
const existing = getSettingsCachePath()
|
|
@@ -17,7 +17,6 @@ const SCREENSHOT_UPLOAD_RESULT_ERROR = 'error'
|
|
|
17
17
|
*
|
|
18
18
|
* @param {object|string} screenshot - Framework screenshot metadata or its file path
|
|
19
19
|
* @param {string} filePath - Resolved screenshot file path
|
|
20
|
-
* @returns {number} Capture time in epoch milliseconds
|
|
21
20
|
*/
|
|
22
21
|
function getScreenshotCapturedAtMs (screenshot, filePath) {
|
|
23
22
|
const takenAt = screenshot !== null && typeof screenshot === 'object' ? screenshot.takenAt : undefined
|
|
@@ -73,7 +72,6 @@ function getScreenshotUploadTag (uploadResult) {
|
|
|
73
72
|
*
|
|
74
73
|
* @param {object} testSpan - Test span to tag
|
|
75
74
|
* @param {string|undefined} uploadResult - Aggregate screenshot upload result
|
|
76
|
-
* @returns {void}
|
|
77
75
|
*/
|
|
78
76
|
function setScreenshotUploadTags (testSpan, uploadResult) {
|
|
79
77
|
const uploadTag = getScreenshotUploadTag(uploadResult)
|
|
@@ -42,7 +42,6 @@ function getVideoUploadTag (uploadResult) {
|
|
|
42
42
|
* @param {object} span - Test or test suite span to tag
|
|
43
43
|
* @param {string|undefined} uploadResult - Aggregate video upload result
|
|
44
44
|
* @param {string} [scope] - Media lookup scope
|
|
45
|
-
* @returns {void}
|
|
46
45
|
*/
|
|
47
46
|
function setVideoUploadTags (span, uploadResult, scope) {
|
|
48
47
|
const uploadTag = getVideoUploadTag(uploadResult)
|
|
@@ -47,10 +47,11 @@ function warnInvalidValue (value, optionName, source, baseMessage, error, outcom
|
|
|
47
47
|
error.stack = error.toString()
|
|
48
48
|
message += `\n\n${util.inspect(error)}`
|
|
49
49
|
}
|
|
50
|
+
const telemetryError = { code: null, message }
|
|
50
51
|
if (telemetryEntry) {
|
|
51
|
-
telemetryEntry.error =
|
|
52
|
+
telemetryEntry.error = telemetryError
|
|
52
53
|
} else {
|
|
53
|
-
parseErrors.set(telemetryKey,
|
|
54
|
+
parseErrors.set(telemetryKey, telemetryError)
|
|
54
55
|
}
|
|
55
56
|
log ??= require('../log')
|
|
56
57
|
const logLevel = error ? 'error' : 'warn'
|
|
@@ -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;
|
|
@@ -115,6 +118,10 @@ export interface GeneratedConfig {
|
|
|
115
118
|
DD_INTERNAL_PROFILING_LONG_LIVED_THRESHOLD: number;
|
|
116
119
|
DD_INTERNAL_PROFILING_TIMELINE_SAMPLING_ENABLED: boolean;
|
|
117
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;
|
|
118
125
|
DD_LOGS_OTEL_ENABLED: boolean;
|
|
119
126
|
DD_METRICS_OTEL_ENABLED: boolean;
|
|
120
127
|
DD_MINI_AGENT_PATH: string | undefined;
|
|
@@ -131,7 +138,7 @@ export interface GeneratedConfig {
|
|
|
131
138
|
DD_PROFILING_EXPERIMENTAL_CPU_ENABLED: boolean;
|
|
132
139
|
DD_PROFILING_EXPERIMENTAL_ENDPOINT_COLLECTION_ENABLED: boolean;
|
|
133
140
|
DD_PROFILING_EXPERIMENTAL_OOM_EXPORT_STRATEGIES: string[];
|
|
134
|
-
DD_PROFILING_EXPERIMENTAL_OOM_HEAP_LIMIT_EXTENSION_SIZE: number;
|
|
141
|
+
DD_PROFILING_EXPERIMENTAL_OOM_HEAP_LIMIT_EXTENSION_SIZE: number | 'auto';
|
|
135
142
|
DD_PROFILING_EXPERIMENTAL_OOM_MAX_HEAP_EXTENSION_COUNT: number;
|
|
136
143
|
DD_PROFILING_EXPERIMENTAL_OOM_MONITORING_ENABLED: boolean;
|
|
137
144
|
DD_PROFILING_EXPERIMENTAL_TIMELINE_ENABLED: boolean;
|
|
@@ -358,6 +365,7 @@ export interface GeneratedConfig {
|
|
|
358
365
|
DD_TRACE_PLAYWRIGHT_CORE_ENABLED: boolean;
|
|
359
366
|
DD_TRACE_PLAYWRIGHT_ENABLED: boolean;
|
|
360
367
|
DD_TRACE_PLAYWRIGHT_TEST_ENABLED: boolean;
|
|
368
|
+
DD_TRACE_POSTGRES_ENABLED: boolean;
|
|
361
369
|
DD_TRACE_PRISMA_ENABLED: boolean;
|
|
362
370
|
DD_TRACE_PROCESS_ENABLED: boolean;
|
|
363
371
|
DD_TRACE_PROMISE_ENABLED: boolean;
|
|
@@ -386,6 +394,7 @@ export interface GeneratedConfig {
|
|
|
386
394
|
DD_TRACE_SPAN_LEAK_DEBUG: number;
|
|
387
395
|
DD_TRACE_SQLITE3_ENABLED: boolean;
|
|
388
396
|
DD_TRACE_SUFFIXPLUGIN_ENABLED: boolean;
|
|
397
|
+
DD_TRACE_SUPABASE_ENABLED: boolean;
|
|
389
398
|
DD_TRACE_TAGS: Record<string, string> | undefined;
|
|
390
399
|
DD_TRACE_TEDIOUS_ENABLED: boolean;
|
|
391
400
|
DD_TRACE_UNDICI_ENABLED: boolean;
|
|
@@ -414,20 +423,6 @@ export interface GeneratedConfig {
|
|
|
414
423
|
};
|
|
415
424
|
env: string | undefined;
|
|
416
425
|
experimental: {
|
|
417
|
-
aiguard: {
|
|
418
|
-
block: boolean;
|
|
419
|
-
enabled: boolean;
|
|
420
|
-
endpoint: string | undefined;
|
|
421
|
-
maxContentSize: number;
|
|
422
|
-
maxMessagesLength: number;
|
|
423
|
-
redactionEnabled: boolean;
|
|
424
|
-
timeout: number;
|
|
425
|
-
};
|
|
426
|
-
appsec: {
|
|
427
|
-
standalone: {
|
|
428
|
-
enabled: boolean;
|
|
429
|
-
};
|
|
430
|
-
};
|
|
431
426
|
b3: boolean;
|
|
432
427
|
enableGetRumData: boolean;
|
|
433
428
|
exporter: string;
|
|
@@ -451,20 +446,18 @@ export interface GeneratedConfig {
|
|
|
451
446
|
headerTags: string[];
|
|
452
447
|
hostname: string;
|
|
453
448
|
iast: {
|
|
454
|
-
|
|
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;
|
|
455
458
|
DD_IAST_SECURITY_CONTROLS_CONFIGURATION: string | undefined;
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
maxConcurrentRequests: number;
|
|
459
|
-
maxContextOperations: number;
|
|
460
|
-
redactionEnabled: boolean;
|
|
461
|
-
redactionNamePattern: string;
|
|
462
|
-
redactionValuePattern: string;
|
|
463
|
-
requestSampling: number;
|
|
464
|
-
stackTrace: {
|
|
465
|
-
enabled: boolean;
|
|
466
|
-
};
|
|
467
|
-
telemetryVerbosity: string;
|
|
459
|
+
DD_IAST_STACK_TRACE_ENABLED: boolean;
|
|
460
|
+
DD_IAST_TELEMETRY_VERBOSITY: string;
|
|
468
461
|
};
|
|
469
462
|
inferredProxyServicesEnabled: boolean;
|
|
470
463
|
langchain: {
|
|
@@ -473,19 +466,20 @@ export interface GeneratedConfig {
|
|
|
473
466
|
};
|
|
474
467
|
legacyBaggageEnabled: boolean;
|
|
475
468
|
llmobs: {
|
|
476
|
-
|
|
469
|
+
DD_LLMOBS_AGENTLESS_ENABLED: boolean | undefined;
|
|
477
470
|
DD_LLMOBS_ENABLED: boolean;
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
471
|
+
DD_LLMOBS_ML_APP: string | undefined;
|
|
472
|
+
DD_LLMOBS_PROJECT_NAME: string | undefined;
|
|
473
|
+
DD_LLMOBS_SAMPLE_RATE: number;
|
|
481
474
|
};
|
|
482
475
|
logInjection: boolean;
|
|
483
476
|
logLevel: "debug" | "info" | "warn" | "error";
|
|
484
477
|
middlewareTracingEnabled: boolean;
|
|
485
478
|
openai: {
|
|
479
|
+
DD_OPENAI_LOGS_ENABLED: boolean;
|
|
480
|
+
DD_OPENAI_REALTIME_ENABLED: boolean;
|
|
486
481
|
DD_OPENAI_SPAN_CHAR_LIMIT: number;
|
|
487
482
|
};
|
|
488
|
-
openAiLogsEnabled: boolean;
|
|
489
483
|
OTEL_BSP_MAX_EXPORT_BATCH_SIZE: number;
|
|
490
484
|
OTEL_BSP_MAX_QUEUE_SIZE: number;
|
|
491
485
|
OTEL_BSP_SCHEDULE_DELAY: number;
|
|
@@ -493,14 +487,14 @@ export interface GeneratedConfig {
|
|
|
493
487
|
OTEL_EXPORTER_OTLP_HEADERS: Record<string, string> | undefined;
|
|
494
488
|
OTEL_EXPORTER_OTLP_LOGS_ENDPOINT: string;
|
|
495
489
|
OTEL_EXPORTER_OTLP_LOGS_HEADERS: Record<string, string> | undefined;
|
|
496
|
-
OTEL_EXPORTER_OTLP_LOGS_PROTOCOL:
|
|
490
|
+
OTEL_EXPORTER_OTLP_LOGS_PROTOCOL: "grpc" | "http/json" | "http/protobuf";
|
|
497
491
|
OTEL_EXPORTER_OTLP_LOGS_TIMEOUT: number;
|
|
498
492
|
OTEL_EXPORTER_OTLP_METRICS_ENDPOINT: string;
|
|
499
493
|
OTEL_EXPORTER_OTLP_METRICS_HEADERS: Record<string, string> | undefined;
|
|
500
|
-
OTEL_EXPORTER_OTLP_METRICS_PROTOCOL:
|
|
494
|
+
OTEL_EXPORTER_OTLP_METRICS_PROTOCOL: "grpc" | "http/json" | "http/protobuf";
|
|
501
495
|
OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE: "DELTA" | "CUMULATIVE" | "LOWMEMORY";
|
|
502
496
|
OTEL_EXPORTER_OTLP_METRICS_TIMEOUT: number;
|
|
503
|
-
OTEL_EXPORTER_OTLP_PROTOCOL:
|
|
497
|
+
OTEL_EXPORTER_OTLP_PROTOCOL: "grpc" | "http/json" | "http/protobuf";
|
|
504
498
|
OTEL_EXPORTER_OTLP_TIMEOUT: number;
|
|
505
499
|
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT: string;
|
|
506
500
|
OTEL_EXPORTER_OTLP_TRACES_HEADERS: Record<string, string> | undefined;
|
|
@@ -565,6 +559,8 @@ export interface GeneratedConfig {
|
|
|
565
559
|
DD_CIVISIBILITY_CODE_COVERAGE_REPORT_UPLOAD_ENABLED: boolean;
|
|
566
560
|
DD_CIVISIBILITY_DANGEROUSLY_FORCE_COVERAGE: boolean;
|
|
567
561
|
DD_CIVISIBILITY_DANGEROUSLY_FORCE_TEST_SKIPPING: boolean;
|
|
562
|
+
DD_CIVISIBILITY_DYNAMIC_ATR_BUCKETS: string[] | undefined;
|
|
563
|
+
DD_CIVISIBILITY_DYNAMIC_ATR_ENABLED: boolean;
|
|
568
564
|
DD_CIVISIBILITY_EARLY_FLAKE_DETECTION_ENABLED: boolean;
|
|
569
565
|
DD_CIVISIBILITY_ENABLED: boolean;
|
|
570
566
|
DD_CIVISIBILITY_FLAKY_RETRY_COUNT: number;
|
|
@@ -615,6 +611,7 @@ export interface GeneratedEnvVarConfig {
|
|
|
615
611
|
DD_AGENTLESS_ENABLED: boolean;
|
|
616
612
|
DD_AGENTLESS_LOG_SUBMISSION_ENABLED: boolean;
|
|
617
613
|
DD_AGENTLESS_LOG_SUBMISSION_URL: string | undefined;
|
|
614
|
+
DD_AI_GUARD_ANALYZE_STREAM_RESPONSES_ENABLED: boolean;
|
|
618
615
|
DD_AI_GUARD_BLOCK: boolean;
|
|
619
616
|
DD_AI_GUARD_ENABLED: boolean;
|
|
620
617
|
DD_AI_GUARD_ENDPOINT: string | undefined;
|
|
@@ -663,6 +660,8 @@ export interface GeneratedEnvVarConfig {
|
|
|
663
660
|
DD_CIVISIBILITY_CODE_COVERAGE_REPORT_UPLOAD_ENABLED: boolean;
|
|
664
661
|
DD_CIVISIBILITY_DANGEROUSLY_FORCE_COVERAGE: boolean;
|
|
665
662
|
DD_CIVISIBILITY_DANGEROUSLY_FORCE_TEST_SKIPPING: boolean;
|
|
663
|
+
DD_CIVISIBILITY_DYNAMIC_ATR_BUCKETS: string[] | undefined;
|
|
664
|
+
DD_CIVISIBILITY_DYNAMIC_ATR_ENABLED: boolean;
|
|
666
665
|
DD_CIVISIBILITY_EARLY_FLAKE_DETECTION_ENABLED: boolean;
|
|
667
666
|
DD_CIVISIBILITY_ENABLED: boolean;
|
|
668
667
|
DD_CIVISIBILITY_FLAKY_RETRY_COUNT: number;
|
|
@@ -766,6 +765,12 @@ export interface GeneratedEnvVarConfig {
|
|
|
766
765
|
DD_LLMOBS_ENABLED: boolean;
|
|
767
766
|
DD_LLMOBS_ML_APP: string | undefined;
|
|
768
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;
|
|
769
774
|
DD_LLMOBS_SAMPLE_RATE: number;
|
|
770
775
|
DD_LOG_LEVEL: "debug" | "info" | "warn" | "error";
|
|
771
776
|
DD_LOGS_INJECTION: boolean;
|
|
@@ -773,6 +778,7 @@ export interface GeneratedEnvVarConfig {
|
|
|
773
778
|
DD_METRICS_OTEL_ENABLED: boolean;
|
|
774
779
|
DD_MINI_AGENT_PATH: string | undefined;
|
|
775
780
|
DD_OPENAI_LOGS_ENABLED: boolean;
|
|
781
|
+
DD_OPENAI_REALTIME_ENABLED: boolean;
|
|
776
782
|
DD_OPENAI_SPAN_CHAR_LIMIT: number;
|
|
777
783
|
DD_PIPELINE_EXECUTION_ID: string | undefined;
|
|
778
784
|
DD_PLAYWRIGHT_WORKER: string | undefined;
|
|
@@ -788,7 +794,7 @@ export interface GeneratedEnvVarConfig {
|
|
|
788
794
|
DD_PROFILING_EXPERIMENTAL_CPU_ENABLED: boolean;
|
|
789
795
|
DD_PROFILING_EXPERIMENTAL_ENDPOINT_COLLECTION_ENABLED: boolean;
|
|
790
796
|
DD_PROFILING_EXPERIMENTAL_OOM_EXPORT_STRATEGIES: string[];
|
|
791
|
-
DD_PROFILING_EXPERIMENTAL_OOM_HEAP_LIMIT_EXTENSION_SIZE: number;
|
|
797
|
+
DD_PROFILING_EXPERIMENTAL_OOM_HEAP_LIMIT_EXTENSION_SIZE: number | 'auto';
|
|
792
798
|
DD_PROFILING_EXPERIMENTAL_OOM_MAX_HEAP_EXTENSION_COUNT: number;
|
|
793
799
|
DD_PROFILING_EXPERIMENTAL_OOM_MONITORING_ENABLED: boolean;
|
|
794
800
|
DD_PROFILING_EXPERIMENTAL_TIMELINE_ENABLED: boolean;
|
|
@@ -1071,6 +1077,7 @@ export interface GeneratedEnvVarConfig {
|
|
|
1071
1077
|
DD_TRACE_PLAYWRIGHT_CORE_ENABLED: boolean;
|
|
1072
1078
|
DD_TRACE_PLAYWRIGHT_ENABLED: boolean;
|
|
1073
1079
|
DD_TRACE_PLAYWRIGHT_TEST_ENABLED: boolean;
|
|
1080
|
+
DD_TRACE_POSTGRES_ENABLED: boolean;
|
|
1074
1081
|
DD_TRACE_PRISMA_ENABLED: boolean;
|
|
1075
1082
|
DD_TRACE_PROCESS_ENABLED: boolean;
|
|
1076
1083
|
DD_TRACE_PROMISE_ENABLED: boolean;
|
|
@@ -1109,6 +1116,7 @@ export interface GeneratedEnvVarConfig {
|
|
|
1109
1116
|
DD_TRACE_STARTUP_LOGS: boolean;
|
|
1110
1117
|
DD_TRACE_STATS_COMPUTATION_ENABLED: boolean;
|
|
1111
1118
|
DD_TRACE_SUFFIXPLUGIN_ENABLED: boolean;
|
|
1119
|
+
DD_TRACE_SUPABASE_ENABLED: boolean;
|
|
1112
1120
|
DD_TRACE_TAGS: Record<string, string> | undefined;
|
|
1113
1121
|
DD_TRACE_TEDIOUS_ENABLED: boolean;
|
|
1114
1122
|
DD_TRACE_TELEMETRY_ENABLED: boolean;
|
|
@@ -1138,14 +1146,14 @@ export interface GeneratedEnvVarConfig {
|
|
|
1138
1146
|
OTEL_EXPORTER_OTLP_HEADERS: Record<string, string> | undefined;
|
|
1139
1147
|
OTEL_EXPORTER_OTLP_LOGS_ENDPOINT: string | undefined;
|
|
1140
1148
|
OTEL_EXPORTER_OTLP_LOGS_HEADERS: Record<string, string> | undefined;
|
|
1141
|
-
OTEL_EXPORTER_OTLP_LOGS_PROTOCOL:
|
|
1149
|
+
OTEL_EXPORTER_OTLP_LOGS_PROTOCOL: "grpc" | "http/json" | "http/protobuf";
|
|
1142
1150
|
OTEL_EXPORTER_OTLP_LOGS_TIMEOUT: number;
|
|
1143
1151
|
OTEL_EXPORTER_OTLP_METRICS_ENDPOINT: string | undefined;
|
|
1144
1152
|
OTEL_EXPORTER_OTLP_METRICS_HEADERS: Record<string, string> | undefined;
|
|
1145
|
-
OTEL_EXPORTER_OTLP_METRICS_PROTOCOL:
|
|
1153
|
+
OTEL_EXPORTER_OTLP_METRICS_PROTOCOL: "grpc" | "http/json" | "http/protobuf";
|
|
1146
1154
|
OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE: "DELTA" | "CUMULATIVE" | "LOWMEMORY";
|
|
1147
1155
|
OTEL_EXPORTER_OTLP_METRICS_TIMEOUT: number;
|
|
1148
|
-
OTEL_EXPORTER_OTLP_PROTOCOL:
|
|
1156
|
+
OTEL_EXPORTER_OTLP_PROTOCOL: "grpc" | "http/json" | "http/protobuf";
|
|
1149
1157
|
OTEL_EXPORTER_OTLP_TIMEOUT: number;
|
|
1150
1158
|
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT: string | undefined;
|
|
1151
1159
|
OTEL_EXPORTER_OTLP_TRACES_HEADERS: Record<string, string> | undefined;
|
|
@@ -143,10 +143,16 @@ function getEnvNameFromSource (name, source) {
|
|
|
143
143
|
}
|
|
144
144
|
}
|
|
145
145
|
|
|
146
|
+
/**
|
|
147
|
+
* @param {string} name
|
|
148
|
+
*/
|
|
149
|
+
function isSupportedConfiguration (name) {
|
|
150
|
+
return supportedConfigurations[name] !== undefined || aliasToCanonical[name] !== undefined
|
|
151
|
+
}
|
|
152
|
+
|
|
146
153
|
function validateAccess (name) {
|
|
147
154
|
if ((name.startsWith('DD_') || name.startsWith('OTEL_')) &&
|
|
148
|
-
!
|
|
149
|
-
!aliasToCanonical[name]) {
|
|
155
|
+
!isSupportedConfiguration(name)) {
|
|
150
156
|
throw new Error(`Missing ${name} env/configuration in "supported-configurations.json" file.`)
|
|
151
157
|
}
|
|
152
158
|
}
|
|
@@ -284,6 +290,7 @@ function getValueFromEnvSources (name, skipDefault) {
|
|
|
284
290
|
|
|
285
291
|
module.exports = {
|
|
286
292
|
getValueFromEnvSources,
|
|
293
|
+
isSupportedConfiguration,
|
|
287
294
|
|
|
288
295
|
/**
|
|
289
296
|
* Expose raw stable config maps and warnings for consumers that need
|
|
@@ -24,6 +24,7 @@ const {
|
|
|
24
24
|
} = require('../serverless')
|
|
25
25
|
const { ORIGIN_KEY, DATADOG_MINI_AGENT_PATH } = require('../constants')
|
|
26
26
|
const { appendRules } = require('../payload-tagging/config')
|
|
27
|
+
const { createSiteUrl } = require('../exporters/common/url')
|
|
27
28
|
const ConfigBase = require('./config-base')
|
|
28
29
|
const {
|
|
29
30
|
getEnvironmentVariable,
|
|
@@ -66,7 +67,6 @@ channel('datadog:identity:update').subscribe(refreshRuntimeId)
|
|
|
66
67
|
* Lazily generates the process-wide runtime ID on first access instead of at module load,
|
|
67
68
|
* so modules that merely require this file without constructing a Config never pay for it.
|
|
68
69
|
*
|
|
69
|
-
* @returns {string}
|
|
70
70
|
*/
|
|
71
71
|
function getRuntimeId () {
|
|
72
72
|
runtimeId ??= uuid()
|
|
@@ -102,6 +102,10 @@ const tracerMetrics = telemetryMetrics.manager.namespace('tracers')
|
|
|
102
102
|
/** @type {Config | null} */
|
|
103
103
|
let configInstance = null
|
|
104
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
|
+
|
|
105
109
|
// An entry that is undefined means it is the default value.
|
|
106
110
|
/** @type {Map<ConfigPath, TelemetrySource>} */
|
|
107
111
|
const trackedConfigOrigins = new Map()
|
|
@@ -262,7 +266,7 @@ class Config extends ConfigBase {
|
|
|
262
266
|
|
|
263
267
|
/**
|
|
264
268
|
* @param {import('./helper').TracerEnv} envs
|
|
265
|
-
* @param {'env_var' | 'local_stable_config' | 'fleet_stable_config'} source
|
|
269
|
+
* @param {'env_var' | 'local_stable_config' | 'fleet_stable_config' | 'remote_config'} source
|
|
266
270
|
*/
|
|
267
271
|
#applyEnvs (envs, source) {
|
|
268
272
|
for (const [name, value] of Object.entries(envs)) {
|
|
@@ -276,7 +280,7 @@ class Config extends ConfigBase {
|
|
|
276
280
|
|
|
277
281
|
/**
|
|
278
282
|
* @param {TracerOptions} options
|
|
279
|
-
* @param {'code'
|
|
283
|
+
* @param {'code'} source
|
|
280
284
|
* @param {string} [root]
|
|
281
285
|
*/
|
|
282
286
|
#applyOptions (options, source, root = '') {
|
|
@@ -284,13 +288,8 @@ class Config extends ConfigBase {
|
|
|
284
288
|
const fullName = root ? `${root}.${name}` : name
|
|
285
289
|
let entry = optionsTable[fullName]
|
|
286
290
|
if (!entry) {
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
log.warn('Unknown option %s with value %o', fullName, value)
|
|
290
|
-
continue
|
|
291
|
-
}
|
|
292
|
-
// @ts-expect-error - The entry is defined in the configurationsTable.
|
|
293
|
-
entry = configurationsTable.DD_TRACE_ENABLED
|
|
291
|
+
log.warn('Unknown option %s with value %o', fullName, value)
|
|
292
|
+
continue
|
|
294
293
|
}
|
|
295
294
|
|
|
296
295
|
if (entry.nestedProperties) {
|
|
@@ -336,24 +335,26 @@ class Config extends ConfigBase {
|
|
|
336
335
|
}
|
|
337
336
|
|
|
338
337
|
/**
|
|
339
|
-
* Set the configuration with remote config settings.
|
|
340
|
-
*
|
|
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.
|
|
341
340
|
*
|
|
342
|
-
* @param {
|
|
343
|
-
*
|
|
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
|
|
344
343
|
*/
|
|
345
344
|
setRemoteConfig (options) {
|
|
346
|
-
//
|
|
347
|
-
//
|
|
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.
|
|
348
347
|
undo(this, 'remote_config')
|
|
349
348
|
|
|
350
349
|
// Special case: if options is null, nothing to apply
|
|
351
350
|
// This happens when all remote configs are removed
|
|
352
351
|
if (options !== null) {
|
|
353
|
-
this
|
|
352
|
+
// Resolve aliases and drop configs this tracer version doesn't recognize
|
|
353
|
+
this.#applyEnvs(getEnvironmentVariables(options, true), 'remote_config')
|
|
354
354
|
}
|
|
355
355
|
|
|
356
356
|
this.#applyCalculated()
|
|
357
|
+
configUpdateChannel.publish(this)
|
|
357
358
|
}
|
|
358
359
|
|
|
359
360
|
/**
|
|
@@ -438,7 +439,7 @@ class Config extends ConfigBase {
|
|
|
438
439
|
// Enable resource renaming when appsec is enabled and only
|
|
439
440
|
// if DD_TRACE_RESOURCE_RENAMING_ENABLED is not explicitly set
|
|
440
441
|
if (!trackedConfigOrigins.has('DD_TRACE_RESOURCE_RENAMING_ENABLED')) {
|
|
441
|
-
setAndTrack(this, 'DD_TRACE_RESOURCE_RENAMING_ENABLED', this.appsec.
|
|
442
|
+
setAndTrack(this, 'DD_TRACE_RESOURCE_RENAMING_ENABLED', this.appsec.DD_APPSEC_ENABLED ?? false)
|
|
442
443
|
}
|
|
443
444
|
|
|
444
445
|
if (!trackedConfigOrigins.has('spanComputePeerService') && this.spanAttributeSchema !== 'v0') {
|
|
@@ -474,8 +475,8 @@ class Config extends ConfigBase {
|
|
|
474
475
|
}
|
|
475
476
|
|
|
476
477
|
if (!trackedConfigOrigins.has('apmTracingEnabled') &&
|
|
477
|
-
trackedConfigOrigins.has('
|
|
478
|
-
setAndTrack(this, 'apmTracingEnabled', !this.
|
|
478
|
+
trackedConfigOrigins.has('appsec.DD_EXPERIMENTAL_APPSEC_STANDALONE_ENABLED')) {
|
|
479
|
+
setAndTrack(this, 'apmTracingEnabled', !this.appsec.DD_EXPERIMENTAL_APPSEC_STANDALONE_ENABLED)
|
|
479
480
|
}
|
|
480
481
|
|
|
481
482
|
if (this.cloudPayloadTagging?.request || this.cloudPayloadTagging?.response) {
|
|
@@ -495,9 +496,6 @@ class Config extends ConfigBase {
|
|
|
495
496
|
|
|
496
497
|
const agentlessTracingEnabled = this.DD_AGENTLESS_ENABLED ||
|
|
497
498
|
isTrue(getEnvironmentVariable('_DD_APM_TRACING_AGENTLESS_ENABLED'))
|
|
498
|
-
if (agentlessTracingEnabled && !this.isCiVisibility) {
|
|
499
|
-
setAndTrack(this, 'OTEL_TRACES_EXPORTER', 'none')
|
|
500
|
-
}
|
|
501
499
|
|
|
502
500
|
// Apply the OTel sampler when the user opted into OTel traces or explicitly set the sampler.
|
|
503
501
|
// OTEL_TRACES_SAMPLER has `default: parentbased_always_on` (per OTel spec), so opt-in users
|
|
@@ -532,9 +530,9 @@ class Config extends ConfigBase {
|
|
|
532
530
|
// For LLMObs, we want to auto enable it when other llmobs options are defined.
|
|
533
531
|
if (!this.llmobs.DD_LLMOBS_ENABLED &&
|
|
534
532
|
!trackedConfigOrigins.has('llmobs.DD_LLMOBS_ENABLED') &&
|
|
535
|
-
(trackedConfigOrigins.has('llmobs.
|
|
536
|
-
trackedConfigOrigins.has('llmobs.
|
|
537
|
-
trackedConfigOrigins.has('llmobs.
|
|
533
|
+
(trackedConfigOrigins.has('llmobs.DD_LLMOBS_AGENTLESS_ENABLED') ||
|
|
534
|
+
trackedConfigOrigins.has('llmobs.DD_LLMOBS_ML_APP') ||
|
|
535
|
+
trackedConfigOrigins.has('llmobs.DD_LLMOBS_PROJECT_NAME'))) {
|
|
538
536
|
setAndTrack(this, 'llmobs.DD_LLMOBS_ENABLED', true)
|
|
539
537
|
}
|
|
540
538
|
|
|
@@ -650,7 +648,7 @@ class Config extends ConfigBase {
|
|
|
650
648
|
setAndTrack(this, 'DD_AGENTLESS_LOG_SUBMISSION_ENABLED', true)
|
|
651
649
|
}
|
|
652
650
|
setAndTrack(this, 'testOptimization.DD_CIVISIBILITY_AGENTLESS_ENABLED', true)
|
|
653
|
-
setAndTrack(this, 'llmobs.
|
|
651
|
+
setAndTrack(this, 'llmobs.DD_LLMOBS_AGENTLESS_ENABLED', true)
|
|
654
652
|
setAndTrack(this, 'featureFlags.DD_FEATURE_FLAGS_CONFIGURATION_SOURCE', 'agentless')
|
|
655
653
|
if (this.DD_API_KEY === undefined) {
|
|
656
654
|
setAndTrack(this, 'dynamicInstrumentation.enabled', false)
|
|
@@ -699,16 +697,33 @@ class Config extends ConfigBase {
|
|
|
699
697
|
|
|
700
698
|
// TODO: This could likely be moved to the base class and allow easier GRPC handling
|
|
701
699
|
// Default OTLP endpoints follow the configured agent host so users who point DD at a custom
|
|
702
|
-
// agent (DD_AGENT_HOST / DD_TRACE_AGENT_URL) also reach OTLP on that host.
|
|
703
|
-
|
|
700
|
+
// agent (DD_AGENT_HOST / DD_TRACE_AGENT_URL) also reach OTLP on that host. In agentless mode
|
|
701
|
+
// there is no agent to relay through, so OTLP goes straight to the per-site intake instead.
|
|
702
|
+
const otlpAgentlessOrigin = agentlessTracingEnabled && !this.OTEL_EXPORTER_OTLP_ENDPOINT
|
|
703
|
+
? createSiteUrl(this.site, 'otlp')?.origin
|
|
704
|
+
: undefined
|
|
705
|
+
const defaultOtlpBase = otlpAgentlessOrigin ??
|
|
706
|
+
this.OTEL_EXPORTER_OTLP_ENDPOINT?.replace(/\/$/, '') ?? `http://${agentHostname}:4318`
|
|
707
|
+
|
|
708
|
+
const assignOtlpHeaderApiKey = (configName) => {
|
|
709
|
+
if (otlpAgentlessOrigin) {
|
|
710
|
+
this[configName] ??= { ...this.OTEL_EXPORTER_OTLP_HEADERS }
|
|
711
|
+
this[configName]['dd-api-key'] = this.DD_API_KEY
|
|
712
|
+
setAndTrack(this, configName, this[configName])
|
|
713
|
+
}
|
|
714
|
+
}
|
|
715
|
+
|
|
704
716
|
if (!this.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT) {
|
|
705
717
|
setAndTrack(this, 'OTEL_EXPORTER_OTLP_LOGS_ENDPOINT', `${defaultOtlpBase}/v1/logs`)
|
|
718
|
+
assignOtlpHeaderApiKey('OTEL_EXPORTER_OTLP_LOGS_HEADERS')
|
|
706
719
|
}
|
|
707
720
|
if (!this.OTEL_EXPORTER_OTLP_METRICS_ENDPOINT) {
|
|
708
721
|
setAndTrack(this, 'OTEL_EXPORTER_OTLP_METRICS_ENDPOINT', `${defaultOtlpBase}/v1/metrics`)
|
|
722
|
+
assignOtlpHeaderApiKey('OTEL_EXPORTER_OTLP_METRICS_HEADERS')
|
|
709
723
|
}
|
|
710
724
|
if (!this.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT) {
|
|
711
725
|
setAndTrack(this, 'OTEL_EXPORTER_OTLP_TRACES_ENDPOINT', `${defaultOtlpBase}/v1/traces`)
|
|
726
|
+
assignOtlpHeaderApiKey('OTEL_EXPORTER_OTLP_TRACES_HEADERS')
|
|
712
727
|
}
|
|
713
728
|
|
|
714
729
|
const autoTraceMetrics = this.OTEL_TRACES_EXPORTER === 'otlp' && this.DD_METRICS_OTEL_ENABLED === true
|