From 4f7f193107b5b0c240da4c1e843e747c6042da62 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Sun, 22 Feb 2026 23:50:21 +0100 Subject: [PATCH 01/17] chore: update supported-configurations.json to v2 --- .gitlab-ci.yml | 9 +- eslint-rules/eslint-env-aliases.mjs | 11 +- index.d.ts | 153 + packages/dd-trace/src/config/defaults.js | 18 +- packages/dd-trace/src/config/helper.js | 30 +- packages/dd-trace/src/config/index.js | 2 + .../src/config/supported-configurations.json | 4121 +++++++++++++++-- packages/dd-trace/test/config/index.spec.js | 34 +- 8 files changed, 3836 insertions(+), 542 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index dafd34bb619..053fa45682f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -8,13 +8,14 @@ stages: - macrobenchmarks-notify # Config Registry CI jobs -validate_supported_configurations_local_file: - extends: .validate_supported_configurations_local_file +validate_supported_configurations_v2_local_file: + extends: .validate_supported_configurations_v2_local_file variables: LOCAL_JSON_PATH: "packages/dd-trace/src/config/supported-configurations.json" + BACKFILLED: "false" -update_central_configurations_version_range: - extends: .update_central_configurations_version_range +update_central_configurations_version_range_v2: + extends: .update_central_configurations_version_range_v2 variables: LOCAL_REPO_NAME: "dd-trace-js" LOCAL_JSON_PATH: "packages/dd-trace/src/config/supported-configurations.json" diff --git a/eslint-rules/eslint-env-aliases.mjs b/eslint-rules/eslint-env-aliases.mjs index 07c9453503f..c3c999d3a98 100644 --- a/eslint-rules/eslint-env-aliases.mjs +++ b/eslint-rules/eslint-env-aliases.mjs @@ -8,12 +8,15 @@ const supportedConfigsPath = path.resolve( path.dirname(__filename), '../packages/dd-trace/src/config/supported-configurations.json' ) -const { aliases } = JSON.parse(fs.readFileSync(supportedConfigsPath, 'utf8')) +const { supportedConfigurations } = JSON.parse(fs.readFileSync(supportedConfigsPath, 'utf8')) const aliasToCanonical = {} -for (const canonical of Object.keys(aliases)) { - for (const alias of aliases[canonical]) { - aliasToCanonical[alias] = canonical +for (const [canonical, entries] of Object.entries(supportedConfigurations)) { + for (const entry of entries) { + for (const alias of entry.aliases ?? []) { + aliasToCanonical[alias] ??= [] + aliasToCanonical[alias].push(canonical) + } } } diff --git a/index.d.ts b/index.d.ts index 822016d22f1..20ec4864b85 100644 --- a/index.d.ts +++ b/index.d.ts @@ -476,23 +476,31 @@ declare namespace tracer { * Whether to enable trace ID injection in log records to be able to correlate * traces with logs. * @default false + * @env DD_LOGS_INJECTION + * Programmatic configuration takes precedence over the environment variables listed above. */ logInjection?: boolean, /** * Whether to enable startup logs. * @default true + * @env DD_TRACE_STARTUP_LOGS + * Programmatic configuration takes precedence over the environment variables listed above. */ startupLogs?: boolean, /** * The service name to be used for this program. If not set, the service name * will attempted to be inferred from package.json + * @env DD_SERVICE, OTEL_SERVICE_NAME + * Programmatic configuration takes precedence over the environment variables listed above. */ service?: string; /** * Provide service name mappings for each plugin. + * @env DD_SERVICE_MAPPING + * Programmatic configuration takes precedence over the environment variables listed above. */ serviceMapping?: { [key: string]: string }; @@ -505,12 +513,16 @@ declare namespace tracer { /** * The address of the trace agent that the tracer will submit to. * @default '127.0.0.1' + * @env DD_AGENT_HOST + * Programmatic configuration takes precedence over the environment variables listed above. */ hostname?: string; /** * The port of the trace agent that the tracer will submit to. * @default 8126 + * @env DD_TRACE_AGENT_PORT + * Programmatic configuration takes precedence over the environment variables listed above. */ port?: number | string; @@ -525,24 +537,32 @@ declare namespace tracer { dogstatsd?: { /** * The hostname of the Dogstatsd agent that the metrics will submitted to. + * @env DD_DOGSTATSD_HOST + * Programmatic configuration takes precedence over the environment variables listed above. */ hostname?: string /** * The port of the Dogstatsd agent that the metrics will submitted to. * @default 8125 + * @env DD_DOGSTATSD_PORT + * Programmatic configuration takes precedence over the environment variables listed above. */ port?: number }; /** * Set an application’s environment e.g. prod, pre-prod, stage. + * @env DD_ENV + * Programmatic configuration takes precedence over the environment variables listed above. */ env?: string; /** * The version number of the application. If not set, the version * will attempted to be inferred from package.json. + * @env DD_VERSION + * Programmatic configuration takes precedence over the environment variables listed above. */ version?: string; @@ -576,12 +596,16 @@ declare namespace tracer { /** * Interval in milliseconds at which the tracer will submit traces to the agent. * @default 2000 + * @env DD_TRACE_FLUSH_INTERVAL + * Programmatic configuration takes precedence over the environment variables listed above. */ flushInterval?: number; /** * Number of spans before partially exporting a trace. This prevents keeping all the spans in memory for very large traces. * @default 1000 + * @env DD_TRACE_PARTIAL_FLUSH_MIN_SPANS + * Programmatic configuration takes precedence over the environment variables listed above. */ flushMinSpans?: number; @@ -590,14 +614,31 @@ declare namespace tracer { * @default false */ runtimeMetrics?: boolean | { + + /** + * @env DD_RUNTIME_METRICS_ENABLED + * Programmatic configuration takes precedence over the environment variables listed above. + */ enabled?: boolean, + + /** + * @env DD_RUNTIME_METRICS_GC_ENABLED + * Programmatic configuration takes precedence over the environment variables listed above. + */ gc?: boolean, + + /** + * @env DD_RUNTIME_METRICS_EVENT_LOOP_ENABLED + * Programmatic configuration takes precedence over the environment variables listed above. + */ eventLoop?: boolean } /** * Whether to add an auto-generated `runtime-id` tag to metrics. * @default false + * @env DD_RUNTIME_METRICS_RUNTIME_ID_ENABLED + * Programmatic configuration takes precedence over the environment variables listed above. */ runtimeMetricsRuntimeId?: boolean @@ -610,6 +651,8 @@ declare namespace tracer { /** * Protocol version to use for requests to the agent. The version configured must be supported by the agent version installed or all traces will be dropped. * @default 0.4 + * @env DD_TRACE_AGENT_PROTOCOL_VERSION + * Programmatic configuration takes precedence over the environment variables listed above. */ protocolVersion?: string @@ -641,12 +684,16 @@ declare namespace tracer { /** * Whether to write traces to log output or agentless, rather than send to an agent * @default false + * @env DD_TRACE_EXPERIMENTAL_EXPORTER + * Programmatic configuration takes precedence over the environment variables listed above. */ exporter?: 'log' | 'agent' | 'datadog' /** * Whether to enable the experimental `getRumData` method. * @default false + * @env DD_TRACE_EXPERIMENTAL_GET_RUM_DATA_ENABLED + * Programmatic configuration takes precedence over the environment variables listed above. */ enableGetRumData?: boolean @@ -674,22 +721,32 @@ declare namespace tracer { aiguard?: { /** * Set to `true` to enable the SDK. + * @env DD_AI_GUARD_ENABLED + * Programmatic configuration takes precedence over the environment variables listed above. */ enabled?: boolean, /** * URL of the AI Guard REST API. + * @env DD_AI_GUARD_ENDPOINT + * Programmatic configuration takes precedence over the environment variables listed above. */ endpoint?: string, /** * Timeout used in calls to the AI Guard REST API in milliseconds (default 5000) + * @env DD_AI_GUARD_TIMEOUT + * Programmatic configuration takes precedence over the environment variables listed above. */ timeout?: number, /** * Maximum number of conversational messages allowed to be set in the meta-struct + * @env DD_AI_GUARD_MAX_MESSAGES_LENGTH + * Programmatic configuration takes precedence over the environment variables listed above. */ maxMessagesLength?: number, /** * Max size of the content property set in the meta-struct + * @env DD_AI_GUARD_MAX_CONTENT_SIZE + * Programmatic configuration takes precedence over the environment variables listed above. */ maxContentSize?: number } @@ -706,6 +763,8 @@ declare namespace tracer { * Can be configured via DD_EXPERIMENTAL_FLAGGING_PROVIDER_ENABLED environment variable. * * @default false + * @env DD_EXPERIMENTAL_FLAGGING_PROVIDER_ENABLED + * Programmatic configuration takes precedence over the environment variables listed above. */ enabled?: boolean /** @@ -745,6 +804,8 @@ declare namespace tracer { /** * Whether to report the hostname of the service host. This is used when the agent is deployed on a different host and cannot determine the hostname automatically. * @default false + * @env DD_TRACE_REPORT_HOSTNAME + * Programmatic configuration takes precedence over the environment variables listed above. */ reportHostname?: boolean @@ -757,6 +818,8 @@ declare namespace tracer { /** * Enables DBM to APM link using tag injection. * @default 'disabled' + * @env DD_DBM_PROPAGATION_MODE + * Programmatic configuration takes precedence over the environment variables listed above. */ dbmPropagationMode?: 'disabled' | 'service' | 'full' @@ -788,48 +851,66 @@ declare namespace tracer { /** * Whether to enable AppSec. * @default false + * @env DD_APPSEC_ENABLED + * Programmatic configuration takes precedence over the environment variables listed above. */ enabled?: boolean, /** * Specifies a path to a custom rules file. + * @env DD_APPSEC_RULES + * Programmatic configuration takes precedence over the environment variables listed above. */ rules?: string, /** * Controls the maximum amount of traces sampled by AppSec attacks, per second. * @default 100 + * @env DD_APPSEC_TRACE_RATE_LIMIT + * Programmatic configuration takes precedence over the environment variables listed above. */ rateLimit?: number, /** * Controls the maximum amount of time in microseconds the WAF is allowed to run synchronously for. * @default 5000 + * @env DD_APPSEC_WAF_TIMEOUT + * Programmatic configuration takes precedence over the environment variables listed above. */ wafTimeout?: number, /** * Specifies a regex that will redact sensitive data by its key in attack reports. + * @env DD_APPSEC_OBFUSCATION_PARAMETER_KEY_REGEXP + * Programmatic configuration takes precedence over the environment variables listed above. */ obfuscatorKeyRegex?: string, /** * Specifies a regex that will redact sensitive data by its value in attack reports. + * @env DD_APPSEC_OBFUSCATION_PARAMETER_VALUE_REGEXP + * Programmatic configuration takes precedence over the environment variables listed above. */ obfuscatorValueRegex?: string, /** * Specifies a path to a custom blocking template html file. + * @env DD_APPSEC_HTTP_BLOCKED_TEMPLATE_HTML + * Programmatic configuration takes precedence over the environment variables listed above. */ blockedTemplateHtml?: string, /** * Specifies a path to a custom blocking template json file. + * @env DD_APPSEC_HTTP_BLOCKED_TEMPLATE_JSON + * Programmatic configuration takes precedence over the environment variables listed above. */ blockedTemplateJson?: string, /** * Specifies a path to a custom blocking template json file for graphql requests + * @env DD_APPSEC_GRAPHQL_BLOCKED_TEMPLATE_JSON + * Programmatic configuration takes precedence over the environment variables listed above. */ blockedTemplateGraphql?: string, @@ -851,6 +932,8 @@ declare namespace tracer { * * Unknown values will be considered as 'disabled' * @default 'identification' + * @env DD_APPSEC_AUTO_USER_INSTRUMENTATION_MODE + * Programmatic configuration takes precedence over the environment variables listed above. */ mode?: 'anonymous' | 'anon' | 'safe' | @@ -863,16 +946,22 @@ declare namespace tracer { apiSecurity?: { /** Whether to enable Api Security. * @default true + * @env DD_API_SECURITY_ENABLED + * Programmatic configuration takes precedence over the environment variables listed above. */ enabled?: boolean, /** Whether to enable endpoint collection for API Security. * @default true + * @env DD_API_SECURITY_ENDPOINT_COLLECTION_ENABLED + * Programmatic configuration takes precedence over the environment variables listed above. */ endpointCollectionEnabled?: boolean, /** Maximum number of endpoints that can be serialized per message. * @default 300 + * @env DD_API_SECURITY_ENDPOINT_COLLECTION_MESSAGE_LIMIT + * Programmatic configuration takes precedence over the environment variables listed above. */ endpointCollectionMessageLimit?: number, }, @@ -882,6 +971,8 @@ declare namespace tracer { rasp?: { /** Whether to enable RASP. * @default false + * @env DD_APPSEC_RASP_ENABLED + * Programmatic configuration takes precedence over the environment variables listed above. */ enabled?: boolean, @@ -889,6 +980,8 @@ declare namespace tracer { * @default false * * @deprecated Use UI and Remote Configuration to enable extended data collection + * @env DD_APPSEC_RASP_COLLECT_REQUEST_BODY + * Programmatic configuration takes precedence over the environment variables listed above. */ bodyCollection?: boolean }, @@ -898,16 +991,22 @@ declare namespace tracer { stackTrace?: { /** Whether to enable stack trace reporting. * @default true + * @env DD_APPSEC_STACK_TRACE_ENABLED + * Programmatic configuration takes precedence over the environment variables listed above. */ enabled?: boolean, /** Specifies the maximum number of stack traces to be reported. * @default 2 + * @env DD_APPSEC_MAX_STACK_TRACES + * Programmatic configuration takes precedence over the environment variables listed above. */ maxStackTraces?: number, /** Specifies the maximum depth of a stack trace to be reported. * @default 32 + * @env DD_APPSEC_MAX_STACK_TRACE_DEPTH + * Programmatic configuration takes precedence over the environment variables listed above. */ maxDepth?: number, }, @@ -921,6 +1020,8 @@ declare namespace tracer { * @default false * * @deprecated Use UI and Remote Configuration to enable extended data collection + * @env DD_APPSEC_COLLECT_ALL_HEADERS + * Programmatic configuration takes precedence over the environment variables listed above. */ enabled: boolean, @@ -928,6 +1029,8 @@ declare namespace tracer { * @default true * * @deprecated Use UI and Remote Configuration to enable extended data collection + * @env DD_APPSEC_HEADER_COLLECTION_REDACTION_ENABLED + * Programmatic configuration takes precedence over the environment variables listed above. */ redaction: boolean, @@ -935,6 +1038,8 @@ declare namespace tracer { * @default 50 * * @deprecated Use UI and Remote Configuration to enable extended data collection + * @env DD_APPSEC_MAX_COLLECTED_HEADERS + * Programmatic configuration takes precedence over the environment variables listed above. */ maxHeaders: number, } @@ -947,6 +1052,8 @@ declare namespace tracer { /** * Whether to enable Code Origin for Spans. * @default true + * @env DD_CODE_ORIGIN_FOR_SPANS_ENABLED + * Programmatic configuration takes precedence over the environment variables listed above. */ enabled?: boolean } @@ -963,6 +1070,8 @@ declare namespace tracer { /** * Specifies the remote configuration polling interval in seconds * @default 5 + * @env DD_REMOTE_CONFIG_POLL_INTERVAL_SECONDS + * Programmatic configuration takes precedence over the environment variables listed above. */ pollInterval?: number, } @@ -970,6 +1079,8 @@ declare namespace tracer { /** * Whether to enable client IP collection from relevant IP headers * @default false + * @env DD_TRACE_CLIENT_IP_ENABLED + * Programmatic configuration takes precedence over the environment variables listed above. */ clientIpEnabled?: boolean @@ -999,6 +1110,8 @@ declare namespace tracer { response?: string, /** * Maximum depth of payload traversal for tags + * @env DD_TRACE_CLOUD_PAYLOAD_TAGGING_MAX_DEPTH + * Programmatic configuration takes precedence over the environment variables listed above. */ maxDepth?: number } @@ -1015,23 +1128,31 @@ declare namespace tracer { /** * Whether to enable Dynamic Instrumentation. * @default false + * @env DD_DYNAMIC_INSTRUMENTATION_ENABLED + * Programmatic configuration takes precedence over the environment variables listed above. */ enabled?: boolean /** * Path to a custom probes configuration file. + * @env DD_DYNAMIC_INSTRUMENTATION_PROBE_FILE + * Programmatic configuration takes precedence over the environment variables listed above. */ probeFile?: string /** * Timeout in milliseconds for capturing variable values. * @default 15 + * @env DD_DYNAMIC_INSTRUMENTATION_CAPTURE_TIMEOUT_MS + * Programmatic configuration takes precedence over the environment variables listed above. */ captureTimeoutMs?: number /** * Interval in seconds between uploads of probe data. * @default 1 + * @env DD_DYNAMIC_INSTRUMENTATION_UPLOAD_INTERVAL_SECONDS + * Programmatic configuration takes precedence over the environment variables listed above. */ uploadIntervalSeconds?: number @@ -1043,6 +1164,8 @@ declare namespace tracer { * To avoid redacting some of those built-in identifiers, use * {@link redactionExcludedIdentifiers}. * @default [] + * @env DD_DYNAMIC_INSTRUMENTATION_REDACTED_IDENTIFIERS + * Programmatic configuration takes precedence over the environment variables listed above. */ redactedIdentifiers?: string[] @@ -1051,6 +1174,8 @@ declare namespace tracer { * Use this to avoid redacting some of the built-in identifiers (see * {@link redactedIdentifiers}). * @default [] + * @env DD_DYNAMIC_INSTRUMENTATION_REDACTION_EXCLUDED_IDENTIFIERS + * Programmatic configuration takes precedence over the environment variables listed above. */ redactionExcludedIdentifiers?: string[] } @@ -3008,24 +3133,32 @@ declare namespace tracer { /** * Whether to enable IAST. * @default false + * @env DD_IAST_ENABLED + * Programmatic configuration takes precedence over the environment variables listed above. */ enabled?: boolean, /** * Controls the percentage of requests that iast will analyze * @default 30 + * @env DD_IAST_REQUEST_SAMPLING + * Programmatic configuration takes precedence over the environment variables listed above. */ requestSampling?: number, /** * Controls how many request can be analyzing code vulnerabilities at the same time * @default 2 + * @env DD_IAST_MAX_CONCURRENT_REQUESTS + * Programmatic configuration takes precedence over the environment variables listed above. */ maxConcurrentRequests?: number, /** * Controls how many code vulnerabilities can be detected in the same request * @default 2 + * @env DD_IAST_MAX_CONTEXT_OPERATIONS + * Programmatic configuration takes precedence over the environment variables listed above. */ maxContextOperations?: number, @@ -3039,27 +3172,37 @@ declare namespace tracer { /** * Defines the number of rows to taint in data coming from databases * @default 1 + * @env DD_IAST_DB_ROWS_TO_TAINT + * Programmatic configuration takes precedence over the environment variables listed above. */ dbRowsToTaint?: number, /** * Whether to enable vulnerability deduplication + * @env DD_IAST_DEDUPLICATION_ENABLED + * Programmatic configuration takes precedence over the environment variables listed above. */ deduplicationEnabled?: boolean, /** * Whether to enable vulnerability redaction * @default true + * @env DD_IAST_REDACTION_ENABLED + * Programmatic configuration takes precedence over the environment variables listed above. */ redactionEnabled?: boolean, /** * Specifies a regex that will redact sensitive source names in vulnerability reports. + * @env DD_IAST_REDACTION_NAME_PATTERN + * Programmatic configuration takes precedence over the environment variables listed above. */ redactionNamePattern?: string, /** * Specifies a regex that will redact sensitive source values in vulnerability reports. + * @env DD_IAST_REDACTION_VALUE_PATTERN + * Programmatic configuration takes precedence over the environment variables listed above. */ redactionValuePattern?: string, @@ -3068,11 +3211,15 @@ declare namespace tracer { * using ESM. * @deprecated Please use the DD_IAST_SECURITY_CONTROLS_CONFIGURATION * environment variable instead. + * @env DD_IAST_SECURITY_CONTROLS_CONFIGURATION + * Programmatic configuration takes precedence over the environment variables listed above. */ securityControlsConfiguration?: string, /** * Specifies the verbosity of the sent telemetry. Default 'INFORMATION' + * @env DD_IAST_TELEMETRY_VERBOSITY + * Programmatic configuration takes precedence over the environment variables listed above. */ telemetryVerbosity?: string, @@ -3082,6 +3229,8 @@ declare namespace tracer { stackTrace?: { /** Whether to enable stack trace reporting. * @default true + * @env DD_IAST_STACK_TRACE_ENABLED + * Programmatic configuration takes precedence over the environment variables listed above. */ enabled?: boolean, } @@ -3546,11 +3695,15 @@ declare namespace tracer { interface LLMObsEnableOptions { /** * The name of your ML application. + * @env DD_LLMOBS_ML_APP + * Programmatic configuration takes precedence over the environment variables listed above. */ mlApp?: string, /** * Set to `true` to disable sending data that requires a Datadog Agent. + * @env DD_LLMOBS_AGENTLESS_ENABLED + * Programmatic configuration takes precedence over the environment variables listed above. */ agentlessEnabled?: boolean, } diff --git a/packages/dd-trace/src/config/defaults.js b/packages/dd-trace/src/config/defaults.js index 29e034f8f4d..a4729dbc899 100644 --- a/packages/dd-trace/src/config/defaults.js +++ b/packages/dd-trace/src/config/defaults.js @@ -44,7 +44,7 @@ module.exports = { 'appsec.rasp.bodyCollection': false, 'appsec.rateLimit': 100, 'appsec.rules': undefined, - 'appsec.sca.enabled': null, + 'appsec.sca.enabled': undefined, 'appsec.stackTrace.enabled': true, 'appsec.stackTrace.maxDepth': 32, 'appsec.stackTrace.maxStackTraces': 2, @@ -53,7 +53,7 @@ module.exports = { baggageMaxItems: 64, baggageTagKeys: 'user.id,session.id,account.id', clientIpEnabled: false, - clientIpHeader: null, + clientIpHeader: undefined, 'cloudPayloadTagging.requestsEnabled': false, 'cloudPayloadTagging.responsesEnabled': false, 'cloudPayloadTagging.maxDepth': 10, @@ -99,18 +99,18 @@ module.exports = { 'iast.maxConcurrentRequests': 2, 'iast.maxContextOperations': 2, 'iast.redactionEnabled': true, - 'iast.redactionNamePattern': null, - 'iast.redactionValuePattern': null, + 'iast.redactionNamePattern': undefined, + 'iast.redactionValuePattern': undefined, 'iast.requestSampling': 30, - 'iast.securityControlsConfiguration': null, + 'iast.securityControlsConfiguration': undefined, 'iast.telemetryVerbosity': 'INFORMATION', 'iast.stackTrace.enabled': true, injectionEnabled: [], - 'installSignature.id': null, - 'installSignature.time': null, - 'installSignature.type': null, + 'installSignature.id': undefined, + 'installSignature.time': undefined, + 'installSignature.type': undefined, instrumentationSource: 'manual', - injectForce: null, + injectForce: undefined, isAzureFunction: false, isCiVisibility: false, isEarlyFlakeDetectionEnabled: false, diff --git a/packages/dd-trace/src/config/helper.js b/packages/dd-trace/src/config/helper.js index 647755d4ccb..4e03f58aba5 100644 --- a/packages/dd-trace/src/config/helper.js +++ b/packages/dd-trace/src/config/helper.js @@ -2,8 +2,20 @@ /* eslint-disable eslint-rules/eslint-process-env */ +/** + * @typedef {object} SupportedConfigurationEntry + * @property {string} implementation + * @property {string} type + * @property {string|number|boolean|null|object|unknown[]} default + * @property {string[]} [aliases] + */ + const { deprecate } = require('util') -const { supportedConfigurations, aliases, deprecations } = require('./supported-configurations.json') +const supportedConfigurationsJson = /** @type {{ + supportedConfigurations: Record<`DD_${string}` | `OTEL_${string}`, SupportedConfigurationEntry[]>, + deprecations?: Record +}} */ (require('./supported-configurations.json')) +const { supportedConfigurations, deprecations = {} } = supportedConfigurationsJson /** * Types for environment variable handling. @@ -12,6 +24,22 @@ const { supportedConfigurations, aliases, deprecations } = require('./supported- * @typedef {Partial & Partial>} TracerEnv */ +// Backwards-compatible views for old helper logic: +// - `aliases`: Record +// - `deprecations`: Record (message suffix) +const aliases = {} + +for (const [canonical, configuration] of Object.entries(supportedConfigurations)) { + for (const implementation of configuration) { + if (Array.isArray(implementation.aliases)) { + for (const alias of implementation.aliases) { + aliases[canonical] ??= new Set() + aliases[canonical].add(alias) + } + } + } +} + const aliasToCanonical = {} for (const canonical of Object.keys(aliases)) { for (const alias of aliases[canonical]) { diff --git a/packages/dd-trace/src/config/index.js b/packages/dd-trace/src/config/index.js index cde21de7809..9069af7b548 100644 --- a/packages/dd-trace/src/config/index.js +++ b/packages/dd-trace/src/config/index.js @@ -89,6 +89,8 @@ class Config { options = { ...options, + // TODO(BridgeAR): Remove the experimental prefix once we have a major version. + // That also applies to index.d.ts appsec: options.appsec == null ? options.experimental?.appsec : options.appsec, iast: options.iast == null ? options.experimental?.iast : options.iast, } diff --git a/packages/dd-trace/src/config/supported-configurations.json b/packages/dd-trace/src/config/supported-configurations.json index bec954421d2..9da31b2b289 100644 --- a/packages/dd-trace/src/config/supported-configurations.json +++ b/packages/dd-trace/src/config/supported-configurations.json @@ -1,516 +1,3623 @@ { + "version": "2", "supportedConfigurations": { - "DD_AAS_DOTNET_EXTENSION_VERSION": ["A"], - "DD_ACTION_EXECUTION_ID": ["A"], - "DD_AGENT_HOST": ["A"], - "DD_AGENTLESS_LOG_SUBMISSION_ENABLED": ["A"], - "DD_AGENTLESS_LOG_SUBMISSION_URL": ["A"], - "DD_AI_GUARD_ENABLED": ["A"], - "DD_AI_GUARD_ENDPOINT": ["A"], - "DD_AI_GUARD_MAX_CONTENT_SIZE": ["A"], - "DD_AI_GUARD_MAX_MESSAGES_LENGTH": ["A"], - "DD_AI_GUARD_TIMEOUT": ["A"], - "DD_API_KEY": ["A"], - "DD_API_SECURITY_ENABLED": ["A"], - "DD_API_SECURITY_SAMPLE_DELAY": ["A"], - "DD_API_SECURITY_ENDPOINT_COLLECTION_ENABLED": ["A"], - "DD_API_SECURITY_ENDPOINT_COLLECTION_MESSAGE_LIMIT": ["A"], - "DD_API_SECURITY_DOWNSTREAM_BODY_ANALYSIS_SAMPLE_RATE": ["A"], - "DD_API_SECURITY_MAX_DOWNSTREAM_REQUEST_BODY_ANALYSIS": ["A"], - "DD_APM_FLUSH_DEADLINE_MILLISECONDS": ["A"], - "DD_APM_TRACING_ENABLED": ["A"], - "DD_APP_KEY": ["A"], - "DD_APPSEC_AUTO_USER_INSTRUMENTATION_MODE": ["A"], - "DD_APPSEC_COLLECT_ALL_HEADERS": ["A"], - "DD_APPSEC_ENABLED": ["A"], - "DD_APPSEC_GRAPHQL_BLOCKED_TEMPLATE_JSON": ["A"], - "DD_APPSEC_HEADER_COLLECTION_REDACTION_ENABLED": ["A"], - "DD_APPSEC_HTTP_BLOCKED_TEMPLATE_HTML": ["A"], - "DD_APPSEC_HTTP_BLOCKED_TEMPLATE_JSON": ["A"], - "DD_APPSEC_MAX_COLLECTED_HEADERS": ["A"], - "DD_APPSEC_MAX_STACK_TRACE_DEPTH": ["A"], - "DD_APPSEC_MAX_STACK_TRACES": ["A"], - "DD_APPSEC_OBFUSCATION_PARAMETER_KEY_REGEXP": ["A"], - "DD_APPSEC_OBFUSCATION_PARAMETER_VALUE_REGEXP": ["A"], - "DD_APPSEC_RASP_COLLECT_REQUEST_BODY": ["A"], - "DD_APPSEC_RASP_ENABLED": ["A"], - "DD_APPSEC_RULES": ["A"], - "DD_APPSEC_SCA_ENABLED": ["A"], - "DD_APPSEC_STACK_TRACE_ENABLED": ["A"], - "DD_APPSEC_TRACE_RATE_LIMIT": ["A"], - "DD_APPSEC_WAF_TIMEOUT": ["A"], - "DD_AZURE_RESOURCE_GROUP": ["A"], - "DD_CIVISIBILITY_AGENTLESS_ENABLED": ["A"], - "DD_CIVISIBILITY_AGENTLESS_URL": ["A"], - "DD_CIVISIBILITY_AUTO_INSTRUMENTATION_PROVIDER": ["A"], - "DD_CIVISIBILITY_DANGEROUSLY_FORCE_COVERAGE": ["A"], - "DD_CIVISIBILITY_DANGEROUSLY_FORCE_TEST_SKIPPING": ["A"], - "DD_CIVISIBILITY_EARLY_FLAKE_DETECTION_ENABLED": ["A"], - "DD_CIVISIBILITY_ENABLED": ["A"], - "DD_CIVISIBILITY_FLAKY_RETRY_COUNT": ["A"], - "DD_CIVISIBILITY_FLAKY_RETRY_ENABLED": ["A"], - "DD_CIVISIBILITY_GIT_UNSHALLOW_ENABLED": ["A"], - "DD_CIVISIBILITY_GIT_UPLOAD_ENABLED": ["A"], - "DD_CIVISIBILITY_IMPACTED_TESTS_DETECTION_ENABLED": ["A"], - "DD_CIVISIBILITY_ITR_ENABLED": ["A"], - "DD_CIVISIBILITY_RUM_FLUSH_WAIT_MILLIS": ["A"], - "DD_CIVISIBILITY_MANUAL_API_ENABLED": ["A"], - "DD_CIVISIBILITY_TEST_COMMAND": ["A"], - "DD_CIVISIBILITY_TEST_MODULE_ID": ["A"], - "DD_CIVISIBILITY_TEST_SESSION_ID": ["A"], - "DD_CODE_ORIGIN_FOR_SPANS_ENABLED": ["A"], - "DD_CODE_ORIGIN_FOR_SPANS_EXPERIMENTAL_EXIT_SPANS_ENABLED": ["A"], - "DD_CRASHTRACKING_ENABLED": ["A"], - "DD_CUSTOM_TRACE_ID": ["A"], - "DD_DATA_STREAMS_ENABLED": ["A"], - "DD_DBM_PROPAGATION_MODE": ["A"], - "DD_DBM_INJECT_SQL_BASEHASH": ["A"], - "DD_DOGSTATSD_HOST": ["A"], - "DD_DOGSTATSD_PORT": ["A"], - "DD_DYNAMIC_INSTRUMENTATION_CAPTURE_TIMEOUT_MS": ["A"], - "DD_DYNAMIC_INSTRUMENTATION_ENABLED": ["A"], - "DD_DYNAMIC_INSTRUMENTATION_PROBE_FILE": ["A"], - "DD_DYNAMIC_INSTRUMENTATION_REDACTED_IDENTIFIERS": ["A"], - "DD_DYNAMIC_INSTRUMENTATION_REDACTION_EXCLUDED_IDENTIFIERS": ["A"], - "DD_DYNAMIC_INSTRUMENTATION_UPLOAD_INTERVAL_SECONDS": ["A"], - "DD_ENV": ["A"], - "DD_EXPERIMENTAL_APPSEC_STANDALONE_ENABLED": ["A"], - "DD_EXPERIMENTAL_FLAGGING_PROVIDER_ENABLED": ["A"], - "DD_EXPERIMENTAL_FLAGGING_PROVIDER_INITIALIZATION_TIMEOUT_MS": ["A"], - "DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED": ["A"], - "DD_EXPERIMENTAL_TEST_OPT_GIT_CACHE_ENABLED": ["A"], - "DD_EXPERIMENTAL_TEST_OPT_GIT_CACHE_DIR": ["A"], - "DD_EXTERNAL_ENV": ["A"], - "DD_GIT_BRANCH": ["A"], - "DD_GIT_COMMIT_AUTHOR_DATE": ["A"], - "DD_GIT_COMMIT_AUTHOR_EMAIL": ["A"], - "DD_GIT_COMMIT_AUTHOR_NAME": ["A"], - "DD_GIT_COMMIT_COMMITTER_DATE": ["A"], - "DD_GIT_COMMIT_COMMITTER_EMAIL": ["A"], - "DD_GIT_COMMIT_COMMITTER_NAME": ["A"], - "DD_GIT_COMMIT_MESSAGE": ["A"], - "DD_GIT_COMMIT_SHA": ["A"], - "DD_GIT_PROPERTIES_FILE": ["A"], - "DD_GIT_FOLDER_PATH": ["A"], - "DD_GIT_REPOSITORY_URL": ["A"], - "DD_GIT_TAG": ["A"], - "DD_GIT_PULL_REQUEST_BASE_BRANCH": ["A"], - "DD_GIT_PULL_REQUEST_BASE_BRANCH_SHA": ["A"], - "DD_GIT_COMMIT_HEAD_SHA": ["A"], - "DD_GRPC_CLIENT_ERROR_STATUSES": ["A"], - "DD_GRPC_SERVER_ERROR_STATUSES": ["A"], - "DD_HEAP_SNAPSHOT_COUNT": ["A"], - "DD_HEAP_SNAPSHOT_INTERVAL": ["A"], - "DD_HEAP_SNAPSHOT_DESTINATION": ["A"], - "DD_IAST_DB_ROWS_TO_TAINT": ["A"], - "DD_IAST_DEDUPLICATION_ENABLED": ["A"], - "DD_IAST_ENABLED": ["A"], - "DD_IAST_MAX_CONCURRENT_REQUESTS": ["A"], - "DD_IAST_MAX_CONTEXT_OPERATIONS": ["A"], - "DD_IAST_REDACTION_ENABLED": ["A"], - "DD_IAST_REDACTION_NAME_PATTERN": ["A"], - "DD_IAST_REDACTION_VALUE_PATTERN": ["A"], - "DD_IAST_REQUEST_SAMPLING": ["A"], - "DD_IAST_SECURITY_CONTROLS_CONFIGURATION": ["A"], - "DD_IAST_STACK_TRACE_ENABLED": ["A"], - "DD_IAST_TELEMETRY_VERBOSITY": ["A"], - "DD_INJECT_FORCE": ["A"], - "DD_INJECTION_ENABLED": ["A"], - "DD_ENABLE_NX_SERVICE_NAME": ["A"], - "DD_INSTRUMENTATION_CONFIG_ID": ["A"], - "DD_INSTRUMENTATION_INSTALL_ID": ["A"], - "DD_INSTRUMENTATION_INSTALL_TIME": ["A"], - "DD_INSTRUMENTATION_INSTALL_TYPE": ["A"], - "DD_INSTRUMENTATION_TELEMETRY_ENABLED": ["A"], - "DD_INTERNAL_PROFILING_LONG_LIVED_THRESHOLD": ["A"], - "DD_INTERNAL_PROFILING_TIMELINE_SAMPLING_ENABLED": ["A"], - "DD_LAMBDA_HANDLER": ["A"], - "DD_LANGCHAIN_SPAN_CHAR_LIMIT": ["A"], - "DD_LANGCHAIN_SPAN_PROMPT_COMPLETION_SAMPLE_RATE": ["A"], - "DD_LLMOBS_AGENTLESS_ENABLED": ["A"], - "DD_LLMOBS_ENABLED": ["A"], - "DD_LLMOBS_ML_APP": ["A"], - "DD_LOG_LEVEL": ["A"], - "DD_LOGS_INJECTION": ["A"], - "DD_LOGS_OTEL_ENABLED": ["A"], - "DD_METRICS_OTEL_ENABLED": ["A"], - "DD_MINI_AGENT_PATH": ["A"], - "DD_OPENAI_LOGS_ENABLED": ["A"], - "DD_OPENAI_SPAN_CHAR_LIMIT": ["A"], - "DD_PIPELINE_EXECUTION_ID": ["A"], - "DD_PLAYWRIGHT_WORKER": ["A"], - "DD_PROFILING_ASYNC_CONTEXT_FRAME_ENABLED": ["A"], - "DD_PROFILING_CODEHOTSPOTS_ENABLED": ["A"], - "DD_PROFILING_CPU_ENABLED": ["A"], - "DD_PROFILING_DEBUG_SOURCE_MAPS": ["A"], - "DD_PROFILING_DEBUG_UPLOAD_COMPRESSION": ["A"], - "DD_PROFILING_ENABLED": ["A"], - "DD_PROFILING_ENDPOINT_COLLECTION_ENABLED": ["A"], - "DD_PROFILING_EXPERIMENTAL_OOM_EXPORT_STRATEGIES": ["A"], - "DD_PROFILING_EXPERIMENTAL_OOM_HEAP_LIMIT_EXTENSION_SIZE": ["A"], - "DD_PROFILING_EXPERIMENTAL_OOM_MAX_HEAP_EXTENSION_COUNT": ["A"], - "DD_PROFILING_EXPERIMENTAL_OOM_MONITORING_ENABLED": ["A"], - "DD_PROFILING_EXPORTERS": ["A"], - "DD_PROFILING_HEAP_ENABLED": ["A"], - "DD_PROFILING_HEAP_SAMPLING_INTERVAL": ["A"], - "DD_PROFILING_PPROF_PREFIX": ["A"], - "DD_PROFILING_PROFILERS": ["A"], - "DD_PROFILING_SOURCE_MAP": ["A"], - "DD_PROFILING_TIMELINE_ENABLED": ["A"], - "DD_PROFILING_UPLOAD_PERIOD": ["A"], - "DD_PROFILING_UPLOAD_TIMEOUT": ["A"], - "DD_PROFILING_V8_PROFILER_BUG_WORKAROUND": ["A"], - "DD_PROFILING_WALLTIME_ENABLED": ["A"], - "DD_REMOTE_CONFIG_POLL_INTERVAL_SECONDS": ["A"], - "DD_REMOTE_CONFIGURATION_ENABLED": ["A"], - "DD_RUNTIME_METRICS_ENABLED": ["A"], - "DD_RUNTIME_METRICS_EVENT_LOOP_ENABLED": ["A"], - "DD_RUNTIME_METRICS_GC_ENABLED": ["A"], - "DD_RUNTIME_METRICS_FLUSH_INTERVAL": ["A"], - "DD_RUNTIME_METRICS_RUNTIME_ID_ENABLED": ["A"], - "DD_TRACE_GCP_PUBSUB_PUSH_ENABLED": ["A"], - "DD_SERVICE_MAPPING": ["A"], - "DD_SERVICE": ["A"], - "DD_SITE": ["A"], - "DD_SPAN_SAMPLING_RULES_FILE": ["A"], - "DD_SPAN_SAMPLING_RULES": ["A"], - "DD_TAGS": ["A"], - "DD_TELEMETRY_DEBUG": ["A"], - "DD_TELEMETRY_DEPENDENCY_COLLECTION_ENABLED": ["A"], - "DD_TELEMETRY_FORWARDER_PATH": ["A"], - "DD_TELEMETRY_HEARTBEAT_INTERVAL": ["A"], - "DD_TELEMETRY_LOG_COLLECTION_ENABLED": ["A"], - "DD_TELEMETRY_METRICS_ENABLED": ["A"], - "DD_TEST_FAILED_TEST_REPLAY_ENABLED": ["A"], - "DD_TEST_FLEET_CONFIG_PATH": ["A"], - "DD_TEST_LOCAL_CONFIG_PATH": ["A"], - "DD_TEST_MANAGEMENT_ATTEMPT_TO_FIX_RETRIES": ["A"], - "DD_TEST_MANAGEMENT_ENABLED": ["A"], - "DD_EXPERIMENTAL_TEST_OPT_SETTINGS_CACHE": ["A"], - "DD_TEST_SESSION_NAME": ["A"], - "DD_TRACE_128_BIT_TRACEID_GENERATION_ENABLED": ["A"], - "DD_TRACE_128_BIT_TRACEID_LOGGING_ENABLED": ["A"], - "DD_TRACE_AEROSPIKE_ENABLED": ["A"], - "DD_TRACE_AI_ENABLED": ["A"], - "DD_TRACE_ANTHROPIC_ENABLED": ["A"], - "DD_TRACE_AGENT_PORT": ["A"], - "DD_TRACE_AGENT_PROTOCOL_VERSION": ["A"], - "DD_TRACE_AGENT_URL": ["A"], - "DD_TRACE_AMQP10_ENABLED": ["A"], - "DD_TRACE_AMQPLIB_ENABLED": ["A"], - "DD_TRACE_APOLLO_ENABLED": ["A"], - "DD_TRACE_APOLLO_GATEWAY_ENABLED": ["A"], - "DD_TRACE_APOLLO_SERVER_CORE_ENABLED": ["A"], - "DD_TRACE_APOLLO_SERVER_ENABLED": ["A"], - "DD_TRACE_APOLLO_SERVER_EXPRESS_ENABLED": ["A"], - "DD_TRACE_APOLLO_SERVER_FASTIFY_ENABLED": ["A"], - "DD_TRACE_APOLLO_SUBGRAPH_ENABLED": ["A"], - "DD_TRACE_AVSC_ENABLED": ["A"], - "DD_TRACE_AWS_ADD_SPAN_POINTERS": ["A"], - "DD_TRACE_AWS_SDK_AWS_BATCH_PROPAGATION_ENABLED": ["A"], - "DD_TRACE_AWS_SDK_AWS_ENABLED": ["A"], - "DD_TRACE_AWS_SDK_BATCH_PROPAGATION_ENABLED": ["A"], - "DD_TRACE_AWS_SDK_BEDROCKRUNTIME_BATCH_PROPAGATION_ENABLED": ["A"], - "DD_TRACE_AWS_SDK_BEDROCKRUNTIME_ENABLED": ["A"], - "DD_TRACE_AWS_SDK_CLOUDWATCHLOGS_BATCH_PROPAGATION_ENABLED": ["A"], - "DD_TRACE_AWS_SDK_CLOUDWATCHLOGS_ENABLED": ["A"], - "DD_TRACE_AWS_SDK_DYNAMODB_BATCH_PROPAGATION_ENABLED": ["A"], - "DD_TRACE_AWS_SDK_DYNAMODB_ENABLED": ["A"], - "DD_TRACE_AWS_SDK_ENABLED": ["A"], - "DD_TRACE_AWS_SDK_EVENTBRIDGE_BATCH_PROPAGATION_ENABLED": ["A"], - "DD_TRACE_AWS_SDK_EVENTBRIDGE_ENABLED": ["A"], - "DD_TRACE_AWS_SDK_KINESIS_BATCH_PROPAGATION_ENABLED": ["A"], - "DD_TRACE_AWS_SDK_KINESIS_ENABLED": ["A"], - "DD_TRACE_AWS_SDK_LAMBDA_BATCH_PROPAGATION_ENABLED": ["A"], - "DD_TRACE_AWS_SDK_LAMBDA_ENABLED": ["A"], - "DD_TRACE_AWS_SDK_NODE_HTTP_HANDLER_ENABLED": ["A"], - "DD_TRACE_AWS_SDK_REDSHIFT_BATCH_PROPAGATION_ENABLED": ["A"], - "DD_TRACE_AWS_SDK_REDSHIFT_ENABLED": ["A"], - "DD_TRACE_AWS_SDK_S3_BATCH_PROPAGATION_ENABLED": ["A"], - "DD_TRACE_AWS_SDK_S3_ENABLED": ["A"], - "DD_TRACE_AWS_SDK_SFN_BATCH_PROPAGATION_ENABLED": ["A"], - "DD_TRACE_AWS_SDK_SFN_CLIENT_ENABLED": ["A"], - "DD_TRACE_AWS_SDK_SFN_ENABLED": ["A"], - "DD_TRACE_AWS_SDK_SMITHY_CLIENT_ENABLED": ["A"], - "DD_TRACE_AWS_SDK_SNS_BATCH_PROPAGATION_ENABLED": ["A"], - "DD_TRACE_AWS_SDK_SNS_ENABLED": ["A"], - "DD_TRACE_AWS_SDK_SQS_BATCH_PROPAGATION_ENABLED": ["A"], - "DD_TRACE_AWS_SDK_SQS_ENABLED": ["A"], - "DD_TRACE_AWS_SDK_STATES_BATCH_PROPAGATION_ENABLED": ["A"], - "DD_TRACE_AWS_SDK_STATES_ENABLED": ["A"], - "DD_TRACE_AWS_SDK_STEPFUNCTIONS_BATCH_PROPAGATION_ENABLED": ["A"], - "DD_TRACE_AWS_SDK_STEPFUNCTIONS_ENABLED": ["A"], - "DD_TRACE_AXIOS_ENABLED": ["A"], - "DD_TRACE_AZURE_EVENT_HUBS_ENABLED": ["A"], - "DD_TRACE_AZURE_EVENTHUBS_BATCH_LINKS_ENABLED": ["A"], - "DD_TRACE_AZURE_FUNCTIONS_ENABLED": ["A"], - "DD_TRACE_AZURE_SERVICE_BUS_ENABLED": ["A"], - "DD_TRACE_AZURE_SERVICEBUS_BATCH_LINKS_ENABLED": ["A"], - "DD_TRACE_BAGGAGE_MAX_BYTES": ["A"], - "DD_TRACE_BAGGAGE_MAX_ITEMS": ["A"], - "DD_TRACE_BAGGAGE_TAG_KEYS": ["A"], - "DD_TRACE_BEAUTIFUL_LOGS": ["A"], - "DD_TRACE_BLUEBIRD_ENABLED": ["A"], - "DD_TRACE_BULLMQ_ENABLED": ["A"], - "DD_TRACE_BODY_PARSER_ENABLED": ["A"], - "DD_TRACE_BSON_ENABLED": ["A"], - "DD_TRACE_BUNYAN_ENABLED": ["A"], - "DD_TRACE_CASSANDRA_DRIVER_ENABLED": ["A"], - "DD_TRACE_CHILD_PROCESS_ENABLED": ["A"], - "DD_TRACE_CLIENT_IP_ENABLED": ["A"], - "DD_TRACE_CLIENT_IP_HEADER": ["A"], - "DD_TRACE_CLOUD_PAYLOAD_TAGGING_MAX_DEPTH": ["A"], - "DD_TRACE_CLOUD_REQUEST_PAYLOAD_TAGGING": ["A"], - "DD_TRACE_CLOUD_RESPONSE_PAYLOAD_TAGGING": ["A"], - "DD_TRACE_COLLECTIONS_ENABLED": ["A"], - "DD_TRACE_COMMONPLUGIN_ENABLED": ["A"], - "DD_TRACE_CONFLUENTINC_KAFKA_JAVASCRIPT_ENABLED": ["A"], - "DD_TRACE_CONNECT_ENABLED": ["A"], - "DD_TRACE_COOKIE_ENABLED": ["A"], - "DD_TRACE_COOKIE_PARSER_ENABLED": ["A"], - "DD_TRACE_COUCHBASE_ENABLED": ["A"], - "DD_TRACE_CRYPTO_ENABLED": ["A"], - "DD_TRACE_CUCUMBER_CUCUMBER_ENABLED": ["A"], - "DD_TRACE_CUCUMBER_ENABLED": ["A"], - "DD_TRACE_CYPRESS_ENABLED": ["A"], - "DD_TRACE_DD_TRACE_API_ENABLED": ["A"], - "DD_TRACE_DEBUG": ["A"], - "DD_TRACE_DISABLED_INSTRUMENTATIONS": ["A"], - "DD_TRACE_DISABLED_PLUGINS": ["A"], - "DD_TRACE_DNS_ENABLED": ["A"], - "DD_TRACE_DYNAMODB_TABLE_PRIMARY_KEYS": ["A"], - "DD_TRACE_ELASTIC_ELASTICSEARCH_ENABLED": ["A"], - "DD_TRACE_ELASTIC_TRANSPORT_ENABLED": ["A"], - "DD_TRACE_ELASTICSEARCH_ENABLED": ["A"], - "DD_TRACE_ENABLED": ["A"], - "DD_TRACE_ENCODING_DEBUG": ["A"], - "DD_TRACE_EXPERIMENTAL_B3_ENABLED": ["A"], - "DD_TRACE_EXPERIMENTAL_EXPORTER": ["A"], - "DD_TRACE_EXPERIMENTAL_GET_RUM_DATA_ENABLED": ["A"], - "DD_TRACE_EXPERIMENTAL_SPAN_COUNTS": ["A"], - "DD_TRACE_EXPERIMENTAL_STATE_TRACKING": ["A"], - "DD_TRACE_EXPRESS_ENABLED": ["A"], - "DD_TRACE_EXPRESS_MONGO_SANITIZE_ENABLED": ["A"], - "DD_TRACE_EXPRESS_SESSION_ENABLED": ["A"], - "DD_TRACE_FASTIFY_ENABLED": ["A"], - "DD_TRACE_FETCH_ENABLED": ["A"], - "DD_TRACE_FIND_MY_WAY_ENABLED": ["A"], - "DD_TRACE_FLUSH_INTERVAL": ["A"], - "DD_TRACE_FS_ENABLED": ["A"], - "DD_TRACE_GENERIC_POOL_ENABLED": ["A"], - "DD_TRACE_GIT_METADATA_ENABLED": ["A"], - "DD_TRACE_GLOBAL_TAGS": ["A"], - "DD_TRACE_GOOGLE_CLOUD_PUBSUB_ENABLED": ["A"], - "DD_TRACE_GOOGLE_CLOUD_VERTEXAI_ENABLED": ["A"], - "DD_TRACE_GOOGLE_GAX_ENABLED": ["A"], - "DD_TRACE_GOOGLE_GENAI_ENABLED": ["A"], - "DD_TRACE_GRAPHQL_ENABLED": ["A"], - "DD_TRACE_GRAPHQL_ERROR_EXTENSIONS": ["A"], - "DD_TRACE_GRAPHQL_TAG_ENABLED": ["A"], - "DD_TRACE_GRAPHQL_TOOLS_ENABLED": ["A"], - "DD_TRACE_GRAPHQL_TOOLS_EXECUTOR_ENABLED": ["A"], - "DD_TRACE_GRAPHQL_YOGA_ENABLED": ["A"], - "DD_TRACE_GRPC_ENABLED": ["A"], - "DD_TRACE_GRPC_GRPC_JS_ENABLED": ["A"], - "DD_TRACE_GRPC_PROTO_LOADER_ENABLED": ["A"], - "DD_TRACE_HANDLEBARS_ENABLED": ["A"], - "DD_TRACE_HAPI_BOOM_ENABLED": ["A"], - "DD_TRACE_HAPI_ENABLED": ["A"], - "DD_TRACE_HAPI_HAPI_ENABLED": ["A"], - "DD_TRACE_HEADER_TAGS": ["A"], - "DD_TRACE_HONO_ENABLED": ["A"], - "DD_TRACE_HTTP_ENABLED": ["A"], - "DD_TRACE_HTTP2_ENABLED": ["A"], - "DD_TRACE_HTTPS_ENABLED": ["A"], - "DD_TRACE_INFERRED_PROXY_SERVICES_ENABLED": ["A"], - "DD_TRACE_IOREDIS_ENABLED": ["A"], - "DD_TRACE_IOVALKEY_ENABLED": ["A"], - "DD_TRACE_JEST_CIRCUS_ENABLED": ["A"], - "DD_TRACE_JEST_CONFIG_ENABLED": ["A"], - "DD_TRACE_JEST_CORE_ENABLED": ["A"], - "DD_TRACE_JEST_ENABLED": ["A"], - "DD_TRACE_JEST_ENVIRONMENT_JSDOM_ENABLED": ["A"], - "DD_TRACE_JEST_ENVIRONMENT_NODE_ENABLED": ["A"], - "DD_TRACE_JEST_GLOBALS_ENABLED": ["A"], - "DD_TRACE_JEST_REPORTERS_ENABLED": ["A"], - "DD_TRACE_JEST_RUNTIME_ENABLED": ["A"], - "DD_TRACE_JEST_TEST_SEQUENCER_ENABLED": ["A"], - "DD_TRACE_JEST_TRANSFORM_ENABLED": ["A"], - "DD_TRACE_JEST_WORKER_ENABLED": ["A"], - "DD_TRACE_KAFKAJS_ENABLED": ["A"], - "DD_TRACE_KNEX_ENABLED": ["A"], - "DD_TRACE_KOA_ENABLED": ["A"], - "DD_TRACE_KOA_ROUTE_ENABLED": ["A"], - "DD_TRACE_KOA_ROUTER_ENABLED": ["A"], - "DD_TRACE_KOA_WEBSOCKET_ENABLED": ["A"], - "DD_TRACE_LANGCHAIN_ANTHROPIC_ENABLED": ["A"], - "DD_TRACE_LANGCHAIN_COHERE_ENABLED": ["A"], - "DD_TRACE_LANGCHAIN_CORE_ENABLED": ["A"], - "DD_TRACE_LANGCHAIN_ENABLED": ["A"], - "DD_TRACE_LANGCHAIN_GOOGLE_GENAI_ENABLED": ["A"], - "DD_TRACE_LANGCHAIN_OPENAI_ENABLED": ["A"], - "DD_TRACE_LDAPJS_ENABLED": ["A"], - "DD_TRACE_LDAPJS_PROMISE_ENABLED": ["A"], - "DD_TRACE_LEGACY_BAGGAGE_ENABLED": ["A"], - "DD_TRACE_LIMITD_CLIENT_ENABLED": ["A"], - "DD_TRACE_LODASH_ENABLED": ["A"], - "DD_TRACE_LOG_LEVEL": ["A"], - "DD_TRACE_LOOPBACK_ENABLED": ["A"], - "DD_TRACE_MARIADB_ENABLED": ["A"], - "DD_TRACE_MEMCACHED_COMMAND_ENABLED": ["A"], - "DD_TRACE_MEMCACHED_ENABLED": ["A"], - "DD_TRACE_MICROGATEWAY_CORE_ENABLED": ["A"], - "DD_TRACE_MIDDIE_ENABLED": ["A"], - "DD_TRACE_MIDDLEWARE_TRACING_ENABLED": ["A"], - "DD_TRACE_MOCHA_EACH_ENABLED": ["A"], - "DD_TRACE_MOCHA_ENABLED": ["A"], - "DD_TRACE_MOLECULER_ENABLED": ["A"], - "DD_TRACE_MONGODB_CORE_ENABLED": ["A"], - "DD_TRACE_MONGODB_ENABLED": ["A"], - "DD_TRACE_MONGODB_HEARTBEAT_ENABLED": ["A"], - "DD_TRACE_MONGOOSE_ENABLED": ["A"], - "DD_TRACE_MQUERY_ENABLED": ["A"], - "DD_TRACE_MULTER_ENABLED": ["A"], - "DD_TRACE_MYSQL_ENABLED": ["A"], - "DD_TRACE_MYSQL2_ENABLED": ["A"], - "DD_TRACE_NATIVE_SPAN_EVENTS": ["A"], - "DD_TRACE_NET_ENABLED": ["A"], - "DD_TRACE_NEXT_ENABLED": ["A"], - "DD_TRACE_NODE_CHILD_PROCESS_ENABLED": ["A"], - "DD_TRACE_NODE_REDIS_CLIENT_ENABLED": ["A"], - "DD_TRACE_NODE_SERIALIZE_ENABLED": ["A"], - "DD_TRACE_NYC_ENABLED": ["A"], - "DD_TRACE_OBFUSCATION_QUERY_STRING_REGEXP": ["A"], - "DD_TRACE_OPENAI_ENABLED": ["A"], - "DD_TRACE_OPENSEARCH_ENABLED": ["A"], - "DD_TRACE_OPENSEARCH_PROJECT_OPENSEARCH_ENABLED": ["A"], - "DD_TRACE_OPENTELEMETRY_SDK_TRACE_NODE_ENABLED": ["A"], - "DD_TRACE_ORACLEDB_ENABLED": ["A"], - "DD_TRACE_OTEL_ENABLED": ["A"], - "DD_TRACE_PARTIAL_FLUSH_MIN_SPANS": ["A"], - "DD_TRACE_PASSPORT_ENABLED": ["A"], - "DD_TRACE_PASSPORT_HTTP_ENABLED": ["A"], - "DD_TRACE_PASSPORT_LOCAL_ENABLED": ["A"], - "DD_TRACE_PEER_SERVICE_DEFAULTS_ENABLED": ["A"], - "DD_TRACE_PEER_SERVICE_MAPPING": ["A"], - "DD_TRACE_PG_CURSOR_ENABLED": ["A"], - "DD_TRACE_PG_ENABLED": ["A"], - "DD_TRACE_PG_NATIVE_ENABLED": ["A"], - "DD_TRACE_PG_QUERY_STREAM_ENABLED": ["A"], - "DD_TRACE_PINO_ENABLED": ["A"], - "DD_TRACE_PINO_PRETTY_ENABLED": ["A"], - "DD_TRACE_PLAYWRIGHT_CORE_ENABLED": ["A"], - "DD_TRACE_PLAYWRIGHT_ENABLED": ["A"], - "DD_TRACE_PLAYWRIGHT_TEST_ENABLED": ["A"], - "DD_TRACE_PRISMA_ENABLED": ["A"], - "DD_TRACE_PROCESS_ENABLED": ["A"], - "DD_TRACE_PROMISE_ENABLED": ["A"], - "DD_TRACE_PROMISE_JS_ENABLED": ["A"], - "DD_TRACE_PROPAGATION_BEHAVIOR_EXTRACT": ["A"], - "DD_TRACE_PROPAGATION_EXTRACT_FIRST": ["A"], - "DD_TRACE_PROPAGATION_STYLE_EXTRACT": ["A"], - "DD_TRACE_PROPAGATION_STYLE_INJECT": ["A"], - "DD_TRACE_PROPAGATION_STYLE": ["A"], - "DD_TRACE_PROTOBUFJS_ENABLED": ["A"], - "DD_TRACE_PUG_ENABLED": ["A"], - "DD_TRACE_Q_ENABLED": ["A"], - "DD_TRACE_RATE_LIMIT": ["A"], - "DD_TRACE_REACT_DOM_ENABLED": ["A"], - "DD_TRACE_REACT_ENABLED": ["A"], - "DD_TRACE_REDIS_CLIENT_ENABLED": ["A"], - "DD_TRACE_REDIS_ENABLED": ["A"], - "DD_TRACE_REMOVE_INTEGRATION_SERVICE_NAMES_ENABLED": ["A"], - "DD_TRACE_REPORT_HOSTNAME": ["A"], - "DD_TRACE_REQUEST_ENABLED": ["A"], - "DD_TRACE_RESOURCE_RENAMING_ENABLED": ["A"], - "DD_TRACE_RESTIFY_ENABLED": ["A"], - "DD_TRACE_RHEA_ENABLED": ["A"], - "DD_TRACE_ROUTER_ENABLED": ["A"], - "DD_TRACE_SAMPLE_RATE": ["A"], - "DD_TRACE_SAMPLING_RULES": ["A"], - "DD_TRACE_SCOPE": ["A"], - "DD_TRACE_SELENIUM_ENABLED": ["A"], - "DD_TRACE_SELENIUM_WEBDRIVER_ENABLED": ["A"], - "DD_TRACE_SEQUELIZE_ENABLED": ["A"], - "DD_TRACE_SHAREDB_ENABLED": ["A"], - "DD_TRACE_SMITHY_SMITHY_CLIENT_ENABLED": ["A"], - "DD_TRACE_SPAN_ATTRIBUTE_SCHEMA": ["A"], - "DD_TRACE_SPAN_LEAK_DEBUG": ["A"], - "DD_TRACE_SQLITE3_ENABLED": ["A"], - "DD_TRACE_STARTUP_LOGS": ["A"], - "DD_TRACE_STATS_COMPUTATION_ENABLED": ["A"], - "DD_TRACE_SUFFIXPLUGIN_ENABLED": ["A"], - "DD_TRACE_TAGS": ["A"], - "DD_TRACE_TEDIOUS_ENABLED": ["A"], - "DD_TRACE_UNDICI_ENABLED": ["A"], - "DD_TRACE_URL_ENABLED": ["A"], - "DD_TRACE_VITEST_ENABLED": ["A"], - "DD_TRACE_VITEST_RUNNER_ENABLED": ["A"], - "DD_TRACE_VM_ENABLED": ["A"], - "DD_TRACE_WEBSOCKET_MESSAGES_ENABLED":["A"], - "DD_TRACE_WEBSOCKET_MESSAGES_INHERIT_SAMPLING": ["A"], - "DD_TRACE_WEBSOCKET_MESSAGES_SEPARATE_TRACES":["A"], - "DD_TRACE_WHEN_ENABLED": ["A"], - "DD_TRACE_WINSTON_ENABLED": ["A"], - "DD_TRACE_WORKERPOOL_ENABLED": ["A"], - "DD_TRACE_WS_ENABLED": ["A"], - "DD_TRACE_X_DATADOG_TAGS_MAX_LENGTH": ["A"], - "DD_TRACING_ENABLED": ["A"], - "DD_VERSION": ["A"], - "DD_VERTEXAI_SPAN_CHAR_LIMIT": ["A"], - "DD_VERTEXAI_SPAN_PROMPT_COMPLETION_SAMPLE_RATE": ["A"], - "DD_VITEST_WORKER": ["A"], - "OTEL_LOG_LEVEL": ["A"], - "OTEL_LOGS_EXPORTER": ["A"], - "OTEL_EXPORTER_OTLP_LOGS_ENDPOINT": ["A"], - "OTEL_EXPORTER_OTLP_LOGS_HEADERS": ["A"], - "OTEL_EXPORTER_OTLP_LOGS_PROTOCOL": ["A"], - "OTEL_EXPORTER_OTLP_LOGS_TIMEOUT": ["A"], - "OTEL_EXPORTER_OTLP_ENDPOINT": ["A"], - "OTEL_EXPORTER_OTLP_HEADERS": ["A"], - "OTEL_EXPORTER_OTLP_PROTOCOL": ["A"], - "OTEL_EXPORTER_OTLP_TIMEOUT": ["A"], - "OTEL_BSP_SCHEDULE_DELAY": ["A"], - "OTEL_BSP_MAX_EXPORT_BATCH_SIZE": ["A"], - "OTEL_BSP_MAX_QUEUE_SIZE": ["A"], - "OTEL_EXPORTER_OTLP_METRICS_ENDPOINT": ["A"], - "OTEL_EXPORTER_OTLP_METRICS_HEADERS": ["A"], - "OTEL_EXPORTER_OTLP_METRICS_PROTOCOL": ["A"], - "OTEL_EXPORTER_OTLP_METRICS_TIMEOUT": ["A"], - "OTEL_METRIC_EXPORT_INTERVAL": ["A"], - "OTEL_METRIC_EXPORT_TIMEOUT": ["A"], - "OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE": ["A"], - "OTEL_METRICS_EXPORTER": ["A"], - "OTEL_PROPAGATORS": ["A"], - "OTEL_RESOURCE_ATTRIBUTES": ["A"], - "OTEL_SDK_DISABLED": ["A"], - "OTEL_SERVICE_NAME": ["A"], - "OTEL_TRACES_EXPORTER": ["A"], - "OTEL_TRACES_SAMPLER_ARG": ["A"], - "OTEL_TRACES_SAMPLER": ["A"] - }, - "aliases": { - "DD_AGENT_HOST": ["DD_TRACE_AGENT_HOSTNAME"], - "DD_API_KEY": ["DATADOG_API_KEY"], - "DD_API_SECURITY_ENABLED": ["DD_EXPERIMENTAL_API_SECURITY_ENABLED"], - "DD_APPSEC_AUTO_USER_INSTRUMENTATION_MODE": ["DD_APPSEC_AUTOMATED_USER_EVENTS_TRACKING"], - "DD_DOGSTATSD_HOST": ["DD_DOGSTATSD_HOSTNAME"], - "DD_INSTRUMENTATION_TELEMETRY_ENABLED": ["DD_TRACE_TELEMETRY_ENABLED"], - "DD_PROFILING_CODEHOTSPOTS_ENABLED": ["DD_PROFILING_EXPERIMENTAL_CODEHOTSPOTS_ENABLED"], - "DD_PROFILING_CPU_ENABLED": ["DD_PROFILING_EXPERIMENTAL_CPU_ENABLED"], - "DD_PROFILING_ENABLED": ["DD_EXPERIMENTAL_PROFILING_ENABLED"], - "DD_PROFILING_ENDPOINT_COLLECTION_ENABLED": ["DD_PROFILING_EXPERIMENTAL_ENDPOINT_COLLECTION_ENABLED"], - "DD_PROFILING_TIMELINE_ENABLED": ["DD_PROFILING_EXPERIMENTAL_TIMELINE_ENABLED"], - "DD_REMOTE_CONFIGURATION_ENABLED": ["DD_REMOTE_CONFIG_ENABLED" ], - "DD_RUNTIME_METRICS_RUNTIME_ID_ENABLED": ["DD_TRACE_EXPERIMENTAL_RUNTIME_ID_ENABLED"], - "DD_SERVICE": ["DD_SERVICE_NAME"], - "DD_TRACE_AGENT_URL": ["DD_TRACE_URL"] + "DD_AAS_DOTNET_EXTENSION_VERSION": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_ACTION_EXECUTION_ID": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_AGENTLESS_LOG_SUBMISSION_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_AGENTLESS_LOG_SUBMISSION_URL": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_AGENT_HOST": [ + { + "implementation": "A", + "type": "string", + "programmaticConfig": "hostname", + "default": "127.0.0.1", + "aliases": [ + "DD_TRACE_AGENT_HOSTNAME" + ] + } + ], + "DD_AI_GUARD_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "programmaticConfig": "experimental.aiguard.enabled", + "default": false + } + ], + "DD_AI_GUARD_ENDPOINT": [ + { + "implementation": "A", + "type": "string", + "programmaticConfig": "experimental.aiguard.endpoint", + "default": "__UNSET__" + } + ], + "DD_AI_GUARD_MAX_CONTENT_SIZE": [ + { + "implementation": "A", + "type": "int", + "programmaticConfig": "experimental.aiguard.maxContentSize", + "default": 524288 + } + ], + "DD_AI_GUARD_MAX_MESSAGES_LENGTH": [ + { + "implementation": "A", + "type": "int", + "programmaticConfig": "experimental.aiguard.maxMessagesLength", + "default": 16 + } + ], + "DD_AI_GUARD_TIMEOUT": [ + { + "implementation": "A", + "type": "int", + "programmaticConfig": "experimental.aiguard.timeout", + "default": 10000 + } + ], + "DD_API_KEY": [ + { + "implementation": "A", + "type": "string", + "default": "__UNSET__", + "aliases": [ + "DATADOG_API_KEY" + ] + } + ], + "DD_API_SECURITY_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "programmaticConfig": "appsec.apiSecurity.enabled", + "default": true, + "aliases": [ + "DD_EXPERIMENTAL_API_SECURITY_ENABLED" + ] + } + ], + "DD_API_SECURITY_ENDPOINT_COLLECTION_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "programmaticConfig": "appsec.apiSecurity.endpointCollectionEnabled", + "default": true + } + ], + "DD_API_SECURITY_ENDPOINT_COLLECTION_MESSAGE_LIMIT": [ + { + "implementation": "A", + "type": "int", + "programmaticConfig": "appsec.apiSecurity.endpointCollectionMessageLimit", + "default": 300 + } + ], + "DD_API_SECURITY_DOWNSTREAM_BODY_ANALYSIS_SAMPLE_RATE": [ + { + "implementation": "A", + "type": "decimal", + "programmaticConfig": "appsec.apiSecurity.downstreamBodyAnalysisSampleRate", + "default": 0.5 + } + ], + "DD_API_SECURITY_MAX_DOWNSTREAM_REQUEST_BODY_ANALYSIS": [ + { + "implementation": "A", + "type": "int", + "programmaticConfig": "appsec.apiSecurity.maxDownstreamRequestBodyAnalysis", + "default": 1 + } + ], + "DD_API_SECURITY_SAMPLE_DELAY": [ + { + "implementation": "A", + "type": "decimal", + "default": 30 + } + ], + "DD_APM_FLUSH_DEADLINE_MILLISECONDS": [ + { + "implementation": "A", + "type": "int", + "default": 100 + } + ], + "DD_APM_TRACING_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "programmaticConfig": "apmTracingEnabled", + "default": true + } + ], + "DD_APPSEC_AUTO_USER_INSTRUMENTATION_MODE": [ + { + "implementation": "A", + "type": "string", + "programmaticConfig": "appsec.eventTracking.mode", + "default": "identification", + "aliases": [ + "DD_APPSEC_AUTOMATED_USER_EVENTS_TRACKING" + ] + } + ], + "DD_APPSEC_COLLECT_ALL_HEADERS": [ + { + "implementation": "A", + "type": "boolean", + "programmaticConfig": "appsec.extendedHeadersCollection.enabled", + "default": false + } + ], + "DD_APPSEC_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "programmaticConfig": "appsec.enabled", + "default": "__UNSET__" + } + ], + "DD_APPSEC_GRAPHQL_BLOCKED_TEMPLATE_JSON": [ + { + "implementation": "A", + "type": "string", + "programmaticConfig": "appsec.blockedTemplateGraphql", + "default": "__UNSET__" + } + ], + "DD_APPSEC_HEADER_COLLECTION_REDACTION_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "programmaticConfig": "appsec.extendedHeadersCollection.redaction", + "default": true + } + ], + "DD_APPSEC_HTTP_BLOCKED_TEMPLATE_HTML": [ + { + "implementation": "A", + "type": "string", + "programmaticConfig": "appsec.blockedTemplateHtml", + "default": "__UNSET__" + } + ], + "DD_APPSEC_HTTP_BLOCKED_TEMPLATE_JSON": [ + { + "implementation": "A", + "type": "string", + "programmaticConfig": "appsec.blockedTemplateJson", + "default": "__UNSET__" + } + ], + "DD_APPSEC_MAX_COLLECTED_HEADERS": [ + { + "implementation": "A", + "type": "int", + "programmaticConfig": "appsec.extendedHeadersCollection.maxHeaders", + "default": 50 + } + ], + "DD_APPSEC_MAX_STACK_TRACES": [ + { + "implementation": "A", + "type": "int", + "programmaticConfig": "appsec.stackTrace.maxStackTraces", + "default": 2 + } + ], + "DD_APPSEC_MAX_STACK_TRACE_DEPTH": [ + { + "implementation": "A", + "type": "int", + "programmaticConfig": "appsec.stackTrace.maxDepth", + "default": 32 + } + ], + "DD_APPSEC_OBFUSCATION_PARAMETER_KEY_REGEXP": [ + { + "implementation": "A", + "type": "string", + "programmaticConfig": "appsec.obfuscatorKeyRegex", + "default": "(?i)pass|pw(?:or)?d|secret|(?:api|private|public|access)[_-]?key|token|consumer[_-]?(?:id|key|secret)|sign(?:ed|ature)|bearer|authorization|jsessionid|phpsessid|asp\\.net[_-]sessionid|sid|jwt" + } + ], + "DD_APPSEC_OBFUSCATION_PARAMETER_VALUE_REGEXP": [ + { + "implementation": "A", + "type": "string", + "programmaticConfig": "appsec.obfuscatorValueRegex", + "default": "(?i)(?:p(?:ass)?w(?:or)?d|pass(?:[_-]?phrase)?|secret(?:[_-]?key)?|(?:(?:api|private|public|access)[_-]?)key(?:[_-]?id)?|(?:(?:auth|access|id|refresh)[_-]?)?token|consumer[_-]?(?:id|key|secret)|sign(?:ed|ature)?|auth(?:entication|orization)?|jsessionid|phpsessid|asp\\.net(?:[_-]|-)sessionid|sid|jwt)(?:\\s*=([^;&]+)|\"\\s*:\\s*(\"[^\"]+\"|\\d+))|bearer\\s+([a-z0-9\\._\\-]+)|token\\s*:\\s*([a-z0-9]{13})|gh[opsu]_([0-9a-zA-Z]{36})|ey[I-L][\\w=-]+\\.(ey[I-L][\\w=-]+(?:\\.[\\w.+\\/=-]+)?)|[\\-]{5}BEGIN[a-z\\s]+PRIVATE\\sKEY[\\-]{5}([^\\-]+)[\\-]{5}END[a-z\\s]+PRIVATE\\sKEY|ssh-rsa\\s*([a-z0-9\\/\\.+]{100,})" + } + ], + "DD_APPSEC_RASP_COLLECT_REQUEST_BODY": [ + { + "implementation": "A", + "type": "boolean", + "programmaticConfig": "appsec.rasp.bodyCollection", + "default": false + } + ], + "DD_APPSEC_RASP_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "programmaticConfig": "appsec.rasp.enabled", + "default": true + } + ], + "DD_APPSEC_RULES": [ + { + "implementation": "A", + "type": "string", + "programmaticConfig": "appsec.rules", + "default": "__UNSET__" + } + ], + "DD_APPSEC_SCA_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNSET__" + } + ], + "DD_APPSEC_STACK_TRACE_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "programmaticConfig": "appsec.stackTrace.enabled", + "default": true + } + ], + "DD_APPSEC_TRACE_RATE_LIMIT": [ + { + "implementation": "A", + "type": "int", + "programmaticConfig": "appsec.rateLimit", + "default": 100 + } + ], + "DD_APPSEC_WAF_TIMEOUT": [ + { + "implementation": "A", + "type": "int", + "programmaticConfig": "appsec.wafTimeout", + "default": 5000 + } + ], + "DD_APP_KEY": [ + { + "implementation": "A", + "type": "string", + "default": "__UNSET__" + } + ], + "DD_AZURE_RESOURCE_GROUP": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_CIVISIBILITY_AGENTLESS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": false + } + ], + "DD_CIVISIBILITY_AGENTLESS_URL": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_CIVISIBILITY_AUTO_INSTRUMENTATION_PROVIDER": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_CIVISIBILITY_DANGEROUSLY_FORCE_COVERAGE": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_CIVISIBILITY_DANGEROUSLY_FORCE_TEST_SKIPPING": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_CIVISIBILITY_EARLY_FLAKE_DETECTION_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_CIVISIBILITY_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_CIVISIBILITY_FLAKY_RETRY_COUNT": [ + { + "implementation": "A", + "type": "int", + "default": "__UNKNOWN__" + } + ], + "DD_CIVISIBILITY_FLAKY_RETRY_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_CIVISIBILITY_GIT_UNSHALLOW_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_CIVISIBILITY_GIT_UPLOAD_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_CIVISIBILITY_IMPACTED_TESTS_DETECTION_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_CIVISIBILITY_ITR_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_CIVISIBILITY_MANUAL_API_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_CIVISIBILITY_RUM_FLUSH_WAIT_MILLIS": [ + { + "implementation": "A", + "type": "int", + "default": "__UNKNOWN__" + } + ], + "DD_CIVISIBILITY_TEST_COMMAND": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_CIVISIBILITY_TEST_MODULE_ID": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_CIVISIBILITY_TEST_SESSION_ID": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_CODE_ORIGIN_FOR_SPANS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "programmaticConfig": "codeOriginForSpans.enabled", + "default": true + } + ], + "DD_CODE_ORIGIN_FOR_SPANS_EXPERIMENTAL_EXIT_SPANS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": false + } + ], + "DD_CRASHTRACKING_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_CUSTOM_TRACE_ID": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_DATA_STREAMS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": false + } + ], + "DD_DBM_INJECT_SQL_BASEHASH": [ + { + "implementation": "A", + "type": "boolean", + "programmaticConfig": "dbm.injectSqlBaseHash", + "default": false + } + ], + "DD_DBM_PROPAGATION_MODE": [ + { + "implementation": "A", + "type": "string", + "programmaticConfig": "dbmPropagationMode", + "default": "disabled" + } + ], + "DD_DOGSTATSD_HOST": [ + { + "implementation": "A", + "type": "string", + "programmaticConfig": "dogstatsd.hostname", + "default": "127.0.0.1", + "aliases": [ + "DD_DOGSTATSD_HOSTNAME" + ] + } + ], + "DD_DOGSTATSD_PORT": [ + { + "implementation": "A", + "type": "string", + "programmaticConfig": "dogstatsd.port", + "default": "8125" + } + ], + "DD_DYNAMIC_INSTRUMENTATION_CAPTURE_TIMEOUT_MS": [ + { + "implementation": "A", + "type": "int", + "programmaticConfig": "dynamicInstrumentation.captureTimeoutMs", + "default": 15 + } + ], + "DD_DYNAMIC_INSTRUMENTATION_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "programmaticConfig": "dynamicInstrumentation.enabled", + "default": false + } + ], + "DD_DYNAMIC_INSTRUMENTATION_PROBE_FILE": [ + { + "implementation": "A", + "type": "string", + "programmaticConfig": "dynamicInstrumentation.probeFile", + "default": "__UNSET__" + } + ], + "DD_DYNAMIC_INSTRUMENTATION_REDACTED_IDENTIFIERS": [ + { + "implementation": "A", + "type": "array", + "programmaticConfig": "dynamicInstrumentation.redactedIdentifiers", + "default": [] + } + ], + "DD_DYNAMIC_INSTRUMENTATION_REDACTION_EXCLUDED_IDENTIFIERS": [ + { + "implementation": "A", + "type": "array", + "programmaticConfig": "dynamicInstrumentation.redactionExcludedIdentifiers", + "default": [] + } + ], + "DD_DYNAMIC_INSTRUMENTATION_UPLOAD_INTERVAL_SECONDS": [ + { + "implementation": "A", + "type": "int", + "programmaticConfig": "dynamicInstrumentation.uploadIntervalSeconds", + "default": 1 + } + ], + "DD_ENABLE_NX_SERVICE_NAME": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_ENV": [ + { + "implementation": "A", + "type": "string", + "programmaticConfig": "env", + "default": "__UNSET__" + } + ], + "DD_EXPERIMENTAL_APPSEC_STANDALONE_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "programmaticConfig": "apmTracingEnabled", + "default": true + } + ], + "DD_EXPERIMENTAL_FLAGGING_PROVIDER_INITIALIZATION_TIMEOUT_MS": [ + { + "implementation": "A", + "type": "int", + "programmaticConfig": "experimental.flaggingProvider.initializationTimeoutMs", + "default": 30000 + } + ], + "DD_EXPERIMENTAL_FLAGGING_PROVIDER_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "programmaticConfig": "experimental.flaggingProvider.enabled", + "default": false + } + ], + "DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNSET__" + } + ], + "DD_EXPERIMENTAL_TEST_OPT_SETTINGS_CACHE": [ + { + "implementation": "A", + "type": "string", + "default": "" + } + ], + "DD_EXPERIMENTAL_TEST_OPT_GIT_CACHE_DIR": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_EXPERIMENTAL_TEST_OPT_GIT_CACHE_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": false + } + ], + "DD_EXTERNAL_ENV": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_FLAGGING_PROVIDER_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_GIT_BRANCH": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_GIT_COMMIT_AUTHOR_DATE": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_GIT_COMMIT_AUTHOR_EMAIL": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_GIT_COMMIT_AUTHOR_NAME": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_GIT_COMMIT_COMMITTER_DATE": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_GIT_COMMIT_COMMITTER_EMAIL": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_GIT_COMMIT_COMMITTER_NAME": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_GIT_COMMIT_HEAD_SHA": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_GIT_COMMIT_MESSAGE": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_GIT_COMMIT_SHA": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_GIT_FOLDER_PATH": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_GIT_PROPERTIES_FILE": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_GIT_PULL_REQUEST_BASE_BRANCH": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_GIT_PULL_REQUEST_BASE_BRANCH_SHA": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_GIT_REPOSITORY_URL": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_GIT_TAG": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_GRPC_CLIENT_ERROR_STATUSES": [ + { + "implementation": "A", + "type": "array", + "default": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16 + ] + } + ], + "DD_GRPC_SERVER_ERROR_STATUSES": [ + { + "implementation": "A", + "type": "array", + "default": [ + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16 + ] + } + ], + "DD_HEAP_SNAPSHOT_COUNT": [ + { + "implementation": "A", + "type": "int", + "default": 0 + } + ], + "DD_HEAP_SNAPSHOT_DESTINATION": [ + { + "implementation": "A", + "type": "string", + "default": "" + } + ], + "DD_HEAP_SNAPSHOT_INTERVAL": [ + { + "implementation": "A", + "type": "int", + "default": 3600 + } + ], + "DD_IAST_DB_ROWS_TO_TAINT": [ + { + "implementation": "A", + "type": "int", + "programmaticConfig": "iast.dbRowsToTaint", + "default": 1 + } + ], + "DD_IAST_DEDUPLICATION_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "programmaticConfig": "iast.deduplicationEnabled", + "default": true + } + ], + "DD_IAST_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "programmaticConfig": "iast.enabled", + "default": false + } + ], + "DD_IAST_MAX_CONCURRENT_REQUESTS": [ + { + "implementation": "A", + "type": "int", + "programmaticConfig": "iast.maxConcurrentRequests", + "default": 2 + } + ], + "DD_IAST_MAX_CONTEXT_OPERATIONS": [ + { + "implementation": "A", + "type": "int", + "programmaticConfig": "iast.maxContextOperations", + "default": 2 + } + ], + "DD_IAST_REDACTION_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "programmaticConfig": "iast.redactionEnabled", + "default": true + } + ], + "DD_IAST_REDACTION_NAME_PATTERN": [ + { + "implementation": "A", + "type": "string", + "programmaticConfig": "iast.redactionNamePattern", + "default": "__UNSET__" + } + ], + "DD_IAST_REDACTION_VALUE_PATTERN": [ + { + "implementation": "A", + "type": "string", + "programmaticConfig": "iast.redactionValuePattern", + "default": "__UNSET__" + } + ], + "DD_IAST_REQUEST_SAMPLING": [ + { + "implementation": "A", + "type": "int", + "programmaticConfig": "iast.requestSampling", + "default": 30 + } + ], + "DD_IAST_SECURITY_CONTROLS_CONFIGURATION": [ + { + "implementation": "A", + "type": "string", + "programmaticConfig": "iast.securityControlsConfiguration", + "default": "__UNSET__" + } + ], + "DD_IAST_STACK_TRACE_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "programmaticConfig": "iast.stackTrace.enabled", + "default": true + } + ], + "DD_IAST_TELEMETRY_VERBOSITY": [ + { + "implementation": "A", + "type": "string", + "programmaticConfig": "iast.telemetryVerbosity", + "default": "INFORMATION" + } + ], + "DD_INJECTION_ENABLED": [ + { + "implementation": "A", + "type": "array", + "default": [] + } + ], + "DD_INJECT_FORCE": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNSET__" + } + ], + "DD_INSTRUMENTATION_CONFIG_ID": [ + { + "implementation": "A", + "type": "string", + "default": "__UNSET__" + } + ], + "DD_INSTRUMENTATION_INSTALL_ID": [ + { + "implementation": "A", + "type": "string", + "default": "__UNSET__" + } + ], + "DD_INSTRUMENTATION_INSTALL_TIME": [ + { + "implementation": "A", + "type": "string", + "default": "__UNSET__" + } + ], + "DD_INSTRUMENTATION_INSTALL_TYPE": [ + { + "implementation": "A", + "type": "string", + "default": "__UNSET__" + } + ], + "DD_INSTRUMENTATION_TELEMETRY_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true, + "aliases": [ + "DD_TRACE_TELEMETRY_ENABLED" + ] + } + ], + "DD_INTERNAL_PROFILING_LONG_LIVED_THRESHOLD": [ + { + "implementation": "A", + "type": "int", + "default": "__UNSET__" + } + ], + "DD_INTERNAL_PROFILING_TIMELINE_SAMPLING_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_LAMBDA_HANDLER": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_LANGCHAIN_SPAN_CHAR_LIMIT": [ + { + "implementation": "A", + "type": "int", + "default": 128 + } + ], + "DD_LANGCHAIN_SPAN_PROMPT_COMPLETION_SAMPLE_RATE": [ + { + "implementation": "A", + "type": "decimal", + "default": 1 + } + ], + "DD_LLMOBS_AGENTLESS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "programmaticConfig": "llmobs.agentlessEnabled", + "default": "__UNSET__" + } + ], + "DD_LLMOBS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": false + } + ], + "DD_LLMOBS_ML_APP": [ + { + "implementation": "A", + "type": "string", + "programmaticConfig": "llmobs.mlApp", + "default": "__UNSET__" + } + ], + "DD_LOGS_INJECTION": [ + { + "implementation": "A", + "type": "boolean", + "programmaticConfig": "logInjection", + "default": true + } + ], + "DD_LOGS_OTEL_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": false + } + ], + "DD_LOG_LEVEL": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_METRICS_OTEL_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": false + } + ], + "DD_MINI_AGENT_PATH": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_OPENAI_LOGS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": false + } + ], + "DD_OPENAI_SPAN_CHAR_LIMIT": [ + { + "implementation": "A", + "type": "int", + "default": 128 + } + ], + "DD_PIPELINE_EXECUTION_ID": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_PLAYWRIGHT_WORKER": [ + { + "implementation": "A", + "type": "string", + "default": "__UNSET__" + } + ], + "DD_PROFILING_ASYNC_CONTEXT_FRAME_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "$dynamic" + } + ], + "DD_PROFILING_CODEHOTSPOTS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__", + "aliases": [ + "DD_PROFILING_EXPERIMENTAL_CODEHOTSPOTS_ENABLED" + ] + } + ], + "DD_PROFILING_CPU_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__", + "aliases": [ + "DD_PROFILING_EXPERIMENTAL_CPU_ENABLED" + ] + } + ], + "DD_PROFILING_DEBUG_SOURCE_MAPS": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_PROFILING_DEBUG_UPLOAD_COMPRESSION": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_PROFILING_ENABLED": [ + { + "implementation": "A", + "type": "string", + "programmaticConfig": "profiling", + "default": "__UNSET__", + "aliases": [ + "DD_EXPERIMENTAL_PROFILING_ENABLED" + ] + } + ], + "DD_PROFILING_ENDPOINT_COLLECTION_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__", + "aliases": [ + "DD_PROFILING_EXPERIMENTAL_ENDPOINT_COLLECTION_ENABLED" + ] + } + ], + "DD_PROFILING_EXPERIMENTAL_OOM_EXPORT_STRATEGIES": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_PROFILING_EXPERIMENTAL_OOM_HEAP_LIMIT_EXTENSION_SIZE": [ + { + "implementation": "A", + "type": "int", + "default": "__UNKNOWN__" + } + ], + "DD_PROFILING_EXPERIMENTAL_OOM_MAX_HEAP_EXTENSION_COUNT": [ + { + "implementation": "A", + "type": "int", + "default": "__UNKNOWN__" + } + ], + "DD_PROFILING_EXPERIMENTAL_OOM_MONITORING_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_PROFILING_EXPORTERS": [ + { + "implementation": "A", + "type": "string", + "default": "agent" + } + ], + "DD_PROFILING_HEAP_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_PROFILING_HEAP_SAMPLING_INTERVAL": [ + { + "implementation": "A", + "type": "int", + "default": "__UNKNOWN__" + } + ], + "DD_PROFILING_PPROF_PREFIX": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_PROFILING_PROFILERS": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_PROFILING_SOURCE_MAP": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_PROFILING_TIMELINE_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__", + "aliases": [ + "DD_PROFILING_EXPERIMENTAL_TIMELINE_ENABLED" + ] + } + ], + "DD_PROFILING_UPLOAD_PERIOD": [ + { + "implementation": "A", + "type": "int", + "default": "__UNKNOWN__" + } + ], + "DD_PROFILING_UPLOAD_TIMEOUT": [ + { + "implementation": "A", + "type": "int", + "default": "__UNKNOWN__" + } + ], + "DD_PROFILING_V8_PROFILER_BUG_WORKAROUND": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_PROFILING_WALLTIME_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_REMOTE_CONFIGURATION_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true, + "aliases": [ + "DD_REMOTE_CONFIG_ENABLED" + ] + } + ], + "DD_REMOTE_CONFIG_POLL_INTERVAL_SECONDS": [ + { + "implementation": "A", + "type": "decimal", + "programmaticConfig": "remoteConfig.pollInterval", + "default": 5 + } + ], + "DD_RUNTIME_METRICS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "programmaticConfig": "runtimeMetrics.enabled", + "default": false + } + ], + "DD_RUNTIME_METRICS_EVENT_LOOP_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "programmaticConfig": "runtimeMetrics.eventLoop", + "default": true + } + ], + "DD_RUNTIME_METRICS_FLUSH_INTERVAL": [ + { + "implementation": "A", + "type": "int", + "default": "__UNKNOWN__" + } + ], + "DD_RUNTIME_METRICS_GC_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "programmaticConfig": "runtimeMetrics.gc", + "default": true + } + ], + "DD_RUNTIME_METRICS_RUNTIME_ID_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "programmaticConfig": "runtimeMetricsRuntimeId", + "default": false, + "aliases": [ + "DD_TRACE_EXPERIMENTAL_RUNTIME_ID_ENABLED" + ] + } + ], + "DD_SERVICE": [ + { + "implementation": "A", + "type": "string", + "programmaticConfig": "service", + "default": "$dynamic", + "aliases": [ + "DD_SERVICE_NAME" + ] + } + ], + "DD_SERVICE_MAPPING": [ + { + "implementation": "A", + "type": "string", + "programmaticConfig": "serviceMapping", + "default": {} + } + ], + "DD_SITE": [ + { + "implementation": "A", + "type": "string", + "default": "datadoghq.com" + } + ], + "DD_SPAN_SAMPLING_RULES": [ + { + "implementation": "A", + "type": "array", + "programmaticConfig": "spanSamplingRules", + "default": [] + } + ], + "DD_SPAN_SAMPLING_RULES_FILE": [ + { + "implementation": "A", + "type": "array", + "programmaticConfig": "spanSamplingRules", + "default": [] + } + ], + "DD_TAGS": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_TELEMETRY_DEBUG": [ + { + "implementation": "A", + "type": "boolean", + "default": false + } + ], + "DD_TELEMETRY_DEPENDENCY_COLLECTION_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TELEMETRY_FORWARDER_PATH": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_TELEMETRY_HEARTBEAT_INTERVAL": [ + { + "implementation": "A", + "type": "int", + "default": 60000 + } + ], + "DD_TELEMETRY_LOG_COLLECTION_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TELEMETRY_METRICS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TEST_FAILED_TEST_REPLAY_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TEST_FLEET_CONFIG_PATH": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_TEST_LOCAL_CONFIG_PATH": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_TEST_MANAGEMENT_ATTEMPT_TO_FIX_RETRIES": [ + { + "implementation": "A", + "type": "int", + "default": "__UNKNOWN__" + } + ], + "DD_TEST_MANAGEMENT_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TEST_SESSION_NAME": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_128_BIT_TRACEID_GENERATION_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_128_BIT_TRACEID_LOGGING_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_AEROSPIKE_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_AGENT_PORT": [ + { + "implementation": "A", + "type": "string", + "programmaticConfig": "port", + "default": "8126" + } + ], + "DD_TRACE_AGENT_PROTOCOL_VERSION": [ + { + "implementation": "A", + "type": "string", + "programmaticConfig": "protocolVersion", + "default": "0.4" + } + ], + "DD_TRACE_AGENT_URL": [ + { + "implementation": "A", + "type": "string", + "programmaticConfig": "url", + "default": "__UNKNOWN__", + "aliases": [ + "DD_TRACE_URL" + ] + } + ], + "DD_TRACE_AI_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_AMQP10_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_AMQPLIB_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_ANTHROPIC_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_APOLLO_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_APOLLO_GATEWAY_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_APOLLO_SERVER_CORE_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_APOLLO_SERVER_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_APOLLO_SERVER_EXPRESS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_APOLLO_SERVER_FASTIFY_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_APOLLO_SUBGRAPH_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AVSC_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_AWS_ADD_SPAN_POINTERS": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_AWS_SDK_AWS_BATCH_PROPAGATION_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AWS_SDK_AWS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AWS_SDK_BATCH_PROPAGATION_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AWS_SDK_BEDROCKRUNTIME_BATCH_PROPAGATION_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AWS_SDK_BEDROCKRUNTIME_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AWS_SDK_CLOUDWATCHLOGS_BATCH_PROPAGATION_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AWS_SDK_CLOUDWATCHLOGS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AWS_SDK_DYNAMODB_BATCH_PROPAGATION_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AWS_SDK_DYNAMODB_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AWS_SDK_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_AWS_SDK_EVENTBRIDGE_BATCH_PROPAGATION_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AWS_SDK_EVENTBRIDGE_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AWS_SDK_KINESIS_BATCH_PROPAGATION_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AWS_SDK_KINESIS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AWS_SDK_LAMBDA_BATCH_PROPAGATION_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AWS_SDK_LAMBDA_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AWS_SDK_NODE_HTTP_HANDLER_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AWS_SDK_REDSHIFT_BATCH_PROPAGATION_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AWS_SDK_REDSHIFT_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AWS_SDK_S3_BATCH_PROPAGATION_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AWS_SDK_S3_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AWS_SDK_SFN_BATCH_PROPAGATION_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AWS_SDK_SFN_CLIENT_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AWS_SDK_SFN_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AWS_SDK_SMITHY_CLIENT_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_AWS_SDK_SNS_BATCH_PROPAGATION_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AWS_SDK_SNS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AWS_SDK_SQS_BATCH_PROPAGATION_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AWS_SDK_SQS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AWS_SDK_STATES_BATCH_PROPAGATION_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AWS_SDK_STATES_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AWS_SDK_STEPFUNCTIONS_BATCH_PROPAGATION_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AWS_SDK_STEPFUNCTIONS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AXIOS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AZURE_EVENTHUBS_BATCH_LINKS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AZURE_EVENT_HUBS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_AZURE_FUNCTIONS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_AZURE_SERVICEBUS_BATCH_LINKS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_AZURE_SERVICE_BUS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_BAGGAGE_MAX_BYTES": [ + { + "implementation": "A", + "type": "int", + "default": 8192 + } + ], + "DD_TRACE_BAGGAGE_MAX_ITEMS": [ + { + "implementation": "A", + "type": "int", + "default": 64 + } + ], + "DD_TRACE_BAGGAGE_TAG_KEYS": [ + { + "implementation": "A", + "type": "string", + "default": "user.id,session.id,account.id" + } + ], + "DD_TRACE_BEAUTIFUL_LOGS": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_BLUEBIRD_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_BODY_PARSER_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_BSON_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_BULLMQ_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_BUNYAN_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_CASSANDRA_DRIVER_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_CHILD_PROCESS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_CLIENT_IP_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "programmaticConfig": "clientIpEnabled", + "default": false + } + ], + "DD_TRACE_CLIENT_IP_HEADER": [ + { + "implementation": "A", + "type": "string", + "programmaticConfig": "clientIpHeader", + "default": "__UNSET__" + } + ], + "DD_TRACE_CLOUD_PAYLOAD_TAGGING_MAX_DEPTH": [ + { + "implementation": "A", + "type": "int", + "programmaticConfig": "cloudPayloadTagging.maxDepth", + "default": 10 + } + ], + "DD_TRACE_CLOUD_REQUEST_PAYLOAD_TAGGING": [ + { + "implementation": "A", + "type": "array", + "programmaticConfig": "cloudPayloadTagging.request", + "default": [] + } + ], + "DD_TRACE_CLOUD_RESPONSE_PAYLOAD_TAGGING": [ + { + "implementation": "A", + "type": "array", + "programmaticConfig": "cloudPayloadTagging.request", + "default": [] + } + ], + "DD_TRACE_COLLECTIONS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_COMMONPLUGIN_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_CONFLUENTINC_KAFKA_JAVASCRIPT_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_CONNECT_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_COOKIE_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_COOKIE_PARSER_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_COUCHBASE_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_CRYPTO_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_CUCUMBER_CUCUMBER_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_CUCUMBER_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_CYPRESS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_DD_TRACE_API_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_DEBUG": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_DISABLED_INSTRUMENTATIONS": [ + { + "implementation": "A", + "type": "string", + "default": "" + } + ], + "DD_TRACE_DISABLED_PLUGINS": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_DNS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_DYNAMODB_TABLE_PRIMARY_KEYS": [ + { + "implementation": "A", + "type": "string", + "default": "__UNSET__" + } + ], + "DD_TRACE_ELASTICSEARCH_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_ELASTIC_ELASTICSEARCH_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_ELASTIC_TRANSPORT_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_ENCODING_DEBUG": [ + { + "implementation": "A", + "type": "boolean", + "default": false + } + ], + "DD_TRACE_EXPERIMENTAL_B3_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "programmaticConfig": "experimental.b3", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_EXPERIMENTAL_EXPORTER": [ + { + "implementation": "A", + "type": "string", + "programmaticConfig": "experimental.exporter", + "default": "__UNSET__" + } + ], + "DD_TRACE_EXPERIMENTAL_GET_RUM_DATA_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "programmaticConfig": "experimental.enableGetRumData", + "default": false + } + ], + "DD_TRACE_EXPERIMENTAL_SPAN_COUNTS": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_EXPERIMENTAL_STATE_TRACKING": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_EXPRESS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_EXPRESS_MONGO_SANITIZE_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_EXPRESS_SESSION_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_FASTIFY_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_FETCH_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_FIND_MY_WAY_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_FLUSH_INTERVAL": [ + { + "implementation": "A", + "type": "int", + "programmaticConfig": "flushInterval", + "default": 2000 + } + ], + "DD_TRACE_FS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_GCP_PUBSUB_PUSH_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_GENERIC_POOL_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_GIT_METADATA_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_GLOBAL_TAGS": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_GOOGLE_CLOUD_PUBSUB_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_GOOGLE_CLOUD_VERTEXAI_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_GOOGLE_GAX_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_GOOGLE_GENAI_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_GRAPHQL_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_GRAPHQL_ERROR_EXTENSIONS": [ + { + "implementation": "A", + "type": "array", + "default": [] + } + ], + "DD_TRACE_GRAPHQL_TAG_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_GRAPHQL_TOOLS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_GRAPHQL_TOOLS_EXECUTOR_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_GRAPHQL_YOGA_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_GRPC_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_GRPC_GRPC_JS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_GRPC_PROTO_LOADER_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_HANDLEBARS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_HAPI_BOOM_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_HAPI_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_HAPI_HAPI_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_HEADER_TAGS": [ + { + "implementation": "A", + "type": "array", + "default": [] + } + ], + "DD_TRACE_HONO_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_HTTP2_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_HTTPS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_HTTP_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_INFERRED_PROXY_SERVICES_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": false + } + ], + "DD_TRACE_IOREDIS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_IOVALKEY_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_JEST_CIRCUS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_JEST_CONFIG_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_JEST_CORE_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_JEST_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_JEST_ENVIRONMENT_JSDOM_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_JEST_ENVIRONMENT_NODE_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_JEST_GLOBALS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_JEST_REPORTERS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_JEST_RUNTIME_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_JEST_TEST_SEQUENCER_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_JEST_TRANSFORM_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_JEST_WORKER_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_KAFKAJS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_KNEX_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_KOA_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_KOA_ROUTER_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_KOA_ROUTE_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_KOA_WEBSOCKET_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_LANGCHAIN_ANTHROPIC_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_LANGCHAIN_COHERE_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_LANGCHAIN_CORE_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_LANGCHAIN_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_LANGCHAIN_GOOGLE_GENAI_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_LANGCHAIN_OPENAI_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_LDAPJS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_LDAPJS_PROMISE_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_LEGACY_BAGGAGE_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_LIMITD_CLIENT_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_LODASH_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_LOG_LEVEL": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_LOOPBACK_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_MARIADB_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_MEMCACHED_COMMAND_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": false + } + ], + "DD_TRACE_MEMCACHED_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_MICROGATEWAY_CORE_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_MIDDIE_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_MIDDLEWARE_TRACING_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_MOCHA_EACH_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_MOCHA_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_MOLECULER_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_MONGODB_CORE_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_MONGODB_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_MONGODB_HEARTBEAT_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_MONGOOSE_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_MQUERY_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_MULTER_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_MYSQL2_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_MYSQL_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_NATIVE_SPAN_EVENTS": [ + { + "implementation": "A", + "type": "boolean", + "default": false + } + ], + "DD_TRACE_NET_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_NEXT_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_NODE_CHILD_PROCESS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_NODE_REDIS_CLIENT_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_NODE_SERIALIZE_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_NYC_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_OBFUSCATION_QUERY_STRING_REGEXP": [ + { + "implementation": "A", + "type": "string", + "default": "(?:p(?:ass)?w(?:or)?d|pass(?:_?phrase)?|secret|(?:api_?|private_?|public_?|access_?|secret_?)key(?:_?id)?|token|consumer_?(?:id|key|secret)|sign(?:ed|ature)?|auth(?:entication|orization)?)(?:(?:\\s|%20)*(?:=|%3D)[^&]+|(?:\"|%22)(?:\\s|%20)*(?::|%3A)(?:\\s|%20)*(?:\"|%22)(?:%2[^2]|%[^2]|[^\"%])+(?:\"|%22))|bearer(?:\\s|%20)+[a-z0-9\\._\\-]+|token(?::|%3A)[a-z0-9]{13}|gh[opsu]_[0-9a-zA-Z]{36}|ey[I-L](?:[\\w=-]|%3D)+\\.ey[I-L](?:[\\w=-]|%3D)+(?:\\.(?:[\\w.+\\/=-]|%3D|%2F|%2B)+)?|[\\-]{5}BEGIN(?:[a-z\\s]|%20)+PRIVATE(?:\\s|%20)KEY[\\-]{5}[^\\-]+[\\-]{5}END(?:[a-z\\s]|%20)+PRIVATE(?:\\s|%20)KEY|ssh-rsa(?:\\s|%20)*(?:[a-z0-9\\/\\.+]|%2F|%5C|%2B){100,}" + } + ], + "DD_TRACE_OPENAI_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_OPENSEARCH_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_OPENSEARCH_PROJECT_OPENSEARCH_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_OPENTELEMETRY_SDK_TRACE_NODE_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_ORACLEDB_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_OTEL_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": false + } + ], + "DD_TRACE_PARTIAL_FLUSH_MIN_SPANS": [ + { + "implementation": "A", + "type": "int", + "programmaticConfig": "flushMinSpans", + "default": 1000 + } + ], + "DD_TRACE_PASSPORT_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_PASSPORT_HTTP_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_PASSPORT_LOCAL_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_PEER_SERVICE_DEFAULTS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "programmaticConfig": "spanComputePeerService", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_PEER_SERVICE_MAPPING": [ + { + "implementation": "A", + "type": "string", + "default": {} + } + ], + "DD_TRACE_PG_CURSOR_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_PG_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_PG_NATIVE_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_PG_QUERY_STREAM_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_PINO_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_PINO_PRETTY_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_PLAYWRIGHT_CORE_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_PLAYWRIGHT_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_PLAYWRIGHT_TEST_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_PRISMA_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_PROCESS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_PROMISE_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_PROMISE_JS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_PROPAGATION_BEHAVIOR_EXTRACT": [ + { + "implementation": "A", + "type": "string", + "default": "continue" + } + ], + "DD_TRACE_PROPAGATION_EXTRACT_FIRST": [ + { + "implementation": "A", + "type": "boolean", + "default": false + } + ], + "DD_TRACE_PROPAGATION_STYLE": [ + { + "implementation": "A", + "type": "array", + "programmaticConfig": "tracePropagationStyle.inject", + "default": [ + "datadog", + "tracecontext", + "baggage" + ] + } + ], + "DD_TRACE_PROPAGATION_STYLE_EXTRACT": [ + { + "implementation": "A", + "type": "array", + "programmaticConfig": "tracePropagationStyle.extract", + "default": [ + "datadog", + "tracecontext", + "baggage" + ] + } + ], + "DD_TRACE_PROPAGATION_STYLE_INJECT": [ + { + "implementation": "A", + "type": "array", + "programmaticConfig": "tracePropagationStyle.inject", + "default": [ + "datadog", + "tracecontext", + "baggage" + ] + } + ], + "DD_TRACE_PROTOBUFJS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_PUG_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_Q_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_RATE_LIMIT": [ + { + "implementation": "A", + "type": "int", + "programmaticConfig": "ingestion.rateLimit", + "default": 100 + } + ], + "DD_TRACE_REACT_DOM_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_REACT_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_REDIS_CLIENT_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_REDIS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_REMOVE_INTEGRATION_SERVICE_NAMES_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": false + } + ], + "DD_TRACE_REPORT_HOSTNAME": [ + { + "implementation": "A", + "type": "boolean", + "programmaticConfig": "reportHostname", + "default": false + } + ], + "DD_TRACE_REQUEST_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_RESOURCE_RENAMING_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": false + } + ], + "DD_TRACE_RESTIFY_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_RHEA_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_ROUTER_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_SAMPLE_RATE": [ + { + "implementation": "A", + "type": "decimal", + "programmaticConfig": "ingestion.sampleRate", + "default": "__UNSET__" + } + ], + "DD_TRACE_SAMPLING_RULES": [ + { + "implementation": "A", + "type": "json", + "programmaticConfig": "samplingRules", + "default": [] + } + ], + "DD_TRACE_SCOPE": [ + { + "implementation": "A", + "type": "string", + "default": "__UNSET__" + } + ], + "DD_TRACE_SELENIUM_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_SELENIUM_WEBDRIVER_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_SEQUELIZE_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_SHAREDB_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_SMITHY_SMITHY_CLIENT_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_SPAN_ATTRIBUTE_SCHEMA": [ + { + "implementation": "A", + "type": "string", + "programmaticConfig": "spanAttributeSchema", + "default": "v0" + } + ], + "DD_TRACE_SPAN_LEAK_DEBUG": [ + { + "implementation": "A", + "type": "int", + "default": 0 + } + ], + "DD_TRACE_SQLITE3_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_STARTUP_LOGS": [ + { + "implementation": "A", + "type": "boolean", + "programmaticConfig": "startupLogs", + "default": false + } + ], + "DD_TRACE_STATS_COMPUTATION_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "programmaticConfig": "stats", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_SUFFIXPLUGIN_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_TAGS": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "DD_TRACE_TEDIOUS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_UNDICI_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_URL_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_VITEST_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_VITEST_RUNNER_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_VM_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_WEBSOCKET_MESSAGES_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_WEBSOCKET_MESSAGES_INHERIT_SAMPLING": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_WEBSOCKET_MESSAGES_SEPARATE_TRACES": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_WHEN_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_WINSTON_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_WORKERPOOL_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_WS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_TRACE_X_DATADOG_TAGS_MAX_LENGTH": [ + { + "implementation": "A", + "type": "int", + "default": 512 + } + ], + "DD_TRACING_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": true + } + ], + "DD_VERSION": [ + { + "implementation": "A", + "type": "string", + "programmaticConfig": "version", + "default": "$dynamic" + } + ], + "DD_VERTEXAI_SPAN_CHAR_LIMIT": [ + { + "implementation": "A", + "type": "int", + "default": 128 + } + ], + "DD_VERTEXAI_SPAN_PROMPT_COMPLETION_SAMPLE_RATE": [ + { + "implementation": "A", + "type": "decimal", + "default": 1 + } + ], + "DD_VITEST_WORKER": [ + { + "implementation": "A", + "type": "string", + "default": "__UNSET__" + } + ], + "OTEL_BSP_MAX_EXPORT_BATCH_SIZE": [ + { + "implementation": "A", + "type": "int", + "default": 512 + } + ], + "OTEL_BSP_MAX_QUEUE_SIZE": [ + { + "implementation": "A", + "type": "int", + "default": 2048 + } + ], + "OTEL_BSP_SCHEDULE_DELAY": [ + { + "implementation": "A", + "type": "int", + "default": 5000 + } + ], + "OTEL_EXPORTER_OTLP_ENDPOINT": [ + { + "implementation": "A", + "type": "string", + "default": "__UNSET__" + } + ], + "OTEL_EXPORTER_OTLP_HEADERS": [ + { + "implementation": "A", + "type": "string", + "default": "__UNSET__" + } + ], + "OTEL_EXPORTER_OTLP_LOGS_ENDPOINT": [ + { + "implementation": "A", + "type": "string", + "default": "__UNSET__" + } + ], + "OTEL_EXPORTER_OTLP_LOGS_HEADERS": [ + { + "implementation": "A", + "type": "string", + "default": "" + } + ], + "OTEL_EXPORTER_OTLP_LOGS_PROTOCOL": [ + { + "implementation": "A", + "type": "string", + "default": "http/protobuf" + } + ], + "OTEL_EXPORTER_OTLP_LOGS_TIMEOUT": [ + { + "implementation": "A", + "type": "int", + "default": 10000 + } + ], + "OTEL_EXPORTER_OTLP_METRICS_ENDPOINT": [ + { + "implementation": "A", + "type": "string", + "default": "__UNSET__" + } + ], + "OTEL_EXPORTER_OTLP_METRICS_HEADERS": [ + { + "implementation": "A", + "type": "string", + "default": "" + } + ], + "OTEL_EXPORTER_OTLP_METRICS_PROTOCOL": [ + { + "implementation": "A", + "type": "string", + "default": "http/protobuf" + } + ], + "OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE": [ + { + "implementation": "A", + "type": "string", + "default": "DELTA" + } + ], + "OTEL_EXPORTER_OTLP_METRICS_TIMEOUT": [ + { + "implementation": "A", + "type": "int", + "default": 10000 + } + ], + "OTEL_EXPORTER_OTLP_PROTOCOL": [ + { + "implementation": "A", + "type": "string", + "default": "http/protobuf" + } + ], + "OTEL_EXPORTER_OTLP_TIMEOUT": [ + { + "implementation": "A", + "type": "int", + "default": 10000 + } + ], + "OTEL_LOGS_EXPORTER": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "OTEL_LOG_LEVEL": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "OTEL_METRICS_EXPORTER": [ + { + "implementation": "A", + "type": "boolean", + "default": false + } + ], + "OTEL_METRIC_EXPORT_INTERVAL": [ + { + "implementation": "A", + "type": "int", + "default": 10000 + } + ], + "OTEL_METRIC_EXPORT_TIMEOUT": [ + { + "implementation": "A", + "type": "int", + "default": 7500 + } + ], + "OTEL_PROPAGATORS": [ + { + "implementation": "A", + "type": "boolean", + "default": false + } + ], + "OTEL_RESOURCE_ATTRIBUTES": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "OTEL_SDK_DISABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__" + } + ], + "OTEL_SERVICE_NAME": [ + { + "implementation": "A", + "type": "string", + "programmaticConfig": "service", + "default": "$dynamic" + } + ], + "OTEL_TRACES_EXPORTER": [ + { + "implementation": "A", + "type": "string", + "default": "__UNKNOWN__" + } + ], + "OTEL_TRACES_SAMPLER": [ + { + "implementation": "A", + "type": "decimal", + "programmaticConfig": "sampleRate", + "default": "__UNSET__" + } + ], + "OTEL_TRACES_SAMPLER_ARG": [ + { + "implementation": "A", + "type": "decimal", + "programmaticConfig": "sampleRate", + "default": "__UNSET__" + } + ] }, "deprecations": { - "DD_PROFILING_EXPERIMENTAL_ENDPOINT_COLLECTION_ENABLED": "DD_PROFILING_ENDPOINT_COLLECTION_ENABLED", - "DD_PROFILING_EXPERIMENTAL_CPU_ENABLED": "DD_PROFILING_CPU_ENABLED", "DD_EXPERIMENTAL_PROFILING_ENABLED": "DD_PROFILING_ENABLED", "DD_PROFILING_EXPERIMENTAL_CODEHOTSPOTS_ENABLED": "DD_PROFILING_CODEHOTSPOTS_ENABLED", + "DD_PROFILING_EXPERIMENTAL_CPU_ENABLED": "DD_PROFILING_CPU_ENABLED", + "DD_PROFILING_EXPERIMENTAL_ENDPOINT_COLLECTION_ENABLED": "DD_PROFILING_ENDPOINT_COLLECTION_ENABLED", "DD_PROFILING_EXPERIMENTAL_TIMELINE_ENABLED": "DD_PROFILING_TIMELINE_ENABLED", "DD_TRACE_EXPERIMENTAL_RUNTIME_ID_ENABLED": "DD_RUNTIME_METRICS_RUNTIME_ID_ENABLED" } diff --git a/packages/dd-trace/test/config/index.spec.js b/packages/dd-trace/test/config/index.spec.js index f4048a13769..cda902d8e9f 100644 --- a/packages/dd-trace/test/config/index.spec.js +++ b/packages/dd-trace/test/config/index.spec.js @@ -331,7 +331,7 @@ describe('Config', () => { }, rateLimit: 100, sca: { - enabled: null, + enabled: undefined }, stackTrace: { enabled: true, @@ -341,7 +341,7 @@ describe('Config', () => { wafTimeout: 5e3, }, clientIpEnabled: false, - clientIpHeader: null, + clientIpHeader: undefined, codeOriginForSpans: { enabled: true, experimental: { @@ -385,18 +385,18 @@ describe('Config', () => { iast: { enabled: false, redactionEnabled: true, - redactionNamePattern: null, - redactionValuePattern: null, + redactionNamePattern: undefined, + redactionValuePattern: undefined, telemetryVerbosity: 'INFORMATION', stackTrace: { enabled: true, }, }, - injectForce: null, + injectForce: undefined, installSignature: { - id: null, - time: null, - type: null, + id: undefined, + time: undefined, + type: undefined }, instrumentationSource: 'manual', instrumentation_config_id: undefined, @@ -480,7 +480,7 @@ describe('Config', () => { { name: 'appsec.rasp.enabled', value: true, origin: 'default' }, { name: 'appsec.rateLimit', value: 100, origin: 'default' }, { name: 'appsec.rules', value: undefined, origin: 'default' }, - { name: 'appsec.sca.enabled', value: null, origin: 'default' }, + { name: 'appsec.sca.enabled', value: undefined, origin: 'default' }, { name: 'appsec.stackTrace.enabled', value: true, origin: 'default' }, { name: 'appsec.stackTrace.maxDepth', value: 32, origin: 'default' }, { name: 'appsec.stackTrace.maxStackTraces', value: 2, origin: 'default' }, @@ -488,7 +488,7 @@ describe('Config', () => { { name: 'ciVisAgentlessLogSubmissionEnabled', value: false, origin: 'default' }, { name: 'ciVisibilityTestSessionName', value: '', origin: 'default' }, { name: 'clientIpEnabled', value: false, origin: 'default' }, - { name: 'clientIpHeader', value: null, origin: 'default' }, + { name: 'clientIpHeader', value: undefined, origin: 'default' }, { name: 'codeOriginForSpans.enabled', value: true, origin: 'default' }, { name: 'codeOriginForSpans.experimental.exit_spans.enabled', value: false, origin: 'default' }, { name: 'dbmPropagationMode', value: 'disabled', origin: 'default' }, @@ -520,13 +520,13 @@ describe('Config', () => { { name: 'iast.maxConcurrentRequests', value: 2, origin: 'default' }, { name: 'iast.maxContextOperations', value: 2, origin: 'default' }, { name: 'iast.redactionEnabled', value: true, origin: 'default' }, - { name: 'iast.redactionNamePattern', value: null, origin: 'default' }, - { name: 'iast.redactionValuePattern', value: null, origin: 'default' }, + { name: 'iast.redactionNamePattern', value: undefined, origin: 'default' }, + { name: 'iast.redactionValuePattern', value: undefined, origin: 'default' }, { name: 'iast.requestSampling', value: 30, origin: 'default' }, - { name: 'iast.securityControlsConfiguration', value: null, origin: 'default' }, + { name: 'iast.securityControlsConfiguration', value: undefined, origin: 'default' }, { name: 'iast.stackTrace.enabled', value: true, origin: 'default' }, { name: 'iast.telemetryVerbosity', value: 'INFORMATION', origin: 'default' }, - { name: 'injectForce', value: null, origin: 'default' }, + { name: 'injectForce', value: undefined, origin: 'default' }, { name: 'injectionEnabled', value: [], origin: 'default' }, { name: 'instrumentationSource', value: 'manual', origin: 'default' }, { name: 'isCiVisibility', value: false, origin: 'default' }, @@ -2084,7 +2084,7 @@ describe('Config', () => { rateLimit: 42, rules: undefined, sca: { - enabled: null, + enabled: undefined }, stackTrace: { enabled: true, @@ -2104,7 +2104,7 @@ describe('Config', () => { redactionNamePattern: 'REDACTION_NAME_PATTERN', redactionValuePattern: 'REDACTION_VALUE_PATTERN', requestSampling: 15, - securityControlsConfiguration: null, + securityControlsConfiguration: undefined, stackTrace: { enabled: false, }, @@ -3290,7 +3290,7 @@ apm_configuration_default: // Regression test for fields that were previously set directly from environment variables // before they were supported by stable config as well. - it('should support legacy direct-set fields through all stableconfig and env var sources', () => { + it('should support legacy direct-set fields through all stable config and env var sources', () => { // Test 1: Local stable config should work fs.writeFileSync( localConfigPath, From b966dea11e501af082c65430c45120aa271e2556 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Mon, 23 Feb 2026 01:21:33 +0100 Subject: [PATCH 02/17] fixup! --- packages/dd-trace/src/config/helper.js | 15 +- .../src/config/supported-configurations.json | 392 +++++++++++++----- packages/dd-trace/test/config/index.spec.js | 6 +- 3 files changed, 307 insertions(+), 106 deletions(-) diff --git a/packages/dd-trace/src/config/helper.js b/packages/dd-trace/src/config/helper.js index 4e03f58aba5..80d989dee04 100644 --- a/packages/dd-trace/src/config/helper.js +++ b/packages/dd-trace/src/config/helper.js @@ -10,12 +10,17 @@ * @property {string[]} [aliases] */ +/** + * @typedef {object} SupportedConfigurationsJson + * @property {Record<`DD_${string}` | `OTEL_${string}`, SupportedConfigurationEntry[]>} supportedConfigurations + * @property {Record?} deprecations + */ + const { deprecate } = require('util') -const supportedConfigurationsJson = /** @type {{ - supportedConfigurations: Record<`DD_${string}` | `OTEL_${string}`, SupportedConfigurationEntry[]>, - deprecations?: Record -}} */ (require('./supported-configurations.json')) -const { supportedConfigurations, deprecations = {} } = supportedConfigurationsJson +const { + supportedConfigurations, + deprecations = {}, +} = /** @type {SupportedConfigurationsJson} */ (require('./supported-configurations.json')) /** * Types for environment variable handling. diff --git a/packages/dd-trace/src/config/supported-configurations.json b/packages/dd-trace/src/config/supported-configurations.json index 9da31b2b289..e1b0b537a27 100644 --- a/packages/dd-trace/src/config/supported-configurations.json +++ b/packages/dd-trace/src/config/supported-configurations.json @@ -33,7 +33,9 @@ { "implementation": "A", "type": "string", - "programmaticConfig": "hostname", + "configurationNames": [ + "hostname" + ], "default": "127.0.0.1", "aliases": [ "DD_TRACE_AGENT_HOSTNAME" @@ -44,7 +46,9 @@ { "implementation": "A", "type": "boolean", - "programmaticConfig": "experimental.aiguard.enabled", + "configurationNames": [ + "experimental.aiguard.enabled" + ], "default": false } ], @@ -52,7 +56,9 @@ { "implementation": "A", "type": "string", - "programmaticConfig": "experimental.aiguard.endpoint", + "configurationNames": [ + "experimental.aiguard.endpoint" + ], "default": "__UNSET__" } ], @@ -60,7 +66,9 @@ { "implementation": "A", "type": "int", - "programmaticConfig": "experimental.aiguard.maxContentSize", + "configurationNames": [ + "experimental.aiguard.maxContentSize" + ], "default": 524288 } ], @@ -68,7 +76,9 @@ { "implementation": "A", "type": "int", - "programmaticConfig": "experimental.aiguard.maxMessagesLength", + "configurationNames": [ + "experimental.aiguard.maxMessagesLength" + ], "default": 16 } ], @@ -76,7 +86,9 @@ { "implementation": "A", "type": "int", - "programmaticConfig": "experimental.aiguard.timeout", + "configurationNames": [ + "experimental.aiguard.timeout" + ], "default": 10000 } ], @@ -94,7 +106,9 @@ { "implementation": "A", "type": "boolean", - "programmaticConfig": "appsec.apiSecurity.enabled", + "configurationNames": [ + "appsec.apiSecurity.enabled" + ], "default": true, "aliases": [ "DD_EXPERIMENTAL_API_SECURITY_ENABLED" @@ -105,7 +119,9 @@ { "implementation": "A", "type": "boolean", - "programmaticConfig": "appsec.apiSecurity.endpointCollectionEnabled", + "configurationNames": [ + "appsec.apiSecurity.endpointCollectionEnabled" + ], "default": true } ], @@ -113,7 +129,9 @@ { "implementation": "A", "type": "int", - "programmaticConfig": "appsec.apiSecurity.endpointCollectionMessageLimit", + "configurationNames": [ + "appsec.apiSecurity.endpointCollectionMessageLimit" + ], "default": 300 } ], @@ -121,7 +139,9 @@ { "implementation": "A", "type": "decimal", - "programmaticConfig": "appsec.apiSecurity.downstreamBodyAnalysisSampleRate", + "configurationNames": [ + "appsec.apiSecurity.downstreamBodyAnalysisSampleRate" + ], "default": 0.5 } ], @@ -129,7 +149,9 @@ { "implementation": "A", "type": "int", - "programmaticConfig": "appsec.apiSecurity.maxDownstreamRequestBodyAnalysis", + "configurationNames": [ + "appsec.apiSecurity.maxDownstreamRequestBodyAnalysis" + ], "default": 1 } ], @@ -151,7 +173,9 @@ { "implementation": "A", "type": "boolean", - "programmaticConfig": "apmTracingEnabled", + "configurationNames": [ + "apmTracingEnabled" + ], "default": true } ], @@ -159,7 +183,9 @@ { "implementation": "A", "type": "string", - "programmaticConfig": "appsec.eventTracking.mode", + "configurationNames": [ + "appsec.eventTracking.mode" + ], "default": "identification", "aliases": [ "DD_APPSEC_AUTOMATED_USER_EVENTS_TRACKING" @@ -170,7 +196,9 @@ { "implementation": "A", "type": "boolean", - "programmaticConfig": "appsec.extendedHeadersCollection.enabled", + "configurationNames": [ + "appsec.extendedHeadersCollection.enabled" + ], "default": false } ], @@ -178,7 +206,9 @@ { "implementation": "A", "type": "boolean", - "programmaticConfig": "appsec.enabled", + "configurationNames": [ + "appsec.enabled" + ], "default": "__UNSET__" } ], @@ -186,7 +216,9 @@ { "implementation": "A", "type": "string", - "programmaticConfig": "appsec.blockedTemplateGraphql", + "configurationNames": [ + "appsec.blockedTemplateGraphql" + ], "default": "__UNSET__" } ], @@ -194,7 +226,9 @@ { "implementation": "A", "type": "boolean", - "programmaticConfig": "appsec.extendedHeadersCollection.redaction", + "configurationNames": [ + "appsec.extendedHeadersCollection.redaction" + ], "default": true } ], @@ -202,7 +236,9 @@ { "implementation": "A", "type": "string", - "programmaticConfig": "appsec.blockedTemplateHtml", + "configurationNames": [ + "appsec.blockedTemplateHtml" + ], "default": "__UNSET__" } ], @@ -210,7 +246,9 @@ { "implementation": "A", "type": "string", - "programmaticConfig": "appsec.blockedTemplateJson", + "configurationNames": [ + "appsec.blockedTemplateJson" + ], "default": "__UNSET__" } ], @@ -218,7 +256,9 @@ { "implementation": "A", "type": "int", - "programmaticConfig": "appsec.extendedHeadersCollection.maxHeaders", + "configurationNames": [ + "appsec.extendedHeadersCollection.maxHeaders" + ], "default": 50 } ], @@ -226,7 +266,9 @@ { "implementation": "A", "type": "int", - "programmaticConfig": "appsec.stackTrace.maxStackTraces", + "configurationNames": [ + "appsec.stackTrace.maxStackTraces" + ], "default": 2 } ], @@ -234,7 +276,9 @@ { "implementation": "A", "type": "int", - "programmaticConfig": "appsec.stackTrace.maxDepth", + "configurationNames": [ + "appsec.stackTrace.maxDepth" + ], "default": 32 } ], @@ -242,7 +286,9 @@ { "implementation": "A", "type": "string", - "programmaticConfig": "appsec.obfuscatorKeyRegex", + "configurationNames": [ + "appsec.obfuscatorKeyRegex" + ], "default": "(?i)pass|pw(?:or)?d|secret|(?:api|private|public|access)[_-]?key|token|consumer[_-]?(?:id|key|secret)|sign(?:ed|ature)|bearer|authorization|jsessionid|phpsessid|asp\\.net[_-]sessionid|sid|jwt" } ], @@ -250,7 +296,9 @@ { "implementation": "A", "type": "string", - "programmaticConfig": "appsec.obfuscatorValueRegex", + "configurationNames": [ + "appsec.obfuscatorValueRegex" + ], "default": "(?i)(?:p(?:ass)?w(?:or)?d|pass(?:[_-]?phrase)?|secret(?:[_-]?key)?|(?:(?:api|private|public|access)[_-]?)key(?:[_-]?id)?|(?:(?:auth|access|id|refresh)[_-]?)?token|consumer[_-]?(?:id|key|secret)|sign(?:ed|ature)?|auth(?:entication|orization)?|jsessionid|phpsessid|asp\\.net(?:[_-]|-)sessionid|sid|jwt)(?:\\s*=([^;&]+)|\"\\s*:\\s*(\"[^\"]+\"|\\d+))|bearer\\s+([a-z0-9\\._\\-]+)|token\\s*:\\s*([a-z0-9]{13})|gh[opsu]_([0-9a-zA-Z]{36})|ey[I-L][\\w=-]+\\.(ey[I-L][\\w=-]+(?:\\.[\\w.+\\/=-]+)?)|[\\-]{5}BEGIN[a-z\\s]+PRIVATE\\sKEY[\\-]{5}([^\\-]+)[\\-]{5}END[a-z\\s]+PRIVATE\\sKEY|ssh-rsa\\s*([a-z0-9\\/\\.+]{100,})" } ], @@ -258,7 +306,9 @@ { "implementation": "A", "type": "boolean", - "programmaticConfig": "appsec.rasp.bodyCollection", + "configurationNames": [ + "appsec.rasp.bodyCollection" + ], "default": false } ], @@ -266,7 +316,9 @@ { "implementation": "A", "type": "boolean", - "programmaticConfig": "appsec.rasp.enabled", + "configurationNames": [ + "appsec.rasp.enabled" + ], "default": true } ], @@ -274,7 +326,9 @@ { "implementation": "A", "type": "string", - "programmaticConfig": "appsec.rules", + "configurationNames": [ + "appsec.rules" + ], "default": "__UNSET__" } ], @@ -289,7 +343,9 @@ { "implementation": "A", "type": "boolean", - "programmaticConfig": "appsec.stackTrace.enabled", + "configurationNames": [ + "appsec.stackTrace.enabled" + ], "default": true } ], @@ -297,7 +353,9 @@ { "implementation": "A", "type": "int", - "programmaticConfig": "appsec.rateLimit", + "configurationNames": [ + "appsec.rateLimit" + ], "default": 100 } ], @@ -305,7 +363,9 @@ { "implementation": "A", "type": "int", - "programmaticConfig": "appsec.wafTimeout", + "configurationNames": [ + "appsec.wafTimeout" + ], "default": 5000 } ], @@ -453,7 +513,9 @@ { "implementation": "A", "type": "boolean", - "programmaticConfig": "codeOriginForSpans.enabled", + "configurationNames": [ + "codeOriginForSpans.enabled" + ], "default": true } ], @@ -489,7 +551,9 @@ { "implementation": "A", "type": "boolean", - "programmaticConfig": "dbm.injectSqlBaseHash", + "configurationNames": [ + "dbm.injectSqlBaseHash" + ], "default": false } ], @@ -497,7 +561,9 @@ { "implementation": "A", "type": "string", - "programmaticConfig": "dbmPropagationMode", + "configurationNames": [ + "dbmPropagationMode" + ], "default": "disabled" } ], @@ -505,7 +571,9 @@ { "implementation": "A", "type": "string", - "programmaticConfig": "dogstatsd.hostname", + "configurationNames": [ + "dogstatsd.hostname" + ], "default": "127.0.0.1", "aliases": [ "DD_DOGSTATSD_HOSTNAME" @@ -516,7 +584,9 @@ { "implementation": "A", "type": "string", - "programmaticConfig": "dogstatsd.port", + "configurationNames": [ + "dogstatsd.port" + ], "default": "8125" } ], @@ -524,7 +594,9 @@ { "implementation": "A", "type": "int", - "programmaticConfig": "dynamicInstrumentation.captureTimeoutMs", + "configurationNames": [ + "dynamicInstrumentation.captureTimeoutMs" + ], "default": 15 } ], @@ -532,7 +604,9 @@ { "implementation": "A", "type": "boolean", - "programmaticConfig": "dynamicInstrumentation.enabled", + "configurationNames": [ + "dynamicInstrumentation.enabled" + ], "default": false } ], @@ -540,7 +614,9 @@ { "implementation": "A", "type": "string", - "programmaticConfig": "dynamicInstrumentation.probeFile", + "configurationNames": [ + "dynamicInstrumentation.probeFile" + ], "default": "__UNSET__" } ], @@ -548,7 +624,9 @@ { "implementation": "A", "type": "array", - "programmaticConfig": "dynamicInstrumentation.redactedIdentifiers", + "configurationNames": [ + "dynamicInstrumentation.redactedIdentifiers" + ], "default": [] } ], @@ -556,7 +634,9 @@ { "implementation": "A", "type": "array", - "programmaticConfig": "dynamicInstrumentation.redactionExcludedIdentifiers", + "configurationNames": [ + "dynamicInstrumentation.redactionExcludedIdentifiers" + ], "default": [] } ], @@ -564,7 +644,9 @@ { "implementation": "A", "type": "int", - "programmaticConfig": "dynamicInstrumentation.uploadIntervalSeconds", + "configurationNames": [ + "dynamicInstrumentation.uploadIntervalSeconds" + ], "default": 1 } ], @@ -579,7 +661,9 @@ { "implementation": "A", "type": "string", - "programmaticConfig": "env", + "configurationNames": [ + "env" + ], "default": "__UNSET__" } ], @@ -587,7 +671,9 @@ { "implementation": "A", "type": "boolean", - "programmaticConfig": "apmTracingEnabled", + "configurationNames": [ + "apmTracingEnabled" + ], "default": true } ], @@ -595,7 +681,9 @@ { "implementation": "A", "type": "int", - "programmaticConfig": "experimental.flaggingProvider.initializationTimeoutMs", + "configurationNames": [ + "experimental.flaggingProvider.initializationTimeoutMs" + ], "default": 30000 } ], @@ -603,7 +691,9 @@ { "implementation": "A", "type": "boolean", - "programmaticConfig": "experimental.flaggingProvider.enabled", + "configurationNames": [ + "experimental.flaggingProvider.enabled" + ], "default": false } ], @@ -833,7 +923,9 @@ { "implementation": "A", "type": "int", - "programmaticConfig": "iast.dbRowsToTaint", + "configurationNames": [ + "iast.dbRowsToTaint" + ], "default": 1 } ], @@ -841,7 +933,9 @@ { "implementation": "A", "type": "boolean", - "programmaticConfig": "iast.deduplicationEnabled", + "configurationNames": [ + "iast.deduplicationEnabled" + ], "default": true } ], @@ -849,7 +943,9 @@ { "implementation": "A", "type": "boolean", - "programmaticConfig": "iast.enabled", + "configurationNames": [ + "iast.enabled" + ], "default": false } ], @@ -857,7 +953,9 @@ { "implementation": "A", "type": "int", - "programmaticConfig": "iast.maxConcurrentRequests", + "configurationNames": [ + "iast.maxConcurrentRequests" + ], "default": 2 } ], @@ -865,7 +963,9 @@ { "implementation": "A", "type": "int", - "programmaticConfig": "iast.maxContextOperations", + "configurationNames": [ + "iast.maxContextOperations" + ], "default": 2 } ], @@ -873,7 +973,9 @@ { "implementation": "A", "type": "boolean", - "programmaticConfig": "iast.redactionEnabled", + "configurationNames": [ + "iast.redactionEnabled" + ], "default": true } ], @@ -881,7 +983,9 @@ { "implementation": "A", "type": "string", - "programmaticConfig": "iast.redactionNamePattern", + "configurationNames": [ + "iast.redactionNamePattern" + ], "default": "__UNSET__" } ], @@ -889,7 +993,9 @@ { "implementation": "A", "type": "string", - "programmaticConfig": "iast.redactionValuePattern", + "configurationNames": [ + "iast.redactionValuePattern" + ], "default": "__UNSET__" } ], @@ -897,7 +1003,9 @@ { "implementation": "A", "type": "int", - "programmaticConfig": "iast.requestSampling", + "configurationNames": [ + "iast.requestSampling" + ], "default": 30 } ], @@ -905,7 +1013,9 @@ { "implementation": "A", "type": "string", - "programmaticConfig": "iast.securityControlsConfiguration", + "configurationNames": [ + "iast.securityControlsConfiguration" + ], "default": "__UNSET__" } ], @@ -913,7 +1023,9 @@ { "implementation": "A", "type": "boolean", - "programmaticConfig": "iast.stackTrace.enabled", + "configurationNames": [ + "iast.stackTrace.enabled" + ], "default": true } ], @@ -921,7 +1033,9 @@ { "implementation": "A", "type": "string", - "programmaticConfig": "iast.telemetryVerbosity", + "configurationNames": [ + "iast.telemetryVerbosity" + ], "default": "INFORMATION" } ], @@ -1016,7 +1130,9 @@ { "implementation": "A", "type": "boolean", - "programmaticConfig": "llmobs.agentlessEnabled", + "configurationNames": [ + "llmobs.agentlessEnabled" + ], "default": "__UNSET__" } ], @@ -1031,7 +1147,9 @@ { "implementation": "A", "type": "string", - "programmaticConfig": "llmobs.mlApp", + "configurationNames": [ + "llmobs.mlApp" + ], "default": "__UNSET__" } ], @@ -1039,7 +1157,9 @@ { "implementation": "A", "type": "boolean", - "programmaticConfig": "logInjection", + "configurationNames": [ + "logInjection" + ], "default": true } ], @@ -1144,7 +1264,9 @@ { "implementation": "A", "type": "string", - "programmaticConfig": "profiling", + "configurationNames": [ + "profiling" + ], "default": "__UNSET__", "aliases": [ "DD_EXPERIMENTAL_PROFILING_ENABLED" @@ -1283,7 +1405,9 @@ { "implementation": "A", "type": "decimal", - "programmaticConfig": "remoteConfig.pollInterval", + "configurationNames": [ + "remoteConfig.pollInterval" + ], "default": 5 } ], @@ -1291,7 +1415,9 @@ { "implementation": "A", "type": "boolean", - "programmaticConfig": "runtimeMetrics.enabled", + "configurationNames": [ + "runtimeMetrics.enabled" + ], "default": false } ], @@ -1299,7 +1425,9 @@ { "implementation": "A", "type": "boolean", - "programmaticConfig": "runtimeMetrics.eventLoop", + "configurationNames": [ + "runtimeMetrics.eventLoop" + ], "default": true } ], @@ -1314,7 +1442,9 @@ { "implementation": "A", "type": "boolean", - "programmaticConfig": "runtimeMetrics.gc", + "configurationNames": [ + "runtimeMetrics.gc" + ], "default": true } ], @@ -1322,7 +1452,9 @@ { "implementation": "A", "type": "boolean", - "programmaticConfig": "runtimeMetricsRuntimeId", + "configurationNames": [ + "runtimeMetricsRuntimeId" + ], "default": false, "aliases": [ "DD_TRACE_EXPERIMENTAL_RUNTIME_ID_ENABLED" @@ -1333,7 +1465,9 @@ { "implementation": "A", "type": "string", - "programmaticConfig": "service", + "configurationNames": [ + "service" + ], "default": "$dynamic", "aliases": [ "DD_SERVICE_NAME" @@ -1344,7 +1478,9 @@ { "implementation": "A", "type": "string", - "programmaticConfig": "serviceMapping", + "configurationNames": [ + "serviceMapping" + ], "default": {} } ], @@ -1359,7 +1495,9 @@ { "implementation": "A", "type": "array", - "programmaticConfig": "spanSamplingRules", + "configurationNames": [ + "spanSamplingRules" + ], "default": [] } ], @@ -1367,7 +1505,9 @@ { "implementation": "A", "type": "array", - "programmaticConfig": "spanSamplingRules", + "configurationNames": [ + "spanSamplingRules" + ], "default": [] } ], @@ -1487,7 +1627,9 @@ { "implementation": "A", "type": "string", - "programmaticConfig": "port", + "configurationNames": [ + "port" + ], "default": "8126" } ], @@ -1495,7 +1637,9 @@ { "implementation": "A", "type": "string", - "programmaticConfig": "protocolVersion", + "configurationNames": [ + "protocolVersion" + ], "default": "0.4" } ], @@ -1503,7 +1647,9 @@ { "implementation": "A", "type": "string", - "programmaticConfig": "url", + "configurationNames": [ + "url" + ], "default": "__UNKNOWN__", "aliases": [ "DD_TRACE_URL" @@ -1955,7 +2101,9 @@ { "implementation": "A", "type": "boolean", - "programmaticConfig": "clientIpEnabled", + "configurationNames": [ + "clientIpEnabled" + ], "default": false } ], @@ -1963,7 +2111,9 @@ { "implementation": "A", "type": "string", - "programmaticConfig": "clientIpHeader", + "configurationNames": [ + "clientIpHeader" + ], "default": "__UNSET__" } ], @@ -1971,7 +2121,9 @@ { "implementation": "A", "type": "int", - "programmaticConfig": "cloudPayloadTagging.maxDepth", + "configurationNames": [ + "cloudPayloadTagging.maxDepth" + ], "default": 10 } ], @@ -1979,7 +2131,9 @@ { "implementation": "A", "type": "array", - "programmaticConfig": "cloudPayloadTagging.request", + "configurationNames": [ + "cloudPayloadTagging.request" + ], "default": [] } ], @@ -1987,7 +2141,9 @@ { "implementation": "A", "type": "array", - "programmaticConfig": "cloudPayloadTagging.request", + "configurationNames": [ + "cloudPayloadTagging.request" + ], "default": [] } ], @@ -2149,7 +2305,9 @@ { "implementation": "A", "type": "boolean", - "programmaticConfig": "experimental.b3", + "configurationNames": [ + "experimental.b3" + ], "default": "__UNKNOWN__" } ], @@ -2157,7 +2315,9 @@ { "implementation": "A", "type": "string", - "programmaticConfig": "experimental.exporter", + "configurationNames": [ + "experimental.exporter" + ], "default": "__UNSET__" } ], @@ -2165,7 +2325,9 @@ { "implementation": "A", "type": "boolean", - "programmaticConfig": "experimental.enableGetRumData", + "configurationNames": [ + "experimental.enableGetRumData" + ], "default": false } ], @@ -2229,7 +2391,9 @@ { "implementation": "A", "type": "int", - "programmaticConfig": "flushInterval", + "configurationNames": [ + "flushInterval" + ], "default": 2000 } ], @@ -2881,7 +3045,9 @@ { "implementation": "A", "type": "int", - "programmaticConfig": "flushMinSpans", + "configurationNames": [ + "flushMinSpans" + ], "default": 1000 } ], @@ -2910,7 +3076,9 @@ { "implementation": "A", "type": "boolean", - "programmaticConfig": "spanComputePeerService", + "configurationNames": [ + "spanComputePeerService" + ], "default": "__UNKNOWN__" } ], @@ -3030,7 +3198,9 @@ { "implementation": "A", "type": "array", - "programmaticConfig": "tracePropagationStyle.inject", + "configurationNames": [ + "tracePropagationStyle.inject" + ], "default": [ "datadog", "tracecontext", @@ -3042,7 +3212,9 @@ { "implementation": "A", "type": "array", - "programmaticConfig": "tracePropagationStyle.extract", + "configurationNames": [ + "tracePropagationStyle.extract" + ], "default": [ "datadog", "tracecontext", @@ -3054,7 +3226,9 @@ { "implementation": "A", "type": "array", - "programmaticConfig": "tracePropagationStyle.inject", + "configurationNames": [ + "tracePropagationStyle.inject" + ], "default": [ "datadog", "tracecontext", @@ -3087,7 +3261,9 @@ { "implementation": "A", "type": "int", - "programmaticConfig": "ingestion.rateLimit", + "configurationNames": [ + "ingestion.rateLimit" + ], "default": 100 } ], @@ -3130,7 +3306,9 @@ { "implementation": "A", "type": "boolean", - "programmaticConfig": "reportHostname", + "configurationNames": [ + "reportHostname" + ], "default": false } ], @@ -3173,7 +3351,9 @@ { "implementation": "A", "type": "decimal", - "programmaticConfig": "ingestion.sampleRate", + "configurationNames": [ + "ingestion.sampleRate" + ], "default": "__UNSET__" } ], @@ -3181,7 +3361,9 @@ { "implementation": "A", "type": "json", - "programmaticConfig": "samplingRules", + "configurationNames": [ + "samplingRules" + ], "default": [] } ], @@ -3231,7 +3413,9 @@ { "implementation": "A", "type": "string", - "programmaticConfig": "spanAttributeSchema", + "configurationNames": [ + "spanAttributeSchema" + ], "default": "v0" } ], @@ -3253,7 +3437,9 @@ { "implementation": "A", "type": "boolean", - "programmaticConfig": "startupLogs", + "configurationNames": [ + "startupLogs" + ], "default": false } ], @@ -3261,7 +3447,9 @@ { "implementation": "A", "type": "boolean", - "programmaticConfig": "stats", + "configurationNames": [ + "stats" + ], "default": "__UNKNOWN__" } ], @@ -3388,7 +3576,9 @@ { "implementation": "A", "type": "string", - "programmaticConfig": "version", + "configurationNames": [ + "version" + ], "default": "$dynamic" } ], @@ -3585,7 +3775,9 @@ { "implementation": "A", "type": "string", - "programmaticConfig": "service", + "configurationNames": [ + "service" + ], "default": "$dynamic" } ], @@ -3600,7 +3792,9 @@ { "implementation": "A", "type": "decimal", - "programmaticConfig": "sampleRate", + "configurationNames": [ + "sampleRate" + ], "default": "__UNSET__" } ], @@ -3608,7 +3802,9 @@ { "implementation": "A", "type": "decimal", - "programmaticConfig": "sampleRate", + "configurationNames": [ + "sampleRate" + ], "default": "__UNSET__" } ] diff --git a/packages/dd-trace/test/config/index.spec.js b/packages/dd-trace/test/config/index.spec.js index cda902d8e9f..159eecefd0f 100644 --- a/packages/dd-trace/test/config/index.spec.js +++ b/packages/dd-trace/test/config/index.spec.js @@ -331,7 +331,7 @@ describe('Config', () => { }, rateLimit: 100, sca: { - enabled: undefined + enabled: undefined, }, stackTrace: { enabled: true, @@ -396,7 +396,7 @@ describe('Config', () => { installSignature: { id: undefined, time: undefined, - type: undefined + type: undefined, }, instrumentationSource: 'manual', instrumentation_config_id: undefined, @@ -2084,7 +2084,7 @@ describe('Config', () => { rateLimit: 42, rules: undefined, sca: { - enabled: undefined + enabled: undefined, }, stackTrace: { enabled: true, From 6239c31627e004969263881fb6449376aa762f0f Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Mon, 23 Feb 2026 03:49:21 +0100 Subject: [PATCH 03/17] fixup! --- .../datadog-instrumentations/src/selenium.js | 2 +- packages/datadog-plugin-vitest/src/index.js | 2 + packages/dd-trace/src/config/helper.js | 12 +- .../src/config/supported-configurations.json | 797 +++++++++--------- 4 files changed, 431 insertions(+), 382 deletions(-) diff --git a/packages/datadog-instrumentations/src/selenium.js b/packages/datadog-instrumentations/src/selenium.js index 88f54c9debf..a54583e995c 100644 --- a/packages/datadog-instrumentations/src/selenium.js +++ b/packages/datadog-instrumentations/src/selenium.js @@ -17,7 +17,7 @@ if (window.DD_RUM && window.DD_RUM.stopSession) { const IS_RUM_ACTIVE_SCRIPT = 'return !!window.DD_RUM' const DD_CIVISIBILITY_RUM_FLUSH_WAIT_MILLIS = -Number(getValueFromEnvSources('DD_CIVISIBILITY_RUM_FLUSH_WAIT_MILLIS')) || 500 +Number(getValueFromEnvSources('DD_CIVISIBILITY_RUM_FLUSH_WAIT_MILLIS')) || 1000 const DD_CIVISIBILITY_TEST_EXECUTION_ID_COOKIE_NAME = 'datadog-ci-visibility-test-execution-id' // TODO: can we increase the supported version range? diff --git a/packages/datadog-plugin-vitest/src/index.js b/packages/datadog-plugin-vitest/src/index.js index de559b828d0..af2f8a1d62a 100644 --- a/packages/datadog-plugin-vitest/src/index.js +++ b/packages/datadog-plugin-vitest/src/index.js @@ -275,9 +275,11 @@ class VitestPlugin extends CiPlugin { this.addBind('ci:vitest:test-suite:start', (ctx) => { const { testSuiteAbsolutePath, frameworkVersion } = ctx + // TODO: Handle case where the command is not set this.command = getValueFromEnvSources('DD_CIVISIBILITY_TEST_COMMAND') this.frameworkVersion = frameworkVersion const testSessionSpanContext = this.tracer.extract('text_map', { + // TODO: Handle case where the session ID or module ID is not set 'x-datadog-trace-id': getValueFromEnvSources('DD_CIVISIBILITY_TEST_SESSION_ID'), 'x-datadog-parent-id': getValueFromEnvSources('DD_CIVISIBILITY_TEST_MODULE_ID'), }) diff --git a/packages/dd-trace/src/config/helper.js b/packages/dd-trace/src/config/helper.js index 80d989dee04..b683da2c77b 100644 --- a/packages/dd-trace/src/config/helper.js +++ b/packages/dd-trace/src/config/helper.js @@ -8,18 +8,18 @@ * @property {string} type * @property {string|number|boolean|null|object|unknown[]} default * @property {string[]} [aliases] + * @property {string[]} [configurationNames] + * @property {string|boolean} [deprecated] */ /** * @typedef {object} SupportedConfigurationsJson * @property {Record<`DD_${string}` | `OTEL_${string}`, SupportedConfigurationEntry[]>} supportedConfigurations - * @property {Record?} deprecations */ const { deprecate } = require('util') const { supportedConfigurations, - deprecations = {}, } = /** @type {SupportedConfigurationsJson} */ (require('./supported-configurations.json')) /** @@ -33,6 +33,7 @@ const { // - `aliases`: Record // - `deprecations`: Record (message suffix) const aliases = {} +const deprecations = {} for (const [canonical, configuration] of Object.entries(supportedConfigurations)) { for (const implementation of configuration) { @@ -42,6 +43,13 @@ for (const [canonical, configuration] of Object.entries(supportedConfigurations) aliases[canonical].add(alias) } } + if (implementation.deprecated !== undefined) { + deprecations[canonical] = implementation.deprecated + // Deprecated entries with an alias may not be listed in the supported configurations map + if (implementation.aliases) { + delete supportedConfigurations[canonical] + } + } } } diff --git a/packages/dd-trace/src/config/supported-configurations.json b/packages/dd-trace/src/config/supported-configurations.json index e1b0b537a27..126d30c91ff 100644 --- a/packages/dd-trace/src/config/supported-configurations.json +++ b/packages/dd-trace/src/config/supported-configurations.json @@ -5,28 +5,31 @@ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_ACTION_EXECUTION_ID": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_AGENTLESS_LOG_SUBMISSION_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "false", + "configurationNames": [ + "ciVisAgentlessLogSubmissionEnabled" + ] } ], "DD_AGENTLESS_LOG_SUBMISSION_URL": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": "$dynamic" } ], "DD_AGENT_HOST": [ @@ -49,7 +52,7 @@ "configurationNames": [ "experimental.aiguard.enabled" ], - "default": false + "default": "false" } ], "DD_AI_GUARD_ENDPOINT": [ @@ -59,7 +62,7 @@ "configurationNames": [ "experimental.aiguard.endpoint" ], - "default": "__UNSET__" + "default": null } ], "DD_AI_GUARD_MAX_CONTENT_SIZE": [ @@ -69,7 +72,7 @@ "configurationNames": [ "experimental.aiguard.maxContentSize" ], - "default": 524288 + "default": "524288" } ], "DD_AI_GUARD_MAX_MESSAGES_LENGTH": [ @@ -79,7 +82,7 @@ "configurationNames": [ "experimental.aiguard.maxMessagesLength" ], - "default": 16 + "default": "16" } ], "DD_AI_GUARD_TIMEOUT": [ @@ -89,14 +92,14 @@ "configurationNames": [ "experimental.aiguard.timeout" ], - "default": 10000 + "default": "10000" } ], "DD_API_KEY": [ { "implementation": "A", "type": "string", - "default": "__UNSET__", + "default": null, "aliases": [ "DATADOG_API_KEY" ] @@ -109,7 +112,7 @@ "configurationNames": [ "appsec.apiSecurity.enabled" ], - "default": true, + "default": "true", "aliases": [ "DD_EXPERIMENTAL_API_SECURITY_ENABLED" ] @@ -122,7 +125,7 @@ "configurationNames": [ "appsec.apiSecurity.endpointCollectionEnabled" ], - "default": true + "default": "true" } ], "DD_API_SECURITY_ENDPOINT_COLLECTION_MESSAGE_LIMIT": [ @@ -132,7 +135,7 @@ "configurationNames": [ "appsec.apiSecurity.endpointCollectionMessageLimit" ], - "default": 300 + "default": "300" } ], "DD_API_SECURITY_DOWNSTREAM_BODY_ANALYSIS_SAMPLE_RATE": [ @@ -152,21 +155,21 @@ "configurationNames": [ "appsec.apiSecurity.maxDownstreamRequestBodyAnalysis" ], - "default": 1 + "default": "1" } ], "DD_API_SECURITY_SAMPLE_DELAY": [ { "implementation": "A", "type": "decimal", - "default": 30 + "default": "30" } ], "DD_APM_FLUSH_DEADLINE_MILLISECONDS": [ { "implementation": "A", "type": "int", - "default": 100 + "default": "100" } ], "DD_APM_TRACING_ENABLED": [ @@ -176,7 +179,7 @@ "configurationNames": [ "apmTracingEnabled" ], - "default": true + "default": "true" } ], "DD_APPSEC_AUTO_USER_INSTRUMENTATION_MODE": [ @@ -199,7 +202,7 @@ "configurationNames": [ "appsec.extendedHeadersCollection.enabled" ], - "default": false + "default": "false" } ], "DD_APPSEC_ENABLED": [ @@ -209,7 +212,7 @@ "configurationNames": [ "appsec.enabled" ], - "default": "__UNSET__" + "default": null } ], "DD_APPSEC_GRAPHQL_BLOCKED_TEMPLATE_JSON": [ @@ -219,7 +222,7 @@ "configurationNames": [ "appsec.blockedTemplateGraphql" ], - "default": "__UNSET__" + "default": null } ], "DD_APPSEC_HEADER_COLLECTION_REDACTION_ENABLED": [ @@ -229,7 +232,7 @@ "configurationNames": [ "appsec.extendedHeadersCollection.redaction" ], - "default": true + "default": "true" } ], "DD_APPSEC_HTTP_BLOCKED_TEMPLATE_HTML": [ @@ -239,7 +242,7 @@ "configurationNames": [ "appsec.blockedTemplateHtml" ], - "default": "__UNSET__" + "default": null } ], "DD_APPSEC_HTTP_BLOCKED_TEMPLATE_JSON": [ @@ -249,7 +252,7 @@ "configurationNames": [ "appsec.blockedTemplateJson" ], - "default": "__UNSET__" + "default": null } ], "DD_APPSEC_MAX_COLLECTED_HEADERS": [ @@ -259,7 +262,7 @@ "configurationNames": [ "appsec.extendedHeadersCollection.maxHeaders" ], - "default": 50 + "default": "50" } ], "DD_APPSEC_MAX_STACK_TRACES": [ @@ -269,7 +272,7 @@ "configurationNames": [ "appsec.stackTrace.maxStackTraces" ], - "default": 2 + "default": "2" } ], "DD_APPSEC_MAX_STACK_TRACE_DEPTH": [ @@ -279,7 +282,7 @@ "configurationNames": [ "appsec.stackTrace.maxDepth" ], - "default": 32 + "default": "32" } ], "DD_APPSEC_OBFUSCATION_PARAMETER_KEY_REGEXP": [ @@ -309,7 +312,7 @@ "configurationNames": [ "appsec.rasp.bodyCollection" ], - "default": false + "default": "false" } ], "DD_APPSEC_RASP_ENABLED": [ @@ -319,7 +322,7 @@ "configurationNames": [ "appsec.rasp.enabled" ], - "default": true + "default": "true" } ], "DD_APPSEC_RULES": [ @@ -329,14 +332,14 @@ "configurationNames": [ "appsec.rules" ], - "default": "__UNSET__" + "default": null } ], "DD_APPSEC_SCA_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNSET__" + "default": null } ], "DD_APPSEC_STACK_TRACE_ENABLED": [ @@ -346,7 +349,7 @@ "configurationNames": [ "appsec.stackTrace.enabled" ], - "default": true + "default": "true" } ], "DD_APPSEC_TRACE_RATE_LIMIT": [ @@ -356,7 +359,7 @@ "configurationNames": [ "appsec.rateLimit" ], - "default": 100 + "default": "100" } ], "DD_APPSEC_WAF_TIMEOUT": [ @@ -366,147 +369,159 @@ "configurationNames": [ "appsec.wafTimeout" ], - "default": 5000 + "default": "5000" } ], "DD_APP_KEY": [ { "implementation": "A", "type": "string", - "default": "__UNSET__" + "default": null } ], "DD_AZURE_RESOURCE_GROUP": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_CIVISIBILITY_AGENTLESS_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": false + "default": "false" } ], "DD_CIVISIBILITY_AGENTLESS_URL": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": "$dynamic" } ], "DD_CIVISIBILITY_AUTO_INSTRUMENTATION_PROVIDER": [ { "implementation": "A", - "type": "string", - "default": "__UNKNOWN__" + "type": "boolean", + "default": "false" } ], "DD_CIVISIBILITY_DANGEROUSLY_FORCE_COVERAGE": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "false" } ], "DD_CIVISIBILITY_DANGEROUSLY_FORCE_TEST_SKIPPING": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "false" } ], "DD_CIVISIBILITY_EARLY_FLAKE_DETECTION_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true", + "configurationNames": [ + "isEarlyFlakeDetectionEnabled" + ] } ], "DD_CIVISIBILITY_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "false" } ], "DD_CIVISIBILITY_FLAKY_RETRY_COUNT": [ { "implementation": "A", "type": "int", - "default": "__UNKNOWN__" + "default": "5", + "configurationNames": [ + "flakyTestRetriesCount" + ] } ], "DD_CIVISIBILITY_FLAKY_RETRY_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true", + "configurationNames": [ + "isFlakyTestRetriesEnabled" + ] } ], "DD_CIVISIBILITY_GIT_UNSHALLOW_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_CIVISIBILITY_GIT_UPLOAD_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_CIVISIBILITY_IMPACTED_TESTS_DETECTION_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_CIVISIBILITY_ITR_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_CIVISIBILITY_MANUAL_API_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true", + "configurationNames": [ + "isManualApiEnabled" + ] } ], "DD_CIVISIBILITY_RUM_FLUSH_WAIT_MILLIS": [ { "implementation": "A", "type": "int", - "default": "__UNKNOWN__" + "default": "1000" } ], "DD_CIVISIBILITY_TEST_COMMAND": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_CIVISIBILITY_TEST_MODULE_ID": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_CIVISIBILITY_TEST_SESSION_ID": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_CODE_ORIGIN_FOR_SPANS_ENABLED": [ @@ -516,35 +531,35 @@ "configurationNames": [ "codeOriginForSpans.enabled" ], - "default": true + "default": "true" } ], "DD_CODE_ORIGIN_FOR_SPANS_EXPERIMENTAL_EXIT_SPANS_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": false + "default": "false" } ], "DD_CRASHTRACKING_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_CUSTOM_TRACE_ID": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_DATA_STREAMS_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": false + "default": "false" } ], "DD_DBM_INJECT_SQL_BASEHASH": [ @@ -554,7 +569,7 @@ "configurationNames": [ "dbm.injectSqlBaseHash" ], - "default": false + "default": "false" } ], "DD_DBM_PROPAGATION_MODE": [ @@ -597,7 +612,7 @@ "configurationNames": [ "dynamicInstrumentation.captureTimeoutMs" ], - "default": 15 + "default": "15" } ], "DD_DYNAMIC_INSTRUMENTATION_ENABLED": [ @@ -607,7 +622,7 @@ "configurationNames": [ "dynamicInstrumentation.enabled" ], - "default": false + "default": "false" } ], "DD_DYNAMIC_INSTRUMENTATION_PROBE_FILE": [ @@ -617,7 +632,7 @@ "configurationNames": [ "dynamicInstrumentation.probeFile" ], - "default": "__UNSET__" + "default": null } ], "DD_DYNAMIC_INSTRUMENTATION_REDACTED_IDENTIFIERS": [ @@ -627,7 +642,7 @@ "configurationNames": [ "dynamicInstrumentation.redactedIdentifiers" ], - "default": [] + "default": "[]" } ], "DD_DYNAMIC_INSTRUMENTATION_REDACTION_EXCLUDED_IDENTIFIERS": [ @@ -637,7 +652,7 @@ "configurationNames": [ "dynamicInstrumentation.redactionExcludedIdentifiers" ], - "default": [] + "default": "[]" } ], "DD_DYNAMIC_INSTRUMENTATION_UPLOAD_INTERVAL_SECONDS": [ @@ -647,14 +662,14 @@ "configurationNames": [ "dynamicInstrumentation.uploadIntervalSeconds" ], - "default": 1 + "default": "1" } ], "DD_ENABLE_NX_SERVICE_NAME": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_ENV": [ @@ -664,7 +679,7 @@ "configurationNames": [ "env" ], - "default": "__UNSET__" + "default": null } ], "DD_EXPERIMENTAL_APPSEC_STANDALONE_ENABLED": [ @@ -674,7 +689,7 @@ "configurationNames": [ "apmTracingEnabled" ], - "default": true + "default": "true" } ], "DD_EXPERIMENTAL_FLAGGING_PROVIDER_INITIALIZATION_TIMEOUT_MS": [ @@ -684,7 +699,7 @@ "configurationNames": [ "experimental.flaggingProvider.initializationTimeoutMs" ], - "default": 30000 + "default": "30000" } ], "DD_EXPERIMENTAL_FLAGGING_PROVIDER_ENABLED": [ @@ -694,14 +709,14 @@ "configurationNames": [ "experimental.flaggingProvider.enabled" ], - "default": false + "default": "false" } ], "DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNSET__" + "default": null } ], "DD_EXPERIMENTAL_TEST_OPT_SETTINGS_CACHE": [ @@ -715,35 +730,28 @@ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": "/{os.tmpdir()}/dd-trace-git-cache" } ], "DD_EXPERIMENTAL_TEST_OPT_GIT_CACHE_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": false + "default": "false" } ], "DD_EXTERNAL_ENV": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" - } - ], - "DD_FLAGGING_PROVIDER_ENABLED": [ - { - "implementation": "A", - "type": "boolean", - "default": "__UNKNOWN__" + "default": null } ], "DD_GIT_BRANCH": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_GIT_COMMIT_AUTHOR_DATE": [ @@ -855,54 +863,21 @@ { "implementation": "A", "type": "array", - "default": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ] + "default": "[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]" } ], "DD_GRPC_SERVER_ERROR_STATUSES": [ { "implementation": "A", "type": "array", - "default": [ - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16 - ] + "default": "[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]" } ], "DD_HEAP_SNAPSHOT_COUNT": [ { "implementation": "A", "type": "int", - "default": 0 + "default": "0" } ], "DD_HEAP_SNAPSHOT_DESTINATION": [ @@ -916,7 +891,7 @@ { "implementation": "A", "type": "int", - "default": 3600 + "default": "3600" } ], "DD_IAST_DB_ROWS_TO_TAINT": [ @@ -926,7 +901,7 @@ "configurationNames": [ "iast.dbRowsToTaint" ], - "default": 1 + "default": "1" } ], "DD_IAST_DEDUPLICATION_ENABLED": [ @@ -936,7 +911,7 @@ "configurationNames": [ "iast.deduplicationEnabled" ], - "default": true + "default": "true" } ], "DD_IAST_ENABLED": [ @@ -946,7 +921,7 @@ "configurationNames": [ "iast.enabled" ], - "default": false + "default": "false" } ], "DD_IAST_MAX_CONCURRENT_REQUESTS": [ @@ -956,7 +931,7 @@ "configurationNames": [ "iast.maxConcurrentRequests" ], - "default": 2 + "default": "2" } ], "DD_IAST_MAX_CONTEXT_OPERATIONS": [ @@ -966,7 +941,7 @@ "configurationNames": [ "iast.maxContextOperations" ], - "default": 2 + "default": "2" } ], "DD_IAST_REDACTION_ENABLED": [ @@ -976,7 +951,7 @@ "configurationNames": [ "iast.redactionEnabled" ], - "default": true + "default": "true" } ], "DD_IAST_REDACTION_NAME_PATTERN": [ @@ -986,7 +961,7 @@ "configurationNames": [ "iast.redactionNamePattern" ], - "default": "__UNSET__" + "default": null } ], "DD_IAST_REDACTION_VALUE_PATTERN": [ @@ -996,7 +971,7 @@ "configurationNames": [ "iast.redactionValuePattern" ], - "default": "__UNSET__" + "default": null } ], "DD_IAST_REQUEST_SAMPLING": [ @@ -1006,7 +981,7 @@ "configurationNames": [ "iast.requestSampling" ], - "default": 30 + "default": "30" } ], "DD_IAST_SECURITY_CONTROLS_CONFIGURATION": [ @@ -1016,7 +991,7 @@ "configurationNames": [ "iast.securityControlsConfiguration" ], - "default": "__UNSET__" + "default": null } ], "DD_IAST_STACK_TRACE_ENABLED": [ @@ -1026,7 +1001,7 @@ "configurationNames": [ "iast.stackTrace.enabled" ], - "default": true + "default": "true" } ], "DD_IAST_TELEMETRY_VERBOSITY": [ @@ -1043,49 +1018,49 @@ { "implementation": "A", "type": "array", - "default": [] + "default": "[]" } ], "DD_INJECT_FORCE": [ { "implementation": "A", "type": "boolean", - "default": "__UNSET__" + "default": null } ], "DD_INSTRUMENTATION_CONFIG_ID": [ { "implementation": "A", "type": "string", - "default": "__UNSET__" + "default": null } ], "DD_INSTRUMENTATION_INSTALL_ID": [ { "implementation": "A", "type": "string", - "default": "__UNSET__" + "default": null } ], "DD_INSTRUMENTATION_INSTALL_TIME": [ { "implementation": "A", "type": "string", - "default": "__UNSET__" + "default": null } ], "DD_INSTRUMENTATION_INSTALL_TYPE": [ { "implementation": "A", "type": "string", - "default": "__UNSET__" + "default": null } ], "DD_INSTRUMENTATION_TELEMETRY_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true, + "default": "true", "aliases": [ "DD_TRACE_TELEMETRY_ENABLED" ] @@ -1095,7 +1070,7 @@ { "implementation": "A", "type": "int", - "default": "__UNSET__" + "default": null } ], "DD_INTERNAL_PROFILING_TIMELINE_SAMPLING_ENABLED": [ @@ -1116,14 +1091,14 @@ { "implementation": "A", "type": "int", - "default": 128 + "default": "128" } ], "DD_LANGCHAIN_SPAN_PROMPT_COMPLETION_SAMPLE_RATE": [ { "implementation": "A", "type": "decimal", - "default": 1 + "default": "1" } ], "DD_LLMOBS_AGENTLESS_ENABLED": [ @@ -1133,14 +1108,14 @@ "configurationNames": [ "llmobs.agentlessEnabled" ], - "default": "__UNSET__" + "default": null } ], "DD_LLMOBS_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": false + "default": "false" } ], "DD_LLMOBS_ML_APP": [ @@ -1150,7 +1125,7 @@ "configurationNames": [ "llmobs.mlApp" ], - "default": "__UNSET__" + "default": null } ], "DD_LOGS_INJECTION": [ @@ -1160,14 +1135,14 @@ "configurationNames": [ "logInjection" ], - "default": true + "default": "true" } ], "DD_LOGS_OTEL_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": false + "default": "false" } ], "DD_LOG_LEVEL": [ @@ -1181,7 +1156,7 @@ { "implementation": "A", "type": "boolean", - "default": false + "default": "false" } ], "DD_MINI_AGENT_PATH": [ @@ -1195,14 +1170,14 @@ { "implementation": "A", "type": "boolean", - "default": false + "default": "false" } ], "DD_OPENAI_SPAN_CHAR_LIMIT": [ { "implementation": "A", "type": "int", - "default": 128 + "default": "128" } ], "DD_PIPELINE_EXECUTION_ID": [ @@ -1216,7 +1191,7 @@ { "implementation": "A", "type": "string", - "default": "__UNSET__" + "default": null } ], "DD_PROFILING_ASYNC_CONTEXT_FRAME_ENABLED": [ @@ -1236,6 +1211,17 @@ ] } ], + "DD_PROFILING_EXPERIMENTAL_CODEHOTSPOTS_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__", + "aliases": [ + "DD_PROFILING_CODEHOTSPOTS_ENABLED" + ], + "deprecated": true + } + ], "DD_PROFILING_CPU_ENABLED": [ { "implementation": "A", @@ -1246,6 +1232,17 @@ ] } ], + "DD_PROFILING_EXPERIMENTAL_CPU_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__", + "aliases": [ + "DD_PROFILING_CPU_ENABLED" + ], + "deprecated": true + } + ], "DD_PROFILING_DEBUG_SOURCE_MAPS": [ { "implementation": "A", @@ -1267,12 +1264,26 @@ "configurationNames": [ "profiling" ], - "default": "__UNSET__", + "default": null, "aliases": [ "DD_EXPERIMENTAL_PROFILING_ENABLED" ] } ], + "DD_EXPERIMENTAL_PROFILING_ENABLED": [ + { + "implementation": "A", + "type": "string", + "configurationNames": [ + "profiling" + ], + "default": null, + "aliases": [ + "DD_PROFILING_ENABLED" + ], + "deprecated": true + } + ], "DD_PROFILING_ENDPOINT_COLLECTION_ENABLED": [ { "implementation": "A", @@ -1283,6 +1294,17 @@ ] } ], + "DD_PROFILING_EXPERIMENTAL_ENDPOINT_COLLECTION_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "__UNKNOWN__", + "aliases": [ + "DD_PROFILING_ENDPOINT_COLLECTION_ENABLED" + ], + "deprecated": true + } + ], "DD_PROFILING_EXPERIMENTAL_OOM_EXPORT_STRATEGIES": [ { "implementation": "A", @@ -1350,19 +1372,30 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_PROFILING_TIMELINE_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__", + "default": "true (non-Windows) / false (Windows)", "aliases": [ "DD_PROFILING_EXPERIMENTAL_TIMELINE_ENABLED" ] } ], + "DD_PROFILING_EXPERIMENTAL_TIMELINE_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "true (non-Windows) / false (Windows)", + "aliases": [ + "DD_PROFILING_TIMELINE_ENABLED" + ], + "deprecated": true + } + ], "DD_PROFILING_UPLOAD_PERIOD": [ { "implementation": "A", @@ -1395,7 +1428,7 @@ { "implementation": "A", "type": "boolean", - "default": true, + "default": "true", "aliases": [ "DD_REMOTE_CONFIG_ENABLED" ] @@ -1408,7 +1441,7 @@ "configurationNames": [ "remoteConfig.pollInterval" ], - "default": 5 + "default": "5" } ], "DD_RUNTIME_METRICS_ENABLED": [ @@ -1418,7 +1451,7 @@ "configurationNames": [ "runtimeMetrics.enabled" ], - "default": false + "default": "false" } ], "DD_RUNTIME_METRICS_EVENT_LOOP_ENABLED": [ @@ -1428,7 +1461,7 @@ "configurationNames": [ "runtimeMetrics.eventLoop" ], - "default": true + "default": "true" } ], "DD_RUNTIME_METRICS_FLUSH_INTERVAL": [ @@ -1445,7 +1478,7 @@ "configurationNames": [ "runtimeMetrics.gc" ], - "default": true + "default": "true" } ], "DD_RUNTIME_METRICS_RUNTIME_ID_ENABLED": [ @@ -1455,12 +1488,23 @@ "configurationNames": [ "runtimeMetricsRuntimeId" ], - "default": false, + "default": "false", "aliases": [ "DD_TRACE_EXPERIMENTAL_RUNTIME_ID_ENABLED" ] } ], + "DD_TRACE_EXPERIMENTAL_RUNTIME_ID_ENABLED": [ + { + "implementation": "A", + "type": "boolean", + "default": "false", + "aliases": [ + "DD_RUNTIME_METRICS_RUNTIME_ID_ENABLED" + ], + "deprecated": true + } + ], "DD_SERVICE": [ { "implementation": "A", @@ -1481,7 +1525,7 @@ "configurationNames": [ "serviceMapping" ], - "default": {} + "default": "{}" } ], "DD_SITE": [ @@ -1498,7 +1542,7 @@ "configurationNames": [ "spanSamplingRules" ], - "default": [] + "default": "[]" } ], "DD_SPAN_SAMPLING_RULES_FILE": [ @@ -1508,63 +1552,66 @@ "configurationNames": [ "spanSamplingRules" ], - "default": [] + "default": "[]" } ], "DD_TAGS": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_TELEMETRY_DEBUG": [ { "implementation": "A", "type": "boolean", - "default": false + "default": "false" } ], "DD_TELEMETRY_DEPENDENCY_COLLECTION_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TELEMETRY_FORWARDER_PATH": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_TELEMETRY_HEARTBEAT_INTERVAL": [ { "implementation": "A", "type": "int", - "default": 60000 + "default": "60000" } ], "DD_TELEMETRY_LOG_COLLECTION_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TELEMETRY_METRICS_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TEST_FAILED_TEST_REPLAY_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "__UNKNOWN__", + "configurationNames": [ + "isTestDynamicInstrumentationEnabled" + ] } ], "DD_TEST_FLEET_CONFIG_PATH": [ @@ -1606,21 +1653,21 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_128_BIT_TRACEID_LOGGING_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_AEROSPIKE_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_AGENT_PORT": [ @@ -1660,56 +1707,56 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_AMQP10_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_AMQPLIB_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_ANTHROPIC_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_APOLLO_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_APOLLO_GATEWAY_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_APOLLO_SERVER_CORE_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_APOLLO_SERVER_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_APOLLO_SERVER_EXPRESS_ENABLED": [ @@ -1737,14 +1784,14 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_AWS_ADD_SPAN_POINTERS": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_AWS_SDK_AWS_BATCH_PROPAGATION_ENABLED": [ @@ -1814,7 +1861,7 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_AWS_SDK_EVENTBRIDGE_BATCH_PROPAGATION_ENABLED": [ @@ -1919,7 +1966,7 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_AWS_SDK_SNS_BATCH_PROPAGATION_ENABLED": [ @@ -1996,14 +2043,14 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_AZURE_FUNCTIONS_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_AZURE_SERVICEBUS_BATCH_LINKS_ENABLED": [ @@ -2017,21 +2064,21 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_BAGGAGE_MAX_BYTES": [ { "implementation": "A", "type": "int", - "default": 8192 + "default": "8192" } ], "DD_TRACE_BAGGAGE_MAX_ITEMS": [ { "implementation": "A", "type": "int", - "default": 64 + "default": "64" } ], "DD_TRACE_BAGGAGE_TAG_KEYS": [ @@ -2052,14 +2099,14 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_BODY_PARSER_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_BSON_ENABLED": [ @@ -2073,28 +2120,28 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_BUNYAN_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_CASSANDRA_DRIVER_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_CHILD_PROCESS_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_CLIENT_IP_ENABLED": [ @@ -2104,7 +2151,7 @@ "configurationNames": [ "clientIpEnabled" ], - "default": false + "default": "false" } ], "DD_TRACE_CLIENT_IP_HEADER": [ @@ -2114,7 +2161,7 @@ "configurationNames": [ "clientIpHeader" ], - "default": "__UNSET__" + "default": null } ], "DD_TRACE_CLOUD_PAYLOAD_TAGGING_MAX_DEPTH": [ @@ -2124,7 +2171,7 @@ "configurationNames": [ "cloudPayloadTagging.maxDepth" ], - "default": 10 + "default": "10" } ], "DD_TRACE_CLOUD_REQUEST_PAYLOAD_TAGGING": [ @@ -2134,7 +2181,7 @@ "configurationNames": [ "cloudPayloadTagging.request" ], - "default": [] + "default": "[]" } ], "DD_TRACE_CLOUD_RESPONSE_PAYLOAD_TAGGING": [ @@ -2144,7 +2191,7 @@ "configurationNames": [ "cloudPayloadTagging.request" ], - "default": [] + "default": "[]" } ], "DD_TRACE_COLLECTIONS_ENABLED": [ @@ -2165,70 +2212,70 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_CONNECT_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_COOKIE_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_COOKIE_PARSER_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_COUCHBASE_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_CRYPTO_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_CUCUMBER_CUCUMBER_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_CUCUMBER_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_CYPRESS_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_DD_TRACE_API_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_DEBUG": [ @@ -2256,49 +2303,49 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_DYNAMODB_TABLE_PRIMARY_KEYS": [ { "implementation": "A", "type": "string", - "default": "__UNSET__" + "default": null } ], "DD_TRACE_ELASTICSEARCH_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_ELASTIC_ELASTICSEARCH_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_ELASTIC_TRANSPORT_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_ENCODING_DEBUG": [ { "implementation": "A", "type": "boolean", - "default": false + "default": "false" } ], "DD_TRACE_EXPERIMENTAL_B3_ENABLED": [ @@ -2318,7 +2365,7 @@ "configurationNames": [ "experimental.exporter" ], - "default": "__UNSET__" + "default": null } ], "DD_TRACE_EXPERIMENTAL_GET_RUM_DATA_ENABLED": [ @@ -2328,7 +2375,7 @@ "configurationNames": [ "experimental.enableGetRumData" ], - "default": false + "default": "false" } ], "DD_TRACE_EXPERIMENTAL_SPAN_COUNTS": [ @@ -2349,42 +2396,42 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_EXPRESS_MONGO_SANITIZE_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_EXPRESS_SESSION_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_FASTIFY_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_FETCH_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_FIND_MY_WAY_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_FLUSH_INTERVAL": [ @@ -2394,14 +2441,14 @@ "configurationNames": [ "flushInterval" ], - "default": 2000 + "default": "2000" } ], "DD_TRACE_FS_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_GCP_PUBSUB_PUSH_ENABLED": [ @@ -2415,14 +2462,14 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_GIT_METADATA_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_GLOBAL_TAGS": [ @@ -2436,14 +2483,14 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_GOOGLE_CLOUD_VERTEXAI_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_GOOGLE_GAX_ENABLED": [ @@ -2457,21 +2504,21 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_GRAPHQL_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_GRAPHQL_ERROR_EXTENSIONS": [ { "implementation": "A", "type": "array", - "default": [] + "default": "[]" } ], "DD_TRACE_GRAPHQL_TAG_ENABLED": [ @@ -2492,7 +2539,7 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_GRAPHQL_YOGA_ENABLED": [ @@ -2506,14 +2553,14 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_GRPC_GRPC_JS_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_GRPC_PROTO_LOADER_ENABLED": [ @@ -2527,7 +2574,7 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_HAPI_BOOM_ENABLED": [ @@ -2541,112 +2588,112 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_HAPI_HAPI_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_HEADER_TAGS": [ { "implementation": "A", "type": "array", - "default": [] + "default": "[]" } ], "DD_TRACE_HONO_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_HTTP2_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_HTTPS_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_HTTP_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_INFERRED_PROXY_SERVICES_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": false + "default": "false" } ], "DD_TRACE_IOREDIS_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_IOVALKEY_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_JEST_CIRCUS_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_JEST_CONFIG_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_JEST_CORE_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_JEST_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_JEST_ENVIRONMENT_JSDOM_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_JEST_ENVIRONMENT_NODE_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_JEST_GLOBALS_ENABLED": [ @@ -2660,63 +2707,63 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_JEST_RUNTIME_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_JEST_TEST_SEQUENCER_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_JEST_TRANSFORM_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_JEST_WORKER_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_KAFKAJS_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_KNEX_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_KOA_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_KOA_ROUTER_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_KOA_ROUTE_ENABLED": [ @@ -2751,14 +2798,14 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_LANGCHAIN_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_LANGCHAIN_GOOGLE_GENAI_ENABLED": [ @@ -2779,7 +2826,7 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_LDAPJS_PROMISE_ENABLED": [ @@ -2793,21 +2840,21 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_LIMITD_CLIENT_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_LODASH_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_LOG_LEVEL": [ @@ -2828,28 +2875,28 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_MEMCACHED_COMMAND_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": false + "default": "false" } ], "DD_TRACE_MEMCACHED_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_MICROGATEWAY_CORE_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_MIDDIE_ENABLED": [ @@ -2863,42 +2910,42 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_MOCHA_EACH_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_MOCHA_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_MOLECULER_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_MONGODB_CORE_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_MONGODB_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_MONGODB_HEARTBEAT_ENABLED": [ @@ -2912,56 +2959,56 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_MQUERY_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_MULTER_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_MYSQL2_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_MYSQL_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_NATIVE_SPAN_EVENTS": [ { "implementation": "A", "type": "boolean", - "default": false + "default": "false" } ], "DD_TRACE_NET_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_NEXT_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_NODE_CHILD_PROCESS_ENABLED": [ @@ -2975,21 +3022,21 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_NODE_SERIALIZE_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_NYC_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_OBFUSCATION_QUERY_STRING_REGEXP": [ @@ -3003,42 +3050,42 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_OPENSEARCH_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_OPENSEARCH_PROJECT_OPENSEARCH_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_OPENTELEMETRY_SDK_TRACE_NODE_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_ORACLEDB_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_OTEL_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": false + "default": "false" } ], "DD_TRACE_PARTIAL_FLUSH_MIN_SPANS": [ @@ -3048,28 +3095,28 @@ "configurationNames": [ "flushMinSpans" ], - "default": 1000 + "default": "1000" } ], "DD_TRACE_PASSPORT_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_PASSPORT_HTTP_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_PASSPORT_LOCAL_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_PEER_SERVICE_DEFAULTS_ENABLED": [ @@ -3086,7 +3133,7 @@ { "implementation": "A", "type": "string", - "default": {} + "default": "{}" } ], "DD_TRACE_PG_CURSOR_ENABLED": [ @@ -3100,14 +3147,14 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_PG_NATIVE_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_PG_QUERY_STREAM_ENABLED": [ @@ -3121,42 +3168,42 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_PINO_PRETTY_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_PLAYWRIGHT_CORE_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_PLAYWRIGHT_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_PLAYWRIGHT_TEST_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_PRISMA_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_PROCESS_ENABLED": [ @@ -3170,14 +3217,14 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_PROMISE_JS_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_PROPAGATION_BEHAVIOR_EXTRACT": [ @@ -3191,7 +3238,7 @@ { "implementation": "A", "type": "boolean", - "default": false + "default": "false" } ], "DD_TRACE_PROPAGATION_STYLE": [ @@ -3240,21 +3287,21 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_PUG_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_Q_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_RATE_LIMIT": [ @@ -3264,7 +3311,7 @@ "configurationNames": [ "ingestion.rateLimit" ], - "default": 100 + "default": "100" } ], "DD_TRACE_REACT_DOM_ENABLED": [ @@ -3285,21 +3332,21 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_REDIS_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_REMOVE_INTEGRATION_SERVICE_NAMES_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": false + "default": "false" } ], "DD_TRACE_REPORT_HOSTNAME": [ @@ -3309,7 +3356,7 @@ "configurationNames": [ "reportHostname" ], - "default": false + "default": "false" } ], "DD_TRACE_REQUEST_ENABLED": [ @@ -3323,28 +3370,28 @@ { "implementation": "A", "type": "boolean", - "default": false + "default": "false" } ], "DD_TRACE_RESTIFY_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_RHEA_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_ROUTER_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_SAMPLE_RATE": [ @@ -3354,7 +3401,7 @@ "configurationNames": [ "ingestion.sampleRate" ], - "default": "__UNSET__" + "default": null } ], "DD_TRACE_SAMPLING_RULES": [ @@ -3364,49 +3411,49 @@ "configurationNames": [ "samplingRules" ], - "default": [] + "default": "[]" } ], "DD_TRACE_SCOPE": [ { "implementation": "A", "type": "string", - "default": "__UNSET__" + "default": null } ], "DD_TRACE_SELENIUM_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_SELENIUM_WEBDRIVER_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_SEQUELIZE_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_SHAREDB_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_SMITHY_SMITHY_CLIENT_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_SPAN_ATTRIBUTE_SCHEMA": [ @@ -3423,7 +3470,7 @@ { "implementation": "A", "type": "int", - "default": 0 + "default": "0" } ], "DD_TRACE_SQLITE3_ENABLED": [ @@ -3440,7 +3487,7 @@ "configurationNames": [ "startupLogs" ], - "default": false + "default": "false" } ], "DD_TRACE_STATS_COMPUTATION_ENABLED": [ @@ -3471,105 +3518,105 @@ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_UNDICI_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_URL_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_VITEST_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_VITEST_RUNNER_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_VM_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_WEBSOCKET_MESSAGES_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_WEBSOCKET_MESSAGES_INHERIT_SAMPLING": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_WEBSOCKET_MESSAGES_SEPARATE_TRACES": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_WHEN_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_WINSTON_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_WORKERPOOL_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_WS_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_TRACE_X_DATADOG_TAGS_MAX_LENGTH": [ { "implementation": "A", "type": "int", - "default": 512 + "default": "512" } ], "DD_TRACING_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": true + "default": "true" } ], "DD_VERSION": [ @@ -3586,63 +3633,63 @@ { "implementation": "A", "type": "int", - "default": 128 + "default": "128" } ], "DD_VERTEXAI_SPAN_PROMPT_COMPLETION_SAMPLE_RATE": [ { "implementation": "A", "type": "decimal", - "default": 1 + "default": "1" } ], "DD_VITEST_WORKER": [ { "implementation": "A", "type": "string", - "default": "__UNSET__" + "default": null } ], "OTEL_BSP_MAX_EXPORT_BATCH_SIZE": [ { "implementation": "A", "type": "int", - "default": 512 + "default": "512" } ], "OTEL_BSP_MAX_QUEUE_SIZE": [ { "implementation": "A", "type": "int", - "default": 2048 + "default": "2048" } ], "OTEL_BSP_SCHEDULE_DELAY": [ { "implementation": "A", "type": "int", - "default": 5000 + "default": "5000" } ], "OTEL_EXPORTER_OTLP_ENDPOINT": [ { "implementation": "A", "type": "string", - "default": "__UNSET__" + "default": null } ], "OTEL_EXPORTER_OTLP_HEADERS": [ { "implementation": "A", "type": "string", - "default": "__UNSET__" + "default": null } ], "OTEL_EXPORTER_OTLP_LOGS_ENDPOINT": [ { "implementation": "A", "type": "string", - "default": "__UNSET__" + "default": null } ], "OTEL_EXPORTER_OTLP_LOGS_HEADERS": [ @@ -3663,14 +3710,14 @@ { "implementation": "A", "type": "int", - "default": 10000 + "default": "10000" } ], "OTEL_EXPORTER_OTLP_METRICS_ENDPOINT": [ { "implementation": "A", "type": "string", - "default": "__UNSET__" + "default": null } ], "OTEL_EXPORTER_OTLP_METRICS_HEADERS": [ @@ -3698,7 +3745,7 @@ { "implementation": "A", "type": "int", - "default": 10000 + "default": "10000" } ], "OTEL_EXPORTER_OTLP_PROTOCOL": [ @@ -3712,7 +3759,7 @@ { "implementation": "A", "type": "int", - "default": 10000 + "default": "10000" } ], "OTEL_LOGS_EXPORTER": [ @@ -3733,28 +3780,28 @@ { "implementation": "A", "type": "boolean", - "default": false + "default": "false" } ], "OTEL_METRIC_EXPORT_INTERVAL": [ { "implementation": "A", "type": "int", - "default": 10000 + "default": "10000" } ], "OTEL_METRIC_EXPORT_TIMEOUT": [ { "implementation": "A", "type": "int", - "default": 7500 + "default": "7500" } ], "OTEL_PROPAGATORS": [ { "implementation": "A", "type": "boolean", - "default": false + "default": "false" } ], "OTEL_RESOURCE_ATTRIBUTES": [ @@ -3768,7 +3815,7 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "OTEL_SERVICE_NAME": [ @@ -3785,7 +3832,7 @@ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": "otlp" } ], "OTEL_TRACES_SAMPLER": [ @@ -3795,7 +3842,7 @@ "configurationNames": [ "sampleRate" ], - "default": "__UNSET__" + "default": null } ], "OTEL_TRACES_SAMPLER_ARG": [ @@ -3805,16 +3852,8 @@ "configurationNames": [ "sampleRate" ], - "default": "__UNSET__" + "default": null } ] - }, - "deprecations": { - "DD_EXPERIMENTAL_PROFILING_ENABLED": "DD_PROFILING_ENABLED", - "DD_PROFILING_EXPERIMENTAL_CODEHOTSPOTS_ENABLED": "DD_PROFILING_CODEHOTSPOTS_ENABLED", - "DD_PROFILING_EXPERIMENTAL_CPU_ENABLED": "DD_PROFILING_CPU_ENABLED", - "DD_PROFILING_EXPERIMENTAL_ENDPOINT_COLLECTION_ENABLED": "DD_PROFILING_ENDPOINT_COLLECTION_ENABLED", - "DD_PROFILING_EXPERIMENTAL_TIMELINE_ENABLED": "DD_PROFILING_TIMELINE_ENABLED", - "DD_TRACE_EXPERIMENTAL_RUNTIME_ID_ENABLED": "DD_RUNTIME_METRICS_RUNTIME_ID_ENABLED" } } From 7954fbd9616fa53c216150b6e2e05309e07ae567 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Mon, 23 Feb 2026 04:16:17 +0100 Subject: [PATCH 04/17] fixup! --- packages/dd-trace/src/config/helper.js | 15 +- .../src/config/supported-configurations.json | 258 +++++++++--------- packages/dd-trace/test/config/index.spec.js | 5 +- 3 files changed, 141 insertions(+), 137 deletions(-) diff --git a/packages/dd-trace/src/config/helper.js b/packages/dd-trace/src/config/helper.js index b683da2c77b..0ba7b197758 100644 --- a/packages/dd-trace/src/config/helper.js +++ b/packages/dd-trace/src/config/helper.js @@ -37,17 +37,18 @@ const deprecations = {} for (const [canonical, configuration] of Object.entries(supportedConfigurations)) { for (const implementation of configuration) { - if (Array.isArray(implementation.aliases)) { - for (const alias of implementation.aliases) { - aliases[canonical] ??= new Set() - aliases[canonical].add(alias) - } - } - if (implementation.deprecated !== undefined) { + if (implementation.deprecated) { deprecations[canonical] = implementation.deprecated // Deprecated entries with an alias may not be listed in the supported configurations map if (implementation.aliases) { delete supportedConfigurations[canonical] + continue + } + } + if (Array.isArray(implementation.aliases)) { + for (const alias of implementation.aliases) { + aliases[canonical] ??= new Set() + aliases[canonical].add(alias) } } } diff --git a/packages/dd-trace/src/config/supported-configurations.json b/packages/dd-trace/src/config/supported-configurations.json index 126d30c91ff..c799867f58c 100644 --- a/packages/dd-trace/src/config/supported-configurations.json +++ b/packages/dd-trace/src/config/supported-configurations.json @@ -758,105 +758,105 @@ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_GIT_COMMIT_AUTHOR_EMAIL": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_GIT_COMMIT_AUTHOR_NAME": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_GIT_COMMIT_COMMITTER_DATE": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_GIT_COMMIT_COMMITTER_EMAIL": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_GIT_COMMIT_COMMITTER_NAME": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_GIT_COMMIT_HEAD_SHA": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_GIT_COMMIT_MESSAGE": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_GIT_COMMIT_SHA": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_GIT_FOLDER_PATH": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_GIT_PROPERTIES_FILE": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_GIT_PULL_REQUEST_BASE_BRANCH": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_GIT_PULL_REQUEST_BASE_BRANCH_SHA": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_GIT_REPOSITORY_URL": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_GIT_TAG": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_GRPC_CLIENT_ERROR_STATUSES": [ @@ -1077,14 +1077,14 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_LAMBDA_HANDLER": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_LANGCHAIN_SPAN_CHAR_LIMIT": [ @@ -1149,7 +1149,7 @@ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_METRICS_OTEL_ENABLED": [ @@ -1163,7 +1163,7 @@ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_OPENAI_LOGS_ENABLED": [ @@ -1184,7 +1184,7 @@ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_PLAYWRIGHT_WORKER": [ @@ -1205,7 +1205,7 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__", + "default": "false", "aliases": [ "DD_PROFILING_EXPERIMENTAL_CODEHOTSPOTS_ENABLED" ] @@ -1215,7 +1215,7 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__", + "default": "false", "aliases": [ "DD_PROFILING_CODEHOTSPOTS_ENABLED" ], @@ -1226,7 +1226,7 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__", + "default": "true (non-Windows) / false (Windows)", "aliases": [ "DD_PROFILING_EXPERIMENTAL_CPU_ENABLED" ] @@ -1236,7 +1236,7 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__", + "default": "true (non-Windows) / false (Windows)", "aliases": [ "DD_PROFILING_CPU_ENABLED" ], @@ -1247,14 +1247,14 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "false" } ], "DD_PROFILING_DEBUG_UPLOAD_COMPRESSION": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": "on" } ], "DD_PROFILING_ENABLED": [ @@ -1288,7 +1288,7 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__", + "default": "true (non-Windows) / false (Windows)", "aliases": [ "DD_PROFILING_EXPERIMENTAL_ENDPOINT_COLLECTION_ENABLED" ] @@ -1298,7 +1298,7 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__", + "default": "true (non-Windows) / false (Windows)", "aliases": [ "DD_PROFILING_ENDPOINT_COLLECTION_ENABLED" ], @@ -1309,28 +1309,28 @@ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": "process" } ], "DD_PROFILING_EXPERIMENTAL_OOM_HEAP_LIMIT_EXTENSION_SIZE": [ { "implementation": "A", "type": "int", - "default": "__UNKNOWN__" + "default": "0" } ], "DD_PROFILING_EXPERIMENTAL_OOM_MAX_HEAP_EXTENSION_COUNT": [ { "implementation": "A", "type": "int", - "default": "__UNKNOWN__" + "default": "0" } ], "DD_PROFILING_EXPERIMENTAL_OOM_MONITORING_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true (non-Windows) / false (Windows)" } ], "DD_PROFILING_EXPORTERS": [ @@ -1344,28 +1344,28 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_PROFILING_HEAP_SAMPLING_INTERVAL": [ { "implementation": "A", "type": "int", - "default": "__UNKNOWN__" + "default": "524288" } ], "DD_PROFILING_PPROF_PREFIX": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": "" } ], "DD_PROFILING_PROFILERS": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": "space,wall" } ], "DD_PROFILING_SOURCE_MAP": [ @@ -1400,28 +1400,28 @@ { "implementation": "A", "type": "int", - "default": "__UNKNOWN__" + "default": "65" } ], "DD_PROFILING_UPLOAD_TIMEOUT": [ { "implementation": "A", "type": "int", - "default": "__UNKNOWN__" + "default": "60000" } ], "DD_PROFILING_V8_PROFILER_BUG_WORKAROUND": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_PROFILING_WALLTIME_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_REMOTE_CONFIGURATION_ENABLED": [ @@ -1468,7 +1468,7 @@ { "implementation": "A", "type": "int", - "default": "__UNKNOWN__" + "default": "10000" } ], "DD_RUNTIME_METRICS_GC_ENABLED": [ @@ -1608,7 +1608,7 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__", + "default": "true", "configurationNames": [ "isTestDynamicInstrumentationEnabled" ] @@ -1618,35 +1618,35 @@ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_TEST_LOCAL_CONFIG_PATH": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_TEST_MANAGEMENT_ATTEMPT_TO_FIX_RETRIES": [ { "implementation": "A", "type": "int", - "default": "__UNKNOWN__" + "default": "20" } ], "DD_TEST_MANAGEMENT_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TEST_SESSION_NAME": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_TRACE_128_BIT_TRACEID_GENERATION_ENABLED": [ @@ -1697,7 +1697,7 @@ "configurationNames": [ "url" ], - "default": "__UNKNOWN__", + "default": null, "aliases": [ "DD_TRACE_URL" ] @@ -1763,21 +1763,21 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_APOLLO_SERVER_FASTIFY_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_APOLLO_SUBGRAPH_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AVSC_ENABLED": [ @@ -1798,63 +1798,63 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AWS_SDK_AWS_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AWS_SDK_BATCH_PROPAGATION_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AWS_SDK_BEDROCKRUNTIME_BATCH_PROPAGATION_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AWS_SDK_BEDROCKRUNTIME_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AWS_SDK_CLOUDWATCHLOGS_BATCH_PROPAGATION_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AWS_SDK_CLOUDWATCHLOGS_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AWS_SDK_DYNAMODB_BATCH_PROPAGATION_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AWS_SDK_DYNAMODB_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AWS_SDK_ENABLED": [ @@ -1868,98 +1868,98 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AWS_SDK_EVENTBRIDGE_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AWS_SDK_KINESIS_BATCH_PROPAGATION_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AWS_SDK_KINESIS_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AWS_SDK_LAMBDA_BATCH_PROPAGATION_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AWS_SDK_LAMBDA_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AWS_SDK_NODE_HTTP_HANDLER_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AWS_SDK_REDSHIFT_BATCH_PROPAGATION_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AWS_SDK_REDSHIFT_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AWS_SDK_S3_BATCH_PROPAGATION_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AWS_SDK_S3_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AWS_SDK_SFN_BATCH_PROPAGATION_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AWS_SDK_SFN_CLIENT_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AWS_SDK_SFN_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AWS_SDK_SMITHY_CLIENT_ENABLED": [ @@ -1973,70 +1973,70 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AWS_SDK_SNS_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AWS_SDK_SQS_BATCH_PROPAGATION_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AWS_SDK_SQS_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AWS_SDK_STATES_BATCH_PROPAGATION_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AWS_SDK_STATES_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AWS_SDK_STEPFUNCTIONS_BATCH_PROPAGATION_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AWS_SDK_STEPFUNCTIONS_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AXIOS_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AZURE_EVENTHUBS_BATCH_LINKS_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AZURE_EVENT_HUBS_ENABLED": [ @@ -2057,7 +2057,7 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_AZURE_SERVICE_BUS_ENABLED": [ @@ -2092,7 +2092,7 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_BLUEBIRD_ENABLED": [ @@ -2113,7 +2113,7 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_BULLMQ_ENABLED": [ @@ -2198,14 +2198,14 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_COMMONPLUGIN_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_CONFLUENTINC_KAFKA_JAVASCRIPT_ENABLED": [ @@ -2282,7 +2282,7 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "false" } ], "DD_TRACE_DISABLED_INSTRUMENTATIONS": [ @@ -2296,7 +2296,7 @@ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_TRACE_DNS_ENABLED": [ @@ -2355,7 +2355,7 @@ "configurationNames": [ "experimental.b3" ], - "default": "__UNKNOWN__" + "default": "false" } ], "DD_TRACE_EXPERIMENTAL_EXPORTER": [ @@ -2382,14 +2382,14 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": null } ], "DD_TRACE_EXPERIMENTAL_STATE_TRACKING": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": null } ], "DD_TRACE_EXPRESS_ENABLED": [ @@ -2455,7 +2455,7 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_GENERIC_POOL_ENABLED": [ @@ -2476,7 +2476,7 @@ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_TRACE_GOOGLE_CLOUD_PUBSUB_ENABLED": [ @@ -2497,7 +2497,7 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_GOOGLE_GENAI_ENABLED": [ @@ -2525,14 +2525,14 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_GRAPHQL_TOOLS_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_GRAPHQL_TOOLS_EXECUTOR_ENABLED": [ @@ -2546,7 +2546,7 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_GRPC_ENABLED": [ @@ -2567,7 +2567,7 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_HANDLEBARS_ENABLED": [ @@ -2581,7 +2581,7 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_HAPI_ENABLED": [ @@ -2700,7 +2700,7 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_JEST_REPORTERS_ENABLED": [ @@ -2770,28 +2770,28 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_KOA_WEBSOCKET_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_LANGCHAIN_ANTHROPIC_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_LANGCHAIN_COHERE_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_LANGCHAIN_CORE_ENABLED": [ @@ -2812,14 +2812,14 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_LANGCHAIN_OPENAI_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_LDAPJS_ENABLED": [ @@ -2833,7 +2833,7 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_LEGACY_BAGGAGE_ENABLED": [ @@ -2861,14 +2861,14 @@ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": "debug" } ], "DD_TRACE_LOOPBACK_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_MARIADB_ENABLED": [ @@ -2903,7 +2903,7 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_MIDDLEWARE_TRACING_ENABLED": [ @@ -2952,7 +2952,7 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_MONGOOSE_ENABLED": [ @@ -3015,7 +3015,7 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_NODE_REDIS_CLIENT_ENABLED": [ @@ -3126,7 +3126,7 @@ "configurationNames": [ "spanComputePeerService" ], - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_PEER_SERVICE_MAPPING": [ @@ -3140,7 +3140,7 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_PG_ENABLED": [ @@ -3161,7 +3161,7 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_PINO_ENABLED": [ @@ -3210,7 +3210,7 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_PROMISE_ENABLED": [ @@ -3318,14 +3318,14 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_REACT_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_REDIS_CLIENT_ENABLED": [ @@ -3363,7 +3363,7 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_RESOURCE_RENAMING_ENABLED": [ @@ -3477,7 +3477,7 @@ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_STARTUP_LOGS": [ @@ -3497,21 +3497,21 @@ "configurationNames": [ "stats" ], - "default": "__UNKNOWN__" + "default": "false" } ], "DD_TRACE_SUFFIXPLUGIN_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "__UNKNOWN__" + "default": "true" } ], "DD_TRACE_TAGS": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "DD_TRACE_TEDIOUS_ENABLED": [ @@ -3766,14 +3766,14 @@ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "OTEL_LOG_LEVEL": [ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "OTEL_METRICS_EXPORTER": [ @@ -3808,7 +3808,7 @@ { "implementation": "A", "type": "string", - "default": "__UNKNOWN__" + "default": null } ], "OTEL_SDK_DISABLED": [ diff --git a/packages/dd-trace/test/config/index.spec.js b/packages/dd-trace/test/config/index.spec.js index 159eecefd0f..66adc05e937 100644 --- a/packages/dd-trace/test/config/index.spec.js +++ b/packages/dd-trace/test/config/index.spec.js @@ -52,7 +52,10 @@ describe('Config', () => { // Reload the config module with each call to getConfig to ensure we get a new instance of the config. getConfig = (options) => { - const configHelper = proxyquire.noPreserveCache()('../../src/config/helper', {}) + const supportedConfigurations = proxyquire.noPreserveCache()('../../src/config/supported-configurations.json', {}) + const configHelper = proxyquire.noPreserveCache()('../../src/config/helper', { + './supported-configurations.json': supportedConfigurations, + }) const serverless = proxyquire.noPreserveCache()('../../src/serverless', {}) return proxyquire.noPreserveCache()('../../src/config', { './defaults': configDefaults, From 60be11a8383eac897e0664deac780c546ce7eda6 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Mon, 23 Feb 2026 04:35:12 +0100 Subject: [PATCH 05/17] fixup! --- packages/dd-trace/src/config/supported-configurations.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/dd-trace/src/config/supported-configurations.json b/packages/dd-trace/src/config/supported-configurations.json index c799867f58c..5b8d10a06a2 100644 --- a/packages/dd-trace/src/config/supported-configurations.json +++ b/packages/dd-trace/src/config/supported-configurations.json @@ -145,7 +145,7 @@ "configurationNames": [ "appsec.apiSecurity.downstreamBodyAnalysisSampleRate" ], - "default": 0.5 + "default": "0.5" } ], "DD_API_SECURITY_MAX_DOWNSTREAM_REQUEST_BODY_ANALYSIS": [ From 4ea10d5f8ddd3142eb5c0e91cc0d85f579363876 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Mon, 23 Feb 2026 15:28:56 +0100 Subject: [PATCH 06/17] fixup! --- .gitlab-ci.yml | 2 +- index.d.ts | 43 ++ .../datadog-plugin-grpc/test/client.spec.js | 5 +- packages/dd-trace/src/config/defaults.js | 286 +++------- .../src/config/supported-configurations.json | 491 ++++++++++++++---- packages/dd-trace/src/constants.js | 2 - packages/dd-trace/test/config/index.spec.js | 14 +- 7 files changed, 525 insertions(+), 318 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 053fa45682f..4f02422dbb5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -12,7 +12,7 @@ validate_supported_configurations_v2_local_file: extends: .validate_supported_configurations_v2_local_file variables: LOCAL_JSON_PATH: "packages/dd-trace/src/config/supported-configurations.json" - BACKFILLED: "false" + BACKFILLED: "true" update_central_configurations_version_range_v2: extends: .update_central_configurations_version_range_v2 diff --git a/index.d.ts b/index.d.ts index 20ec4864b85..2b991e7498b 100644 --- a/index.d.ts +++ b/index.d.ts @@ -150,6 +150,7 @@ interface Tracer extends opentracing.Tracer { * Extends DatadogNodeServerProvider with Remote Config integration for dynamic flag configuration. * Enable with DD_EXPERIMENTAL_FLAGGING_PROVIDER_ENABLED=true. * + * @env DD_EXPERIMENTAL_FLAGGING_PROVIDER_ENABLED * @beta This feature is in preview and not ready for production use */ openfeature: tracer.OpenFeatureProvider; @@ -469,6 +470,8 @@ declare namespace tracer { /** * Used to disable APM Tracing when using standalone products * @default true + * @env DD_APM_TRACING_ENABLED + * Programmatic configuration takes precedence over the environment variables listed above. */ apmTracingEnabled?: boolean @@ -507,6 +510,8 @@ declare namespace tracer { /** * The url of the trace agent that the tracer will submit to. * Takes priority over hostname and port, if set. + * @env DD_TRACE_AGENT_URL + * Programmatic configuration takes precedence over the environment variables listed above. */ url?: string; @@ -528,6 +533,8 @@ declare namespace tracer { /** * Whether to enable profiling. + * @env DD_PROFILING_ENABLED + * Programmatic configuration takes precedence over the environment variables listed above. */ profiling?: boolean @@ -568,6 +575,8 @@ declare namespace tracer { /** * Controls the ingestion sample rate (between 0 and 1) between the agent and the backend. + * @env DD_TRACE_SAMPLE_RATE, OTEL_TRACES_SAMPLER, OTEL_TRACES_SAMPLER_ARG + * Programmatic configuration takes precedence over the environment variables listed above. */ sampleRate?: number; @@ -575,6 +584,8 @@ declare namespace tracer { * Global rate limit that is applied on the global sample rate and all rules, * and controls the ingestion rate limit between the agent and the backend. * Defaults to deferring the decision to the agent. + * @env DD_TRACE_RATE_LIMIT + * Programmatic configuration takes precedence over the environment variables listed above. */ rateLimit?: number, @@ -584,12 +595,16 @@ declare namespace tracer { * a trace's `service` and `name`, and a corresponding `sampleRate`. If not * specified, will defer to global sampling rate for all spans. * @default [] + * @env DD_TRACE_SAMPLING_RULES + * Programmatic configuration takes precedence over the environment variables listed above. */ samplingRules?: SamplingRule[] /** * Span sampling rules that take effect when the enclosing trace is dropped, to ingest single spans * @default [] + * @env DD_SPAN_SAMPLING_RULES, DD_SPAN_SAMPLING_RULES_FILE + * Programmatic configuration takes precedence over the environment variables listed above. */ spanSamplingRules?: SpanSamplingRule[] @@ -665,11 +680,15 @@ declare namespace tracer { ingestion?: { /** * Controls the ingestion sample rate (between 0 and 1) between the agent and the backend. + * @env DD_TRACE_SAMPLE_RATE, OTEL_TRACES_SAMPLER, OTEL_TRACES_SAMPLER_ARG + * Programmatic configuration takes precedence over the environment variables listed above. */ sampleRate?: number /** * Controls the ingestion rate limit between the agent and the backend. Defaults to deferring the decision to the agent. + * @env DD_TRACE_RATE_LIMIT + * Programmatic configuration takes precedence over the environment variables listed above. */ rateLimit?: number }; @@ -773,6 +792,8 @@ declare namespace tracer { * Can be configured via DD_EXPERIMENTAL_FLAGGING_PROVIDER_INITIALIZATION_TIMEOUT_MS environment variable. * * @default 30000 + * @env DD_EXPERIMENTAL_FLAGGING_PROVIDER_INITIALIZATION_TIMEOUT_MS + * Programmatic configuration takes precedence over the environment variables listed above. */ initializationTimeoutMs?: number } @@ -798,6 +819,8 @@ declare namespace tracer { /** * Global tags that should be assigned to every span. + * @env DD_TAGS, OTEL_RESOURCE_ATTRIBUTES + * Programmatic configuration takes precedence over the environment variables listed above. */ tags?: { [key: string]: any }; @@ -812,6 +835,8 @@ declare namespace tracer { /** * A string representing the minimum tracer log level to use when debug logging is enabled * @default 'debug' + * @env DD_TRACE_LOG_LEVEL, OTEL_LOG_LEVEL + * Programmatic configuration takes precedence over the environment variables listed above. */ logLevel?: 'error' | 'debug' @@ -828,6 +853,8 @@ declare namespace tracer { * Can also be enabled via the DD_DATA_STREAMS_ENABLED environment variable. * When not provided, the value of DD_DATA_STREAMS_ENABLED is used. * @default false + * @env DD_DATA_STREAMS_ENABLED + * Programmatic configuration takes precedence over the environment variables listed above. */ dsmEnabled?: boolean @@ -840,6 +867,8 @@ declare namespace tracer { * This option requires DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED=true to take effect. * The propagation hash enables correlation between traces and database operations. * @default false + * @env DD_DBM_INJECT_SQL_BASEHASH + * Programmatic configuration takes precedence over the environment variables listed above. */ injectSqlBaseHash?: boolean } @@ -1086,11 +1115,16 @@ declare namespace tracer { /** * Custom header name to source the http.client_ip tag from. + * @env DD_TRACE_CLIENT_IP_HEADER + * Programmatic configuration takes precedence over the environment variables listed above. */ clientIpHeader?: string, /** * The selection and priority order of context propagation injection and extraction mechanisms. + * @env DD_TRACE_PROPAGATION_STYLE, DD_TRACE_PROPAGATION_STYLE_INJECT, DD_TRACE_PROPAGATION_STYLE_EXTRACT + * Also configurable via OTEL_PROPAGATORS when DD-specific propagation vars are not set. + * Programmatic configuration takes precedence over the environment variables listed above. */ tracePropagationStyle?: string[] | PropagationStyle @@ -1101,11 +1135,15 @@ declare namespace tracer { /** * Additional JSONPath queries to replace with `redacted` in request payloads * Undefined or invalid JSONPath queries disable the feature for requests. + * @env DD_TRACE_CLOUD_REQUEST_PAYLOAD_TAGGING + * Programmatic configuration takes precedence over the environment variables listed above. */ request?: string, /** * Additional JSONPath queries to replace with `redacted` in response payloads * Undefined or invalid JSONPath queries disable the feature for responses. + * @env DD_TRACE_CLOUD_RESPONSE_PAYLOAD_TAGGING + * Programmatic configuration takes precedence over the environment variables listed above. */ response?: string, /** @@ -1118,6 +1156,8 @@ declare namespace tracer { /** * Configuration enabling LLM Observability. Enablement is superseded by the DD_LLMOBS_ENABLED environment variable. + * @env DD_LLMOBS_ENABLED + * The environment variable listed above takes precedence over programmatic configuration. */ llmobs?: llmobs.LLMObsEnableOptions @@ -2610,6 +2650,7 @@ declare namespace tracer { * [openai](https://platform.openai.com/docs/api-reference?lang=node.js) module. * * Note that for logs to work you'll need to set the `DD_API_KEY` environment variable. + * @env DD_API_KEY * You'll also need to adjust any firewall settings to allow the tracer to communicate * with `http-intake.logs.datadoghq.com`. * @@ -2822,6 +2863,7 @@ declare namespace tracer { /** * Controls whether websocket messages should be traced. * This is also configurable via `DD_TRACE_WEBSOCKET_MESSAGES_ENABLED`. + * @env DD_TRACE_WEBSOCKET_MESSAGES_ENABLED */ traceWebsocketMessagesEnabled?: boolean; } @@ -3660,6 +3702,7 @@ declare namespace tracer { /** * The name of the ML application that the agent is orchestrating. * If not provided, the default value will be set to mlApp provided during initialization, or `DD_LLMOBS_ML_APP`. + * @env DD_LLMOBS_ML_APP */ mlApp?: string, diff --git a/packages/datadog-plugin-grpc/test/client.spec.js b/packages/datadog-plugin-grpc/test/client.spec.js index 0df41359406..c0f141e0aec 100644 --- a/packages/datadog-plugin-grpc/test/client.spec.js +++ b/packages/datadog-plugin-grpc/test/client.spec.js @@ -11,10 +11,13 @@ const { assertObjectContains } = require('../../../integration-tests/helpers') const loader = require('../../../versions/@grpc/proto-loader').get() const { withNamingSchema, withPeerService, withVersions } = require('../../dd-trace/test/setup/mocha') const agent = require('../../dd-trace/test/plugins/agent') -const { ERROR_MESSAGE, ERROR_TYPE, ERROR_STACK, GRPC_CLIENT_ERROR_STATUSES } = require('../../dd-trace/src/constants') +const { ERROR_MESSAGE, ERROR_TYPE, ERROR_STACK } = require('../../dd-trace/src/constants') +const defaults = require('../../dd-trace/src/config/defaults') const { NODE_MAJOR } = require('../../../version') const getService = require('./service') +const GRPC_CLIENT_ERROR_STATUSES = defaults['grpc.client.error.statuses'] + const pkgs = NODE_MAJOR > 14 ? ['@grpc/grpc-js'] : ['grpc', '@grpc/grpc-js'] describe('Plugin', () => { diff --git a/packages/dd-trace/src/config/defaults.js b/packages/dd-trace/src/config/defaults.js index a4729dbc899..62e6bd200f0 100644 --- a/packages/dd-trace/src/config/defaults.js +++ b/packages/dd-trace/src/config/defaults.js @@ -1,15 +1,12 @@ 'use strict' const pkg = require('../pkg') -const { GRPC_CLIENT_ERROR_STATUSES, GRPC_SERVER_ERROR_STATUSES } = require('../constants') const { getEnvironmentVariable: getEnv } = require('./helper') +const { isFalse, isTrue } = require('../util') -// eslint-disable-next-line @stylistic/max-len -const qsRegex = String.raw`(?:p(?:ass)?w(?:or)?d|pass(?:_?phrase)?|secret|(?:api_?|private_?|public_?|access_?|secret_?)key(?:_?id)?|token|consumer_?(?:id|key|secret)|sign(?:ed|ature)?|auth(?:entication|orization)?)(?:(?:\s|%20)*(?:=|%3D)[^&]+|(?:"|%22)(?:\s|%20)*(?::|%3A)(?:\s|%20)*(?:"|%22)(?:%2[^2]|%[^2]|[^"%])+(?:"|%22))|bearer(?:\s|%20)+[a-z0-9\._\-]+|token(?::|%3A)[a-z0-9]{13}|gh[opsu]_[0-9a-zA-Z]{36}|ey[I-L](?:[\w=-]|%3D)+\.ey[I-L](?:[\w=-]|%3D)+(?:\.(?:[\w.+\/=-]|%3D|%2F|%2B)+)?|[\-]{5}BEGIN(?:[a-z\s]|%20)+PRIVATE(?:\s|%20)KEY[\-]{5}[^\-]+[\-]{5}END(?:[a-z\s]|%20)+PRIVATE(?:\s|%20)KEY|ssh-rsa(?:\s|%20)*(?:[a-z0-9\/\.+]|%2F|%5C|%2B){100,}` -// eslint-disable-next-line @stylistic/max-len -const defaultWafObfuscatorKeyRegex = String.raw`(?i)pass|pw(?:or)?d|secret|(?:api|private|public|access)[_-]?key|token|consumer[_-]?(?:id|key|secret)|sign(?:ed|ature)|bearer|authorization|jsessionid|phpsessid|asp\.net[_-]sessionid|sid|jwt` -// eslint-disable-next-line @stylistic/max-len -const defaultWafObfuscatorValueRegex = String.raw`(?i)(?:p(?:ass)?w(?:or)?d|pass(?:[_-]?phrase)?|secret(?:[_-]?key)?|(?:(?:api|private|public|access)[_-]?)key(?:[_-]?id)?|(?:(?:auth|access|id|refresh)[_-]?)?token|consumer[_-]?(?:id|key|secret)|sign(?:ed|ature)?|auth(?:entication|orization)?|jsessionid|phpsessid|asp\.net(?:[_-]|-)sessionid|sid|jwt)(?:\s*=([^;&]+)|"\s*:\s*("[^"]+"|\d+))|bearer\s+([a-z0-9\._\-]+)|token\s*:\s*([a-z0-9]{13})|gh[opsu]_([0-9a-zA-Z]{36})|ey[I-L][\w=-]+\.(ey[I-L][\w=-]+(?:\.[\w.+\/=-]+)?)|[\-]{5}BEGIN[a-z\s]+PRIVATE\sKEY[\-]{5}([^\-]+)[\-]{5}END[a-z\s]+PRIVATE\sKEY|ssh-rsa\s*([a-z0-9\/\.+]{100,})` +const { + supportedConfigurations +} = /** @type {import('./helper').SupportedConfigurationsJson} */ (require('./supported-configurations.json')) const service = getEnv('AWS_LAMBDA_FUNCTION_NAME') || getEnv('FUNCTION_NAME') || // Google Cloud Function Name set by deprecated runtimes @@ -18,207 +15,94 @@ const service = getEnv('AWS_LAMBDA_FUNCTION_NAME') || pkg.name || 'node' -module.exports = { - apiKey: undefined, - appKey: undefined, - apmTracingEnabled: true, - 'appsec.apiSecurity.enabled': true, - 'appsec.apiSecurity.sampleDelay': 30, - 'appsec.apiSecurity.endpointCollectionEnabled': true, - 'appsec.apiSecurity.endpointCollectionMessageLimit': 300, - 'appsec.apiSecurity.downstreamBodyAnalysisSampleRate': 0.5, - 'appsec.apiSecurity.maxDownstreamRequestBodyAnalysis': 1, - 'appsec.blockedTemplateGraphql': undefined, - 'appsec.blockedTemplateHtml': undefined, - 'appsec.blockedTemplateJson': undefined, - 'appsec.enabled': undefined, - 'appsec.eventTracking.mode': 'identification', - // TODO appsec.extendedHeadersCollection is deprecated, to delete in a major - 'appsec.extendedHeadersCollection.enabled': false, - 'appsec.extendedHeadersCollection.redaction': true, - 'appsec.extendedHeadersCollection.maxHeaders': 50, - 'appsec.obfuscatorKeyRegex': defaultWafObfuscatorKeyRegex, - 'appsec.obfuscatorValueRegex': defaultWafObfuscatorValueRegex, - 'appsec.rasp.enabled': true, - // TODO Deprecated, to delete in a major - 'appsec.rasp.bodyCollection': false, - 'appsec.rateLimit': 100, - 'appsec.rules': undefined, - 'appsec.sca.enabled': undefined, - 'appsec.stackTrace.enabled': true, - 'appsec.stackTrace.maxDepth': 32, - 'appsec.stackTrace.maxStackTraces': 2, - 'appsec.wafTimeout': 5e3, // µs - baggageMaxBytes: 8192, - baggageMaxItems: 64, - baggageTagKeys: 'user.id,session.id,account.id', - clientIpEnabled: false, - clientIpHeader: undefined, +/** + * @param {string|null} raw + * @param {string} type + * @returns {string|number|boolean|Record|unknown[]|undefined} + */ +function parseDefaultByType (raw, type) { + if (raw === null || raw === '$dynamic') { + return + } + + switch (type) { + case 'boolean': + if (isTrue(raw)) return true + if (isFalse(raw)) return false + // TODO: What should we do with these? + return + case 'int': + case 'decimal': { + return Number(raw) + } + case 'array': { + if (raw.length === 0) return [] + return JSON.parse(raw) + } + case 'map': { + if (raw.length === 0) return {} + return JSON.parse(raw) + } + default: + return raw + } +} + +/** @type {Record} */ +const metadataDefaults = {} +for (const entries of Object.values(supportedConfigurations)) { + for (const entry of entries) { + if ( + entry.implementation !== 'A' || + entry.default === '$dynamic' || + !('configurationNames' in entry) || + !Array.isArray(entry.configurationNames) + ) { + continue + } + + const parsedValue = parseDefaultByType(entry.default, entry.type) + for (const configurationName of entry.configurationNames) { + metadataDefaults[configurationName] = entry.default === null ? undefined : parsedValue + } + } +} + +// Defaults required by JS config merge/applyCalculated that are not represented in supported-configurations. +const defaultsWithoutSupportedConfigurationEntry = { + 'cloudPayloadTagging.rules': [], 'cloudPayloadTagging.requestsEnabled': false, 'cloudPayloadTagging.responsesEnabled': false, - 'cloudPayloadTagging.maxDepth': 10, - 'cloudPayloadTagging.rules': [], - 'crashtracking.enabled': true, - 'codeOriginForSpans.enabled': true, - 'codeOriginForSpans.experimental.exit_spans.enabled': false, - dbmPropagationMode: 'disabled', - 'dbm.injectSqlBaseHash': false, - 'dogstatsd.hostname': '127.0.0.1', - 'dogstatsd.port': '8125', - dsmEnabled: false, - 'dynamicInstrumentation.captureTimeoutMs': 15, - 'dynamicInstrumentation.enabled': false, - 'dynamicInstrumentation.probeFile': undefined, - 'dynamicInstrumentation.redactedIdentifiers': [], - 'dynamicInstrumentation.redactionExcludedIdentifiers': [], - 'dynamicInstrumentation.uploadIntervalSeconds': 1, - env: undefined, - 'experimental.aiguard.enabled': false, - 'experimental.aiguard.endpoint': undefined, - 'experimental.aiguard.maxMessagesLength': 16, - 'experimental.aiguard.maxContentSize': 512 * 1024, - 'experimental.aiguard.timeout': 10_000, // ms - 'experimental.enableGetRumData': false, - 'experimental.exporter': undefined, - 'experimental.flaggingProvider.enabled': false, - 'experimental.flaggingProvider.initializationTimeoutMs': 30_000, - flushInterval: 2000, - flushMinSpans: 1000, - gitMetadataEnabled: true, - graphqlErrorExtensions: [], - 'grpc.client.error.statuses': GRPC_CLIENT_ERROR_STATUSES, - 'grpc.server.error.statuses': GRPC_SERVER_ERROR_STATUSES, - headerTags: [], - 'heapSnapshot.count': 0, - 'heapSnapshot.destination': '', - 'heapSnapshot.interval': 3600, - hostname: '127.0.0.1', - 'iast.dbRowsToTaint': 1, - 'iast.deduplicationEnabled': true, - 'iast.enabled': false, - 'iast.maxConcurrentRequests': 2, - 'iast.maxContextOperations': 2, - 'iast.redactionEnabled': true, - 'iast.redactionNamePattern': undefined, - 'iast.redactionValuePattern': undefined, - 'iast.requestSampling': 30, - 'iast.securityControlsConfiguration': undefined, - 'iast.telemetryVerbosity': 'INFORMATION', - 'iast.stackTrace.enabled': true, - injectionEnabled: [], - 'installSignature.id': undefined, - 'installSignature.time': undefined, - 'installSignature.type': undefined, - instrumentationSource: 'manual', - injectForce: undefined, isAzureFunction: false, isCiVisibility: false, - isEarlyFlakeDetectionEnabled: false, - isFlakyTestRetriesEnabled: false, - flakyTestRetriesCount: 5, isGCPFunction: false, - isGCPPubSubPushSubscriptionEnabled: true, + instrumentationSource: 'manual', + isServiceUserProvided: false, + lookup: undefined, + plugins: true, +} + +// These values are documented in supported-configurations as CI Visibility +// defaults. Keep startup baseline false and let #applyCalculated() switch them +// when CI Visibility is active. +// TODO: These entries should be removed. They are off by default +// because they rely on other configs. +const defaultsWithConditionalRuntimeBehavior = { isGitUploadEnabled: false, + isImpactedTestsEnabled: false, isIntelligentTestRunnerEnabled: false, isManualApiEnabled: false, - 'langchain.spanCharLimit': 128, - 'langchain.spanPromptCompletionSampleRate': 1, - 'llmobs.agentlessEnabled': undefined, - 'llmobs.enabled': false, - 'llmobs.mlApp': undefined, - ciVisibilityTestSessionName: '', - ciVisAgentlessLogSubmissionEnabled: false, - legacyBaggageEnabled: true, - isTestDynamicInstrumentationEnabled: false, - isServiceUserProvided: false, - testManagementAttemptToFixRetries: 20, isTestManagementEnabled: false, - isImpactedTestsEnabled: false, - logInjection: true, - otelLogsEnabled: false, - otelUrl: undefined, - otelLogsUrl: undefined, // Will be computed using agent host - otelHeaders: undefined, - otelLogsHeaders: '', - otelProtocol: 'http/protobuf', - otelLogsProtocol: 'http/protobuf', - otelLogsTimeout: 10_000, - otelTimeout: 10_000, - otelBatchTimeout: 5000, - otelMaxExportBatchSize: 512, - otelMaxQueueSize: 2048, - otelMetricsEnabled: false, - otelMetricsUrl: undefined, // Will be computed using agent host - otelMetricsHeaders: '', - otelMetricsProtocol: 'http/protobuf', - otelMetricsTimeout: 10_000, - otelMetricsExportTimeout: 7500, - otelMetricsExportInterval: 10_000, - otelMetricsTemporalityPreference: 'DELTA', // DELTA, CUMULATIVE, or LOWMEMORY - lookup: undefined, - inferredProxyServicesEnabled: false, - memcachedCommandEnabled: false, - middlewareTracingEnabled: true, - openAiLogsEnabled: false, - 'openai.spanCharLimit': 128, - peerServiceMapping: {}, - plugins: true, - port: '8126', - 'profiling.enabled': undefined, - 'propagateProcessTags.enabled': undefined, - 'profiling.exporters': 'agent', - 'profiling.sourceMap': true, - 'profiling.longLivedThreshold': undefined, - protocolVersion: '0.4', - queryStringObfuscation: qsRegex, - 'remoteConfig.enabled': true, - 'remoteConfig.pollInterval': 5, // seconds - reportHostname: false, - resourceRenamingEnabled: false, - 'runtimeMetrics.enabled': false, - 'runtimeMetrics.eventLoop': true, - 'runtimeMetrics.gc': true, - runtimeMetricsRuntimeId: false, - sampleRate: undefined, - 'sampler.rateLimit': 100, - 'sampler.rules': [], - 'sampler.spanSamplingRules': [], - scope: undefined, - service, - serviceMapping: {}, - site: 'datadoghq.com', - spanAttributeSchema: 'v0', - spanComputePeerService: false, - spanLeakDebug: 0, - spanRemoveIntegrationFromService: false, - startupLogs: false, - 'stats.enabled': false, - tags: {}, - tagsHeaderMaxLength: 512, - 'telemetry.debug': false, - 'telemetry.dependencyCollection': true, - 'telemetry.enabled': true, - 'telemetry.heartbeatInterval': 60_000, - 'telemetry.logCollection': true, - 'telemetry.metrics': true, - traceEnabled: true, - traceId128BitGenerationEnabled: true, - traceId128BitLoggingEnabled: true, - tracePropagationExtractFirst: false, - tracePropagationBehaviorExtract: 'continue', - 'tracePropagationStyle.inject': ['datadog', 'tracecontext', 'baggage'], - 'tracePropagationStyle.extract': ['datadog', 'tracecontext', 'baggage'], - 'tracePropagationStyle.otelPropagators': false, - traceWebsocketMessagesEnabled: true, - traceWebsocketMessagesInheritSampling: true, - traceWebsocketMessagesSeparateTraces: true, - tracing: true, - url: undefined, - version: pkg.version, - instrumentation_config_id: undefined, - 'vertexai.spanCharLimit': 128, - 'vertexai.spanPromptCompletionSampleRate': 1, - 'trace.aws.addSpanPointers': true, - 'trace.dynamoDb.tablePrimaryKeys': undefined, - 'trace.nativeSpanEvents': false, } + +/** @type {Record} */ +const defaults = { + ...defaultsWithoutSupportedConfigurationEntry, + ...metadataDefaults, + ...defaultsWithConditionalRuntimeBehavior, +} + +defaults.service = service +defaults.version = pkg.version + +module.exports = defaults diff --git a/packages/dd-trace/src/config/supported-configurations.json b/packages/dd-trace/src/config/supported-configurations.json index 5b8d10a06a2..598463f8267 100644 --- a/packages/dd-trace/src/config/supported-configurations.json +++ b/packages/dd-trace/src/config/supported-configurations.json @@ -102,6 +102,9 @@ "default": null, "aliases": [ "DATADOG_API_KEY" + ], + "configurationNames": [ + "apiKey" ] } ], @@ -162,7 +165,10 @@ { "implementation": "A", "type": "decimal", - "default": "30" + "default": "30", + "configurationNames": [ + "appsec.apiSecurity.sampleDelay" + ] } ], "DD_APM_FLUSH_DEADLINE_MILLISECONDS": [ @@ -339,7 +345,10 @@ { "implementation": "A", "type": "boolean", - "default": null + "default": null, + "configurationNames": [ + "appsec.sca.enabled" + ] } ], "DD_APPSEC_STACK_TRACE_ENABLED": [ @@ -376,7 +385,10 @@ { "implementation": "A", "type": "string", - "default": null + "default": null, + "configurationNames": [ + "appKey" + ] } ], "DD_AZURE_RESOURCE_GROUP": [ @@ -469,21 +481,30 @@ { "implementation": "A", "type": "boolean", - "default": "true" + "default": "true", + "configurationNames": [ + "isGitUploadEnabled" + ] } ], "DD_CIVISIBILITY_IMPACTED_TESTS_DETECTION_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "true" + "default": "true", + "configurationNames": [ + "isImpactedTestsEnabled" + ] } ], "DD_CIVISIBILITY_ITR_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "true" + "default": "true", + "configurationNames": [ + "isIntelligentTestRunnerEnabled" + ] } ], "DD_CIVISIBILITY_MANUAL_API_ENABLED": [ @@ -538,14 +559,20 @@ { "implementation": "A", "type": "boolean", - "default": "false" + "default": "false", + "configurationNames": [ + "codeOriginForSpans.experimental.exit_spans.enabled" + ] } ], "DD_CRASHTRACKING_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "true" + "default": "true", + "configurationNames": [ + "crashtracking.enabled" + ] } ], "DD_CUSTOM_TRACE_ID": [ @@ -559,7 +586,10 @@ { "implementation": "A", "type": "boolean", - "default": "false" + "default": "false", + "configurationNames": [ + "dsmEnabled" + ] } ], "DD_DBM_INJECT_SQL_BASEHASH": [ @@ -716,7 +746,10 @@ { "implementation": "A", "type": "boolean", - "default": null + "default": null, + "configurationNames": [ + "propagateProcessTags.enabled" + ] } ], "DD_EXPERIMENTAL_TEST_OPT_SETTINGS_CACHE": [ @@ -863,35 +896,50 @@ { "implementation": "A", "type": "array", - "default": "[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]" + "default": "[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]", + "configurationNames": [ + "grpc.client.error.statuses" + ] } ], "DD_GRPC_SERVER_ERROR_STATUSES": [ { "implementation": "A", "type": "array", - "default": "[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]" + "default": "[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]", + "configurationNames": [ + "grpc.server.error.statuses" + ] } ], "DD_HEAP_SNAPSHOT_COUNT": [ { "implementation": "A", "type": "int", - "default": "0" + "default": "0", + "configurationNames": [ + "heapSnapshot.count" + ] } ], "DD_HEAP_SNAPSHOT_DESTINATION": [ { "implementation": "A", "type": "string", - "default": "" + "default": "", + "configurationNames": [ + "heapSnapshot.destination" + ] } ], "DD_HEAP_SNAPSHOT_INTERVAL": [ { "implementation": "A", "type": "int", - "default": "3600" + "default": "3600", + "configurationNames": [ + "heapSnapshot.interval" + ] } ], "DD_IAST_DB_ROWS_TO_TAINT": [ @@ -1018,42 +1066,60 @@ { "implementation": "A", "type": "array", - "default": "[]" + "default": "[]", + "configurationNames": [ + "injectionEnabled" + ] } ], "DD_INJECT_FORCE": [ { "implementation": "A", "type": "boolean", - "default": null + "default": null, + "configurationNames": [ + "injectForce" + ] } ], "DD_INSTRUMENTATION_CONFIG_ID": [ { "implementation": "A", "type": "string", - "default": null + "default": null, + "configurationNames": [ + "instrumentation_config_id" + ] } ], "DD_INSTRUMENTATION_INSTALL_ID": [ { "implementation": "A", "type": "string", - "default": null + "default": null, + "configurationNames": [ + "installSignature.id" + ] } ], "DD_INSTRUMENTATION_INSTALL_TIME": [ { "implementation": "A", "type": "string", - "default": null + "default": null, + "configurationNames": [ + "installSignature.time" + ] } ], "DD_INSTRUMENTATION_INSTALL_TYPE": [ { "implementation": "A", "type": "string", - "default": null + "default": null, + "configurationNames": [ + "installSignature.type" + ] } ], "DD_INSTRUMENTATION_TELEMETRY_ENABLED": [ @@ -1063,6 +1129,9 @@ "default": "true", "aliases": [ "DD_TRACE_TELEMETRY_ENABLED" + ], + "configurationNames": [ + "telemetry.enabled" ] } ], @@ -1070,7 +1139,10 @@ { "implementation": "A", "type": "int", - "default": null + "default": null, + "configurationNames": [ + "profiling.longLivedThreshold" + ] } ], "DD_INTERNAL_PROFILING_TIMELINE_SAMPLING_ENABLED": [ @@ -1091,14 +1163,20 @@ { "implementation": "A", "type": "int", - "default": "128" + "default": "128", + "configurationNames": [ + "langchain.spanCharLimit" + ] } ], "DD_LANGCHAIN_SPAN_PROMPT_COMPLETION_SAMPLE_RATE": [ { "implementation": "A", "type": "decimal", - "default": "1" + "default": "1", + "configurationNames": [ + "langchain.spanPromptCompletionSampleRate" + ] } ], "DD_LLMOBS_AGENTLESS_ENABLED": [ @@ -1115,7 +1193,10 @@ { "implementation": "A", "type": "boolean", - "default": "false" + "default": "false", + "configurationNames": [ + "llmobs.enabled" + ] } ], "DD_LLMOBS_ML_APP": [ @@ -1142,7 +1223,10 @@ { "implementation": "A", "type": "boolean", - "default": "false" + "default": "false", + "configurationNames": [ + "otelLogsEnabled" + ] } ], "DD_LOG_LEVEL": [ @@ -1156,7 +1240,10 @@ { "implementation": "A", "type": "boolean", - "default": "false" + "default": "false", + "configurationNames": [ + "otelMetricsEnabled" + ] } ], "DD_MINI_AGENT_PATH": [ @@ -1170,14 +1257,20 @@ { "implementation": "A", "type": "boolean", - "default": "false" + "default": "false", + "configurationNames": [ + "openAiLogsEnabled" + ] } ], "DD_OPENAI_SPAN_CHAR_LIMIT": [ { "implementation": "A", "type": "int", - "default": "128" + "default": "128", + "configurationNames": [ + "openai.spanCharLimit" + ] } ], "DD_PIPELINE_EXECUTION_ID": [ @@ -1262,7 +1355,7 @@ "implementation": "A", "type": "string", "configurationNames": [ - "profiling" + "profiling.enabled" ], "default": null, "aliases": [ @@ -1337,7 +1430,10 @@ { "implementation": "A", "type": "string", - "default": "agent" + "default": "agent", + "configurationNames": [ + "profiling.exporters" + ] } ], "DD_PROFILING_HEAP_ENABLED": [ @@ -1372,7 +1468,10 @@ { "implementation": "A", "type": "boolean", - "default": "true" + "default": "true", + "configurationNames": [ + "profiling.sourceMap" + ] } ], "DD_PROFILING_TIMELINE_ENABLED": [ @@ -1431,6 +1530,9 @@ "default": "true", "aliases": [ "DD_REMOTE_CONFIG_ENABLED" + ], + "configurationNames": [ + "remoteConfig.enabled" ] } ], @@ -1521,7 +1623,7 @@ "DD_SERVICE_MAPPING": [ { "implementation": "A", - "type": "string", + "type": "map", "configurationNames": [ "serviceMapping" ], @@ -1532,7 +1634,10 @@ { "implementation": "A", "type": "string", - "default": "datadoghq.com" + "default": "datadoghq.com", + "configurationNames": [ + "site" + ] } ], "DD_SPAN_SAMPLING_RULES": [ @@ -1540,7 +1645,8 @@ "implementation": "A", "type": "array", "configurationNames": [ - "spanSamplingRules" + "spanSamplingRules", + "sampler.spanSamplingRules" ], "default": "[]" } @@ -1550,7 +1656,8 @@ "implementation": "A", "type": "array", "configurationNames": [ - "spanSamplingRules" + "spanSamplingRules", + "sampler.spanSamplingRules" ], "default": "[]" } @@ -1558,22 +1665,31 @@ "DD_TAGS": [ { "implementation": "A", - "type": "string", - "default": null + "type": "map", + "default": "{}", + "configurationNames": [ + "tags" + ] } ], "DD_TELEMETRY_DEBUG": [ { "implementation": "A", "type": "boolean", - "default": "false" + "default": "false", + "configurationNames": [ + "telemetry.debug" + ] } ], "DD_TELEMETRY_DEPENDENCY_COLLECTION_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "true" + "default": "true", + "configurationNames": [ + "telemetry.dependencyCollection" + ] } ], "DD_TELEMETRY_FORWARDER_PATH": [ @@ -1587,21 +1703,30 @@ { "implementation": "A", "type": "int", - "default": "60000" + "default": "60000", + "configurationNames": [ + "telemetry.heartbeatInterval" + ] } ], "DD_TELEMETRY_LOG_COLLECTION_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "true" + "default": "true", + "configurationNames": [ + "telemetry.logCollection" + ] } ], "DD_TELEMETRY_METRICS_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "true" + "default": "true", + "configurationNames": [ + "telemetry.metrics" + ] } ], "DD_TEST_FAILED_TEST_REPLAY_ENABLED": [ @@ -1632,35 +1757,50 @@ { "implementation": "A", "type": "int", - "default": "20" + "default": "20", + "configurationNames": [ + "testManagementAttemptToFixRetries" + ] } ], "DD_TEST_MANAGEMENT_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "true" + "default": "true", + "configurationNames": [ + "isTestManagementEnabled" + ] } ], "DD_TEST_SESSION_NAME": [ { "implementation": "A", "type": "string", - "default": null + "default": "", + "configurationNames": [ + "ciVisibilityTestSessionName" + ] } ], "DD_TRACE_128_BIT_TRACEID_GENERATION_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "true" + "default": "true", + "configurationNames": [ + "traceId128BitGenerationEnabled" + ] } ], "DD_TRACE_128_BIT_TRACEID_LOGGING_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "true" + "default": "true", + "configurationNames": [ + "traceId128BitLoggingEnabled" + ] } ], "DD_TRACE_AEROSPIKE_ENABLED": [ @@ -1791,7 +1931,10 @@ { "implementation": "A", "type": "boolean", - "default": "true" + "default": "true", + "configurationNames": [ + "trace.aws.addSpanPointers" + ] } ], "DD_TRACE_AWS_SDK_AWS_BATCH_PROPAGATION_ENABLED": [ @@ -2071,21 +2214,30 @@ { "implementation": "A", "type": "int", - "default": "8192" + "default": "8192", + "configurationNames": [ + "baggageMaxBytes" + ] } ], "DD_TRACE_BAGGAGE_MAX_ITEMS": [ { "implementation": "A", "type": "int", - "default": "64" + "default": "64", + "configurationNames": [ + "baggageMaxItems" + ] } ], "DD_TRACE_BAGGAGE_TAG_KEYS": [ { "implementation": "A", "type": "string", - "default": "user.id,session.id,account.id" + "default": "user.id,session.id,account.id", + "configurationNames": [ + "baggageTagKeys" + ] } ], "DD_TRACE_BEAUTIFUL_LOGS": [ @@ -2189,7 +2341,7 @@ "implementation": "A", "type": "array", "configurationNames": [ - "cloudPayloadTagging.request" + "cloudPayloadTagging.response" ], "default": "[]" } @@ -2310,7 +2462,10 @@ { "implementation": "A", "type": "string", - "default": null + "default": null, + "configurationNames": [ + "trace.dynamoDb.tablePrimaryKeys" + ] } ], "DD_TRACE_ELASTICSEARCH_ENABLED": [ @@ -2338,7 +2493,10 @@ { "implementation": "A", "type": "boolean", - "default": "true" + "default": "true", + "configurationNames": [ + "traceEnabled" + ] } ], "DD_TRACE_ENCODING_DEBUG": [ @@ -2455,7 +2613,10 @@ { "implementation": "A", "type": "boolean", - "default": "true" + "default": "true", + "configurationNames": [ + "isGCPPubSubPushSubscriptionEnabled" + ] } ], "DD_TRACE_GENERIC_POOL_ENABLED": [ @@ -2469,7 +2630,10 @@ { "implementation": "A", "type": "boolean", - "default": "true" + "default": "true", + "configurationNames": [ + "gitMetadataEnabled" + ] } ], "DD_TRACE_GLOBAL_TAGS": [ @@ -2518,7 +2682,10 @@ { "implementation": "A", "type": "array", - "default": "[]" + "default": "[]", + "configurationNames": [ + "graphqlErrorExtensions" + ] } ], "DD_TRACE_GRAPHQL_TAG_ENABLED": [ @@ -2602,7 +2769,10 @@ { "implementation": "A", "type": "array", - "default": "[]" + "default": "[]", + "configurationNames": [ + "headerTags" + ] } ], "DD_TRACE_HONO_ENABLED": [ @@ -2637,7 +2807,10 @@ { "implementation": "A", "type": "boolean", - "default": "false" + "default": "false", + "configurationNames": [ + "inferredProxyServicesEnabled" + ] } ], "DD_TRACE_IOREDIS_ENABLED": [ @@ -2840,7 +3013,10 @@ { "implementation": "A", "type": "boolean", - "default": "true" + "default": "true", + "configurationNames": [ + "legacyBaggageEnabled" + ] } ], "DD_TRACE_LIMITD_CLIENT_ENABLED": [ @@ -2882,7 +3058,10 @@ { "implementation": "A", "type": "boolean", - "default": "false" + "default": "false", + "configurationNames": [ + "memcachedCommandEnabled" + ] } ], "DD_TRACE_MEMCACHED_ENABLED": [ @@ -2910,7 +3089,10 @@ { "implementation": "A", "type": "boolean", - "default": "true" + "default": "true", + "configurationNames": [ + "middlewareTracingEnabled" + ] } ], "DD_TRACE_MOCHA_EACH_ENABLED": [ @@ -2994,7 +3176,10 @@ { "implementation": "A", "type": "boolean", - "default": "false" + "default": "false", + "configurationNames": [ + "trace.nativeSpanEvents" + ] } ], "DD_TRACE_NET_ENABLED": [ @@ -3043,7 +3228,10 @@ { "implementation": "A", "type": "string", - "default": "(?:p(?:ass)?w(?:or)?d|pass(?:_?phrase)?|secret|(?:api_?|private_?|public_?|access_?|secret_?)key(?:_?id)?|token|consumer_?(?:id|key|secret)|sign(?:ed|ature)?|auth(?:entication|orization)?)(?:(?:\\s|%20)*(?:=|%3D)[^&]+|(?:\"|%22)(?:\\s|%20)*(?::|%3A)(?:\\s|%20)*(?:\"|%22)(?:%2[^2]|%[^2]|[^\"%])+(?:\"|%22))|bearer(?:\\s|%20)+[a-z0-9\\._\\-]+|token(?::|%3A)[a-z0-9]{13}|gh[opsu]_[0-9a-zA-Z]{36}|ey[I-L](?:[\\w=-]|%3D)+\\.ey[I-L](?:[\\w=-]|%3D)+(?:\\.(?:[\\w.+\\/=-]|%3D|%2F|%2B)+)?|[\\-]{5}BEGIN(?:[a-z\\s]|%20)+PRIVATE(?:\\s|%20)KEY[\\-]{5}[^\\-]+[\\-]{5}END(?:[a-z\\s]|%20)+PRIVATE(?:\\s|%20)KEY|ssh-rsa(?:\\s|%20)*(?:[a-z0-9\\/\\.+]|%2F|%5C|%2B){100,}" + "default": "(?:p(?:ass)?w(?:or)?d|pass(?:_?phrase)?|secret|(?:api_?|private_?|public_?|access_?|secret_?)key(?:_?id)?|token|consumer_?(?:id|key|secret)|sign(?:ed|ature)?|auth(?:entication|orization)?)(?:(?:\\s|%20)*(?:=|%3D)[^&]+|(?:\"|%22)(?:\\s|%20)*(?::|%3A)(?:\\s|%20)*(?:\"|%22)(?:%2[^2]|%[^2]|[^\"%])+(?:\"|%22))|bearer(?:\\s|%20)+[a-z0-9\\._\\-]+|token(?::|%3A)[a-z0-9]{13}|gh[opsu]_[0-9a-zA-Z]{36}|ey[I-L](?:[\\w=-]|%3D)+\\.ey[I-L](?:[\\w=-]|%3D)+(?:\\.(?:[\\w.+\\/=-]|%3D|%2F|%2B)+)?|[\\-]{5}BEGIN(?:[a-z\\s]|%20)+PRIVATE(?:\\s|%20)KEY[\\-]{5}[^\\-]+[\\-]{5}END(?:[a-z\\s]|%20)+PRIVATE(?:\\s|%20)KEY|ssh-rsa(?:\\s|%20)*(?:[a-z0-9\\/\\.+]|%2F|%5C|%2B){100,}", + "configurationNames": [ + "queryStringObfuscation" + ] } ], "DD_TRACE_OPENAI_ENABLED": [ @@ -3132,7 +3320,10 @@ "DD_TRACE_PEER_SERVICE_MAPPING": [ { "implementation": "A", - "type": "string", + "type": "map", + "configurationNames": [ + "peerServiceMapping" + ], "default": "{}" } ], @@ -3231,14 +3422,20 @@ { "implementation": "A", "type": "string", - "default": "continue" + "default": "continue", + "configurationNames": [ + "tracePropagationBehaviorExtract" + ] } ], "DD_TRACE_PROPAGATION_EXTRACT_FIRST": [ { "implementation": "A", "type": "boolean", - "default": "false" + "default": "false", + "configurationNames": [ + "tracePropagationExtractFirst" + ] } ], "DD_TRACE_PROPAGATION_STYLE": [ @@ -3248,11 +3445,7 @@ "configurationNames": [ "tracePropagationStyle.inject" ], - "default": [ - "datadog", - "tracecontext", - "baggage" - ] + "default": "[\"datadog\", \"tracecontext\", \"baggage\"]" } ], "DD_TRACE_PROPAGATION_STYLE_EXTRACT": [ @@ -3262,11 +3455,7 @@ "configurationNames": [ "tracePropagationStyle.extract" ], - "default": [ - "datadog", - "tracecontext", - "baggage" - ] + "default": "[\"datadog\", \"tracecontext\", \"baggage\"]" } ], "DD_TRACE_PROPAGATION_STYLE_INJECT": [ @@ -3276,11 +3465,7 @@ "configurationNames": [ "tracePropagationStyle.inject" ], - "default": [ - "datadog", - "tracecontext", - "baggage" - ] + "default": "[\"datadog\", \"tracecontext\", \"baggage\"]" } ], "DD_TRACE_PROTOBUFJS_ENABLED": [ @@ -3309,7 +3494,8 @@ "implementation": "A", "type": "int", "configurationNames": [ - "ingestion.rateLimit" + "ingestion.rateLimit", + "sampler.rateLimit" ], "default": "100" } @@ -3346,7 +3532,10 @@ { "implementation": "A", "type": "boolean", - "default": "false" + "default": "false", + "configurationNames": [ + "spanRemoveIntegrationFromService" + ] } ], "DD_TRACE_REPORT_HOSTNAME": [ @@ -3370,7 +3559,10 @@ { "implementation": "A", "type": "boolean", - "default": "false" + "default": "false", + "configurationNames": [ + "resourceRenamingEnabled" + ] } ], "DD_TRACE_RESTIFY_ENABLED": [ @@ -3407,9 +3599,10 @@ "DD_TRACE_SAMPLING_RULES": [ { "implementation": "A", - "type": "json", + "type": "map", "configurationNames": [ - "samplingRules" + "samplingRules", + "sampler.rules" ], "default": "[]" } @@ -3418,7 +3611,10 @@ { "implementation": "A", "type": "string", - "default": null + "default": null, + "configurationNames": [ + "scope" + ] } ], "DD_TRACE_SELENIUM_ENABLED": [ @@ -3470,6 +3666,9 @@ { "implementation": "A", "type": "int", + "configurationNames": [ + "spanLeakDebug" + ], "default": "0" } ], @@ -3495,7 +3694,7 @@ "implementation": "A", "type": "boolean", "configurationNames": [ - "stats" + "stats.enabled" ], "default": "false" } @@ -3560,21 +3759,30 @@ { "implementation": "A", "type": "boolean", - "default": "true" + "default": "true", + "configurationNames": [ + "traceWebsocketMessagesEnabled" + ] } ], "DD_TRACE_WEBSOCKET_MESSAGES_INHERIT_SAMPLING": [ { "implementation": "A", "type": "boolean", - "default": "true" + "default": "true", + "configurationNames": [ + "traceWebsocketMessagesInheritSampling" + ] } ], "DD_TRACE_WEBSOCKET_MESSAGES_SEPARATE_TRACES": [ { "implementation": "A", "type": "boolean", - "default": "true" + "default": "true", + "configurationNames": [ + "traceWebsocketMessagesSeparateTraces" + ] } ], "DD_TRACE_WHEN_ENABLED": [ @@ -3609,14 +3817,20 @@ { "implementation": "A", "type": "int", - "default": "512" + "default": "512", + "configurationNames": [ + "tagsHeaderMaxLength" + ] } ], "DD_TRACING_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "true" + "default": "true", + "configurationNames": [ + "tracing" + ] } ], "DD_VERSION": [ @@ -3633,14 +3847,20 @@ { "implementation": "A", "type": "int", - "default": "128" + "default": "128", + "configurationNames": [ + "vertexai.spanCharLimit" + ] } ], "DD_VERTEXAI_SPAN_PROMPT_COMPLETION_SAMPLE_RATE": [ { "implementation": "A", "type": "decimal", - "default": "1" + "default": "1", + "configurationNames": [ + "vertexai.spanPromptCompletionSampleRate" + ] } ], "DD_VITEST_WORKER": [ @@ -3654,6 +3874,9 @@ { "implementation": "A", "type": "int", + "configurationNames": [ + "otelMaxExportBatchSize" + ], "default": "512" } ], @@ -3661,6 +3884,9 @@ { "implementation": "A", "type": "int", + "configurationNames": [ + "otelMaxQueueSize" + ], "default": "2048" } ], @@ -3668,6 +3894,9 @@ { "implementation": "A", "type": "int", + "configurationNames": [ + "otelBatchTimeout" + ], "default": "5000" } ], @@ -3675,41 +3904,59 @@ { "implementation": "A", "type": "string", - "default": null + "default": null, + "configurationNames": [ + "otelUrl" + ] } ], "OTEL_EXPORTER_OTLP_HEADERS": [ { "implementation": "A", "type": "string", - "default": null + "default": null, + "configurationNames": [ + "otelHeaders" + ] } ], "OTEL_EXPORTER_OTLP_LOGS_ENDPOINT": [ { "implementation": "A", "type": "string", - "default": null + "default": null, + "configurationNames": [ + "otelLogsUrl" + ] } ], "OTEL_EXPORTER_OTLP_LOGS_HEADERS": [ { "implementation": "A", "type": "string", - "default": "" + "default": "", + "configurationNames": [ + "otelLogsHeaders" + ] } ], "OTEL_EXPORTER_OTLP_LOGS_PROTOCOL": [ { "implementation": "A", "type": "string", - "default": "http/protobuf" + "default": "http/protobuf", + "configurationNames": [ + "otelLogsProtocol" + ] } ], "OTEL_EXPORTER_OTLP_LOGS_TIMEOUT": [ { "implementation": "A", "type": "int", + "configurationNames": [ + "otelLogsTimeout" + ], "default": "10000" } ], @@ -3717,27 +3964,39 @@ { "implementation": "A", "type": "string", - "default": null + "default": null, + "configurationNames": [ + "otelMetricsUrl" + ] } ], "OTEL_EXPORTER_OTLP_METRICS_HEADERS": [ { "implementation": "A", "type": "string", - "default": "" + "default": "", + "configurationNames": [ + "otelMetricsHeaders" + ] } ], "OTEL_EXPORTER_OTLP_METRICS_PROTOCOL": [ { "implementation": "A", "type": "string", - "default": "http/protobuf" + "default": "http/protobuf", + "configurationNames": [ + "otelMetricsProtocol" + ] } ], "OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE": [ { "implementation": "A", "type": "string", + "configurationNames": [ + "otelMetricsTemporalityPreference" + ], "default": "DELTA" } ], @@ -3745,6 +4004,9 @@ { "implementation": "A", "type": "int", + "configurationNames": [ + "otelMetricsTimeout" + ], "default": "10000" } ], @@ -3752,13 +4014,19 @@ { "implementation": "A", "type": "string", - "default": "http/protobuf" + "default": "http/protobuf", + "configurationNames": [ + "otelProtocol" + ] } ], "OTEL_EXPORTER_OTLP_TIMEOUT": [ { "implementation": "A", "type": "int", + "configurationNames": [ + "otelTimeout" + ], "default": "10000" } ], @@ -3787,6 +4055,9 @@ { "implementation": "A", "type": "int", + "configurationNames": [ + "otelMetricsExportInterval" + ], "default": "10000" } ], @@ -3794,6 +4065,9 @@ { "implementation": "A", "type": "int", + "configurationNames": [ + "otelMetricsExportTimeout" + ], "default": "7500" } ], @@ -3801,7 +4075,10 @@ { "implementation": "A", "type": "boolean", - "default": "false" + "default": "false", + "configurationNames": [ + "tracePropagationStyle.otelPropagators" + ] } ], "OTEL_RESOURCE_ATTRIBUTES": [ diff --git a/packages/dd-trace/src/constants.js b/packages/dd-trace/src/constants.js index a8a431ba55b..1e7715dda8d 100644 --- a/packages/dd-trace/src/constants.js +++ b/packages/dd-trace/src/constants.js @@ -46,8 +46,6 @@ module.exports = { SCHEMA_TOPIC: 'schema.topic', SCHEMA_OPERATION: 'schema.operation', SCHEMA_NAME: 'schema.name', - GRPC_CLIENT_ERROR_STATUSES: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16], - GRPC_SERVER_ERROR_STATUSES: [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16], DYNAMODB_PTR_KIND: 'aws.dynamodb.item', S3_PTR_KIND: 'aws.s3.object', WEBSOCKET_PTR_KIND: 'websocket', diff --git a/packages/dd-trace/test/config/index.spec.js b/packages/dd-trace/test/config/index.spec.js index 66adc05e937..6e7b5fd396c 100644 --- a/packages/dd-trace/test/config/index.spec.js +++ b/packages/dd-trace/test/config/index.spec.js @@ -12,12 +12,15 @@ const context = describe const proxyquire = require('proxyquire') require('../setup/core') -const { GRPC_CLIENT_ERROR_STATUSES, GRPC_SERVER_ERROR_STATUSES } = require('../../src/constants') +const defaults = require('../../src/config/defaults') const { getEnvironmentVariable, getEnvironmentVariables } = require('../../src/config/helper') const { assertObjectContains } = require('../../../../integration-tests/helpers') const { DD_MAJOR } = require('../../../../version') const StableConfig = require('../../src/config/stable') +const GRPC_CLIENT_ERROR_STATUSES = defaults['grpc.client.error.statuses'] +const GRPC_SERVER_ERROR_STATUSES = defaults['grpc.server.error.statuses'] + describe('Config', () => { let getConfig let log @@ -533,8 +536,8 @@ describe('Config', () => { { name: 'injectionEnabled', value: [], origin: 'default' }, { name: 'instrumentationSource', value: 'manual', origin: 'default' }, { name: 'isCiVisibility', value: false, origin: 'default' }, - { name: 'isEarlyFlakeDetectionEnabled', value: false, origin: 'default' }, - { name: 'isFlakyTestRetriesEnabled', value: false, origin: 'default' }, + { name: 'isEarlyFlakeDetectionEnabled', value: true, origin: 'default' }, + { name: 'isFlakyTestRetriesEnabled', value: true, origin: 'default' }, { name: 'isGCPFunction', value: false, origin: 'env_var' }, { name: 'isGitUploadEnabled', value: false, origin: 'default' }, { name: 'isIntelligentTestRunnerEnabled', value: false, origin: 'default' }, @@ -543,7 +546,7 @@ describe('Config', () => { { name: 'langchain.spanPromptCompletionSampleRate', value: 1.0, origin: 'default' }, { name: 'llmobs.agentlessEnabled', value: undefined, origin: 'default' }, { name: 'llmobs.mlApp', value: undefined, origin: 'default' }, - { name: 'isTestDynamicInstrumentationEnabled', value: false, origin: 'default' }, + { name: 'isTestDynamicInstrumentationEnabled', value: true, origin: 'default' }, { name: 'logInjection', value: true, origin: 'default' }, { name: 'lookup', value: undefined, origin: 'default' }, { name: 'middlewareTracingEnabled', value: true, origin: 'default' }, @@ -558,8 +561,7 @@ describe('Config', () => { { name: 'protocolVersion', value: '0.4', origin: 'default' }, { name: 'queryStringObfuscation', - // eslint-disable-next-line @stylistic/max-len - value: '(?:p(?:ass)?w(?:or)?d|pass(?:_?phrase)?|secret|(?:api_?|private_?|public_?|access_?|secret_?)key(?:_?id)?|token|consumer_?(?:id|key|secret)|sign(?:ed|ature)?|auth(?:entication|orization)?)(?:(?:\\s|%20)*(?:=|%3D)[^&]+|(?:"|%22)(?:\\s|%20)*(?::|%3A)(?:\\s|%20)*(?:"|%22)(?:%2[^2]|%[^2]|[^"%])+(?:"|%22))|bearer(?:\\s|%20)+[a-z0-9\\._\\-]+|token(?::|%3A)[a-z0-9]{13}|gh[opsu]_[0-9a-zA-Z]{36}|ey[I-L](?:[\\w=-]|%3D)+\\.ey[I-L](?:[\\w=-]|%3D)+(?:\\.(?:[\\w.+\\/=-]|%3D|%2F|%2B)+)?|[\\-]{5}BEGIN(?:[a-z\\s]|%20)+PRIVATE(?:\\s|%20)KEY[\\-]{5}[^\\-]+[\\-]{5}END(?:[a-z\\s]|%20)+PRIVATE(?:\\s|%20)KEY|ssh-rsa(?:\\s|%20)*(?:[a-z0-9\\/\\.+]|%2F|%5C|%2B){100,}', + value: config.queryStringObfuscation, origin: 'default', }, { name: 'remoteConfig.enabled', value: true, origin: 'default' }, From cd16e1a9d2238db022fe68632bd8328afdb15399 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Mon, 23 Feb 2026 16:26:38 +0100 Subject: [PATCH 07/17] fixup! --- eslint-rules/eslint-env-aliases.mjs | 8 ++- .../datadog-plugin-grpc/test/server.spec.js | 5 +- packages/dd-trace/src/config/defaults.js | 16 ++--- .../src/config/supported-configurations.json | 70 +++++++++---------- 4 files changed, 49 insertions(+), 50 deletions(-) diff --git a/eslint-rules/eslint-env-aliases.mjs b/eslint-rules/eslint-env-aliases.mjs index c3c999d3a98..75a601b9f41 100644 --- a/eslint-rules/eslint-env-aliases.mjs +++ b/eslint-rules/eslint-env-aliases.mjs @@ -13,9 +13,11 @@ const { supportedConfigurations } = JSON.parse(fs.readFileSync(supportedConfigsP const aliasToCanonical = {} for (const [canonical, entries] of Object.entries(supportedConfigurations)) { for (const entry of entries) { - for (const alias of entry.aliases ?? []) { - aliasToCanonical[alias] ??= [] - aliasToCanonical[alias].push(canonical) + if (entry.aliases && !entry.deprecated) { + for (const alias of entry.aliases) { + aliasToCanonical[alias] ??= [] + aliasToCanonical[alias].push(canonical) + } } } } diff --git a/packages/datadog-plugin-grpc/test/server.spec.js b/packages/datadog-plugin-grpc/test/server.spec.js index a5181e58250..1c75183879d 100644 --- a/packages/datadog-plugin-grpc/test/server.spec.js +++ b/packages/datadog-plugin-grpc/test/server.spec.js @@ -10,9 +10,12 @@ const satisfies = require('semifies') const { assertObjectContains } = require('../../../integration-tests/helpers') const { withNamingSchema, withVersions } = require('../../dd-trace/test/setup/mocha') const agent = require('../../dd-trace/test/plugins/agent') -const { ERROR_MESSAGE, ERROR_TYPE, ERROR_STACK, GRPC_SERVER_ERROR_STATUSES } = require('../../dd-trace/src/constants') +const { ERROR_MESSAGE, ERROR_TYPE, ERROR_STACK } = require('../../dd-trace/src/constants') +const defaults = require('../../dd-trace/src/config/defaults') const { NODE_MAJOR } = require('../../../version') +const GRPC_SERVER_ERROR_STATUSES = defaults['grpc.server.error.statuses'] + const pkgs = NODE_MAJOR > 14 ? ['@grpc/grpc-js'] : ['grpc', '@grpc/grpc-js'] describe('Plugin', () => { diff --git a/packages/dd-trace/src/config/defaults.js b/packages/dd-trace/src/config/defaults.js index 62e6bd200f0..3464ebd57cc 100644 --- a/packages/dd-trace/src/config/defaults.js +++ b/packages/dd-trace/src/config/defaults.js @@ -1,11 +1,11 @@ 'use strict' const pkg = require('../pkg') -const { getEnvironmentVariable: getEnv } = require('./helper') const { isFalse, isTrue } = require('../util') +const { getEnvironmentVariable: getEnv } = require('./helper') const { - supportedConfigurations + supportedConfigurations, } = /** @type {import('./helper').SupportedConfigurationsJson} */ (require('./supported-configurations.json')) const service = getEnv('AWS_LAMBDA_FUNCTION_NAME') || @@ -52,12 +52,7 @@ function parseDefaultByType (raw, type) { const metadataDefaults = {} for (const entries of Object.values(supportedConfigurations)) { for (const entry of entries) { - if ( - entry.implementation !== 'A' || - entry.default === '$dynamic' || - !('configurationNames' in entry) || - !Array.isArray(entry.configurationNames) - ) { + if (entry.default === '$dynamic' || !Array.isArray(entry.configurationNames)) { continue } @@ -100,9 +95,8 @@ const defaults = { ...defaultsWithoutSupportedConfigurationEntry, ...metadataDefaults, ...defaultsWithConditionalRuntimeBehavior, + service: service, + version: pkg.version, } -defaults.service = service -defaults.version = pkg.version - module.exports = defaults diff --git a/packages/dd-trace/src/config/supported-configurations.json b/packages/dd-trace/src/config/supported-configurations.json index 598463f8267..a71ca6b673c 100644 --- a/packages/dd-trace/src/config/supported-configurations.json +++ b/packages/dd-trace/src/config/supported-configurations.json @@ -243,7 +243,7 @@ ], "DD_APPSEC_HTTP_BLOCKED_TEMPLATE_HTML": [ { - "implementation": "A", + "implementation": "B", "type": "string", "configurationNames": [ "appsec.blockedTemplateHtml" @@ -253,7 +253,7 @@ ], "DD_APPSEC_HTTP_BLOCKED_TEMPLATE_JSON": [ { - "implementation": "A", + "implementation": "B", "type": "string", "configurationNames": [ "appsec.blockedTemplateJson" @@ -293,7 +293,7 @@ ], "DD_APPSEC_OBFUSCATION_PARAMETER_KEY_REGEXP": [ { - "implementation": "A", + "implementation": "B", "type": "string", "configurationNames": [ "appsec.obfuscatorKeyRegex" @@ -303,7 +303,7 @@ ], "DD_APPSEC_OBFUSCATION_PARAMETER_VALUE_REGEXP": [ { - "implementation": "A", + "implementation": "G", "type": "string", "configurationNames": [ "appsec.obfuscatorValueRegex" @@ -333,7 +333,7 @@ ], "DD_APPSEC_RULES": [ { - "implementation": "A", + "implementation": "B", "type": "string", "configurationNames": [ "appsec.rules" @@ -343,7 +343,7 @@ ], "DD_APPSEC_SCA_ENABLED": [ { - "implementation": "A", + "implementation": "B", "type": "boolean", "default": null, "configurationNames": [ @@ -414,7 +414,7 @@ ], "DD_CIVISIBILITY_AUTO_INSTRUMENTATION_PROVIDER": [ { - "implementation": "A", + "implementation": "B", "type": "boolean", "default": "false" } @@ -435,7 +435,7 @@ ], "DD_CIVISIBILITY_EARLY_FLAKE_DETECTION_ENABLED": [ { - "implementation": "A", + "implementation": "B", "type": "boolean", "default": "true", "configurationNames": [ @@ -657,7 +657,7 @@ ], "DD_DYNAMIC_INSTRUMENTATION_PROBE_FILE": [ { - "implementation": "A", + "implementation": "B", "type": "string", "configurationNames": [ "dynamicInstrumentation.probeFile" @@ -704,7 +704,7 @@ ], "DD_ENV": [ { - "implementation": "A", + "implementation": "B", "type": "string", "configurationNames": [ "env" @@ -964,7 +964,7 @@ ], "DD_IAST_ENABLED": [ { - "implementation": "A", + "implementation": "B", "type": "boolean", "configurationNames": [ "iast.enabled" @@ -1034,7 +1034,7 @@ ], "DD_IAST_SECURITY_CONTROLS_CONFIGURATION": [ { - "implementation": "A", + "implementation": "B", "type": "string", "configurationNames": [ "iast.securityControlsConfiguration" @@ -1044,7 +1044,7 @@ ], "DD_IAST_STACK_TRACE_ENABLED": [ { - "implementation": "A", + "implementation": "B", "type": "boolean", "configurationNames": [ "iast.stackTrace.enabled" @@ -1054,7 +1054,7 @@ ], "DD_IAST_TELEMETRY_VERBOSITY": [ { - "implementation": "A", + "implementation": "B", "type": "string", "configurationNames": [ "iast.telemetryVerbosity" @@ -1201,7 +1201,7 @@ ], "DD_LLMOBS_ML_APP": [ { - "implementation": "A", + "implementation": "B", "type": "string", "configurationNames": [ "llmobs.mlApp" @@ -1211,7 +1211,7 @@ ], "DD_LOGS_INJECTION": [ { - "implementation": "A", + "implementation": "B", "type": "boolean", "configurationNames": [ "logInjection" @@ -1231,7 +1231,7 @@ ], "DD_LOG_LEVEL": [ { - "implementation": "A", + "implementation": "B", "type": "string", "default": null } @@ -1518,7 +1518,7 @@ ], "DD_PROFILING_WALLTIME_ENABLED": [ { - "implementation": "A", + "implementation": "B", "type": "boolean", "default": "true" } @@ -1632,7 +1632,7 @@ ], "DD_SITE": [ { - "implementation": "A", + "implementation": "C", "type": "string", "default": "datadoghq.com", "configurationNames": [ @@ -1805,7 +1805,7 @@ ], "DD_TRACE_AEROSPIKE_ENABLED": [ { - "implementation": "A", + "implementation": "B", "type": "boolean", "default": "true" } @@ -2002,7 +2002,7 @@ ], "DD_TRACE_AWS_SDK_ENABLED": [ { - "implementation": "A", + "implementation": "B", "type": "boolean", "default": "true" } @@ -2191,7 +2191,7 @@ ], "DD_TRACE_AZURE_FUNCTIONS_ENABLED": [ { - "implementation": "A", + "implementation": "B", "type": "boolean", "default": "true" } @@ -2308,7 +2308,7 @@ ], "DD_TRACE_CLIENT_IP_HEADER": [ { - "implementation": "A", + "implementation": "B", "type": "string", "configurationNames": [ "clientIpHeader" @@ -2390,7 +2390,7 @@ ], "DD_TRACE_COUCHBASE_ENABLED": [ { - "implementation": "A", + "implementation": "B", "type": "boolean", "default": "true" } @@ -2411,7 +2411,7 @@ ], "DD_TRACE_CUCUMBER_ENABLED": [ { - "implementation": "A", + "implementation": "B", "type": "boolean", "default": "true" } @@ -2432,7 +2432,7 @@ ], "DD_TRACE_DEBUG": [ { - "implementation": "A", + "implementation": "B", "type": "boolean", "default": "false" } @@ -3278,7 +3278,7 @@ ], "DD_TRACE_PARTIAL_FLUSH_MIN_SPANS": [ { - "implementation": "A", + "implementation": "B", "type": "int", "configurationNames": [ "flushMinSpans" @@ -3420,7 +3420,7 @@ ], "DD_TRACE_PROPAGATION_BEHAVIOR_EXTRACT": [ { - "implementation": "A", + "implementation": "B", "type": "string", "default": "continue", "configurationNames": [ @@ -3588,7 +3588,7 @@ ], "DD_TRACE_SAMPLE_RATE": [ { - "implementation": "A", + "implementation": "B", "type": "decimal", "configurationNames": [ "ingestion.sampleRate" @@ -3619,7 +3619,7 @@ ], "DD_TRACE_SELENIUM_ENABLED": [ { - "implementation": "A", + "implementation": "B", "type": "boolean", "default": "true" } @@ -3654,7 +3654,7 @@ ], "DD_TRACE_SPAN_ATTRIBUTE_SCHEMA": [ { - "implementation": "A", + "implementation": "B", "type": "string", "configurationNames": [ "spanAttributeSchema" @@ -3982,7 +3982,7 @@ ], "OTEL_EXPORTER_OTLP_METRICS_PROTOCOL": [ { - "implementation": "A", + "implementation": "B", "type": "string", "default": "http/protobuf", "configurationNames": [ @@ -4002,7 +4002,7 @@ ], "OTEL_EXPORTER_OTLP_METRICS_TIMEOUT": [ { - "implementation": "A", + "implementation": "B", "type": "int", "configurationNames": [ "otelMetricsTimeout" @@ -4039,7 +4039,7 @@ ], "OTEL_LOG_LEVEL": [ { - "implementation": "A", + "implementation": "C", "type": "string", "default": null } @@ -4124,7 +4124,7 @@ ], "OTEL_TRACES_SAMPLER_ARG": [ { - "implementation": "A", + "implementation": "D", "type": "decimal", "configurationNames": [ "sampleRate" From 18a166eaa68fda3f8d23f7664f044ca7f3dce101 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Mon, 23 Feb 2026 18:16:17 +0100 Subject: [PATCH 08/17] fixup! --- packages/dd-trace/src/azure_metadata.js | 2 - packages/dd-trace/src/config/defaults.js | 2 + packages/dd-trace/src/config/index.js | 1 + .../src/config/supported-configurations.json | 95 +++++++++---------- .../dd-trace/src/profiling/exporter_cli.js | 1 + packages/dd-trace/test/azure_metadata.spec.js | 7 -- 6 files changed, 48 insertions(+), 60 deletions(-) diff --git a/packages/dd-trace/src/azure_metadata.js b/packages/dd-trace/src/azure_metadata.js index 37daf202d3a..a94943809e1 100644 --- a/packages/dd-trace/src/azure_metadata.js +++ b/packages/dd-trace/src/azure_metadata.js @@ -58,7 +58,6 @@ function buildMetadata () { WEBSITE_SITE_NAME, } = getEnvironmentVariables() - const DD_AAS_DOTNET_EXTENSION_VERSION = getValueFromEnvSources('DD_AAS_DOTNET_EXTENSION_VERSION') const DD_AZURE_RESOURCE_GROUP = getValueFromEnvSources('DD_AZURE_RESOURCE_GROUP') const subscriptionID = extractSubscriptionID(WEBSITE_OWNER_NAME) @@ -77,7 +76,6 @@ function buildMetadata () { : (WEBSITE_RESOURCE_GROUP ?? extractResourceGroup(WEBSITE_OWNER_NAME)) return trimObject({ - extensionVersion: DD_AAS_DOTNET_EXTENSION_VERSION, functionRuntimeVersion: FUNCTIONS_EXTENSION_VERSION, instanceID: WEBSITE_INSTANCE_ID, instanceName: COMPUTERNAME, diff --git a/packages/dd-trace/src/config/defaults.js b/packages/dd-trace/src/config/defaults.js index 3464ebd57cc..7a97e5686e0 100644 --- a/packages/dd-trace/src/config/defaults.js +++ b/packages/dd-trace/src/config/defaults.js @@ -36,10 +36,12 @@ function parseDefaultByType (raw, type) { return Number(raw) } case 'array': { + // TODO: Implement comma separated list if (raw.length === 0) return [] return JSON.parse(raw) } case 'map': { + // TODO: Implement comma separated list with colon separated key value pairs if (raw.length === 0) return {} return JSON.parse(raw) } diff --git a/packages/dd-trace/src/config/index.js b/packages/dd-trace/src/config/index.js index 9069af7b548..e4ff63f0649 100644 --- a/packages/dd-trace/src/config/index.js +++ b/packages/dd-trace/src/config/index.js @@ -652,6 +652,7 @@ class Config { setString(target, 'installSignature.id', DD_INSTRUMENTATION_INSTALL_ID) setString(target, 'installSignature.time', DD_INSTRUMENTATION_INSTALL_TIME) setString(target, 'installSignature.type', DD_INSTRUMENTATION_INSTALL_TYPE) + // TODO: Why is DD_INJECTION_ENABLED a comma separated list? setArray(target, 'injectionEnabled', DD_INJECTION_ENABLED) if (DD_INJECTION_ENABLED !== undefined) { setString(target, 'instrumentationSource', DD_INJECTION_ENABLED ? 'ssi' : 'manual') diff --git a/packages/dd-trace/src/config/supported-configurations.json b/packages/dd-trace/src/config/supported-configurations.json index a71ca6b673c..9867b3ceb8f 100644 --- a/packages/dd-trace/src/config/supported-configurations.json +++ b/packages/dd-trace/src/config/supported-configurations.json @@ -1,13 +1,6 @@ { "version": "2", "supportedConfigurations": { - "DD_AAS_DOTNET_EXTENSION_VERSION": [ - { - "implementation": "A", - "type": "string", - "default": null - } - ], "DD_ACTION_EXECUTION_ID": [ { "implementation": "A", @@ -29,7 +22,7 @@ { "implementation": "A", "type": "string", - "default": "$dynamic" + "default": null } ], "DD_AGENT_HOST": [ @@ -39,7 +32,7 @@ "configurationNames": [ "hostname" ], - "default": "127.0.0.1", + "default": "localhost", "aliases": [ "DD_TRACE_AGENT_HOSTNAME" ] @@ -190,7 +183,7 @@ ], "DD_APPSEC_AUTO_USER_INSTRUMENTATION_MODE": [ { - "implementation": "A", + "implementation": "E", "type": "string", "configurationNames": [ "appsec.eventTracking.mode" @@ -218,7 +211,7 @@ "configurationNames": [ "appsec.enabled" ], - "default": null + "default": "false" } ], "DD_APPSEC_GRAPHQL_BLOCKED_TEMPLATE_JSON": [ @@ -373,7 +366,7 @@ ], "DD_APPSEC_WAF_TIMEOUT": [ { - "implementation": "A", + "implementation": "E", "type": "int", "configurationNames": [ "appsec.wafTimeout" @@ -409,7 +402,7 @@ { "implementation": "A", "type": "string", - "default": "$dynamic" + "default": null } ], "DD_CIVISIBILITY_AUTO_INSTRUMENTATION_PROVIDER": [ @@ -519,7 +512,7 @@ ], "DD_CIVISIBILITY_RUM_FLUSH_WAIT_MILLIS": [ { - "implementation": "A", + "implementation": "B", "type": "int", "default": "1000" } @@ -619,7 +612,7 @@ "configurationNames": [ "dogstatsd.hostname" ], - "default": "127.0.0.1", + "default": "localhost", "aliases": [ "DD_DOGSTATSD_HOSTNAME" ] @@ -628,7 +621,7 @@ "DD_DOGSTATSD_PORT": [ { "implementation": "A", - "type": "string", + "type": "int", "configurationNames": [ "dogstatsd.port" ], @@ -672,7 +665,7 @@ "configurationNames": [ "dynamicInstrumentation.redactedIdentifiers" ], - "default": "[]" + "default": "" } ], "DD_DYNAMIC_INSTRUMENTATION_REDACTION_EXCLUDED_IDENTIFIERS": [ @@ -682,7 +675,7 @@ "configurationNames": [ "dynamicInstrumentation.redactionExcludedIdentifiers" ], - "default": "[]" + "default": "" } ], "DD_DYNAMIC_INSTRUMENTATION_UPLOAD_INTERVAL_SECONDS": [ @@ -746,7 +739,7 @@ { "implementation": "A", "type": "boolean", - "default": null, + "default": "false", "configurationNames": [ "propagateProcessTags.enabled" ] @@ -763,7 +756,7 @@ { "implementation": "A", "type": "string", - "default": "/{os.tmpdir()}/dd-trace-git-cache" + "default": "${os.tmpdir()}/dd-trace-git-cache" } ], "DD_EXPERIMENTAL_TEST_OPT_GIT_CACHE_ENABLED": [ @@ -1009,7 +1002,7 @@ "configurationNames": [ "iast.redactionNamePattern" ], - "default": null + "default": "(?:p(?:ass)?w(?:or)?d|pass(?:_?phrase)?|secret|(?:api_?|private_?|public_?|access_?|secret_?)key(?:_?id)?|token|consumer_?(?:id|key|secret)|sign(?:ed|ature)?|auth(?:entication|orization)?|(?:sur|last)name|user(?:name)?|address|e?mail)" } ], "DD_IAST_REDACTION_VALUE_PATTERN": [ @@ -1019,7 +1012,7 @@ "configurationNames": [ "iast.redactionValuePattern" ], - "default": null + "default": "(?:bearers+[a-z0-9._-]+|glpat-[w-]{20}|gh[opsu]_[0-9a-zA-Z]{36}|ey[I-L][w=-]+.ey[I-L][w=-]+(?:.[w.+/=-]+)?|(?:[-]{5}BEGIN[a-zs]+PRIVATEsKEY[-]{5}[^-]+[-]{5}END[a-zs]+PRIVATEsKEY[-]{5}|ssh-rsas*[a-z0-9/.+]{100,})|[w.-]+@[a-zA-Zd.-]+.[a-zA-Z]{2,})" } ], "DD_IAST_REQUEST_SAMPLING": [ @@ -1066,7 +1059,7 @@ { "implementation": "A", "type": "array", - "default": "[]", + "default": "", "configurationNames": [ "injectionEnabled" ] @@ -1076,7 +1069,7 @@ { "implementation": "A", "type": "boolean", - "default": null, + "default": "false", "configurationNames": [ "injectForce" ] @@ -1124,7 +1117,7 @@ ], "DD_INSTRUMENTATION_TELEMETRY_ENABLED": [ { - "implementation": "A", + "implementation": "B", "type": "boolean", "default": "true", "aliases": [ @@ -1139,7 +1132,7 @@ { "implementation": "A", "type": "int", - "default": null, + "default": "30000", "configurationNames": [ "profiling.longLivedThreshold" ] @@ -1181,12 +1174,12 @@ ], "DD_LLMOBS_AGENTLESS_ENABLED": [ { - "implementation": "A", + "implementation": "B", "type": "boolean", "configurationNames": [ "llmobs.agentlessEnabled" ], - "default": null + "default": "false" } ], "DD_LLMOBS_ENABLED": [ @@ -1291,14 +1284,14 @@ { "implementation": "A", "type": "boolean", - "default": "$dynamic" + "default": "true" } ], "DD_PROFILING_CODEHOTSPOTS_ENABLED": [ { "implementation": "A", "type": "boolean", - "default": "false", + "default": "true", "aliases": [ "DD_PROFILING_EXPERIMENTAL_CODEHOTSPOTS_ENABLED" ] @@ -1308,7 +1301,7 @@ { "implementation": "A", "type": "boolean", - "default": "false", + "default": "true", "aliases": [ "DD_PROFILING_CODEHOTSPOTS_ENABLED" ], @@ -1319,7 +1312,7 @@ { "implementation": "A", "type": "boolean", - "default": "true (non-Windows) / false (Windows)", + "default": "true", "aliases": [ "DD_PROFILING_EXPERIMENTAL_CPU_ENABLED" ] @@ -1329,7 +1322,7 @@ { "implementation": "A", "type": "boolean", - "default": "true (non-Windows) / false (Windows)", + "default": "true", "aliases": [ "DD_PROFILING_CPU_ENABLED" ], @@ -1381,7 +1374,7 @@ { "implementation": "A", "type": "boolean", - "default": "true (non-Windows) / false (Windows)", + "default": "true", "aliases": [ "DD_PROFILING_EXPERIMENTAL_ENDPOINT_COLLECTION_ENABLED" ] @@ -1391,7 +1384,7 @@ { "implementation": "A", "type": "boolean", - "default": "true (non-Windows) / false (Windows)", + "default": "true", "aliases": [ "DD_PROFILING_ENDPOINT_COLLECTION_ENABLED" ], @@ -1423,7 +1416,7 @@ { "implementation": "A", "type": "boolean", - "default": "true (non-Windows) / false (Windows)" + "default": "true" } ], "DD_PROFILING_EXPORTERS": [ @@ -1478,7 +1471,7 @@ { "implementation": "A", "type": "boolean", - "default": "true (non-Windows) / false (Windows)", + "default": "true", "aliases": [ "DD_PROFILING_EXPERIMENTAL_TIMELINE_ENABLED" ] @@ -1488,7 +1481,7 @@ { "implementation": "A", "type": "boolean", - "default": "true (non-Windows) / false (Windows)", + "default": "true", "aliases": [ "DD_PROFILING_TIMELINE_ENABLED" ], @@ -1614,7 +1607,7 @@ "configurationNames": [ "service" ], - "default": "$dynamic", + "default": null, "aliases": [ "DD_SERVICE_NAME" ] @@ -1627,7 +1620,7 @@ "configurationNames": [ "serviceMapping" ], - "default": "{}" + "default": "" } ], "DD_SITE": [ @@ -1648,7 +1641,7 @@ "spanSamplingRules", "sampler.spanSamplingRules" ], - "default": "[]" + "default": "" } ], "DD_SPAN_SAMPLING_RULES_FILE": [ @@ -1659,14 +1652,14 @@ "spanSamplingRules", "sampler.spanSamplingRules" ], - "default": "[]" + "default": "" } ], "DD_TAGS": [ { "implementation": "A", "type": "map", - "default": "{}", + "default": "", "configurationNames": [ "tags" ] @@ -2333,7 +2326,7 @@ "configurationNames": [ "cloudPayloadTagging.request" ], - "default": "[]" + "default": "" } ], "DD_TRACE_CLOUD_RESPONSE_PAYLOAD_TAGGING": [ @@ -2343,7 +2336,7 @@ "configurationNames": [ "cloudPayloadTagging.response" ], - "default": "[]" + "default": "" } ], "DD_TRACE_COLLECTIONS_ENABLED": [ @@ -2682,7 +2675,7 @@ { "implementation": "A", "type": "array", - "default": "[]", + "default": "", "configurationNames": [ "graphqlErrorExtensions" ] @@ -2769,7 +2762,7 @@ { "implementation": "A", "type": "array", - "default": "[]", + "default": "", "configurationNames": [ "headerTags" ] @@ -3324,7 +3317,7 @@ "configurationNames": [ "peerServiceMapping" ], - "default": "{}" + "default": "" } ], "DD_TRACE_PG_CURSOR_ENABLED": [ @@ -3604,7 +3597,7 @@ "samplingRules", "sampler.rules" ], - "default": "[]" + "default": "" } ], "DD_TRACE_SCOPE": [ @@ -3840,7 +3833,7 @@ "configurationNames": [ "version" ], - "default": "$dynamic" + "default": null } ], "DD_VERTEXAI_SPAN_CHAR_LIMIT": [ @@ -4102,7 +4095,7 @@ "configurationNames": [ "service" ], - "default": "$dynamic" + "default": null } ], "OTEL_TRACES_EXPORTER": [ diff --git a/packages/dd-trace/src/profiling/exporter_cli.js b/packages/dd-trace/src/profiling/exporter_cli.js index 190ca5e9189..cba3d6349b1 100644 --- a/packages/dd-trace/src/profiling/exporter_cli.js +++ b/packages/dd-trace/src/profiling/exporter_cli.js @@ -17,6 +17,7 @@ function exporterFromURL (url) { if (url.protocol === 'file:') { return new FileExporter({ pprofPrefix: fileURLToPath(url) }) } + // TODO: Why is DD_INJECTION_ENABLED a comma separated list? const injectionEnabled = (getValueFromEnvSources('DD_INJECTION_ENABLED') ?? '').split(',') const libraryInjected = injectionEnabled.length > 0 const profilingEnabled = (getValueFromEnvSources('DD_PROFILING_ENABLED') ?? '').toLowerCase() diff --git a/packages/dd-trace/test/azure_metadata.spec.js b/packages/dd-trace/test/azure_metadata.spec.js index 4e97575881d..47b38f12fc3 100644 --- a/packages/dd-trace/test/azure_metadata.spec.js +++ b/packages/dd-trace/test/azure_metadata.spec.js @@ -11,7 +11,6 @@ const { getAzureAppMetadata, getAzureTagsFromMetadata, getAzureFunctionMetadata describe('Azure metadata', () => { const AZURE_ENV_KEYS = [ 'COMPUTERNAME', - 'DD_AAS_DOTNET_EXTENSION_VERSION', 'DD_AZURE_RESOURCE_GROUP', 'FUNCTIONS_EXTENSION_VERSION', 'FUNCTIONS_WORKER_RUNTIME', @@ -57,9 +56,7 @@ describe('Azure metadata', () => { process.env.WEBSITE_SITE_NAME = 'website_name' process.env.WEBSITE_OWNER_NAME = 'subscription_id+resource_group-regionwebspace' process.env.WEBSITE_INSTANCE_ID = 'instance_id' - process.env.DD_AAS_DOTNET_EXTENSION_VERSION = '1.0' const expected = { - extensionVersion: '1.0', instanceID: 'instance_id', instanceName: 'boaty_mcboatface', operatingSystem: os.platform(), @@ -84,9 +81,7 @@ describe('Azure metadata', () => { process.env.FUNCTIONS_EXTENSION_VERSION = '20' process.env.FUNCTIONS_WORKER_RUNTIME = 'node' process.env.FUNCTIONS_WORKER_RUNTIME_VERSION = '14' - process.env.DD_AAS_DOTNET_EXTENSION_VERSION = '1.0' const expected = { - extensionVersion: '1.0', functionRuntimeVersion: '20', instanceID: 'instance_id', instanceName: 'boaty_mcboatface', @@ -109,9 +104,7 @@ describe('Azure metadata', () => { process.env.WEBSITE_SITE_NAME = 'website_name' process.env.WEBSITE_OWNER_NAME = 'subscription_id+resource_group-regionwebspace' process.env.WEBSITE_INSTANCE_ID = 'instance_id' - process.env.DD_AAS_DOTNET_EXTENSION_VERSION = '1.0' const expected = { - 'aas.environment.extension_version': '1.0', 'aas.environment.instance_id': 'instance_id', 'aas.environment.instance_name': 'boaty_mcboatface', 'aas.environment.os': os.platform(), From c2969d914feee32bb8cf264c9f8df6061b1a764a Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Mon, 23 Feb 2026 19:27:29 +0100 Subject: [PATCH 09/17] fixup! --- packages/dd-trace/src/config/index.js | 2 +- .../src/config/supported-configurations.json | 92 +++++++++---------- packages/dd-trace/test/config/index.spec.js | 2 +- .../test/opentelemetry/metrics.spec.js | 4 +- 4 files changed, 50 insertions(+), 50 deletions(-) diff --git a/packages/dd-trace/src/config/index.js b/packages/dd-trace/src/config/index.js index e4ff63f0649..6862126ccbe 100644 --- a/packages/dd-trace/src/config/index.js +++ b/packages/dd-trace/src/config/index.js @@ -754,7 +754,7 @@ class Config { setBoolean(target, 'telemetry.debug', DD_TELEMETRY_DEBUG) setBoolean(target, 'telemetry.dependencyCollection', DD_TELEMETRY_DEPENDENCY_COLLECTION_ENABLED) target['telemetry.heartbeatInterval'] = maybeInt(Math.floor(DD_TELEMETRY_HEARTBEAT_INTERVAL * 1000)) - unprocessedTarget['telemetry.heartbeatInterval'] = DD_TELEMETRY_HEARTBEAT_INTERVAL * 1000 + unprocessedTarget['telemetry.heartbeatInterval'] = DD_TELEMETRY_HEARTBEAT_INTERVAL setBoolean(target, 'telemetry.logCollection', DD_TELEMETRY_LOG_COLLECTION_ENABLED) setBoolean(target, 'telemetry.metrics', DD_TELEMETRY_METRICS_ENABLED) setBoolean(target, 'traceId128BitGenerationEnabled', DD_TRACE_128_BIT_TRACEID_GENERATION_ENABLED) diff --git a/packages/dd-trace/src/config/supported-configurations.json b/packages/dd-trace/src/config/supported-configurations.json index 9867b3ceb8f..b0181f5c87e 100644 --- a/packages/dd-trace/src/config/supported-configurations.json +++ b/packages/dd-trace/src/config/supported-configurations.json @@ -675,7 +675,7 @@ "configurationNames": [ "dynamicInstrumentation.redactionExcludedIdentifiers" ], - "default": "" + "default": "[]" } ], "DD_DYNAMIC_INSTRUMENTATION_UPLOAD_INTERVAL_SECONDS": [ @@ -889,7 +889,7 @@ { "implementation": "A", "type": "array", - "default": "[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]", + "default": "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16", "configurationNames": [ "grpc.client.error.statuses" ] @@ -899,7 +899,7 @@ { "implementation": "A", "type": "array", - "default": "[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]", + "default": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16", "configurationNames": [ "grpc.server.error.statuses" ] @@ -1012,7 +1012,7 @@ "configurationNames": [ "iast.redactionValuePattern" ], - "default": "(?:bearers+[a-z0-9._-]+|glpat-[w-]{20}|gh[opsu]_[0-9a-zA-Z]{36}|ey[I-L][w=-]+.ey[I-L][w=-]+(?:.[w.+/=-]+)?|(?:[-]{5}BEGIN[a-zs]+PRIVATEsKEY[-]{5}[^-]+[-]{5}END[a-zs]+PRIVATEsKEY[-]{5}|ssh-rsas*[a-z0-9/.+]{100,})|[w.-]+@[a-zA-Zd.-]+.[a-zA-Z]{2,})" + "default": "(?:bearer\\s+[a-z0-9\\._\\-]+|glpat-[\\w\\-]{20}|gh[opsu]_[0-9a-zA-Z]{36}|ey[I-L][\\w=\\-]+\\.ey[I-L][\\w=\\-]+(?:\\.[\\w.+/=\\-]+)?|(?:[\\-]{5}BEGIN[a-z\\s]+PRIVATE\\sKEY[\\-]{5}[^\\-]+[\\-]{5}END[a-z\\s]+PRIVATE\\sKEY[\\-]{5}|ssh-rsa\\s*[a-z0-9/\\.+]{100,})|[\\w\\.-]+@[a-zA-Z\\d\\.-]+\\.[a-zA-Z]{2,})" } ], "DD_IAST_REQUEST_SAMPLING": [ @@ -1340,7 +1340,7 @@ { "implementation": "A", "type": "string", - "default": "on" + "default": "zstd" } ], "DD_PROFILING_ENABLED": [ @@ -1350,7 +1350,7 @@ "configurationNames": [ "profiling.enabled" ], - "default": null, + "default": "false", "aliases": [ "DD_EXPERIMENTAL_PROFILING_ENABLED" ] @@ -1363,7 +1363,7 @@ "configurationNames": [ "profiling" ], - "default": null, + "default": "false", "aliases": [ "DD_PROFILING_ENABLED" ], @@ -1433,7 +1433,7 @@ { "implementation": "A", "type": "boolean", - "default": "true" + "default": "false" } ], "DD_PROFILING_HEAP_SAMPLING_INTERVAL": [ @@ -1490,14 +1490,14 @@ ], "DD_PROFILING_UPLOAD_PERIOD": [ { - "implementation": "A", + "implementation": "B", "type": "int", "default": "65" } ], "DD_PROFILING_UPLOAD_TIMEOUT": [ { - "implementation": "A", + "implementation": "D", "type": "int", "default": "60000" } @@ -1536,7 +1536,7 @@ "configurationNames": [ "remoteConfig.pollInterval" ], - "default": "5" + "default": "5.0" } ], "DD_RUNTIME_METRICS_ENABLED": [ @@ -1591,7 +1591,7 @@ ], "DD_TRACE_EXPERIMENTAL_RUNTIME_ID_ENABLED": [ { - "implementation": "A", + "implementation": "B", "type": "boolean", "default": "false", "aliases": [ @@ -1602,7 +1602,7 @@ ], "DD_SERVICE": [ { - "implementation": "A", + "implementation": "D", "type": "string", "configurationNames": [ "service" @@ -1615,7 +1615,7 @@ ], "DD_SERVICE_MAPPING": [ { - "implementation": "A", + "implementation": "C", "type": "map", "configurationNames": [ "serviceMapping" @@ -1641,13 +1641,13 @@ "spanSamplingRules", "sampler.spanSamplingRules" ], - "default": "" + "default": "[]" } ], "DD_SPAN_SAMPLING_RULES_FILE": [ { - "implementation": "A", - "type": "array", + "implementation": "B", + "type": "string", "configurationNames": [ "spanSamplingRules", "sampler.spanSamplingRules" @@ -1694,9 +1694,9 @@ ], "DD_TELEMETRY_HEARTBEAT_INTERVAL": [ { - "implementation": "A", - "type": "int", - "default": "60000", + "implementation": "B", + "type": "decimal", + "default": "60", "configurationNames": [ "telemetry.heartbeatInterval" ] @@ -1748,7 +1748,7 @@ ], "DD_TEST_MANAGEMENT_ATTEMPT_TO_FIX_RETRIES": [ { - "implementation": "A", + "implementation": "C", "type": "int", "default": "20", "configurationNames": [ @@ -1770,7 +1770,7 @@ { "implementation": "A", "type": "string", - "default": "", + "default": null, "configurationNames": [ "ciVisibilityTestSessionName" ] @@ -1806,7 +1806,7 @@ "DD_TRACE_AGENT_PORT": [ { "implementation": "A", - "type": "string", + "type": "int", "configurationNames": [ "port" ], @@ -1825,15 +1825,12 @@ ], "DD_TRACE_AGENT_URL": [ { - "implementation": "A", + "implementation": "C", "type": "string", "configurationNames": [ "url" ], - "default": null, - "aliases": [ - "DD_TRACE_URL" - ] + "default": null } ], "DD_TRACE_AI_ENABLED": [ @@ -3828,7 +3825,7 @@ ], "DD_VERSION": [ { - "implementation": "A", + "implementation": "B", "type": "string", "configurationNames": [ "version" @@ -3906,8 +3903,8 @@ "OTEL_EXPORTER_OTLP_HEADERS": [ { "implementation": "A", - "type": "string", - "default": null, + "type": "map", + "default": "", "configurationNames": [ "otelHeaders" ] @@ -3925,17 +3922,20 @@ ], "OTEL_EXPORTER_OTLP_LOGS_HEADERS": [ { - "implementation": "A", - "type": "string", - "default": "", + "implementation": "B", + "type": "map", + "default": null, "configurationNames": [ "otelLogsHeaders" + ], + "aliases": [ + "OTEL_EXPORTER_OTLP_HEADERS" ] } ], "OTEL_EXPORTER_OTLP_LOGS_PROTOCOL": [ { - "implementation": "A", + "implementation": "D", "type": "string", "default": "http/protobuf", "configurationNames": [ @@ -3966,8 +3966,8 @@ "OTEL_EXPORTER_OTLP_METRICS_HEADERS": [ { "implementation": "A", - "type": "string", - "default": "", + "type": "map", + "default": null, "configurationNames": [ "otelMetricsHeaders" ] @@ -3990,7 +3990,7 @@ "configurationNames": [ "otelMetricsTemporalityPreference" ], - "default": "DELTA" + "default": "delta" } ], "OTEL_EXPORTER_OTLP_METRICS_TIMEOUT": [ @@ -4039,9 +4039,9 @@ ], "OTEL_METRICS_EXPORTER": [ { - "implementation": "A", - "type": "boolean", - "default": "false" + "implementation": "C", + "type": "string", + "default": null } ], "OTEL_METRIC_EXPORT_INTERVAL": [ @@ -4067,8 +4067,8 @@ "OTEL_PROPAGATORS": [ { "implementation": "A", - "type": "boolean", - "default": "false", + "type": "array", + "default": "", "configurationNames": [ "tracePropagationStyle.otelPropagators" ] @@ -4078,19 +4078,19 @@ { "implementation": "A", "type": "string", - "default": null + "default": "" } ], "OTEL_SDK_DISABLED": [ { - "implementation": "A", + "implementation": "C", "type": "boolean", "default": "true" } ], "OTEL_SERVICE_NAME": [ { - "implementation": "A", + "implementation": "B", "type": "string", "configurationNames": [ "service" diff --git a/packages/dd-trace/test/config/index.spec.js b/packages/dd-trace/test/config/index.spec.js index 6e7b5fd396c..b464c02f2ac 100644 --- a/packages/dd-trace/test/config/index.spec.js +++ b/packages/dd-trace/test/config/index.spec.js @@ -584,7 +584,7 @@ describe('Config', () => { { name: 'telemetry.debug', value: false, origin: 'default' }, { name: 'telemetry.dependencyCollection', value: true, origin: 'default' }, { name: 'telemetry.enabled', value: true, origin: 'default' }, - { name: 'telemetry.heartbeatInterval', value: 60000, origin: 'default' }, + { name: 'telemetry.heartbeatInterval', value: 60, origin: 'default' }, { name: 'telemetry.logCollection', value: true, origin: 'default' }, { name: 'telemetry.metrics', value: true, origin: 'default' }, { name: 'traceEnabled', value: true, origin: 'default' }, diff --git a/packages/dd-trace/test/opentelemetry/metrics.spec.js b/packages/dd-trace/test/opentelemetry/metrics.spec.js index fecd59139e2..5e3b82ad449 100644 --- a/packages/dd-trace/test/opentelemetry/metrics.spec.js +++ b/packages/dd-trace/test/opentelemetry/metrics.spec.js @@ -449,7 +449,7 @@ describe('OpenTelemetry Meter Provider', () => { assert.strictEqual(counter.sum.dataPoints[0].asInt, 5) }) - setupTracer({ OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE: 'DELTA' }) + setupTracer({ OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE: 'delta' }) const meter = metrics.getMeter('app') meter.createCounter('test').add(5) @@ -477,7 +477,7 @@ describe('OpenTelemetry Meter Provider', () => { assert.strictEqual(counter.sum.dataPoints[0].asInt, 10) }) - setupTracer({ OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE: 'LOWMEMORY' }) + setupTracer({ OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE: 'lowmemory' }) const meter = metrics.getMeter('app') const obs = meter.createObservableCounter('obs') obs.addCallback((result) => result.observe(10)) From ab4f602d4984b1d15a96dea13b97a98ae17e6db3 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Tue, 24 Feb 2026 02:36:01 +0100 Subject: [PATCH 10/17] fixup! --- .../evidence-redaction/sensitive-handler.js | 6 +-- .../evidence-redaction/sensitive-regex.js | 11 ----- .../iast/vulnerabilities-formatter/utils.js | 5 +- packages/dd-trace/src/config/defaults.js | 47 +++++++++++++++++-- packages/dd-trace/src/config/helper.js | 33 +++++++++++++ packages/dd-trace/src/config/index.js | 8 +++- .../src/config/supported-configurations.json | 28 ++++------- packages/dd-trace/src/startup-log.js | 2 +- .../sensitive-handler.spec.js | 8 ++-- packages/dd-trace/test/config/index.spec.js | 20 ++++---- 10 files changed, 113 insertions(+), 55 deletions(-) delete mode 100644 packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-regex.js diff --git a/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-handler.js b/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-handler.js index 75452303a5e..2c31db5ca61 100644 --- a/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-handler.js +++ b/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-handler.js @@ -14,14 +14,14 @@ const sqlSensitiveAnalyzer = require('./sensitive-analyzers/sql-sensitive-analyz const taintedRangeBasedSensitiveAnalyzer = require('./sensitive-analyzers/tainted-range-based-sensitive-analyzer') const urlSensitiveAnalyzer = require('./sensitive-analyzers/url-sensitive-analyzer') -const { DEFAULT_IAST_REDACTION_NAME_PATTERN, DEFAULT_IAST_REDACTION_VALUE_PATTERN } = require('./sensitive-regex') +const defaults = require('../../../../config/defaults') const REDACTED_SOURCE_BUFFER = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' class SensitiveHandler { constructor () { - this._namePattern = new RegExp(DEFAULT_IAST_REDACTION_NAME_PATTERN, 'gmi') - this._valuePattern = new RegExp(DEFAULT_IAST_REDACTION_VALUE_PATTERN, 'gmi') + this._namePattern = new RegExp(/** @type {string} */ (defaults['iast.redactionNamePattern']), 'gmi') + this._valuePattern = new RegExp(/** @type {string} */ (defaults['iast.redactionValuePattern']), 'gmi') this._sensitiveAnalyzers = new Map() this._sensitiveAnalyzers.set(vulnerabilities.CODE_INJECTION, taintedRangeBasedSensitiveAnalyzer) diff --git a/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-regex.js b/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-regex.js deleted file mode 100644 index 293859952df..00000000000 --- a/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-regex.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict' - -// eslint-disable-next-line @stylistic/max-len -const DEFAULT_IAST_REDACTION_NAME_PATTERN = '(?:p(?:ass)?w(?:or)?d|pass(?:_?phrase)?|secret|(?:api_?|private_?|public_?|access_?|secret_?)key(?:_?id)?|token|consumer_?(?:id|key|secret)|sign(?:ed|ature)?|auth(?:entication|orization)?|(?:sur|last)name|user(?:name)?|address|e?mail)' -// eslint-disable-next-line @stylistic/max-len -const DEFAULT_IAST_REDACTION_VALUE_PATTERN = String.raw`(?:bearer\s+[a-z0-9\._\-]+|glpat-[\w\-]{20}|gh[opsu]_[0-9a-zA-Z]{36}|ey[I-L][\w=\-]+\.ey[I-L][\w=\-]+(?:\.[\w.+/=\-]+)?|(?:[\-]{5}BEGIN[a-z\s]+PRIVATE\sKEY[\-]{5}[^\-]+[\-]{5}END[a-z\s]+PRIVATE\sKEY[\-]{5}|ssh-rsa\s*[a-z0-9/\.+]{100,})|[\w\.-]+@[a-zA-Z\d\.-]+\.[a-zA-Z]{2,})` - -module.exports = { - DEFAULT_IAST_REDACTION_NAME_PATTERN, - DEFAULT_IAST_REDACTION_VALUE_PATTERN, -} diff --git a/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/utils.js b/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/utils.js index ce26619bbfa..6e1c483a967 100644 --- a/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/utils.js +++ b/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/utils.js @@ -1,7 +1,8 @@ 'use strict' const crypto = require('crypto') -const { DEFAULT_IAST_REDACTION_VALUE_PATTERN } = require('./evidence-redaction/sensitive-regex') + +const defaults = require('../../../config/defaults') const STRINGIFY_RANGE_KEY = 'DD_' + crypto.randomBytes(20).toString('hex') const STRINGIFY_SENSITIVE_KEY = STRINGIFY_RANGE_KEY + 'SENSITIVE' @@ -11,7 +12,7 @@ const STRINGIFY_SENSITIVE_NOT_STRING_KEY = STRINGIFY_SENSITIVE_KEY + 'NOTSTRING' const KEYS_REGEX_WITH_SENSITIVE_RANGES = new RegExp(String.raw`(?:"(${STRINGIFY_RANGE_KEY}_\d+_))|(?:"(${STRINGIFY_SENSITIVE_KEY}_\d+_(\d+)_))|("${STRINGIFY_SENSITIVE_NOT_STRING_KEY}_\d+_([\s0-9.a-zA-Z]*)")`, 'gm') const KEYS_REGEX_WITHOUT_SENSITIVE_RANGES = new RegExp(String.raw`"(${STRINGIFY_RANGE_KEY}_\d+_)`, 'gm') -const sensitiveValueRegex = new RegExp(DEFAULT_IAST_REDACTION_VALUE_PATTERN, 'gmi') +const sensitiveValueRegex = new RegExp(/** @type {string} */ (defaults['iast.redactionValuePattern']), 'gmi') function iterateObject (target, fn, levelKeys = [], depth = 10, visited = new Set()) { for (const key of Object.keys(target)) { diff --git a/packages/dd-trace/src/config/defaults.js b/packages/dd-trace/src/config/defaults.js index 7a97e5686e0..3bc3d2b0f61 100644 --- a/packages/dd-trace/src/config/defaults.js +++ b/packages/dd-trace/src/config/defaults.js @@ -36,14 +36,50 @@ function parseDefaultByType (raw, type) { return Number(raw) } case 'array': { - // TODO: Implement comma separated list if (raw.length === 0) return [] - return JSON.parse(raw) + let parsedAsJson + try { + parsedAsJson = JSON.parse(raw) + } catch {} + if (Array.isArray(parsedAsJson)) return parsedAsJson + return raw.split(',').map(item => { + const colonIndex = item.indexOf(':') + if (colonIndex === -1) { + return item.trim() + } + const key = item.slice(0, colonIndex).trim() + const value = item.slice(colonIndex + 1).trim() + return `${key}:${value}` + }) } case 'map': { - // TODO: Implement comma separated list with colon separated key value pairs if (raw.length === 0) return {} - return JSON.parse(raw) + let parsedAsJson + try { + parsedAsJson = JSON.parse(raw) + } catch {} + if (parsedAsJson && typeof parsedAsJson === 'object') { + return parsedAsJson + } + + /** @type {Record} */ + const entries = {} + for (const item of raw.split(',')) { + const colonIndex = item.indexOf(':') + if (colonIndex === -1) { + const key = item.trim() + if (key.length > 0) { + entries[key] = '' + } + continue + } + const key = item.slice(0, colonIndex).trim() + const value = item.slice(colonIndex + 1).trim() + if (key.length > 0) { + entries[key] = value + } + } + return entries } default: return raw @@ -90,6 +126,9 @@ const defaultsWithConditionalRuntimeBehavior = { isIntelligentTestRunnerEnabled: false, isManualApiEnabled: false, isTestManagementEnabled: false, + // TODO: These are not conditional, they would just be of type number. + 'dogstatsd.port': '8125', + port: '8126', } /** @type {Record} */ diff --git a/packages/dd-trace/src/config/helper.js b/packages/dd-trace/src/config/helper.js index 0ba7b197758..1d43d1abd29 100644 --- a/packages/dd-trace/src/config/helper.js +++ b/packages/dd-trace/src/config/helper.js @@ -54,6 +54,20 @@ for (const [canonical, configuration] of Object.entries(supportedConfigurations) } } +// Backward-compatible aliases that are still supported at runtime but are not +// currently represented in supported-configurations metadata. +const legacyAliases = { + DD_AGENT_HOST: ['DD_TRACE_AGENT_HOSTNAME'], + DD_TRACE_AGENT_URL: ['DD_TRACE_URL'], +} + +for (const [canonical, entries] of Object.entries(legacyAliases)) { + aliases[canonical] ??= new Set() + for (const alias of entries) { + aliases[canonical].add(alias) + } +} + const aliasToCanonical = {} for (const canonical of Object.keys(aliases)) { for (const alias of aliases[canonical]) { @@ -119,6 +133,24 @@ function validateAccess (name) { } } +/** + * Parses a comma separated list of items into an array of key value pairs. + * + * @param {string} value + * @returns {string[]} + */ +function parseArray (value) { + return value.split(',').map(item => { + const colonIndex = item.indexOf(':') + if (colonIndex === -1) { + return item.trim() + } + const key = item.slice(0, colonIndex).trim() + const val = item.slice(colonIndex + 1).trim() + return val === undefined ? key : `${key}:${val}` + }) +} + module.exports = { /** * Expose raw stable config maps and warnings for consumers that need @@ -211,4 +243,5 @@ module.exports = { return getValueFromSource(name, localStableConfig) } }, + parseArray, } diff --git a/packages/dd-trace/src/config/index.js b/packages/dd-trace/src/config/index.js index 6862126ccbe..c2f5cbba3ff 100644 --- a/packages/dd-trace/src/config/index.js +++ b/packages/dd-trace/src/config/index.js @@ -712,8 +712,11 @@ class Config { maybeJsonFile(DD_SPAN_SAMPLING_RULES_FILE) ?? safeJsonParse(DD_SPAN_SAMPLING_RULES) )) - setUnit(target, 'sampleRate', DD_TRACE_SAMPLE_RATE || - getFromOtelSamplerMap(OTEL_TRACES_SAMPLER, OTEL_TRACES_SAMPLER_ARG)) + setUnit( + target, + 'sampleRate', + DD_TRACE_SAMPLE_RATE || getFromOtelSamplerMap(OTEL_TRACES_SAMPLER, OTEL_TRACES_SAMPLER_ARG) + ) target['sampler.rateLimit'] = DD_TRACE_RATE_LIMIT setSamplingRule(target, 'sampler.rules', safeJsonParse(DD_TRACE_SAMPLING_RULES)) unprocessedTarget['sampler.rules'] = DD_TRACE_SAMPLING_RULES @@ -1135,6 +1138,7 @@ class Config { calc.otelLogsUrl = `http://${agentHostname}:${DEFAULT_OTLP_PORT}` calc.otelMetricsUrl = `http://${agentHostname}:${DEFAULT_OTLP_PORT}/v1/metrics` calc.otelUrl = `http://${agentHostname}:${DEFAULT_OTLP_PORT}` + calc['telemetry.heartbeatInterval'] = maybeInt(Math.floor(this.#defaults['telemetry.heartbeatInterval'] * 1000)) setBoolean(calc, 'isGitUploadEnabled', calc.isIntelligentTestRunnerEnabled && !isFalse(getEnv('DD_CIVISIBILITY_GIT_UPLOAD_ENABLED'))) diff --git a/packages/dd-trace/src/config/supported-configurations.json b/packages/dd-trace/src/config/supported-configurations.json index b0181f5c87e..18b45e5f62b 100644 --- a/packages/dd-trace/src/config/supported-configurations.json +++ b/packages/dd-trace/src/config/supported-configurations.json @@ -27,12 +27,12 @@ ], "DD_AGENT_HOST": [ { - "implementation": "A", + "implementation": "E", "type": "string", "configurationNames": [ "hostname" ], - "default": "localhost", + "default": "127.0.0.1", "aliases": [ "DD_TRACE_AGENT_HOSTNAME" ] @@ -709,9 +709,6 @@ { "implementation": "A", "type": "boolean", - "configurationNames": [ - "apmTracingEnabled" - ], "default": "true" } ], @@ -1179,7 +1176,7 @@ "configurationNames": [ "llmobs.agentlessEnabled" ], - "default": "false" + "default": null } ], "DD_LLMOBS_ENABLED": [ @@ -1346,7 +1343,7 @@ "DD_PROFILING_ENABLED": [ { "implementation": "A", - "type": "string", + "type": "boolean", "configurationNames": [ "profiling.enabled" ], @@ -1648,10 +1645,6 @@ { "implementation": "B", "type": "string", - "configurationNames": [ - "spanSamplingRules", - "sampler.spanSamplingRules" - ], "default": "" } ], @@ -3433,7 +3426,7 @@ "implementation": "A", "type": "array", "configurationNames": [ - "tracePropagationStyle.inject" + "tracePropagationStyle" ], "default": "[\"datadog\", \"tracecontext\", \"baggage\"]" } @@ -3589,7 +3582,7 @@ "DD_TRACE_SAMPLING_RULES": [ { "implementation": "A", - "type": "map", + "type": "array", "configurationNames": [ "samplingRules", "sampler.rules" @@ -4107,12 +4100,9 @@ ], "OTEL_TRACES_SAMPLER": [ { - "implementation": "A", - "type": "decimal", - "configurationNames": [ - "sampleRate" - ], - "default": null + "implementation": "E", + "type": "string", + "default": "parentbased_always_on" } ], "OTEL_TRACES_SAMPLER_ARG": [ diff --git a/packages/dd-trace/src/startup-log.js b/packages/dd-trace/src/startup-log.js index e8717f50092..47b690ed029 100644 --- a/packages/dd-trace/src/startup-log.js +++ b/packages/dd-trace/src/startup-log.js @@ -74,7 +74,7 @@ function tracerInfo () { runtime_metrics_enabled: !!config.runtimeMetrics, profiling_enabled: config.profiling?.enabled === 'true' || config.profiling?.enabled === 'auto', integrations_loaded: Object.keys(pluginManager._pluginsByName), - appsec_enabled: !!config.appsec.enabled, + appsec_enabled: config.appsec.enabled, data_streams_enabled: !!config.dsmEnabled, } diff --git a/packages/dd-trace/test/appsec/iast/vulnerability-formatter/evidence-redaction/sensitive-handler.spec.js b/packages/dd-trace/test/appsec/iast/vulnerability-formatter/evidence-redaction/sensitive-handler.spec.js index 6d5a77e09dc..a350ac6e801 100644 --- a/packages/dd-trace/test/appsec/iast/vulnerability-formatter/evidence-redaction/sensitive-handler.spec.js +++ b/packages/dd-trace/test/appsec/iast/vulnerability-formatter/evidence-redaction/sensitive-handler.spec.js @@ -4,13 +4,15 @@ const assert = require('node:assert/strict') const { afterEach, beforeEach, describe, it } = require('mocha') const sinon = require('sinon') + const sensitiveHandler = require('../../../../../src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-handler') -const { DEFAULT_IAST_REDACTION_NAME_PATTERN, DEFAULT_IAST_REDACTION_VALUE_PATTERN } = - require('../../../../../src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-regex') - +const defaults = require('../../../../../src/config/defaults') const { suite } = require('../resources/evidence-redaction-suite.json') +const DEFAULT_IAST_REDACTION_NAME_PATTERN = /** @type {string} */ (defaults['iast.redactionNamePattern']) +const DEFAULT_IAST_REDACTION_VALUE_PATTERN = /** @type {string} */ (defaults['iast.redactionValuePattern']) + function doTest (testCase, parameter) { const description = testCase.description.split(parameter.name).join(parameter.value) const input = JSON.parse(JSON.stringify(testCase.input).split(parameter.name).join(parameter.value)) diff --git a/packages/dd-trace/test/config/index.spec.js b/packages/dd-trace/test/config/index.spec.js index b464c02f2ac..f17bbc6e35f 100644 --- a/packages/dd-trace/test/config/index.spec.js +++ b/packages/dd-trace/test/config/index.spec.js @@ -321,7 +321,7 @@ describe('Config', () => { blockedTemplateHtml: undefined, blockedTemplateJson: undefined, blockedTemplateGraphql: undefined, - enabled: undefined, + enabled: false, eventTracking: { mode: 'identification', }, @@ -391,14 +391,14 @@ describe('Config', () => { iast: { enabled: false, redactionEnabled: true, - redactionNamePattern: undefined, - redactionValuePattern: undefined, + redactionNamePattern: defaults['iast.redactionNamePattern'], + redactionValuePattern: defaults['iast.redactionValuePattern'], telemetryVerbosity: 'INFORMATION', stackTrace: { enabled: true, }, }, - injectForce: undefined, + injectForce: false, installSignature: { id: undefined, time: undefined, @@ -465,7 +465,7 @@ describe('Config', () => { { name: 'appsec.apiSecurity.maxDownstreamRequestBodyAnalysis', value: 1, origin: 'default' }, { name: 'appsec.blockedTemplateHtml', value: undefined, origin: 'default' }, { name: 'appsec.blockedTemplateJson', value: undefined, origin: 'default' }, - { name: 'appsec.enabled', value: undefined, origin: 'default' }, + { name: 'appsec.enabled', value: false, origin: 'default' }, { name: 'appsec.eventTracking.mode', value: 'identification', origin: 'default' }, { name: 'appsec.extendedHeadersCollection.enabled', value: false, origin: 'default' }, { name: 'appsec.extendedHeadersCollection.maxHeaders', value: 50, origin: 'default' }, @@ -492,7 +492,7 @@ describe('Config', () => { { name: 'appsec.stackTrace.maxStackTraces', value: 2, origin: 'default' }, { name: 'appsec.wafTimeout', value: 5e3, origin: 'default' }, { name: 'ciVisAgentlessLogSubmissionEnabled', value: false, origin: 'default' }, - { name: 'ciVisibilityTestSessionName', value: '', origin: 'default' }, + { name: 'ciVisibilityTestSessionName', value: undefined, origin: 'default' }, { name: 'clientIpEnabled', value: false, origin: 'default' }, { name: 'clientIpHeader', value: undefined, origin: 'default' }, { name: 'codeOriginForSpans.enabled', value: true, origin: 'default' }, @@ -526,13 +526,13 @@ describe('Config', () => { { name: 'iast.maxConcurrentRequests', value: 2, origin: 'default' }, { name: 'iast.maxContextOperations', value: 2, origin: 'default' }, { name: 'iast.redactionEnabled', value: true, origin: 'default' }, - { name: 'iast.redactionNamePattern', value: undefined, origin: 'default' }, - { name: 'iast.redactionValuePattern', value: undefined, origin: 'default' }, + { name: 'iast.redactionNamePattern', value: defaults['iast.redactionNamePattern'], origin: 'default' }, + { name: 'iast.redactionValuePattern', value: defaults['iast.redactionValuePattern'], origin: 'default' }, { name: 'iast.requestSampling', value: 30, origin: 'default' }, { name: 'iast.securityControlsConfiguration', value: undefined, origin: 'default' }, { name: 'iast.stackTrace.enabled', value: true, origin: 'default' }, { name: 'iast.telemetryVerbosity', value: 'INFORMATION', origin: 'default' }, - { name: 'injectForce', value: undefined, origin: 'default' }, + { name: 'injectForce', value: false, origin: 'default' }, { name: 'injectionEnabled', value: [], origin: 'default' }, { name: 'instrumentationSource', value: 'manual', origin: 'default' }, { name: 'isCiVisibility', value: false, origin: 'default' }, @@ -555,7 +555,7 @@ describe('Config', () => { { name: 'peerServiceMapping', value: {}, origin: 'default' }, { name: 'plugins', value: true, origin: 'default' }, { name: 'port', value: '8126', origin: 'default' }, - { name: 'profiling.enabled', value: undefined, origin: 'default' }, + { name: 'profiling.enabled', value: false, origin: 'default' }, { name: 'profiling.exporters', value: 'agent', origin: 'default' }, { name: 'profiling.sourceMap', value: true, origin: 'default' }, { name: 'protocolVersion', value: '0.4', origin: 'default' }, From 0ba322340f55b4b3e74f191ba978af82e155a3ef Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Tue, 24 Feb 2026 02:56:18 +0100 Subject: [PATCH 11/17] fixup! --- packages/dd-trace/src/config/index.js | 4 ++-- packages/dd-trace/src/config/supported-configurations.json | 7 ++----- .../src/opentelemetry/otlp/otlp_http_exporter_base.js | 7 +++---- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/packages/dd-trace/src/config/index.js b/packages/dd-trace/src/config/index.js index c2f5cbba3ff..c36fdbc5bec 100644 --- a/packages/dd-trace/src/config/index.js +++ b/packages/dd-trace/src/config/index.js @@ -164,7 +164,7 @@ class Config { * Set the configuration with remote config settings. * Applies remote configuration, recalculates derived values, and merges all configuration sources. * - * @param {import('./config/remote_config').RemoteConfigOptions|null} options - Configurations received via Remote + * @param {import('./remote_config').RemoteConfigOptions|null} options - Configurations received via Remote * Config or null to reset all remote configuration */ setRemoteConfig (options) { @@ -1166,7 +1166,7 @@ class Config { /** * Applies remote configuration options from APM_TRACING configs. * - * @param {import('./config/remote_config').RemoteConfigOptions} options - Configurations received via Remote Config + * @param {import('./remote_config').RemoteConfigOptions} options - Configurations received via Remote Config */ #applyRemoteConfig (options) { const opts = this.#remote diff --git a/packages/dd-trace/src/config/supported-configurations.json b/packages/dd-trace/src/config/supported-configurations.json index 18b45e5f62b..3f8c9485fbc 100644 --- a/packages/dd-trace/src/config/supported-configurations.json +++ b/packages/dd-trace/src/config/supported-configurations.json @@ -3895,9 +3895,9 @@ ], "OTEL_EXPORTER_OTLP_HEADERS": [ { - "implementation": "A", + "implementation": "B", "type": "map", - "default": "", + "default": null, "configurationNames": [ "otelHeaders" ] @@ -3920,9 +3920,6 @@ "default": null, "configurationNames": [ "otelLogsHeaders" - ], - "aliases": [ - "OTEL_EXPORTER_OTLP_HEADERS" ] } ], diff --git a/packages/dd-trace/src/opentelemetry/otlp/otlp_http_exporter_base.js b/packages/dd-trace/src/opentelemetry/otlp/otlp_http_exporter_base.js index 822c70ad00d..c5bfc453084 100644 --- a/packages/dd-trace/src/opentelemetry/otlp/otlp_http_exporter_base.js +++ b/packages/dd-trace/src/opentelemetry/otlp/otlp_http_exporter_base.js @@ -20,7 +20,7 @@ class OtlpHttpExporterBase { * Creates a new OtlpHttpExporterBase instance. * * @param {string} url - OTLP endpoint URL - * @param {string} headers - Additional HTTP headers as comma-separated key=value string + * @param {string|undefined} headers - Additional HTTP headers as comma-separated key=value string * @param {number} timeout - Request timeout in milliseconds * @param {string} protocol - OTLP protocol (http/protobuf or http/json) * @param {string} defaultPath - Default path to use if URL has no path @@ -117,11 +117,10 @@ class OtlpHttpExporterBase { /** * Parses additional HTTP headers from a comma-separated string. - * @param {string} headersString - Comma-separated key=value pairs + * @param {string} [headersString=''] - Comma-separated key=value pairs * @returns {Record} Parsed headers object - * @private */ - #parseAdditionalHeaders (headersString) { + #parseAdditionalHeaders (headersString = '') { const headers = {} let key = '' let value = '' From 43337511b1011e0a30e408747994d663db947eb9 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Tue, 24 Feb 2026 03:19:48 +0100 Subject: [PATCH 12/17] fixup! --- packages/dd-trace/src/config/defaults.js | 2 ++ packages/dd-trace/src/config/helper.js | 33 ------------------- .../src/config/supported-configurations.json | 9 +++-- 3 files changed, 8 insertions(+), 36 deletions(-) diff --git a/packages/dd-trace/src/config/defaults.js b/packages/dd-trace/src/config/defaults.js index 3bc3d2b0f61..19807756934 100644 --- a/packages/dd-trace/src/config/defaults.js +++ b/packages/dd-trace/src/config/defaults.js @@ -42,6 +42,7 @@ function parseDefaultByType (raw, type) { parsedAsJson = JSON.parse(raw) } catch {} if (Array.isArray(parsedAsJson)) return parsedAsJson + // TODO: Make the parsing a helper that is reused. return raw.split(',').map(item => { const colonIndex = item.indexOf(':') if (colonIndex === -1) { @@ -62,6 +63,7 @@ function parseDefaultByType (raw, type) { return parsedAsJson } + // TODO: Make the parsing a helper that is reused. /** @type {Record} */ const entries = {} for (const item of raw.split(',')) { diff --git a/packages/dd-trace/src/config/helper.js b/packages/dd-trace/src/config/helper.js index 1d43d1abd29..0ba7b197758 100644 --- a/packages/dd-trace/src/config/helper.js +++ b/packages/dd-trace/src/config/helper.js @@ -54,20 +54,6 @@ for (const [canonical, configuration] of Object.entries(supportedConfigurations) } } -// Backward-compatible aliases that are still supported at runtime but are not -// currently represented in supported-configurations metadata. -const legacyAliases = { - DD_AGENT_HOST: ['DD_TRACE_AGENT_HOSTNAME'], - DD_TRACE_AGENT_URL: ['DD_TRACE_URL'], -} - -for (const [canonical, entries] of Object.entries(legacyAliases)) { - aliases[canonical] ??= new Set() - for (const alias of entries) { - aliases[canonical].add(alias) - } -} - const aliasToCanonical = {} for (const canonical of Object.keys(aliases)) { for (const alias of aliases[canonical]) { @@ -133,24 +119,6 @@ function validateAccess (name) { } } -/** - * Parses a comma separated list of items into an array of key value pairs. - * - * @param {string} value - * @returns {string[]} - */ -function parseArray (value) { - return value.split(',').map(item => { - const colonIndex = item.indexOf(':') - if (colonIndex === -1) { - return item.trim() - } - const key = item.slice(0, colonIndex).trim() - const val = item.slice(colonIndex + 1).trim() - return val === undefined ? key : `${key}:${val}` - }) -} - module.exports = { /** * Expose raw stable config maps and warnings for consumers that need @@ -243,5 +211,4 @@ module.exports = { return getValueFromSource(name, localStableConfig) } }, - parseArray, } diff --git a/packages/dd-trace/src/config/supported-configurations.json b/packages/dd-trace/src/config/supported-configurations.json index 3f8c9485fbc..ce1428680f5 100644 --- a/packages/dd-trace/src/config/supported-configurations.json +++ b/packages/dd-trace/src/config/supported-configurations.json @@ -886,7 +886,7 @@ { "implementation": "A", "type": "array", - "default": "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16", + "default": "[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]", "configurationNames": [ "grpc.client.error.statuses" ] @@ -896,7 +896,7 @@ { "implementation": "A", "type": "array", - "default": "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16", + "default": "[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]", "configurationNames": [ "grpc.server.error.statuses" ] @@ -1823,7 +1823,10 @@ "configurationNames": [ "url" ], - "default": null + "default": null, + "aliases": [ + "DD_TRACE_URL" + ] } ], "DD_TRACE_AI_ENABLED": [ From a2be6605a590d8b57eb2331c869dcffd2f8e48e0 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Tue, 24 Feb 2026 03:37:21 +0100 Subject: [PATCH 13/17] fixup! --- packages/dd-trace/src/config/defaults.js | 10 ++++++++-- .../dd-trace/src/config/supported-configurations.json | 4 ++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/dd-trace/src/config/defaults.js b/packages/dd-trace/src/config/defaults.js index 19807756934..b78749faa7d 100644 --- a/packages/dd-trace/src/config/defaults.js +++ b/packages/dd-trace/src/config/defaults.js @@ -21,7 +21,7 @@ const service = getEnv('AWS_LAMBDA_FUNCTION_NAME') || * @returns {string|number|boolean|Record|unknown[]|undefined} */ function parseDefaultByType (raw, type) { - if (raw === null || raw === '$dynamic') { + if (raw === null) { return } @@ -92,7 +92,13 @@ function parseDefaultByType (raw, type) { const metadataDefaults = {} for (const entries of Object.values(supportedConfigurations)) { for (const entry of entries) { - if (entry.default === '$dynamic' || !Array.isArray(entry.configurationNames)) { + // TODO: Replace $dynamic with method names that would be called and that + // are also called when the user passes through the value. That way the + // handling is unified and methods can be declared as default. + // The name of that method should be expressive for users. + // TODO: Add handling for all environment variable names. They should not + // need a configuration name for being listed with their default. + if (!Array.isArray(entry.configurationNames)) { continue } diff --git a/packages/dd-trace/src/config/supported-configurations.json b/packages/dd-trace/src/config/supported-configurations.json index ce1428680f5..88de8e689d5 100644 --- a/packages/dd-trace/src/config/supported-configurations.json +++ b/packages/dd-trace/src/config/supported-configurations.json @@ -206,12 +206,12 @@ ], "DD_APPSEC_ENABLED": [ { - "implementation": "A", + "implementation": "C", "type": "boolean", "configurationNames": [ "appsec.enabled" ], - "default": "false" + "default": null } ], "DD_APPSEC_GRAPHQL_BLOCKED_TEMPLATE_JSON": [ From bade49763fe1f90a98ff29f79ca0e42ae3b5eec6 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Tue, 24 Feb 2026 11:35:50 +0100 Subject: [PATCH 14/17] fixup! --- index.d.ts | 11 ++- .../evidence-redaction/sensitive-handler.js | 3 +- packages/dd-trace/src/config/defaults.js | 2 +- packages/dd-trace/src/config/index.js | 18 +---- .../src/config/supported-configurations.json | 75 ++++++++----------- .../dd-trace/src/llmobs/span_processor.js | 2 +- .../src/opentracing/propagation/text_map.js | 3 +- packages/dd-trace/src/opentracing/span.js | 7 +- packages/dd-trace/test/config/index.spec.js | 24 +++--- 9 files changed, 64 insertions(+), 81 deletions(-) diff --git a/index.d.ts b/index.d.ts index 2b991e7498b..5f419d201e7 100644 --- a/index.d.ts +++ b/index.d.ts @@ -486,7 +486,7 @@ declare namespace tracer { /** * Whether to enable startup logs. - * @default true + * @default false * @env DD_TRACE_STARTUP_LOGS * Programmatic configuration takes precedence over the environment variables listed above. */ @@ -698,11 +698,16 @@ declare namespace tracer { * @default {} */ experimental?: { + + /** + * @default false + * @env DD_TRACE_EXPERIMENTAL_B3_ENABLED + * Programmatic configuration takes precedence over the environment variables listed above. + */ b3?: boolean /** * Whether to write traces to log output or agentless, rather than send to an agent - * @default false * @env DD_TRACE_EXPERIMENTAL_EXPORTER * Programmatic configuration takes precedence over the environment variables listed above. */ @@ -838,7 +843,7 @@ declare namespace tracer { * @env DD_TRACE_LOG_LEVEL, OTEL_LOG_LEVEL * Programmatic configuration takes precedence over the environment variables listed above. */ - logLevel?: 'error' | 'debug' + logLevel?: 'debug' | 'info' | 'warn' | 'error' /** * Enables DBM to APM link using tag injection. diff --git a/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-handler.js b/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-handler.js index 2c31db5ca61..5039f2bb544 100644 --- a/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-handler.js +++ b/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-handler.js @@ -3,6 +3,7 @@ const log = require('../../../../log') const vulnerabilities = require('../../vulnerabilities') +const defaults = require('../../../../config/defaults') const { contains, intersects, remove } = require('./range-utils') @@ -14,8 +15,6 @@ const sqlSensitiveAnalyzer = require('./sensitive-analyzers/sql-sensitive-analyz const taintedRangeBasedSensitiveAnalyzer = require('./sensitive-analyzers/tainted-range-based-sensitive-analyzer') const urlSensitiveAnalyzer = require('./sensitive-analyzers/url-sensitive-analyzer') -const defaults = require('../../../../config/defaults') - const REDACTED_SOURCE_BUFFER = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' class SensitiveHandler { diff --git a/packages/dd-trace/src/config/defaults.js b/packages/dd-trace/src/config/defaults.js index b78749faa7d..90c0c39b67b 100644 --- a/packages/dd-trace/src/config/defaults.js +++ b/packages/dd-trace/src/config/defaults.js @@ -144,7 +144,7 @@ const defaults = { ...defaultsWithoutSupportedConfigurationEntry, ...metadataDefaults, ...defaultsWithConditionalRuntimeBehavior, - service: service, + service, version: pkg.version, } diff --git a/packages/dd-trace/src/config/index.js b/packages/dd-trace/src/config/index.js index c36fdbc5bec..2fb2686034c 100644 --- a/packages/dd-trace/src/config/index.js +++ b/packages/dd-trace/src/config/index.js @@ -60,11 +60,6 @@ let configInstance = null module.exports = getConfig class Config { - /** - * parsed DD_TAGS, usable as a standalone tag set across products - * @type {Record | undefined} - */ - #parsedDdTags = {} #envUnprocessed = {} #optsUnprocessed = {} #remoteUnprocessed = {} @@ -156,10 +151,6 @@ class Config { } } - get parsedDdTags () { - return this.#parsedDdTags - } - /** * Set the configuration with remote config settings. * Applies remote configuration, recalculates derived values, and merges all configuration sources. @@ -371,7 +362,6 @@ class Config { DD_TRACE_EXPERIMENTAL_GET_RUM_DATA_ENABLED, DD_RUNTIME_METRICS_RUNTIME_ID_ENABLED, DD_TRACE_GIT_METADATA_ENABLED, - DD_TRACE_GLOBAL_TAGS, DD_TRACE_GRAPHQL_ERROR_EXTENSIONS, DD_TRACE_HEADER_TAGS, DD_TRACE_LEGACY_BAGGAGE_ENABLED, @@ -438,13 +428,9 @@ class Config { const tags = {} - const parsedDdTags = parseSpaceSeparatedTags(DD_TAGS) - tagger.add(this.#parsedDdTags, parsedDdTags) - tagger.add(tags, parseSpaceSeparatedTags(handleOtel(OTEL_RESOURCE_ATTRIBUTES))) - tagger.add(tags, parsedDdTags) - tagger.add(tags, DD_TRACE_TAGS) - tagger.add(tags, DD_TRACE_GLOBAL_TAGS) + tagger.add(tags, parseSpaceSeparatedTags(DD_TAGS)) + tagger.add(tags, parseSpaceSeparatedTags(DD_TRACE_TAGS)) setString(target, 'apiKey', DD_API_KEY) setBoolean(target, 'otelLogsEnabled', DD_LOGS_OTEL_ENABLED) diff --git a/packages/dd-trace/src/config/supported-configurations.json b/packages/dd-trace/src/config/supported-configurations.json index 88de8e689d5..0dce6a9c1cb 100644 --- a/packages/dd-trace/src/config/supported-configurations.json +++ b/packages/dd-trace/src/config/supported-configurations.json @@ -201,7 +201,8 @@ "configurationNames": [ "appsec.extendedHeadersCollection.enabled" ], - "default": "false" + "default": "false", + "deprecated": true } ], "DD_APPSEC_ENABLED": [ @@ -311,7 +312,8 @@ "configurationNames": [ "appsec.rasp.bodyCollection" ], - "default": "false" + "default": "false", + "deprecated": true } ], "DD_APPSEC_RASP_ENABLED": [ @@ -1356,9 +1358,9 @@ "DD_EXPERIMENTAL_PROFILING_ENABLED": [ { "implementation": "A", - "type": "string", + "type": "boolean", "configurationNames": [ - "profiling" + "profiling.enabled" ], "default": "false", "aliases": [ @@ -1689,7 +1691,7 @@ { "implementation": "B", "type": "decimal", - "default": "60", + "default": "60.0", "configurationNames": [ "telemetry.heartbeatInterval" ] @@ -1818,12 +1820,12 @@ ], "DD_TRACE_AGENT_URL": [ { - "implementation": "C", + "implementation": "A", "type": "string", "configurationNames": [ "url" ], - "default": null, + "default": "", "aliases": [ "DD_TRACE_URL" ] @@ -2220,7 +2222,7 @@ { "implementation": "A", "type": "string", - "default": "user.id,session.id,account.id", + "default": "user.id, session.id, account.id", "configurationNames": [ "baggageTagKeys" ] @@ -2230,7 +2232,7 @@ { "implementation": "A", "type": "boolean", - "default": "true" + "default": "false" } ], "DD_TRACE_BLUEBIRD_ENABLED": [ @@ -2319,7 +2321,7 @@ "configurationNames": [ "cloudPayloadTagging.request" ], - "default": "" + "default": null } ], "DD_TRACE_CLOUD_RESPONSE_PAYLOAD_TAGGING": [ @@ -2329,7 +2331,7 @@ "configurationNames": [ "cloudPayloadTagging.response" ], - "default": "" + "default": null } ], "DD_TRACE_COLLECTIONS_ENABLED": [ @@ -2409,13 +2411,6 @@ "default": "true" } ], - "DD_TRACE_DD_TRACE_API_ENABLED": [ - { - "implementation": "A", - "type": "boolean", - "default": "true" - } - ], "DD_TRACE_DEBUG": [ { "implementation": "B", @@ -2509,7 +2504,7 @@ "configurationNames": [ "experimental.exporter" ], - "default": null + "default": "" } ], "DD_TRACE_EXPERIMENTAL_GET_RUM_DATA_ENABLED": [ @@ -2526,14 +2521,14 @@ { "implementation": "A", "type": "boolean", - "default": null + "default": "false" } ], "DD_TRACE_EXPERIMENTAL_STATE_TRACKING": [ { "implementation": "A", "type": "boolean", - "default": null + "default": "false" } ], "DD_TRACE_EXPRESS_ENABLED": [ @@ -2580,7 +2575,7 @@ ], "DD_TRACE_FLUSH_INTERVAL": [ { - "implementation": "A", + "implementation": "B", "type": "int", "configurationNames": [ "flushInterval" @@ -2622,13 +2617,6 @@ ] } ], - "DD_TRACE_GLOBAL_TAGS": [ - { - "implementation": "A", - "type": "string", - "default": null - } - ], "DD_TRACE_GOOGLE_CLOUD_PUBSUB_ENABLED": [ { "implementation": "A", @@ -3021,7 +3009,7 @@ ], "DD_TRACE_LOG_LEVEL": [ { - "implementation": "A", + "implementation": "C", "type": "string", "default": "debug" } @@ -3212,7 +3200,7 @@ ], "DD_TRACE_OBFUSCATION_QUERY_STRING_REGEXP": [ { - "implementation": "A", + "implementation": "E", "type": "string", "default": "(?:p(?:ass)?w(?:or)?d|pass(?:_?phrase)?|secret|(?:api_?|private_?|public_?|access_?|secret_?)key(?:_?id)?|token|consumer_?(?:id|key|secret)|sign(?:ed|ature)?|auth(?:entication|orization)?)(?:(?:\\s|%20)*(?:=|%3D)[^&]+|(?:\"|%22)(?:\\s|%20)*(?::|%3A)(?:\\s|%20)*(?:\"|%22)(?:%2[^2]|%[^2]|[^\"%])+(?:\"|%22))|bearer(?:\\s|%20)+[a-z0-9\\._\\-]+|token(?::|%3A)[a-z0-9]{13}|gh[opsu]_[0-9a-zA-Z]{36}|ey[I-L](?:[\\w=-]|%3D)+\\.ey[I-L](?:[\\w=-]|%3D)+(?:\\.(?:[\\w.+\\/=-]|%3D|%2F|%2B)+)?|[\\-]{5}BEGIN(?:[a-z\\s]|%20)+PRIVATE(?:\\s|%20)KEY[\\-]{5}[^\\-]+[\\-]{5}END(?:[a-z\\s]|%20)+PRIVATE(?:\\s|%20)KEY|ssh-rsa(?:\\s|%20)*(?:[a-z0-9\\/\\.+]|%2F|%5C|%2B){100,}", "configurationNames": [ @@ -3300,7 +3288,7 @@ "configurationNames": [ "spanComputePeerService" ], - "default": "true" + "default": "false" } ], "DD_TRACE_PEER_SERVICE_MAPPING": [ @@ -3426,32 +3414,32 @@ ], "DD_TRACE_PROPAGATION_STYLE": [ { - "implementation": "A", + "implementation": "D", "type": "array", "configurationNames": [ "tracePropagationStyle" ], - "default": "[\"datadog\", \"tracecontext\", \"baggage\"]" + "default": "datadog,tracecontext,baggage" } ], "DD_TRACE_PROPAGATION_STYLE_EXTRACT": [ { - "implementation": "A", + "implementation": "B", "type": "array", "configurationNames": [ "tracePropagationStyle.extract" ], - "default": "[\"datadog\", \"tracecontext\", \"baggage\"]" + "default": "datadog, tracecontext, baggage" } ], "DD_TRACE_PROPAGATION_STYLE_INJECT": [ { - "implementation": "A", + "implementation": "B", "type": "array", "configurationNames": [ "tracePropagationStyle.inject" ], - "default": "[\"datadog\", \"tracecontext\", \"baggage\"]" + "default": "datadog, tracecontext, baggage" } ], "DD_TRACE_PROTOBUFJS_ENABLED": [ @@ -3667,7 +3655,7 @@ ], "DD_TRACE_STARTUP_LOGS": [ { - "implementation": "A", + "implementation": "D", "type": "boolean", "configurationNames": [ "startupLogs" @@ -3694,9 +3682,12 @@ ], "DD_TRACE_TAGS": [ { - "implementation": "A", - "type": "string", - "default": null + "implementation": "B", + "type": "map", + "default": null, + "aliases": [ + "DD_TRACE_GLOBAL_TAGS" + ] } ], "DD_TRACE_TEDIOUS_ENABLED": [ diff --git a/packages/dd-trace/src/llmobs/span_processor.js b/packages/dd-trace/src/llmobs/span_processor.js index 0e873b6a5d9..90820c401c0 100644 --- a/packages/dd-trace/src/llmobs/span_processor.js +++ b/packages/dd-trace/src/llmobs/span_processor.js @@ -248,7 +248,7 @@ class LLMObsSpanProcessor { #getTags (span, mlApp, sessionId, error) { let tags = { - ...this.#config.parsedDdTags, + ...this.#config.tags, version: this.#config.version, env: this.#config.env, service: this.#config.service, diff --git a/packages/dd-trace/src/opentracing/propagation/text_map.js b/packages/dd-trace/src/opentracing/propagation/text_map.js index 44bee73c175..3fa72a76ec3 100644 --- a/packages/dd-trace/src/opentracing/propagation/text_map.js +++ b/packages/dd-trace/src/opentracing/propagation/text_map.js @@ -673,7 +673,8 @@ class TextMapPropagator { const tagAllKeys = this._config.baggageTagKeys === '*' const keysToSpanTag = tagAllKeys ? undefined - : new Set(this._config.baggageTagKeys.split(',')) + // TODO: Move the splitting and trimming to the config to run only once + : new Set(this._config.baggageTagKeys.split(',').map(key => key.trim())) for (const keyValue of baggages) { if (!keyValue) continue diff --git a/packages/dd-trace/src/opentracing/span.js b/packages/dd-trace/src/opentracing/span.js index 7dbbc63b864..21c62c914d0 100644 --- a/packages/dd-trace/src/opentracing/span.js +++ b/packages/dd-trace/src/opentracing/span.js @@ -14,11 +14,12 @@ const { storage } = require('../../../datadog-core') const telemetryMetrics = require('../telemetry/metrics') const { getValueFromEnvSources } = require('../config/helper') const SpanContext = require('./span_context') +const { isTrue } = require('../util') const tracerMetrics = telemetryMetrics.manager.namespace('tracers') -const DD_TRACE_EXPERIMENTAL_STATE_TRACKING = getValueFromEnvSources('DD_TRACE_EXPERIMENTAL_STATE_TRACKING') -const DD_TRACE_EXPERIMENTAL_SPAN_COUNTS = getValueFromEnvSources('DD_TRACE_EXPERIMENTAL_SPAN_COUNTS') +const DD_TRACE_EXPERIMENTAL_STATE_TRACKING = isTrue(getValueFromEnvSources('DD_TRACE_EXPERIMENTAL_STATE_TRACKING')) +const DD_TRACE_EXPERIMENTAL_SPAN_COUNTS = isTrue(getValueFromEnvSources('DD_TRACE_EXPERIMENTAL_SPAN_COUNTS')) const unfinishedRegistry = createRegistry('unfinished') const finishedRegistry = createRegistry('finished') @@ -251,7 +252,7 @@ class DatadogSpan { return } - if (DD_TRACE_EXPERIMENTAL_STATE_TRACKING === 'true' && !this._spanContext._tags['service.name']) { + if (DD_TRACE_EXPERIMENTAL_STATE_TRACKING && !this._spanContext._tags['service.name']) { log.error('Finishing invalid span: %s', this) } diff --git a/packages/dd-trace/test/config/index.spec.js b/packages/dd-trace/test/config/index.spec.js index f17bbc6e35f..798217b31b7 100644 --- a/packages/dd-trace/test/config/index.spec.js +++ b/packages/dd-trace/test/config/index.spec.js @@ -321,7 +321,7 @@ describe('Config', () => { blockedTemplateHtml: undefined, blockedTemplateJson: undefined, blockedTemplateGraphql: undefined, - enabled: false, + enabled: undefined, eventTracking: { mode: 'identification', }, @@ -378,7 +378,7 @@ describe('Config', () => { timeout: 10_000, maxContentSize: 512 * 1024, }, - exporter: undefined, + exporter: '', enableGetRumData: false, }, flushInterval: 2000, @@ -465,7 +465,7 @@ describe('Config', () => { { name: 'appsec.apiSecurity.maxDownstreamRequestBodyAnalysis', value: 1, origin: 'default' }, { name: 'appsec.blockedTemplateHtml', value: undefined, origin: 'default' }, { name: 'appsec.blockedTemplateJson', value: undefined, origin: 'default' }, - { name: 'appsec.enabled', value: false, origin: 'default' }, + { name: 'appsec.enabled', value: undefined, origin: 'default' }, { name: 'appsec.eventTracking.mode', value: 'identification', origin: 'default' }, { name: 'appsec.extendedHeadersCollection.enabled', value: false, origin: 'default' }, { name: 'appsec.extendedHeadersCollection.maxHeaders', value: 50, origin: 'default' }, @@ -513,7 +513,7 @@ describe('Config', () => { { name: 'experimental.aiguard.maxMessagesLength', value: 16, origin: 'default' }, { name: 'experimental.aiguard.timeout', value: 10_000, origin: 'default' }, { name: 'experimental.enableGetRumData', value: false, origin: 'default' }, - { name: 'experimental.exporter', value: undefined, origin: 'default' }, + { name: 'experimental.exporter', value: '', origin: 'default' }, { name: 'flakyTestRetriesCount', value: 5, origin: 'default' }, { name: 'flushInterval', value: 2000, origin: 'default' }, { name: 'flushMinSpans', value: 1000, origin: 'default' }, @@ -591,7 +591,7 @@ describe('Config', () => { { name: 'traceId128BitGenerationEnabled', value: true, origin: 'default' }, { name: 'traceId128BitLoggingEnabled', value: true, origin: 'default' }, { name: 'tracing', value: true, origin: 'default' }, - { name: 'url', value: undefined, origin: 'default' }, + { name: 'url', value: '', origin: 'default' }, { name: 'version', value: '', origin: 'default' }, { name: 'vertexai.spanCharLimit', value: 128, origin: 'default' }, { name: 'vertexai.spanPromptCompletionSampleRate', value: 1.0, origin: 'default' }, @@ -2495,7 +2495,7 @@ describe('Config', () => { it('should not be used', () => { const config = getConfig() - assert.strictEqual(config.url, undefined) + assert.strictEqual(config.url, '') }) }) @@ -2509,7 +2509,7 @@ describe('Config', () => { if (os.type() === 'Windows_NT') { assert.strictEqual(existsSyncParam, undefined) - assert.strictEqual(config.url, undefined) + assert.strictEqual(config.url, '') } else { assert.strictEqual(existsSyncParam, '/var/run/datadog/apm.socket') assert.strictEqual(config.url.toString(), 'unix:///var/run/datadog/apm.socket') @@ -2543,13 +2543,13 @@ describe('Config', () => { const config = getConfig() - assert.strictEqual(config.url, undefined) + assert.strictEqual(config.url, '') }) it('should not be used when options.port provided', () => { const config = getConfig({ port: 12345 }) - assert.strictEqual(config.url, undefined) + assert.strictEqual(config.url, '') }) it('should not be used when DD_TRACE_AGENT_HOSTNAME provided', () => { @@ -2557,7 +2557,7 @@ describe('Config', () => { const config = getConfig() - assert.strictEqual(config.url, undefined) + assert.strictEqual(config.url, '') }) it('should not be used when DD_AGENT_HOST provided', () => { @@ -2565,13 +2565,13 @@ describe('Config', () => { const config = getConfig() - assert.strictEqual(config.url, undefined) + assert.strictEqual(config.url, '') }) it('should not be used when options.hostname provided', () => { const config = getConfig({ hostname: 'example.com' }) - assert.strictEqual(config.url, undefined) + assert.strictEqual(config.url, '') }) }) }) From 589edf346b071ea5388d13e22acc43c35b0f7d0c Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Tue, 24 Feb 2026 14:10:59 +0100 Subject: [PATCH 15/17] fixup! --- .../test/index.spec.js | 26 ++++++++++++++++++- packages/dd-trace/src/config/index.js | 22 +++++++++++++--- .../src/config/supported-configurations.json | 4 +-- .../dd-trace/src/llmobs/span_processor.js | 2 +- .../src/opentracing/propagation/text_map.js | 8 ++---- packages/dd-trace/src/opentracing/span.js | 5 ++-- 6 files changed, 52 insertions(+), 15 deletions(-) diff --git a/packages/datadog-plugin-dd-trace-api/test/index.spec.js b/packages/datadog-plugin-dd-trace-api/test/index.spec.js index 2f832a719da..7cda39c13de 100644 --- a/packages/datadog-plugin-dd-trace-api/test/index.spec.js +++ b/packages/datadog-plugin-dd-trace-api/test/index.spec.js @@ -4,10 +4,34 @@ const assert = require('node:assert') const dc = require('dc-polyfill') const { after, before, describe, it } = require('mocha') +const proxyquire = require('proxyquire') const sinon = require('sinon') -const agent = require('../../dd-trace/test/plugins/agent') +const { + supportedConfigurations, +} = require('../../dd-trace/src/config/supported-configurations.json') + const SELF = Symbol('self') +const supportedConfigurationsWithDdTraceApi = { + ...supportedConfigurations, + DD_TRACE_DD_TRACE_API_ENABLED: [ + { + implementation: 'A', + type: 'boolean', + default: 'true', + }, + ], +} + +const configHelperPath = require.resolve('../../dd-trace/src/config/helper') +const reloadedConfigHelper = proxyquire.noPreserveCache()(configHelperPath, { + './supported-configurations.json': { + supportedConfigurations: supportedConfigurationsWithDdTraceApi, + }, +}) +Object.assign(require(configHelperPath), reloadedConfigHelper) + +const agent = require('../../dd-trace/test/plugins/agent') describe('Plugin', () => { describe('dd-trace-api', () => { diff --git a/packages/dd-trace/src/config/index.js b/packages/dd-trace/src/config/index.js index 2fb2686034c..d1d76bdcae2 100644 --- a/packages/dd-trace/src/config/index.js +++ b/packages/dd-trace/src/config/index.js @@ -60,6 +60,11 @@ let configInstance = null module.exports = getConfig class Config { + /** + * parsed DD_TAGS, usable as a standalone tag set across products + * @type {Record} + */ + #parsedDdTags = {} #envUnprocessed = {} #optsUnprocessed = {} #remoteUnprocessed = {} @@ -151,6 +156,10 @@ class Config { } } + get parsedDdTags () { + return this.#parsedDdTags + } + /** * Set the configuration with remote config settings. * Applies remote configuration, recalculates derived values, and merges all configuration sources. @@ -430,7 +439,9 @@ class Config { tagger.add(tags, parseSpaceSeparatedTags(handleOtel(OTEL_RESOURCE_ATTRIBUTES))) tagger.add(tags, parseSpaceSeparatedTags(DD_TAGS)) - tagger.add(tags, parseSpaceSeparatedTags(DD_TRACE_TAGS)) + tagger.add(tags, DD_TRACE_TAGS) + + Object.assign(this.#parsedDdTags, tags) setString(target, 'apiKey', DD_API_KEY) setBoolean(target, 'otelLogsEnabled', DD_LOGS_OTEL_ENABLED) @@ -537,7 +548,7 @@ class Config { maybeInt(DD_API_SECURITY_MAX_DOWNSTREAM_REQUEST_BODY_ANALYSIS) target.baggageMaxBytes = DD_TRACE_BAGGAGE_MAX_BYTES target.baggageMaxItems = DD_TRACE_BAGGAGE_MAX_ITEMS - target.baggageTagKeys = DD_TRACE_BAGGAGE_TAG_KEYS + setSet(target, 'baggageTagKeys', DD_TRACE_BAGGAGE_TAG_KEYS) setBoolean(target, 'clientIpEnabled', DD_TRACE_CLIENT_IP_ENABLED) setString(target, 'clientIpHeader', DD_TRACE_CLIENT_IP_HEADER?.toLowerCase()) if (DD_TRACE_CLOUD_REQUEST_PAYLOAD_TAGGING || DD_TRACE_CLOUD_RESPONSE_PAYLOAD_TAGGING) { @@ -886,7 +897,7 @@ class Config { opts['cloudPayloadTagging.maxDepth'] = maybeInt(options.cloudPayloadTagging?.maxDepth) opts.baggageMaxBytes = options.baggageMaxBytes opts.baggageMaxItems = options.baggageMaxItems - opts.baggageTagKeys = options.baggageTagKeys + setSet(opts, 'baggageTagKeys', options.baggageTagKeys) setBoolean(opts, 'codeOriginForSpans.enabled', options.codeOriginForSpans?.enabled) setBoolean( opts, @@ -1515,6 +1526,11 @@ function setUnit (obj, name, value) { } } +function setSet (obj, name, value) { + setArray(obj, name, value) + obj[name] = new Set(obj[name]) +} + function setArray (obj, name, value) { if (value == null) { obj[name] = null diff --git a/packages/dd-trace/src/config/supported-configurations.json b/packages/dd-trace/src/config/supported-configurations.json index 0dce6a9c1cb..04e05da61fe 100644 --- a/packages/dd-trace/src/config/supported-configurations.json +++ b/packages/dd-trace/src/config/supported-configurations.json @@ -2221,7 +2221,7 @@ "DD_TRACE_BAGGAGE_TAG_KEYS": [ { "implementation": "A", - "type": "string", + "type": "array", "default": "user.id, session.id, account.id", "configurationNames": [ "baggageTagKeys" @@ -3200,7 +3200,7 @@ ], "DD_TRACE_OBFUSCATION_QUERY_STRING_REGEXP": [ { - "implementation": "E", + "implementation": "F", "type": "string", "default": "(?:p(?:ass)?w(?:or)?d|pass(?:_?phrase)?|secret|(?:api_?|private_?|public_?|access_?|secret_?)key(?:_?id)?|token|consumer_?(?:id|key|secret)|sign(?:ed|ature)?|auth(?:entication|orization)?)(?:(?:\\s|%20)*(?:=|%3D)[^&]+|(?:\"|%22)(?:\\s|%20)*(?::|%3A)(?:\\s|%20)*(?:\"|%22)(?:%2[^2]|%[^2]|[^\"%])+(?:\"|%22))|bearer(?:\\s|%20)+[a-z0-9\\._\\-]+|token(?::|%3A)[a-z0-9]{13}|gh[opsu]_[0-9a-zA-Z]{36}|ey[I-L](?:[\\w=-]|%3D)+\\.ey[I-L](?:[\\w=-]|%3D)+(?:\\.(?:[\\w.+\\/=-]|%3D|%2F|%2B)+)?|[\\-]{5}BEGIN(?:[a-z\\s]|%20)+PRIVATE(?:\\s|%20)KEY[\\-]{5}[^\\-]+[\\-]{5}END(?:[a-z\\s]|%20)+PRIVATE(?:\\s|%20)KEY|ssh-rsa(?:\\s|%20)*(?:[a-z0-9\\/\\.+]|%2F|%5C|%2B){100,}", "configurationNames": [ diff --git a/packages/dd-trace/src/llmobs/span_processor.js b/packages/dd-trace/src/llmobs/span_processor.js index 90820c401c0..0e873b6a5d9 100644 --- a/packages/dd-trace/src/llmobs/span_processor.js +++ b/packages/dd-trace/src/llmobs/span_processor.js @@ -248,7 +248,7 @@ class LLMObsSpanProcessor { #getTags (span, mlApp, sessionId, error) { let tags = { - ...this.#config.tags, + ...this.#config.parsedDdTags, version: this.#config.version, env: this.#config.env, service: this.#config.service, diff --git a/packages/dd-trace/src/opentracing/propagation/text_map.js b/packages/dd-trace/src/opentracing/propagation/text_map.js index 3fa72a76ec3..77a7f32195b 100644 --- a/packages/dd-trace/src/opentracing/propagation/text_map.js +++ b/packages/dd-trace/src/opentracing/propagation/text_map.js @@ -670,11 +670,7 @@ class TextMapPropagator { if (!this._hasPropagationStyle('extract', 'baggage')) return if (!carrier?.baggage) return const baggages = carrier.baggage.split(',') - const tagAllKeys = this._config.baggageTagKeys === '*' - const keysToSpanTag = tagAllKeys - ? undefined - // TODO: Move the splitting and trimming to the config to run only once - : new Set(this._config.baggageTagKeys.split(',').map(key => key.trim())) + const tagAllKeys = this._config.baggageTagKeys.has('*') for (const keyValue of baggages) { if (!keyValue) continue @@ -708,7 +704,7 @@ class TextMapPropagator { return } - if (spanContext && (tagAllKeys || keysToSpanTag?.has(key))) { + if (spanContext && (tagAllKeys || this._config.baggageTagKeys.has(key))) { spanContext._trace.tags['baggage.' + key] = value } setBaggageItem(key, value) diff --git a/packages/dd-trace/src/opentracing/span.js b/packages/dd-trace/src/opentracing/span.js index 21c62c914d0..ee4e6b7c8cc 100644 --- a/packages/dd-trace/src/opentracing/span.js +++ b/packages/dd-trace/src/opentracing/span.js @@ -3,7 +3,6 @@ // TODO (new internal tracer): use DC events for lifecycle metrics and test them const { performance } = require('perf_hooks') const now = performance.now.bind(performance) -const dateNow = Date.now const util = require('util') const { channel } = require('dc-polyfill') const id = require('../id') @@ -13,8 +12,10 @@ const log = require('../log') const { storage } = require('../../../datadog-core') const telemetryMetrics = require('../telemetry/metrics') const { getValueFromEnvSources } = require('../config/helper') -const SpanContext = require('./span_context') const { isTrue } = require('../util') +const SpanContext = require('./span_context') + +const dateNow = Date.now const tracerMetrics = telemetryMetrics.manager.namespace('tracers') From f3b7913825bb0321564fdeea69a8d810ca732e15 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Tue, 24 Feb 2026 14:31:07 +0100 Subject: [PATCH 16/17] fixup! --- packages/dd-trace/src/config/index.js | 9 ++------- .../dd-trace/src/config/supported-configurations.json | 6 +++--- .../dd-trace/src/opentracing/propagation/text_map.js | 4 ++-- 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/packages/dd-trace/src/config/index.js b/packages/dd-trace/src/config/index.js index d1d76bdcae2..1bd423b3840 100644 --- a/packages/dd-trace/src/config/index.js +++ b/packages/dd-trace/src/config/index.js @@ -548,7 +548,7 @@ class Config { maybeInt(DD_API_SECURITY_MAX_DOWNSTREAM_REQUEST_BODY_ANALYSIS) target.baggageMaxBytes = DD_TRACE_BAGGAGE_MAX_BYTES target.baggageMaxItems = DD_TRACE_BAGGAGE_MAX_ITEMS - setSet(target, 'baggageTagKeys', DD_TRACE_BAGGAGE_TAG_KEYS) + setArray(target, 'baggageTagKeys', DD_TRACE_BAGGAGE_TAG_KEYS) setBoolean(target, 'clientIpEnabled', DD_TRACE_CLIENT_IP_ENABLED) setString(target, 'clientIpHeader', DD_TRACE_CLIENT_IP_HEADER?.toLowerCase()) if (DD_TRACE_CLOUD_REQUEST_PAYLOAD_TAGGING || DD_TRACE_CLOUD_RESPONSE_PAYLOAD_TAGGING) { @@ -897,7 +897,7 @@ class Config { opts['cloudPayloadTagging.maxDepth'] = maybeInt(options.cloudPayloadTagging?.maxDepth) opts.baggageMaxBytes = options.baggageMaxBytes opts.baggageMaxItems = options.baggageMaxItems - setSet(opts, 'baggageTagKeys', options.baggageTagKeys) + setArray(opts, 'baggageTagKeys', options.baggageTagKeys) setBoolean(opts, 'codeOriginForSpans.enabled', options.codeOriginForSpans?.enabled) setBoolean( opts, @@ -1526,11 +1526,6 @@ function setUnit (obj, name, value) { } } -function setSet (obj, name, value) { - setArray(obj, name, value) - obj[name] = new Set(obj[name]) -} - function setArray (obj, name, value) { if (value == null) { obj[name] = null diff --git a/packages/dd-trace/src/config/supported-configurations.json b/packages/dd-trace/src/config/supported-configurations.json index 04e05da61fe..e748fd0f06a 100644 --- a/packages/dd-trace/src/config/supported-configurations.json +++ b/packages/dd-trace/src/config/supported-configurations.json @@ -1173,7 +1173,7 @@ ], "DD_LLMOBS_AGENTLESS_ENABLED": [ { - "implementation": "B", + "implementation": "A", "type": "boolean", "configurationNames": [ "llmobs.agentlessEnabled" @@ -4060,7 +4060,7 @@ ], "OTEL_RESOURCE_ATTRIBUTES": [ { - "implementation": "A", + "implementation": "B", "type": "string", "default": "" } @@ -4084,7 +4084,7 @@ ], "OTEL_TRACES_EXPORTER": [ { - "implementation": "A", + "implementation": "F", "type": "string", "default": "otlp" } diff --git a/packages/dd-trace/src/opentracing/propagation/text_map.js b/packages/dd-trace/src/opentracing/propagation/text_map.js index 77a7f32195b..f9be8085260 100644 --- a/packages/dd-trace/src/opentracing/propagation/text_map.js +++ b/packages/dd-trace/src/opentracing/propagation/text_map.js @@ -670,7 +670,7 @@ class TextMapPropagator { if (!this._hasPropagationStyle('extract', 'baggage')) return if (!carrier?.baggage) return const baggages = carrier.baggage.split(',') - const tagAllKeys = this._config.baggageTagKeys.has('*') + const tagAllKeys = this._config.baggageTagKeys.includes('*') for (const keyValue of baggages) { if (!keyValue) continue @@ -704,7 +704,7 @@ class TextMapPropagator { return } - if (spanContext && (tagAllKeys || this._config.baggageTagKeys.has(key))) { + if (spanContext && (tagAllKeys || this._config.baggageTagKeys.includes(key))) { spanContext._trace.tags['baggage.' + key] = value } setBaggageItem(key, value) From e1fc5a83a48f6d692f5fab2d7056c0ab9e598459 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Tue, 24 Feb 2026 14:43:18 +0100 Subject: [PATCH 17/17] fixup! --- packages/dd-trace/src/opentracing/propagation/text_map.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/dd-trace/src/opentracing/propagation/text_map.js b/packages/dd-trace/src/opentracing/propagation/text_map.js index f9be8085260..861d8a0d388 100644 --- a/packages/dd-trace/src/opentracing/propagation/text_map.js +++ b/packages/dd-trace/src/opentracing/propagation/text_map.js @@ -670,7 +670,8 @@ class TextMapPropagator { if (!this._hasPropagationStyle('extract', 'baggage')) return if (!carrier?.baggage) return const baggages = carrier.baggage.split(',') - const tagAllKeys = this._config.baggageTagKeys.includes('*') + const baggageTagKeys = new Set(this._config.baggageTagKeys) + const tagAllKeys = baggageTagKeys.has('*') for (const keyValue of baggages) { if (!keyValue) continue @@ -704,7 +705,7 @@ class TextMapPropagator { return } - if (spanContext && (tagAllKeys || this._config.baggageTagKeys.includes(key))) { + if (spanContext && (tagAllKeys || baggageTagKeys.has(key))) { spanContext._trace.tags['baggage.' + key] = value } setBaggageItem(key, value)