dd-trace 5.110.0 → 5.111.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -8
- package/ci/init.js +21 -2
- package/ci/vitest-no-worker-init-setup.mjs +430 -0
- package/ext/tags.js +2 -0
- package/index.d.ts +13 -0
- package/initialize.mjs +5 -6
- package/loader-hook.mjs +76 -55
- package/package.json +9 -9
- package/packages/datadog-instrumentations/src/fs.js +8 -6
- package/packages/datadog-instrumentations/src/graphql.js +26 -495
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/graphql.js +201 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/index.js +1 -0
- package/packages/datadog-instrumentations/src/mongoose.js +14 -2
- package/packages/datadog-instrumentations/src/vitest-main-no-worker-init.js +1293 -0
- package/packages/datadog-instrumentations/src/vitest-main.js +1567 -0
- package/packages/datadog-instrumentations/src/vitest-util.js +249 -0
- package/packages/datadog-instrumentations/src/vitest-worker.js +753 -0
- package/packages/datadog-instrumentations/src/vitest.js +11 -1855
- package/packages/datadog-plugin-aws-durable-execution-sdk-js/src/client.js +2 -2
- package/packages/datadog-plugin-aws-durable-execution-sdk-js/src/context.js +18 -10
- package/packages/datadog-plugin-aws-durable-execution-sdk-js/src/util.js +47 -11
- package/packages/datadog-plugin-cucumber/src/index.js +1 -1
- package/packages/datadog-plugin-cypress/src/cypress-plugin.js +10 -4
- package/packages/datadog-plugin-cypress/src/support.js +45 -1
- package/packages/datadog-plugin-express/src/code_origin.js +1 -1
- package/packages/datadog-plugin-fastify/src/code_origin.js +1 -1
- package/packages/datadog-plugin-graphql/src/execute.js +627 -11
- package/packages/datadog-plugin-graphql/src/index.js +20 -8
- package/packages/datadog-plugin-graphql/src/parse.js +24 -4
- package/packages/datadog-plugin-graphql/src/validate.js +16 -5
- package/packages/datadog-plugin-http/src/index.js +6 -8
- package/packages/datadog-plugin-jest/src/index.js +1 -1
- package/packages/datadog-plugin-mocha/src/index.js +1 -1
- package/packages/datadog-plugin-openai/src/services.js +2 -2
- package/packages/datadog-plugin-playwright/src/index.js +1 -1
- package/packages/datadog-plugin-vitest/src/index.js +69 -63
- package/packages/datadog-shimmer/src/shimmer.js +37 -16
- package/packages/dd-trace/src/aiguard/sdk.js +2 -2
- package/packages/dd-trace/src/appsec/api_security/sampler.js +3 -3
- package/packages/dd-trace/src/appsec/channels.js +3 -1
- package/packages/dd-trace/src/appsec/downstream_requests.js +4 -4
- package/packages/dd-trace/src/appsec/graphql.js +5 -5
- package/packages/dd-trace/src/appsec/iast/analyzers/nosql-injection-mongodb-analyzer.js +26 -19
- package/packages/dd-trace/src/appsec/iast/security-controls/index.js +2 -2
- package/packages/dd-trace/src/appsec/iast/telemetry/index.js +2 -1
- package/packages/dd-trace/src/appsec/index.js +10 -1
- package/packages/dd-trace/src/appsec/lambda.js +135 -0
- package/packages/dd-trace/src/appsec/reporter.js +49 -10
- package/packages/dd-trace/src/appsec/telemetry/index.js +1 -1
- package/packages/dd-trace/src/appsec/waf/index.js +16 -4
- package/packages/dd-trace/src/appsec/waf/waf_context_wrapper.js +4 -4
- package/packages/dd-trace/src/ci-visibility/early-flake-detection/get-known-tests.js +21 -6
- package/packages/dd-trace/src/ci-visibility/exporters/agent-proxy/index.js +2 -2
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/coverage-writer.js +1 -1
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/di-logs-writer.js +1 -1
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/index.js +3 -2
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/writer.js +1 -1
- package/packages/dd-trace/src/ci-visibility/exporters/ci-visibility-exporter.js +55 -13
- package/packages/dd-trace/src/ci-visibility/exporters/git/git_metadata.js +2 -2
- package/packages/dd-trace/src/ci-visibility/exporters/test-worker/writer.js +17 -0
- package/packages/dd-trace/src/ci-visibility/intelligent-test-runner/get-skippable-suites.js +47 -26
- package/packages/dd-trace/src/ci-visibility/log-submission/log-submission-plugin.js +2 -2
- package/packages/dd-trace/src/ci-visibility/requests/get-library-configuration.js +64 -53
- package/packages/dd-trace/src/ci-visibility/requests/upload-coverage-report.js +3 -3
- package/packages/dd-trace/src/ci-visibility/test-management/get-test-management-tests.js +23 -5
- package/packages/dd-trace/src/ci-visibility/test-optimization-http-cache-schema.js +128 -0
- package/packages/dd-trace/src/ci-visibility/test-optimization-http-cache.js +287 -0
- package/packages/dd-trace/src/config/defaults.js +3 -2
- package/packages/dd-trace/src/config/generated-config-types.d.ts +61 -57
- package/packages/dd-trace/src/config/helper.js +1 -0
- package/packages/dd-trace/src/config/index.js +35 -22
- package/packages/dd-trace/src/config/major-overrides.js +4 -2
- package/packages/dd-trace/src/config/remote_config.js +1 -1
- package/packages/dd-trace/src/config/supported-configurations.json +90 -56
- package/packages/dd-trace/src/constants.js +7 -0
- package/packages/dd-trace/src/datastreams/processor.js +11 -3
- package/packages/dd-trace/src/exporters/agent/index.js +1 -1
- package/packages/dd-trace/src/exporters/agentless/writer.js +4 -4
- package/packages/dd-trace/src/llmobs/index.js +1 -1
- package/packages/dd-trace/src/llmobs/plugins/base.js +4 -4
- package/packages/dd-trace/src/llmobs/plugins/langgraph/index.js +1 -1
- package/packages/dd-trace/src/llmobs/sdk.js +3 -3
- package/packages/dd-trace/src/llmobs/span_processor.js +1 -1
- package/packages/dd-trace/src/llmobs/tagger.js +3 -3
- package/packages/dd-trace/src/llmobs/writers/base.js +1 -1
- package/packages/dd-trace/src/opentelemetry/metrics/index.js +54 -5
- package/packages/dd-trace/src/opentelemetry/metrics/otlp_span_stats_exporter.js +40 -0
- package/packages/dd-trace/src/opentelemetry/metrics/otlp_span_stats_transformer.js +169 -0
- package/packages/dd-trace/src/opentelemetry/otlp/otlp_http_exporter_base.js +38 -39
- package/packages/dd-trace/src/opentelemetry/trace/index.js +4 -0
- package/packages/dd-trace/src/opentelemetry/tracer_provider.js +1 -1
- package/packages/dd-trace/src/opentracing/tracer.js +6 -1
- package/packages/dd-trace/src/plugin_manager.js +7 -7
- package/packages/dd-trace/src/plugins/ci_plugin.js +12 -3
- package/packages/dd-trace/src/plugins/util/llm.js +6 -1
- package/packages/dd-trace/src/plugins/util/test.js +11 -9
- package/packages/dd-trace/src/profiling/exporter_cli.js +2 -2
- package/packages/dd-trace/src/profiling/exporters/event_serializer.js +3 -3
- package/packages/dd-trace/src/profiling/profilers/wall.js +1 -1
- package/packages/dd-trace/src/proxy.js +8 -8
- package/packages/dd-trace/src/span_processor.js +5 -6
- package/packages/dd-trace/src/span_stats.js +96 -78
- package/packages/dd-trace/src/startup-log.js +2 -1
- package/packages/dd-trace/src/telemetry/dependencies.js +1 -1
- package/packages/dd-trace/src/telemetry/endpoints.js +6 -4
- package/packages/dd-trace/src/telemetry/index.js +2 -2
- package/packages/dd-trace/src/telemetry/logs/index.js +1 -1
- package/packages/dd-trace/src/telemetry/send-data.js +8 -8
- package/packages/dd-trace/src/telemetry/session-propagation.js +1 -1
- package/packages/dd-trace/src/telemetry/telemetry.js +9 -9
- package/vendor/dist/@datadog/sketches-js/index.js +1 -1
- package/vendor/dist/protobufjs/index.js +1 -1
- package/vendor/dist/protobufjs/minimal/index.js +1 -1
- package/vendor/dist/shell-quote/index.js +1 -1
- package/packages/datadog-plugin-graphql/src/resolve.js +0 -170
|
@@ -3,21 +3,20 @@
|
|
|
3
3
|
|
|
4
4
|
export interface GeneratedConfig {
|
|
5
5
|
_DD_APM_TRACING_AGENTLESS_ENABLED: boolean;
|
|
6
|
-
|
|
6
|
+
_DD_TRACE_METRICS_OTEL_FLUSH_INTERVAL: number;
|
|
7
7
|
apmTracingEnabled: boolean;
|
|
8
8
|
appsec: {
|
|
9
|
-
apiSecurity: {
|
|
10
|
-
downstreamBodyAnalysisSampleRate: number;
|
|
11
|
-
enabled: boolean;
|
|
12
|
-
endpointCollectionEnabled: boolean;
|
|
13
|
-
endpointCollectionMessageLimit: number;
|
|
14
|
-
maxDownstreamBodyBytes: number;
|
|
15
|
-
maxDownstreamRequestBodyAnalysis: number;
|
|
16
|
-
sampleDelay: number;
|
|
17
|
-
};
|
|
18
9
|
blockedTemplateGraphql: string | undefined;
|
|
19
10
|
blockedTemplateHtml: string | undefined;
|
|
20
11
|
blockedTemplateJson: string | undefined;
|
|
12
|
+
DD_API_SECURITY_DOWNSTREAM_BODY_ANALYSIS_SAMPLE_RATE: number;
|
|
13
|
+
DD_API_SECURITY_ENABLED: boolean;
|
|
14
|
+
DD_API_SECURITY_ENDPOINT_COLLECTION_ENABLED: boolean;
|
|
15
|
+
DD_API_SECURITY_ENDPOINT_COLLECTION_MESSAGE_LIMIT: number;
|
|
16
|
+
DD_API_SECURITY_MAX_DOWNSTREAM_BODY_BYTES: number;
|
|
17
|
+
DD_API_SECURITY_MAX_DOWNSTREAM_REQUEST_BODY_ANALYSIS: number;
|
|
18
|
+
DD_API_SECURITY_SAMPLE_DELAY: number;
|
|
19
|
+
DD_APPSEC_SCA_ENABLED: boolean | undefined;
|
|
21
20
|
enabled: boolean | undefined;
|
|
22
21
|
eventTracking: {
|
|
23
22
|
mode: string;
|
|
@@ -35,9 +34,6 @@ export interface GeneratedConfig {
|
|
|
35
34
|
};
|
|
36
35
|
rateLimit: number;
|
|
37
36
|
rules: string | undefined;
|
|
38
|
-
sca: {
|
|
39
|
-
enabled: boolean | undefined;
|
|
40
|
-
};
|
|
41
37
|
stackTrace: {
|
|
42
38
|
enabled: boolean;
|
|
43
39
|
maxDepth: number;
|
|
@@ -70,21 +66,10 @@ export interface GeneratedConfig {
|
|
|
70
66
|
DD_ACTION_EXECUTION_ID: string | undefined;
|
|
71
67
|
DD_AGENTLESS_LOG_SUBMISSION_ENABLED: boolean;
|
|
72
68
|
DD_AGENTLESS_LOG_SUBMISSION_URL: string | undefined;
|
|
69
|
+
DD_API_KEY: string | undefined;
|
|
73
70
|
DD_APM_FLUSH_DEADLINE_MILLISECONDS: number;
|
|
74
71
|
DD_APP_KEY: string | undefined;
|
|
75
72
|
DD_AZURE_RESOURCE_GROUP: string | undefined;
|
|
76
|
-
DD_CIVISIBILITY_AGENTLESS_ENABLED: boolean;
|
|
77
|
-
DD_CIVISIBILITY_AGENTLESS_URL: URL | undefined;
|
|
78
|
-
DD_CIVISIBILITY_AUTO_INSTRUMENTATION_PROVIDER: string | undefined;
|
|
79
|
-
DD_CIVISIBILITY_DANGEROUSLY_FORCE_COVERAGE: boolean;
|
|
80
|
-
DD_CIVISIBILITY_DANGEROUSLY_FORCE_TEST_SKIPPING: boolean;
|
|
81
|
-
DD_CIVISIBILITY_ENABLED: boolean;
|
|
82
|
-
DD_CIVISIBILITY_GIT_UNSHALLOW_ENABLED: boolean;
|
|
83
|
-
DD_CIVISIBILITY_MANUAL_API_ENABLED: boolean;
|
|
84
|
-
DD_CIVISIBILITY_RUM_FLUSH_WAIT_MILLIS: number;
|
|
85
|
-
DD_CIVISIBILITY_TEST_COMMAND: string | undefined;
|
|
86
|
-
DD_CIVISIBILITY_TEST_MODULE_ID: string | undefined;
|
|
87
|
-
DD_CIVISIBILITY_TEST_SESSION_ID: string | undefined;
|
|
88
73
|
DD_CRASHTRACKING_ENABLED: boolean;
|
|
89
74
|
DD_CUSTOM_PARENT_ID: string | undefined;
|
|
90
75
|
DD_CUSTOM_TRACE_ID: string | undefined;
|
|
@@ -95,6 +80,7 @@ export interface GeneratedConfig {
|
|
|
95
80
|
DD_EXPERIMENTAL_TEST_OPT_GIT_CACHE_DIR: string | undefined;
|
|
96
81
|
DD_EXPERIMENTAL_TEST_OPT_GIT_CACHE_ENABLED: boolean;
|
|
97
82
|
DD_EXPERIMENTAL_TEST_OPT_SETTINGS_CACHE: string;
|
|
83
|
+
DD_EXPERIMENTAL_TEST_OPT_VITEST_NO_WORKER_INIT: boolean | undefined;
|
|
98
84
|
DD_EXPERIMENTAL_TEST_REQUESTS_FS_CACHE: boolean;
|
|
99
85
|
DD_EXTERNAL_ENV: string | undefined;
|
|
100
86
|
DD_GIT_BRANCH: string | undefined;
|
|
@@ -162,8 +148,6 @@ export interface GeneratedConfig {
|
|
|
162
148
|
DD_RUNTIME_METRICS_FLUSH_INTERVAL: number;
|
|
163
149
|
DD_SPAN_SAMPLING_RULES_FILE: string | undefined;
|
|
164
150
|
DD_TELEMETRY_FORWARDER_PATH: string | undefined;
|
|
165
|
-
DD_TEST_FLEET_CONFIG_PATH: string | undefined;
|
|
166
|
-
DD_TEST_LOCAL_CONFIG_PATH: string | undefined;
|
|
167
151
|
DD_TEST_SESSION_NAME: string | undefined;
|
|
168
152
|
DD_TRACE_AEROSPIKE_ENABLED: boolean;
|
|
169
153
|
DD_TRACE_AI_ENABLED: boolean;
|
|
@@ -249,6 +233,7 @@ export interface GeneratedConfig {
|
|
|
249
233
|
DD_TRACE_ELASTIC_TRANSPORT_ENABLED: boolean;
|
|
250
234
|
DD_TRACE_ELASTICSEARCH_ENABLED: boolean;
|
|
251
235
|
DD_TRACE_ELECTRON_ENABLED: boolean;
|
|
236
|
+
DD_TRACE_ENABLED: boolean;
|
|
252
237
|
DD_TRACE_ENCODING_DEBUG: boolean;
|
|
253
238
|
DD_TRACE_EXPERIMENTAL_RUNTIME_ID_ENABLED: boolean;
|
|
254
239
|
DD_TRACE_EXPERIMENTAL_SPAN_COUNTS: boolean;
|
|
@@ -342,6 +327,7 @@ export interface GeneratedConfig {
|
|
|
342
327
|
DD_TRACE_NODE_REDIS_CLIENT_ENABLED: boolean;
|
|
343
328
|
DD_TRACE_NODE_SERIALIZE_ENABLED: boolean;
|
|
344
329
|
DD_TRACE_NYC_ENABLED: boolean;
|
|
330
|
+
DD_TRACE_OBFUSCATION_QUERY_STRING_REGEXP: string;
|
|
345
331
|
DD_TRACE_OPENAI_ENABLED: boolean;
|
|
346
332
|
DD_TRACE_OPENSEARCH_ENABLED: boolean;
|
|
347
333
|
DD_TRACE_OPENSEARCH_PROJECT_OPENSEARCH_ENABLED: boolean;
|
|
@@ -376,9 +362,11 @@ export interface GeneratedConfig {
|
|
|
376
362
|
DD_TRACE_REDIS_CLIENT_ENABLED: boolean;
|
|
377
363
|
DD_TRACE_REDIS_ENABLED: boolean;
|
|
378
364
|
DD_TRACE_REQUEST_ENABLED: boolean;
|
|
365
|
+
DD_TRACE_RESOURCE_RENAMING_ENABLED: boolean;
|
|
379
366
|
DD_TRACE_RESTIFY_ENABLED: boolean;
|
|
380
367
|
DD_TRACE_RHEA_ENABLED: boolean;
|
|
381
368
|
DD_TRACE_ROUTER_ENABLED: boolean;
|
|
369
|
+
DD_TRACE_SCOPE: string | undefined;
|
|
382
370
|
DD_TRACE_SELENIUM_ENABLED: boolean;
|
|
383
371
|
DD_TRACE_SELENIUM_WEBDRIVER_ENABLED: boolean;
|
|
384
372
|
DD_TRACE_SEQUELIZE_ENABLED: boolean;
|
|
@@ -439,13 +427,13 @@ export interface GeneratedConfig {
|
|
|
439
427
|
};
|
|
440
428
|
};
|
|
441
429
|
};
|
|
442
|
-
flakyTestRetriesCount: number;
|
|
443
430
|
flushInterval: number;
|
|
444
431
|
flushMinSpans: number;
|
|
445
432
|
headerTags: string[];
|
|
446
433
|
hostname: string;
|
|
447
434
|
iast: {
|
|
448
435
|
dbRowsToTaint: number;
|
|
436
|
+
DD_IAST_SECURITY_CONTROLS_CONFIGURATION: string | undefined;
|
|
449
437
|
deduplicationEnabled: boolean;
|
|
450
438
|
enabled: boolean;
|
|
451
439
|
maxConcurrentRequests: number;
|
|
@@ -454,28 +442,20 @@ export interface GeneratedConfig {
|
|
|
454
442
|
redactionNamePattern: string;
|
|
455
443
|
redactionValuePattern: string;
|
|
456
444
|
requestSampling: number;
|
|
457
|
-
securityControlsConfiguration: string | undefined;
|
|
458
445
|
stackTrace: {
|
|
459
446
|
enabled: boolean;
|
|
460
447
|
};
|
|
461
448
|
telemetryVerbosity: string;
|
|
462
449
|
};
|
|
463
450
|
inferredProxyServicesEnabled: boolean;
|
|
464
|
-
isEarlyFlakeDetectionEnabled: boolean;
|
|
465
|
-
isFlakyTestRetriesEnabled: boolean;
|
|
466
|
-
isGitUploadEnabled: boolean;
|
|
467
|
-
isImpactedTestsEnabled: boolean;
|
|
468
|
-
isIntelligentTestRunnerEnabled: boolean;
|
|
469
|
-
isTestDynamicInstrumentationEnabled: boolean;
|
|
470
|
-
isTestManagementEnabled: boolean;
|
|
471
451
|
langchain: {
|
|
472
|
-
|
|
473
|
-
|
|
452
|
+
DD_LANGCHAIN_SPAN_CHAR_LIMIT: number;
|
|
453
|
+
DD_LANGCHAIN_SPAN_PROMPT_COMPLETION_SAMPLE_RATE: number;
|
|
474
454
|
};
|
|
475
455
|
legacyBaggageEnabled: boolean;
|
|
476
456
|
llmobs: {
|
|
477
457
|
agentlessEnabled: boolean | undefined;
|
|
478
|
-
|
|
458
|
+
DD_LLMOBS_ENABLED: boolean;
|
|
479
459
|
mlApp: string | undefined;
|
|
480
460
|
sampleRate: number;
|
|
481
461
|
};
|
|
@@ -483,7 +463,7 @@ export interface GeneratedConfig {
|
|
|
483
463
|
logLevel: "debug" | "info" | "warn" | "error";
|
|
484
464
|
middlewareTracingEnabled: boolean;
|
|
485
465
|
openai: {
|
|
486
|
-
|
|
466
|
+
DD_OPENAI_SPAN_CHAR_LIMIT: number;
|
|
487
467
|
};
|
|
488
468
|
openAiLogsEnabled: boolean;
|
|
489
469
|
OTEL_BSP_MAX_EXPORT_BATCH_SIZE: number;
|
|
@@ -515,20 +495,19 @@ export interface GeneratedConfig {
|
|
|
515
495
|
OTEL_TRACES_EXPORTER: "none" | "otlp" | undefined;
|
|
516
496
|
OTEL_TRACES_SAMPLER: "always_on" | "always_off" | "traceidratio" | "parentbased_always_on" | "parentbased_always_off" | "parentbased_traceidratio";
|
|
517
497
|
OTEL_TRACES_SAMPLER_ARG: number | undefined;
|
|
498
|
+
OTEL_TRACES_SPAN_METRICS_ENABLED: boolean | undefined;
|
|
518
499
|
peerServiceMapping: Record<string, string>;
|
|
519
500
|
port: string | number;
|
|
520
501
|
profiling: {
|
|
521
|
-
|
|
502
|
+
DD_PROFILING_ENABLED: 'true' | 'false' | 'auto';
|
|
522
503
|
};
|
|
523
504
|
protocolVersion: string;
|
|
524
|
-
queryStringObfuscation: string;
|
|
525
505
|
rateLimit: number;
|
|
526
506
|
remoteConfig: {
|
|
527
|
-
|
|
507
|
+
DD_REMOTE_CONFIGURATION_ENABLED: boolean;
|
|
528
508
|
pollInterval: number;
|
|
529
509
|
};
|
|
530
510
|
reportHostname: boolean;
|
|
531
|
-
resourceRenamingEnabled: boolean;
|
|
532
511
|
runtimeMetrics: {
|
|
533
512
|
enabled: boolean;
|
|
534
513
|
eventLoop: boolean;
|
|
@@ -538,7 +517,6 @@ export interface GeneratedConfig {
|
|
|
538
517
|
runtimeMetricsRuntimeId: boolean;
|
|
539
518
|
sampleRate: number | undefined;
|
|
540
519
|
samplingRules: import('../../../../index').SamplingRule[];
|
|
541
|
-
scope: string | undefined;
|
|
542
520
|
service: string;
|
|
543
521
|
serviceMapping: Record<string, string>;
|
|
544
522
|
site: string;
|
|
@@ -548,19 +526,43 @@ export interface GeneratedConfig {
|
|
|
548
526
|
spanSamplingRules: import('../../../../index').SpanSamplingRule[] | undefined;
|
|
549
527
|
startupLogs: boolean;
|
|
550
528
|
stats: {
|
|
551
|
-
|
|
529
|
+
DD_TRACE_STATS_COMPUTATION_ENABLED: boolean;
|
|
552
530
|
};
|
|
553
531
|
tags: Record<string, string>;
|
|
554
532
|
telemetry: {
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
533
|
+
DD_INSTRUMENTATION_TELEMETRY_ENABLED: boolean;
|
|
534
|
+
DD_TELEMETRY_DEBUG: boolean;
|
|
535
|
+
DD_TELEMETRY_DEPENDENCY_COLLECTION_ENABLED: boolean;
|
|
536
|
+
DD_TELEMETRY_EXTENDED_HEARTBEAT_INTERVAL: number;
|
|
537
|
+
DD_TELEMETRY_HEARTBEAT_INTERVAL: number;
|
|
538
|
+
DD_TELEMETRY_LOG_COLLECTION_ENABLED: boolean;
|
|
539
|
+
DD_TELEMETRY_METRICS_ENABLED: boolean;
|
|
540
|
+
};
|
|
541
|
+
testOptimization: {
|
|
542
|
+
DD_CIVISIBILITY_AGENTLESS_ENABLED: boolean;
|
|
543
|
+
DD_CIVISIBILITY_AGENTLESS_URL: URL | undefined;
|
|
544
|
+
DD_CIVISIBILITY_AUTO_INSTRUMENTATION_PROVIDER: string | undefined;
|
|
545
|
+
DD_CIVISIBILITY_DANGEROUSLY_FORCE_COVERAGE: boolean;
|
|
546
|
+
DD_CIVISIBILITY_DANGEROUSLY_FORCE_TEST_SKIPPING: boolean;
|
|
547
|
+
DD_CIVISIBILITY_EARLY_FLAKE_DETECTION_ENABLED: boolean;
|
|
548
|
+
DD_CIVISIBILITY_ENABLED: boolean;
|
|
549
|
+
DD_CIVISIBILITY_FLAKY_RETRY_COUNT: number;
|
|
550
|
+
DD_CIVISIBILITY_FLAKY_RETRY_ENABLED: boolean;
|
|
551
|
+
DD_CIVISIBILITY_GIT_UNSHALLOW_ENABLED: boolean;
|
|
552
|
+
DD_CIVISIBILITY_GIT_UPLOAD_ENABLED: boolean;
|
|
553
|
+
DD_CIVISIBILITY_IMPACTED_TESTS_DETECTION_ENABLED: boolean;
|
|
554
|
+
DD_CIVISIBILITY_ITR_ENABLED: boolean;
|
|
555
|
+
DD_CIVISIBILITY_MANUAL_API_ENABLED: boolean;
|
|
556
|
+
DD_CIVISIBILITY_RUM_FLUSH_WAIT_MILLIS: number;
|
|
557
|
+
DD_CIVISIBILITY_TEST_COMMAND: string | undefined;
|
|
558
|
+
DD_CIVISIBILITY_TEST_MODULE_ID: string | undefined;
|
|
559
|
+
DD_CIVISIBILITY_TEST_SESSION_ID: string | undefined;
|
|
560
|
+
DD_TEST_FAILED_TEST_REPLAY_ENABLED: boolean;
|
|
561
|
+
DD_TEST_FLEET_CONFIG_PATH: string | undefined;
|
|
562
|
+
DD_TEST_LOCAL_CONFIG_PATH: string | undefined;
|
|
563
|
+
DD_TEST_MANAGEMENT_ATTEMPT_TO_FIX_RETRIES: number;
|
|
564
|
+
DD_TEST_MANAGEMENT_ENABLED: boolean;
|
|
562
565
|
};
|
|
563
|
-
testManagementAttemptToFixRetries: number;
|
|
564
566
|
traceId128BitGenerationEnabled: boolean;
|
|
565
567
|
traceId128BitLoggingEnabled: boolean;
|
|
566
568
|
tracePropagationStyle: {
|
|
@@ -570,17 +572,17 @@ export interface GeneratedConfig {
|
|
|
570
572
|
traceWebsocketMessagesEnabled: boolean;
|
|
571
573
|
traceWebsocketMessagesInheritSampling: boolean;
|
|
572
574
|
traceWebsocketMessagesSeparateTraces: boolean;
|
|
573
|
-
tracing: boolean;
|
|
574
575
|
url: string | URL;
|
|
575
576
|
version: string | undefined;
|
|
576
577
|
vertexai: {
|
|
577
|
-
|
|
578
|
-
|
|
578
|
+
DD_VERTEXAI_SPAN_CHAR_LIMIT: number;
|
|
579
|
+
DD_VERTEXAI_SPAN_PROMPT_COMPLETION_SAMPLE_RATE: number;
|
|
579
580
|
};
|
|
580
581
|
}
|
|
581
582
|
|
|
582
583
|
export interface GeneratedEnvVarConfig {
|
|
583
584
|
_DD_APM_TRACING_AGENTLESS_ENABLED: boolean;
|
|
585
|
+
_DD_TRACE_METRICS_OTEL_FLUSH_INTERVAL: number;
|
|
584
586
|
DATADOG_API_KEY: string | undefined;
|
|
585
587
|
DD_ACTION_EXECUTION_ID: string | undefined;
|
|
586
588
|
DD_AGENT_HOST: string;
|
|
@@ -675,6 +677,7 @@ export interface GeneratedEnvVarConfig {
|
|
|
675
677
|
DD_EXPERIMENTAL_TEST_OPT_GIT_CACHE_DIR: string | undefined;
|
|
676
678
|
DD_EXPERIMENTAL_TEST_OPT_GIT_CACHE_ENABLED: boolean;
|
|
677
679
|
DD_EXPERIMENTAL_TEST_OPT_SETTINGS_CACHE: string;
|
|
680
|
+
DD_EXPERIMENTAL_TEST_OPT_VITEST_NO_WORKER_INIT: boolean | undefined;
|
|
678
681
|
DD_EXPERIMENTAL_TEST_REQUESTS_FS_CACHE: boolean;
|
|
679
682
|
DD_EXTERNAL_ENV: string | undefined;
|
|
680
683
|
DD_GIT_BRANCH: string | undefined;
|
|
@@ -1109,4 +1112,5 @@ export interface GeneratedEnvVarConfig {
|
|
|
1109
1112
|
OTEL_TRACES_EXPORTER: "none" | "otlp" | undefined;
|
|
1110
1113
|
OTEL_TRACES_SAMPLER: "always_on" | "always_off" | "traceidratio" | "parentbased_always_on" | "parentbased_always_off" | "parentbased_traceidratio";
|
|
1111
1114
|
OTEL_TRACES_SAMPLER_ARG: number | undefined;
|
|
1115
|
+
OTEL_TRACES_SPAN_METRICS_ENABLED: boolean | undefined;
|
|
1112
1116
|
}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* @property {string[]} [aliases]
|
|
11
11
|
* @property {string[]} [configurationNames]
|
|
12
12
|
* @property {string} [internalPropertyName]
|
|
13
|
+
* @property {string} [namespace] Nests the canonical env name under this property path (e.g. `telemetry`).
|
|
13
14
|
* @property {string} [transform]
|
|
14
15
|
* @property {string} [allowed]
|
|
15
16
|
* @property {string|boolean} [deprecated]
|
|
@@ -25,6 +25,7 @@ const {
|
|
|
25
25
|
getEnvironmentVariable,
|
|
26
26
|
getEnvironmentVariables,
|
|
27
27
|
getStableConfigSources,
|
|
28
|
+
getValueFromEnvSources,
|
|
28
29
|
} = require('./helper')
|
|
29
30
|
const {
|
|
30
31
|
defaults,
|
|
@@ -245,12 +246,12 @@ class Config extends ConfigBase {
|
|
|
245
246
|
let entry = optionsTable[fullName]
|
|
246
247
|
if (!entry) {
|
|
247
248
|
// TODO: Fix this by by changing remote config to use env styles.
|
|
248
|
-
if (name !== '
|
|
249
|
+
if (name !== 'DD_TRACE_ENABLED' || source !== 'remote_config') {
|
|
249
250
|
log.warn('Unknown option %s with value %o', fullName, value)
|
|
250
251
|
continue
|
|
251
252
|
}
|
|
252
253
|
// @ts-expect-error - The entry is defined in the configurationsTable.
|
|
253
|
-
entry = configurationsTable.
|
|
254
|
+
entry = configurationsTable.DD_TRACE_ENABLED
|
|
254
255
|
}
|
|
255
256
|
|
|
256
257
|
if (entry.nestedProperties) {
|
|
@@ -286,7 +287,7 @@ class Config extends ConfigBase {
|
|
|
286
287
|
}
|
|
287
288
|
// TODO: Coerce mismatched types to the expected type, if possible. E.g., strings <> numbers
|
|
288
289
|
const transformed = value !== undefined && entry.transformer ? entry.transformer(value, fullName, source) : value
|
|
289
|
-
setAndTrack(this, entry.property, transformed, value, source)
|
|
290
|
+
setAndTrack(this, entry.property ?? name, transformed, value, source)
|
|
290
291
|
}
|
|
291
292
|
}
|
|
292
293
|
|
|
@@ -358,21 +359,22 @@ class Config extends ConfigBase {
|
|
|
358
359
|
setAndTrack(this, 'OTEL_TRACES_EXPORTER', 'none')
|
|
359
360
|
}
|
|
360
361
|
|
|
361
|
-
if (this.telemetry.
|
|
362
|
-
setAndTrack(this, 'telemetry.
|
|
362
|
+
if (this.telemetry.DD_TELEMETRY_HEARTBEAT_INTERVAL) {
|
|
363
|
+
setAndTrack(this, 'telemetry.DD_TELEMETRY_HEARTBEAT_INTERVAL',
|
|
364
|
+
Math.floor(this.telemetry.DD_TELEMETRY_HEARTBEAT_INTERVAL * 1000))
|
|
363
365
|
}
|
|
364
366
|
|
|
365
367
|
// Allocation profiling needs a sampling hook only available on Node.js 26+.
|
|
366
368
|
setAndTrack(this, 'DD_PROFILING_ALLOCATION_ENABLED', NODE_MAJOR >= 26 && this.DD_PROFILING_ALLOCATION_ENABLED)
|
|
367
|
-
if (this.telemetry.
|
|
368
|
-
setAndTrack(this, 'telemetry.
|
|
369
|
-
Math.floor(this.telemetry.
|
|
369
|
+
if (this.telemetry.DD_TELEMETRY_EXTENDED_HEARTBEAT_INTERVAL) {
|
|
370
|
+
setAndTrack(this, 'telemetry.DD_TELEMETRY_EXTENDED_HEARTBEAT_INTERVAL',
|
|
371
|
+
Math.floor(this.telemetry.DD_TELEMETRY_EXTENDED_HEARTBEAT_INTERVAL * 1000))
|
|
370
372
|
}
|
|
371
373
|
|
|
372
|
-
// Enable
|
|
374
|
+
// Enable resource renaming when appsec is enabled and only
|
|
373
375
|
// if DD_TRACE_RESOURCE_RENAMING_ENABLED is not explicitly set
|
|
374
|
-
if (!trackedConfigOrigins.has('
|
|
375
|
-
setAndTrack(this, '
|
|
376
|
+
if (!trackedConfigOrigins.has('DD_TRACE_RESOURCE_RENAMING_ENABLED')) {
|
|
377
|
+
setAndTrack(this, 'DD_TRACE_RESOURCE_RENAMING_ENABLED', this.appsec.enabled ?? false)
|
|
376
378
|
}
|
|
377
379
|
|
|
378
380
|
if (!trackedConfigOrigins.has('spanComputePeerService') && this.spanAttributeSchema !== 'v0') {
|
|
@@ -380,9 +382,9 @@ class Config extends ConfigBase {
|
|
|
380
382
|
}
|
|
381
383
|
|
|
382
384
|
if (!this.apmTracingEnabled) {
|
|
383
|
-
setAndTrack(this, 'stats.
|
|
384
|
-
} else if (!trackedConfigOrigins.has('stats.
|
|
385
|
-
setAndTrack(this, 'stats.
|
|
385
|
+
setAndTrack(this, 'stats.DD_TRACE_STATS_COMPUTATION_ENABLED', false)
|
|
386
|
+
} else if (!trackedConfigOrigins.has('stats.DD_TRACE_STATS_COMPUTATION_ENABLED')) {
|
|
387
|
+
setAndTrack(this, 'stats.DD_TRACE_STATS_COMPUTATION_ENABLED', getIsGCPFunction() || getIsAzureFunction())
|
|
386
388
|
}
|
|
387
389
|
|
|
388
390
|
// TODO: Remove the experimental env vars as a major or deprecate the option?
|
|
@@ -454,11 +456,11 @@ class Config extends ConfigBase {
|
|
|
454
456
|
}
|
|
455
457
|
|
|
456
458
|
// For LLMObs, we want to auto enable it when other llmobs options are defined.
|
|
457
|
-
if (!this.llmobs.
|
|
458
|
-
!trackedConfigOrigins.has('llmobs.
|
|
459
|
+
if (!this.llmobs.DD_LLMOBS_ENABLED &&
|
|
460
|
+
!trackedConfigOrigins.has('llmobs.DD_LLMOBS_ENABLED') &&
|
|
459
461
|
(trackedConfigOrigins.has('llmobs.agentlessEnabled') ||
|
|
460
462
|
trackedConfigOrigins.has('llmobs.mlApp'))) {
|
|
461
|
-
setAndTrack(this, 'llmobs.
|
|
463
|
+
setAndTrack(this, 'llmobs.DD_LLMOBS_ENABLED', true)
|
|
462
464
|
}
|
|
463
465
|
|
|
464
466
|
if (this.OTEL_RESOURCE_ATTRIBUTES) {
|
|
@@ -551,14 +553,15 @@ class Config extends ConfigBase {
|
|
|
551
553
|
this.tags['runtime-id'] = RUNTIME_ID
|
|
552
554
|
|
|
553
555
|
if (IS_SERVERLESS) {
|
|
554
|
-
setAndTrack(this, 'telemetry.
|
|
556
|
+
setAndTrack(this, 'telemetry.DD_INSTRUMENTATION_TELEMETRY_ENABLED', false)
|
|
555
557
|
setAndTrack(this, 'DD_CRASHTRACKING_ENABLED', false)
|
|
556
|
-
setAndTrack(this, 'remoteConfig.
|
|
558
|
+
setAndTrack(this, 'remoteConfig.DD_REMOTE_CONFIGURATION_ENABLED', false)
|
|
557
559
|
}
|
|
558
560
|
|
|
559
561
|
// TODO: Should this unconditionally be disabled?
|
|
560
|
-
if (getEnvironmentVariable('JEST_WORKER_ID') &&
|
|
561
|
-
|
|
562
|
+
if (getEnvironmentVariable('JEST_WORKER_ID') &&
|
|
563
|
+
!trackedConfigOrigins.has('telemetry.DD_INSTRUMENTATION_TELEMETRY_ENABLED')) {
|
|
564
|
+
setAndTrack(this, 'telemetry.DD_INSTRUMENTATION_TELEMETRY_ENABLED', false)
|
|
562
565
|
}
|
|
563
566
|
|
|
564
567
|
// Experimental agentless APM span intake
|
|
@@ -568,7 +571,7 @@ class Config extends ConfigBase {
|
|
|
568
571
|
if (agentlessEnabled) {
|
|
569
572
|
setAndTrack(this, 'experimental.exporter', 'agentless')
|
|
570
573
|
// Disable client-side stats computation
|
|
571
|
-
setAndTrack(this, 'stats.
|
|
574
|
+
setAndTrack(this, 'stats.DD_TRACE_STATS_COMPUTATION_ENABLED', false)
|
|
572
575
|
// Enable hostname reporting
|
|
573
576
|
setAndTrack(this, 'reportHostname', true)
|
|
574
577
|
// Disable rate limiting - server-side sampling will be used
|
|
@@ -602,6 +605,16 @@ class Config extends ConfigBase {
|
|
|
602
605
|
setAndTrack(this, 'OTEL_EXPORTER_OTLP_TRACES_ENDPOINT', `${defaultOtlpBase}/v1/traces`)
|
|
603
606
|
}
|
|
604
607
|
|
|
608
|
+
const autoTraceMetrics = this.OTEL_TRACES_EXPORTER === 'otlp' && this.DD_METRICS_OTEL_ENABLED === true
|
|
609
|
+
setAndTrack(this, 'OTEL_TRACES_SPAN_METRICS_ENABLED', this.OTEL_TRACES_SPAN_METRICS_ENABLED ?? autoTraceMetrics)
|
|
610
|
+
|
|
611
|
+
if (this.OTEL_TRACES_SPAN_METRICS_ENABLED) {
|
|
612
|
+
this.stats = { ...this.stats, DD_TRACE_STATS_COMPUTATION_ENABLED: true }
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
const flushInterval = getValueFromEnvSources('_DD_TRACE_METRICS_OTEL_FLUSH_INTERVAL')
|
|
616
|
+
setAndTrack(this, '_DD_TRACE_METRICS_OTEL_FLUSH_INTERVAL', flushInterval)
|
|
617
|
+
|
|
605
618
|
if (process.platform === 'win32') {
|
|
606
619
|
// OOM monitoring does not work properly on Windows, so it will be disabled.
|
|
607
620
|
deactivateIfEnabledAndWarnOnWindows(this, 'DD_PROFILING_EXPERIMENTAL_OOM_MONITORING_ENABLED')
|
|
@@ -72,11 +72,13 @@ function applyV5Overrides (supportedConfigurations) {
|
|
|
72
72
|
const iastEntry = supportedConfigurations.DD_IAST_SECURITY_CONTROLS_CONFIGURATION?.[0]
|
|
73
73
|
if (!iastEntry) return
|
|
74
74
|
|
|
75
|
+
// v5 kept this configurable through the (experimental) iast.* programmatic API. The entry
|
|
76
|
+
// still carries `namespace: "iast"`, so these names route to iast.DD_IAST_SECURITY_CONTROLS_CONFIGURATION
|
|
77
|
+
// and the property path stays canonical across majors.
|
|
75
78
|
iastEntry.configurationNames = [
|
|
76
|
-
|
|
79
|
+
'iast.securityControlsConfiguration',
|
|
77
80
|
`${EXPERIMENTAL_IAST_PREFIX}.securityControlsConfiguration`,
|
|
78
81
|
]
|
|
79
|
-
delete iastEntry.internalPropertyName
|
|
80
82
|
}
|
|
81
83
|
|
|
82
84
|
/**
|
|
@@ -228,7 +228,7 @@ const optionLookupTable = {
|
|
|
228
228
|
code_origin_enabled: 'codeOriginForSpans.enabled',
|
|
229
229
|
tracing_sampling_rate: 'sampleRate',
|
|
230
230
|
log_injection_enabled: 'logInjection',
|
|
231
|
-
tracing_enabled: '
|
|
231
|
+
tracing_enabled: 'DD_TRACE_ENABLED',
|
|
232
232
|
tracing_sampling_rules: 'samplingRules',
|
|
233
233
|
tracing_header_tags: 'headerTags',
|
|
234
234
|
tracing_tags: 'tags',
|