dd-trace 5.99.0 → 5.100.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/LICENSE-3rdparty.csv +0 -1
- package/package.json +24 -5
- package/packages/datadog-instrumentations/src/cucumber.js +69 -5
- package/packages/datadog-instrumentations/src/express.js +3 -2
- package/packages/datadog-instrumentations/src/helpers/hooks.js +1 -0
- package/packages/datadog-instrumentations/src/hono.js +15 -4
- package/packages/datadog-instrumentations/src/jest.js +89 -63
- package/packages/datadog-instrumentations/src/mocha/main.js +18 -22
- package/packages/datadog-instrumentations/src/mocha/utils.js +114 -96
- package/packages/datadog-instrumentations/src/mocha/worker.js +2 -2
- package/packages/datadog-instrumentations/src/path-to-regexp.js +44 -0
- package/packages/datadog-instrumentations/src/playwright.js +108 -18
- package/packages/datadog-instrumentations/src/router.js +53 -33
- package/packages/datadog-instrumentations/src/vitest.js +76 -30
- package/packages/datadog-plugin-aws-sdk/src/base.js +1 -1
- package/packages/datadog-plugin-aws-sdk/src/services/dynamodb.js +1 -1
- package/packages/datadog-plugin-bullmq/src/consumer.js +3 -2
- package/packages/datadog-plugin-bullmq/src/producer.js +25 -11
- package/packages/datadog-plugin-cypress/src/cypress-plugin.js +32 -9
- package/packages/datadog-plugin-cypress/src/support.js +22 -21
- package/packages/datadog-plugin-dd-trace-api/src/index.js +1 -1
- package/packages/datadog-plugin-graphql/src/utils.js +2 -2
- package/packages/datadog-plugin-grpc/src/client.js +1 -1
- package/packages/datadog-plugin-grpc/src/server.js +1 -1
- package/packages/datadog-plugin-memcached/src/index.js +1 -1
- package/packages/datadog-plugin-mongodb-core/src/index.js +2 -3
- package/packages/datadog-plugin-playwright/src/index.js +6 -0
- package/packages/datadog-plugin-router/src/index.js +13 -0
- package/packages/dd-trace/index.js +4 -3
- package/packages/dd-trace/src/aiguard/sdk.js +2 -2
- package/packages/dd-trace/src/appsec/blocking.js +18 -6
- package/packages/dd-trace/src/appsec/graphql.js +1 -1
- package/packages/dd-trace/src/baggage.js +26 -13
- package/packages/dd-trace/src/ci-visibility/exporters/ci-visibility-exporter.js +1 -1
- package/packages/dd-trace/src/config/generated-config-types.d.ts +45 -69
- package/packages/dd-trace/src/config/index.js +13 -12
- package/packages/dd-trace/src/config/normalize-service.js +31 -0
- package/packages/dd-trace/src/config/supported-configurations.json +31 -76
- package/packages/dd-trace/src/debugger/config.js +1 -1
- package/packages/dd-trace/src/dogstatsd.js +5 -8
- package/packages/dd-trace/src/encode/0.4.js +1 -1
- package/packages/dd-trace/src/encode/tags-processors.js +3 -3
- package/packages/dd-trace/src/exporter.js +1 -1
- package/packages/dd-trace/src/git_metadata_tagger.js +1 -1
- package/packages/dd-trace/src/heap_snapshots.js +4 -4
- package/packages/dd-trace/src/llmobs/constants/tags.js +3 -0
- package/packages/dd-trace/src/llmobs/sdk.js +21 -1
- package/packages/dd-trace/src/llmobs/span_processor.js +14 -1
- package/packages/dd-trace/src/llmobs/writers/base.js +7 -1
- package/packages/dd-trace/src/llmobs/writers/spans.js +1 -1
- package/packages/dd-trace/src/openfeature/eval-metrics-hook.js +2 -2
- package/packages/dd-trace/src/opentelemetry/context_manager.js +11 -8
- package/packages/dd-trace/src/opentelemetry/logs/index.js +5 -5
- package/packages/dd-trace/src/opentelemetry/metrics/index.js +6 -6
- package/packages/dd-trace/src/opentelemetry/span-helpers.js +170 -0
- package/packages/dd-trace/src/opentelemetry/span.js +14 -42
- package/packages/dd-trace/src/opentelemetry/trace/otlp_http_trace_exporter.js +1 -1
- package/packages/dd-trace/src/opentelemetry/tracer.js +11 -36
- package/packages/dd-trace/src/opentracing/propagation/text_map.js +44 -23
- package/packages/dd-trace/src/opentracing/propagation/tracestate.js +42 -12
- package/packages/dd-trace/src/opentracing/span.js +4 -3
- package/packages/dd-trace/src/plugin_manager.js +6 -6
- package/packages/dd-trace/src/plugins/log_plugin.js +1 -1
- package/packages/dd-trace/src/plugins/util/ci.js +119 -32
- package/packages/dd-trace/src/plugins/util/test.js +295 -29
- package/packages/dd-trace/src/profiling/ssi-heuristics.js +2 -2
- package/packages/dd-trace/src/propagation-hash/index.js +1 -1
- package/packages/dd-trace/src/proxy.js +9 -9
- package/packages/dd-trace/src/runtime_metrics/runtime_metrics.js +1 -1
- package/packages/dd-trace/src/span_processor.js +1 -1
- package/packages/dd-trace/src/telemetry/telemetry.js +7 -5
- package/packages/dd-trace/src/tracer_metadata.js +1 -1
- package/vendor/dist/path-to-regexp/LICENSE +0 -21
- package/vendor/dist/path-to-regexp/index.js +0 -1
|
@@ -5,7 +5,6 @@ export interface GeneratedConfig {
|
|
|
5
5
|
_DD_APM_TRACING_AGENTLESS_ENABLED: boolean;
|
|
6
6
|
apiKey: string | undefined;
|
|
7
7
|
apmTracingEnabled: boolean;
|
|
8
|
-
appKey: string | undefined;
|
|
9
8
|
appsec: {
|
|
10
9
|
apiSecurity: {
|
|
11
10
|
downstreamBodyAnalysisSampleRate: number;
|
|
@@ -48,8 +47,6 @@ export interface GeneratedConfig {
|
|
|
48
47
|
baggageMaxBytes: number;
|
|
49
48
|
baggageMaxItems: number;
|
|
50
49
|
baggageTagKeys: string[];
|
|
51
|
-
ciVisAgentlessLogSubmissionEnabled: boolean;
|
|
52
|
-
ciVisibilityTestSessionName: string | undefined;
|
|
53
50
|
clientIpEnabled: boolean;
|
|
54
51
|
clientIpHeader: string | undefined;
|
|
55
52
|
cloudPayloadTagging: {
|
|
@@ -65,16 +62,15 @@ export interface GeneratedConfig {
|
|
|
65
62
|
};
|
|
66
63
|
};
|
|
67
64
|
};
|
|
68
|
-
crashtracking: {
|
|
69
|
-
enabled: boolean;
|
|
70
|
-
};
|
|
71
65
|
dbm: {
|
|
72
66
|
injectSqlBaseHash: boolean;
|
|
73
67
|
};
|
|
74
68
|
dbmPropagationMode: string;
|
|
75
69
|
DD_ACTION_EXECUTION_ID: string | undefined;
|
|
70
|
+
DD_AGENTLESS_LOG_SUBMISSION_ENABLED: boolean;
|
|
76
71
|
DD_AGENTLESS_LOG_SUBMISSION_URL: string | undefined;
|
|
77
72
|
DD_APM_FLUSH_DEADLINE_MILLISECONDS: number;
|
|
73
|
+
DD_APP_KEY: string | undefined;
|
|
78
74
|
DD_AZURE_RESOURCE_GROUP: string | undefined;
|
|
79
75
|
DD_CIVISIBILITY_AGENTLESS_ENABLED: boolean;
|
|
80
76
|
DD_CIVISIBILITY_AGENTLESS_URL: string | undefined;
|
|
@@ -83,13 +79,16 @@ export interface GeneratedConfig {
|
|
|
83
79
|
DD_CIVISIBILITY_DANGEROUSLY_FORCE_TEST_SKIPPING: boolean;
|
|
84
80
|
DD_CIVISIBILITY_ENABLED: boolean;
|
|
85
81
|
DD_CIVISIBILITY_GIT_UNSHALLOW_ENABLED: boolean;
|
|
82
|
+
DD_CIVISIBILITY_MANUAL_API_ENABLED: boolean;
|
|
86
83
|
DD_CIVISIBILITY_RUM_FLUSH_WAIT_MILLIS: number;
|
|
87
84
|
DD_CIVISIBILITY_TEST_COMMAND: string | undefined;
|
|
88
85
|
DD_CIVISIBILITY_TEST_MODULE_ID: string | undefined;
|
|
89
86
|
DD_CIVISIBILITY_TEST_SESSION_ID: string | undefined;
|
|
87
|
+
DD_CRASHTRACKING_ENABLED: boolean;
|
|
90
88
|
DD_CUSTOM_TRACE_ID: string | undefined;
|
|
91
89
|
DD_ENABLE_LAGE_PACKAGE_NAME: boolean;
|
|
92
90
|
DD_ENABLE_NX_SERVICE_NAME: boolean;
|
|
91
|
+
DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED: boolean;
|
|
93
92
|
DD_EXPERIMENTAL_TEST_OPT_GIT_CACHE_DIR: string;
|
|
94
93
|
DD_EXPERIMENTAL_TEST_OPT_GIT_CACHE_ENABLED: boolean;
|
|
95
94
|
DD_EXPERIMENTAL_TEST_OPT_SETTINGS_CACHE: string;
|
|
@@ -111,8 +110,22 @@ export interface GeneratedConfig {
|
|
|
111
110
|
DD_GIT_PULL_REQUEST_BASE_BRANCH_SHA: string | undefined;
|
|
112
111
|
DD_GIT_REPOSITORY_URL: string | undefined;
|
|
113
112
|
DD_GIT_TAG: string | undefined;
|
|
113
|
+
DD_GRPC_CLIENT_ERROR_STATUSES: number[];
|
|
114
|
+
DD_GRPC_SERVER_ERROR_STATUSES: number[];
|
|
115
|
+
DD_HEAP_SNAPSHOT_COUNT: number;
|
|
116
|
+
DD_HEAP_SNAPSHOT_DESTINATION: string;
|
|
117
|
+
DD_HEAP_SNAPSHOT_INTERVAL: number;
|
|
118
|
+
DD_INJECT_FORCE: boolean;
|
|
119
|
+
DD_INJECTION_ENABLED: string | undefined;
|
|
120
|
+
DD_INSTRUMENTATION_CONFIG_ID: string | undefined;
|
|
121
|
+
DD_INSTRUMENTATION_INSTALL_ID: string | undefined;
|
|
122
|
+
DD_INSTRUMENTATION_INSTALL_TIME: string | undefined;
|
|
123
|
+
DD_INSTRUMENTATION_INSTALL_TYPE: string | undefined;
|
|
124
|
+
DD_INTERNAL_PROFILING_LONG_LIVED_THRESHOLD: number;
|
|
114
125
|
DD_INTERNAL_PROFILING_TIMELINE_SAMPLING_ENABLED: boolean;
|
|
115
126
|
DD_LAMBDA_HANDLER: string | undefined;
|
|
127
|
+
DD_LOGS_OTEL_ENABLED: boolean;
|
|
128
|
+
DD_METRICS_OTEL_ENABLED: boolean;
|
|
116
129
|
DD_MINI_AGENT_PATH: string | undefined;
|
|
117
130
|
DD_PIPELINE_EXECUTION_ID: string | undefined;
|
|
118
131
|
DD_PLAYWRIGHT_WORKER: string | undefined;
|
|
@@ -147,6 +160,8 @@ export interface GeneratedConfig {
|
|
|
147
160
|
DD_TELEMETRY_FORWARDER_PATH: string | undefined;
|
|
148
161
|
DD_TEST_FLEET_CONFIG_PATH: string | undefined;
|
|
149
162
|
DD_TEST_LOCAL_CONFIG_PATH: string | undefined;
|
|
163
|
+
DD_TEST_SESSION_NAME: string | undefined;
|
|
164
|
+
DD_TEST_TIA_KEEP_COV_CONFIG: boolean;
|
|
150
165
|
DD_TRACE_AEROSPIKE_ENABLED: boolean;
|
|
151
166
|
DD_TRACE_AI_ENABLED: boolean;
|
|
152
167
|
DD_TRACE_AMQP10_ENABLED: boolean;
|
|
@@ -160,6 +175,7 @@ export interface GeneratedConfig {
|
|
|
160
175
|
DD_TRACE_APOLLO_SERVER_FASTIFY_ENABLED: boolean;
|
|
161
176
|
DD_TRACE_APOLLO_SUBGRAPH_ENABLED: boolean;
|
|
162
177
|
DD_TRACE_AVSC_ENABLED: boolean;
|
|
178
|
+
DD_TRACE_AWS_ADD_SPAN_POINTERS: boolean;
|
|
163
179
|
DD_TRACE_AWS_SDK_AWS_BATCH_PROPAGATION_ENABLED: boolean;
|
|
164
180
|
DD_TRACE_AWS_SDK_AWS_ENABLED: boolean;
|
|
165
181
|
DD_TRACE_AWS_SDK_BATCH_PROPAGATION_ENABLED: boolean;
|
|
@@ -223,6 +239,7 @@ export interface GeneratedConfig {
|
|
|
223
239
|
DD_TRACE_DISABLED_INSTRUMENTATIONS: string;
|
|
224
240
|
DD_TRACE_DISABLED_PLUGINS: string | undefined;
|
|
225
241
|
DD_TRACE_DNS_ENABLED: boolean;
|
|
242
|
+
DD_TRACE_DYNAMODB_TABLE_PRIMARY_KEYS: string | undefined;
|
|
226
243
|
DD_TRACE_ELASTIC_ELASTICSEARCH_ENABLED: boolean;
|
|
227
244
|
DD_TRACE_ELASTIC_TRANSPORT_ENABLED: boolean;
|
|
228
245
|
DD_TRACE_ELASTICSEARCH_ENABLED: boolean;
|
|
@@ -239,11 +256,13 @@ export interface GeneratedConfig {
|
|
|
239
256
|
DD_TRACE_FS_ENABLED: boolean;
|
|
240
257
|
DD_TRACE_GCP_PUBSUB_PUSH_ENABLED: boolean;
|
|
241
258
|
DD_TRACE_GENERIC_POOL_ENABLED: boolean;
|
|
259
|
+
DD_TRACE_GIT_METADATA_ENABLED: boolean;
|
|
242
260
|
DD_TRACE_GOOGLE_CLOUD_PUBSUB_ENABLED: boolean;
|
|
243
261
|
DD_TRACE_GOOGLE_CLOUD_VERTEXAI_ENABLED: boolean;
|
|
244
262
|
DD_TRACE_GOOGLE_GAX_ENABLED: boolean;
|
|
245
263
|
DD_TRACE_GOOGLE_GENAI_ENABLED: boolean;
|
|
246
264
|
DD_TRACE_GRAPHQL_ENABLED: boolean;
|
|
265
|
+
DD_TRACE_GRAPHQL_ERROR_EXTENSIONS: string[];
|
|
247
266
|
DD_TRACE_GRAPHQL_TAG_ENABLED: boolean;
|
|
248
267
|
DD_TRACE_GRAPHQL_TOOLS_ENABLED: boolean;
|
|
249
268
|
DD_TRACE_GRAPHQL_TOOLS_EXECUTOR_ENABLED: boolean;
|
|
@@ -292,6 +311,7 @@ export interface GeneratedConfig {
|
|
|
292
311
|
DD_TRACE_LODASH_ENABLED: boolean;
|
|
293
312
|
DD_TRACE_LOOPBACK_ENABLED: boolean;
|
|
294
313
|
DD_TRACE_MARIADB_ENABLED: boolean;
|
|
314
|
+
DD_TRACE_MEMCACHED_COMMAND_ENABLED: boolean;
|
|
295
315
|
DD_TRACE_MEMCACHED_ENABLED: boolean;
|
|
296
316
|
DD_TRACE_MICROGATEWAY_CORE_ENABLED: boolean;
|
|
297
317
|
DD_TRACE_MIDDIE_ENABLED: boolean;
|
|
@@ -307,6 +327,7 @@ export interface GeneratedConfig {
|
|
|
307
327
|
DD_TRACE_MULTER_ENABLED: boolean;
|
|
308
328
|
DD_TRACE_MYSQL_ENABLED: boolean;
|
|
309
329
|
DD_TRACE_MYSQL2_ENABLED: boolean;
|
|
330
|
+
DD_TRACE_NATIVE_SPAN_EVENTS: boolean;
|
|
310
331
|
DD_TRACE_NET_ENABLED: boolean;
|
|
311
332
|
DD_TRACE_NEXT_ENABLED: boolean;
|
|
312
333
|
DD_TRACE_NODE_CHILD_PROCESS_ENABLED: boolean;
|
|
@@ -335,6 +356,8 @@ export interface GeneratedConfig {
|
|
|
335
356
|
DD_TRACE_PROCESS_ENABLED: boolean;
|
|
336
357
|
DD_TRACE_PROMISE_ENABLED: boolean;
|
|
337
358
|
DD_TRACE_PROMISE_JS_ENABLED: boolean;
|
|
359
|
+
DD_TRACE_PROPAGATION_BEHAVIOR_EXTRACT: "continue" | "restart" | "ignore";
|
|
360
|
+
DD_TRACE_PROPAGATION_EXTRACT_FIRST: boolean;
|
|
338
361
|
DD_TRACE_PROPAGATION_STYLE: string[];
|
|
339
362
|
DD_TRACE_PROTOBUFJS_ENABLED: boolean;
|
|
340
363
|
DD_TRACE_PUG_ENABLED: boolean;
|
|
@@ -352,6 +375,7 @@ export interface GeneratedConfig {
|
|
|
352
375
|
DD_TRACE_SEQUELIZE_ENABLED: boolean;
|
|
353
376
|
DD_TRACE_SHAREDB_ENABLED: boolean;
|
|
354
377
|
DD_TRACE_SMITHY_SMITHY_CLIENT_ENABLED: boolean;
|
|
378
|
+
DD_TRACE_SPAN_LEAK_DEBUG: number;
|
|
355
379
|
DD_TRACE_SQLITE3_ENABLED: boolean;
|
|
356
380
|
DD_TRACE_SUFFIXPLUGIN_ENABLED: boolean;
|
|
357
381
|
DD_TRACE_TAGS: Record<string, string> | undefined;
|
|
@@ -365,6 +389,7 @@ export interface GeneratedConfig {
|
|
|
365
389
|
DD_TRACE_WINSTON_ENABLED: boolean;
|
|
366
390
|
DD_TRACE_WORKERPOOL_ENABLED: boolean;
|
|
367
391
|
DD_TRACE_WS_ENABLED: boolean;
|
|
392
|
+
DD_TRACE_X_DATADOG_TAGS_MAX_LENGTH: number;
|
|
368
393
|
DD_VITEST_WORKER: string | undefined;
|
|
369
394
|
dogstatsd: {
|
|
370
395
|
hostname: string;
|
|
@@ -405,26 +430,7 @@ export interface GeneratedConfig {
|
|
|
405
430
|
flakyTestRetriesCount: number;
|
|
406
431
|
flushInterval: number;
|
|
407
432
|
flushMinSpans: number;
|
|
408
|
-
gitMetadataEnabled: boolean;
|
|
409
|
-
graphqlErrorExtensions: string[];
|
|
410
|
-
grpc: {
|
|
411
|
-
client: {
|
|
412
|
-
error: {
|
|
413
|
-
statuses: number[];
|
|
414
|
-
};
|
|
415
|
-
};
|
|
416
|
-
server: {
|
|
417
|
-
error: {
|
|
418
|
-
statuses: number[];
|
|
419
|
-
};
|
|
420
|
-
};
|
|
421
|
-
};
|
|
422
433
|
headerTags: string[];
|
|
423
|
-
heapSnapshot: {
|
|
424
|
-
count: number;
|
|
425
|
-
destination: string;
|
|
426
|
-
interval: number;
|
|
427
|
-
};
|
|
428
434
|
hostname: string;
|
|
429
435
|
iast: {
|
|
430
436
|
dbRowsToTaint: number;
|
|
@@ -443,21 +449,11 @@ export interface GeneratedConfig {
|
|
|
443
449
|
telemetryVerbosity: string;
|
|
444
450
|
};
|
|
445
451
|
inferredProxyServicesEnabled: boolean;
|
|
446
|
-
injectForce: boolean;
|
|
447
|
-
injectionEnabled: string | undefined;
|
|
448
|
-
installSignature: {
|
|
449
|
-
id: string | undefined;
|
|
450
|
-
time: string | undefined;
|
|
451
|
-
type: string | undefined;
|
|
452
|
-
};
|
|
453
|
-
instrumentation_config_id: string | undefined;
|
|
454
452
|
isEarlyFlakeDetectionEnabled: boolean;
|
|
455
453
|
isFlakyTestRetriesEnabled: boolean;
|
|
456
454
|
isGitUploadEnabled: boolean;
|
|
457
455
|
isImpactedTestsEnabled: boolean;
|
|
458
456
|
isIntelligentTestRunnerEnabled: boolean;
|
|
459
|
-
isKeepingCoverageConfiguration: boolean;
|
|
460
|
-
isManualApiEnabled: boolean;
|
|
461
457
|
isTestDynamicInstrumentationEnabled: boolean;
|
|
462
458
|
isTestManagementEnabled: boolean;
|
|
463
459
|
langchain: {
|
|
@@ -472,51 +468,44 @@ export interface GeneratedConfig {
|
|
|
472
468
|
};
|
|
473
469
|
logInjection: boolean;
|
|
474
470
|
logLevel: "debug" | "info" | "warn" | "error";
|
|
475
|
-
memcachedCommandEnabled: boolean;
|
|
476
471
|
middlewareTracingEnabled: boolean;
|
|
477
472
|
openai: {
|
|
478
473
|
spanCharLimit: number;
|
|
479
474
|
};
|
|
480
475
|
openAiLogsEnabled: boolean;
|
|
476
|
+
OTEL_BSP_MAX_EXPORT_BATCH_SIZE: number;
|
|
477
|
+
OTEL_BSP_MAX_QUEUE_SIZE: number;
|
|
478
|
+
OTEL_BSP_SCHEDULE_DELAY: number;
|
|
481
479
|
OTEL_EXPORTER_OTLP_ENDPOINT: string | undefined;
|
|
482
480
|
OTEL_EXPORTER_OTLP_HEADERS: Record<string, string> | undefined;
|
|
481
|
+
OTEL_EXPORTER_OTLP_LOGS_ENDPOINT: string;
|
|
483
482
|
OTEL_EXPORTER_OTLP_LOGS_HEADERS: Record<string, string> | undefined;
|
|
483
|
+
OTEL_EXPORTER_OTLP_LOGS_PROTOCOL: string;
|
|
484
|
+
OTEL_EXPORTER_OTLP_LOGS_TIMEOUT: number;
|
|
485
|
+
OTEL_EXPORTER_OTLP_METRICS_ENDPOINT: string;
|
|
484
486
|
OTEL_EXPORTER_OTLP_METRICS_HEADERS: Record<string, string> | undefined;
|
|
487
|
+
OTEL_EXPORTER_OTLP_METRICS_PROTOCOL: string;
|
|
488
|
+
OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE: "DELTA" | "CUMULATIVE" | "LOWMEMORY";
|
|
489
|
+
OTEL_EXPORTER_OTLP_METRICS_TIMEOUT: number;
|
|
490
|
+
OTEL_EXPORTER_OTLP_PROTOCOL: string;
|
|
491
|
+
OTEL_EXPORTER_OTLP_TIMEOUT: number;
|
|
485
492
|
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT: string;
|
|
486
493
|
OTEL_EXPORTER_OTLP_TRACES_HEADERS: Record<string, string> | undefined;
|
|
487
494
|
OTEL_EXPORTER_OTLP_TRACES_PROTOCOL: "http/json";
|
|
488
495
|
OTEL_EXPORTER_OTLP_TRACES_TIMEOUT: number;
|
|
489
496
|
OTEL_LOGS_EXPORTER: "none" | "otlp" | undefined;
|
|
497
|
+
OTEL_METRIC_EXPORT_INTERVAL: number;
|
|
498
|
+
OTEL_METRIC_EXPORT_TIMEOUT: number;
|
|
490
499
|
OTEL_METRICS_EXPORTER: "none" | "otlp" | undefined;
|
|
491
500
|
OTEL_RESOURCE_ATTRIBUTES: Record<string, string>;
|
|
492
501
|
OTEL_SDK_DISABLED: boolean;
|
|
493
502
|
OTEL_TRACES_EXPORTER: "none" | "otlp" | undefined;
|
|
494
503
|
OTEL_TRACES_SAMPLER: "always_on" | "always_off" | "traceidratio" | "parentbased_always_on" | "parentbased_always_off" | "parentbased_traceidratio";
|
|
495
504
|
OTEL_TRACES_SAMPLER_ARG: number | undefined;
|
|
496
|
-
otelBatchTimeout: number;
|
|
497
|
-
otelLogsEnabled: boolean;
|
|
498
|
-
otelLogsProtocol: string;
|
|
499
|
-
otelLogsTimeout: number;
|
|
500
|
-
otelLogsUrl: string;
|
|
501
|
-
otelMaxExportBatchSize: number;
|
|
502
|
-
otelMaxQueueSize: number;
|
|
503
|
-
otelMetricsEnabled: boolean;
|
|
504
|
-
otelMetricsExportInterval: number;
|
|
505
|
-
otelMetricsExportTimeout: number;
|
|
506
|
-
otelMetricsProtocol: string;
|
|
507
|
-
otelMetricsTemporalityPreference: "DELTA" | "CUMULATIVE" | "LOWMEMORY";
|
|
508
|
-
otelMetricsTimeout: number;
|
|
509
|
-
otelMetricsUrl: string;
|
|
510
|
-
otelProtocol: string;
|
|
511
|
-
otelTimeout: number;
|
|
512
505
|
peerServiceMapping: Record<string, string>;
|
|
513
506
|
port: string | number;
|
|
514
507
|
profiling: {
|
|
515
508
|
enabled: 'true' | 'false' | 'auto';
|
|
516
|
-
longLivedThreshold: number;
|
|
517
|
-
};
|
|
518
|
-
propagateProcessTags: {
|
|
519
|
-
enabled: boolean;
|
|
520
509
|
};
|
|
521
510
|
protocolVersion: string;
|
|
522
511
|
queryStringObfuscation: string;
|
|
@@ -542,7 +531,6 @@ export interface GeneratedConfig {
|
|
|
542
531
|
site: string;
|
|
543
532
|
spanAttributeSchema: "v0" | "v1";
|
|
544
533
|
spanComputePeerService: boolean;
|
|
545
|
-
spanLeakDebug: number;
|
|
546
534
|
spanRemoveIntegrationFromService: boolean;
|
|
547
535
|
spanSamplingRules: import('../../../../index').SpanSamplingRule[] | undefined;
|
|
548
536
|
startupLogs: boolean;
|
|
@@ -550,7 +538,6 @@ export interface GeneratedConfig {
|
|
|
550
538
|
enabled: boolean;
|
|
551
539
|
};
|
|
552
540
|
tags: Record<string, string>;
|
|
553
|
-
tagsHeaderMaxLength: number;
|
|
554
541
|
telemetry: {
|
|
555
542
|
debug: boolean;
|
|
556
543
|
dependencyCollection: boolean;
|
|
@@ -561,19 +548,8 @@ export interface GeneratedConfig {
|
|
|
561
548
|
metrics: boolean;
|
|
562
549
|
};
|
|
563
550
|
testManagementAttemptToFixRetries: number;
|
|
564
|
-
trace: {
|
|
565
|
-
aws: {
|
|
566
|
-
addSpanPointers: boolean;
|
|
567
|
-
};
|
|
568
|
-
dynamoDb: {
|
|
569
|
-
tablePrimaryKeys: string | undefined;
|
|
570
|
-
};
|
|
571
|
-
nativeSpanEvents: boolean;
|
|
572
|
-
};
|
|
573
551
|
traceId128BitGenerationEnabled: boolean;
|
|
574
552
|
traceId128BitLoggingEnabled: boolean;
|
|
575
|
-
tracePropagationBehaviorExtract: "continue" | "restart" | "ignore";
|
|
576
|
-
tracePropagationExtractFirst: boolean;
|
|
577
553
|
tracePropagationStyle: {
|
|
578
554
|
extract: string[];
|
|
579
555
|
inject: string[];
|
|
@@ -39,6 +39,7 @@ const {
|
|
|
39
39
|
parseErrors,
|
|
40
40
|
generateTelemetry,
|
|
41
41
|
} = require('./defaults')
|
|
42
|
+
const { normalizeService } = require('./normalize-service')
|
|
42
43
|
const { transformers } = require('./parsers')
|
|
43
44
|
|
|
44
45
|
const RUNTIME_ID = uuid()
|
|
@@ -214,7 +215,7 @@ class Config extends ConfigBase {
|
|
|
214
215
|
|
|
215
216
|
warnWrongOtelSettings()
|
|
216
217
|
|
|
217
|
-
if (this.
|
|
218
|
+
if (this.DD_TRACE_GIT_METADATA_ENABLED) {
|
|
218
219
|
this.#loadGitMetadata()
|
|
219
220
|
}
|
|
220
221
|
|
|
@@ -355,13 +356,13 @@ class Config extends ConfigBase {
|
|
|
355
356
|
}
|
|
356
357
|
// Disable log injection when OTEL logs are enabled
|
|
357
358
|
// OTEL logs and DD log injection are mutually exclusive
|
|
358
|
-
if (this.
|
|
359
|
+
if (this.DD_LOGS_OTEL_ENABLED) {
|
|
359
360
|
setAndTrack(this, 'logInjection', false)
|
|
360
361
|
}
|
|
361
|
-
if (this.
|
|
362
|
+
if (this.DD_METRICS_OTEL_ENABLED &&
|
|
362
363
|
trackedConfigOrigins.has('OTEL_METRICS_EXPORTER') &&
|
|
363
364
|
this.OTEL_METRICS_EXPORTER === 'none') {
|
|
364
|
-
setAndTrack(this, '
|
|
365
|
+
setAndTrack(this, 'DD_METRICS_OTEL_ENABLED', false)
|
|
365
366
|
}
|
|
366
367
|
|
|
367
368
|
if (this.OTEL_TRACES_EXPORTER === 'otlp' && this.protocolVersion && this.protocolVersion !== '0.4') {
|
|
@@ -427,7 +428,7 @@ class Config extends ConfigBase {
|
|
|
427
428
|
))
|
|
428
429
|
}
|
|
429
430
|
|
|
430
|
-
if (this.
|
|
431
|
+
if (this.DD_INJECTION_ENABLED) {
|
|
431
432
|
setAndTrack(this, 'instrumentationSource', 'ssi')
|
|
432
433
|
}
|
|
433
434
|
|
|
@@ -513,7 +514,7 @@ class Config extends ConfigBase {
|
|
|
513
514
|
const NX_TASK_TARGET_PROJECT = getEnvironmentVariable('NX_TASK_TARGET_PROJECT')
|
|
514
515
|
if (NX_TASK_TARGET_PROJECT) {
|
|
515
516
|
if (this.DD_ENABLE_NX_SERVICE_NAME) {
|
|
516
|
-
setAndTrack(this, 'service', NX_TASK_TARGET_PROJECT)
|
|
517
|
+
setAndTrack(this, 'service', normalizeService(NX_TASK_TARGET_PROJECT) || 'node')
|
|
517
518
|
isServiceNameInferred = true
|
|
518
519
|
} else if (DD_MAJOR < 6) {
|
|
519
520
|
log.warn(
|
|
@@ -536,7 +537,7 @@ class Config extends ConfigBase {
|
|
|
536
537
|
)
|
|
537
538
|
: undefined
|
|
538
539
|
|
|
539
|
-
setAndTrack(this, 'service', serverlessName || pkg.name || 'node')
|
|
540
|
+
setAndTrack(this, 'service', normalizeService(serverlessName) || normalizeService(pkg.name) || 'node')
|
|
540
541
|
this.tags.service ??= /** @type {string} */ (this.service)
|
|
541
542
|
isServiceNameInferred = true
|
|
542
543
|
}
|
|
@@ -560,7 +561,7 @@ class Config extends ConfigBase {
|
|
|
560
561
|
|
|
561
562
|
if (IS_SERVERLESS) {
|
|
562
563
|
setAndTrack(this, 'telemetry.enabled', false)
|
|
563
|
-
setAndTrack(this, '
|
|
564
|
+
setAndTrack(this, 'DD_CRASHTRACKING_ENABLED', false)
|
|
564
565
|
setAndTrack(this, 'remoteConfig.enabled', false)
|
|
565
566
|
}
|
|
566
567
|
|
|
@@ -600,11 +601,11 @@ class Config extends ConfigBase {
|
|
|
600
601
|
// Default OTLP endpoints follow the configured agent host so users who point DD at a custom
|
|
601
602
|
// agent (DD_AGENT_HOST / DD_TRACE_AGENT_URL) also reach OTLP on that host.
|
|
602
603
|
const defaultOtlpBase = this.OTEL_EXPORTER_OTLP_ENDPOINT?.replace(/\/$/, '') ?? `http://${agentHostname}:4318`
|
|
603
|
-
if (!this.
|
|
604
|
-
setAndTrack(this, '
|
|
604
|
+
if (!this.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT) {
|
|
605
|
+
setAndTrack(this, 'OTEL_EXPORTER_OTLP_LOGS_ENDPOINT', `${defaultOtlpBase}/v1/logs`)
|
|
605
606
|
}
|
|
606
|
-
if (!this.
|
|
607
|
-
setAndTrack(this, '
|
|
607
|
+
if (!this.OTEL_EXPORTER_OTLP_METRICS_ENDPOINT) {
|
|
608
|
+
setAndTrack(this, 'OTEL_EXPORTER_OTLP_METRICS_ENDPOINT', `${defaultOtlpBase}/v1/metrics`)
|
|
608
609
|
}
|
|
609
610
|
if (!this.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT) {
|
|
610
611
|
setAndTrack(this, 'OTEL_EXPORTER_OTLP_TRACES_ENDPOINT', `${defaultOtlpBase}/v1/traces`)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
const MAX_SERVICE_LENGTH = 100
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Normalize an inferred service name so APM and runtime metrics agree.
|
|
7
|
+
*
|
|
8
|
+
* The trace agent normalizes span service names on the wire, but the
|
|
9
|
+
* DogStatsD client uses a different tag-value sanitizer, so an inferred
|
|
10
|
+
* `@scope/name` package name appears as `scope/name` in APM and
|
|
11
|
+
* `_scope/name` in runtime metrics. Pre-normalizing pins both consumers
|
|
12
|
+
* (and telemetry / process tags) to the same value.
|
|
13
|
+
*
|
|
14
|
+
* @see https://github.com/DataDog/datadog-agent/blob/main/pkg/trace/traceutil/normalize.go
|
|
15
|
+
* @param {string | undefined} name
|
|
16
|
+
*/
|
|
17
|
+
function normalizeService (name) {
|
|
18
|
+
if (!name) return
|
|
19
|
+
|
|
20
|
+
let normalized = name.toLowerCase()
|
|
21
|
+
.replaceAll(/[^a-z0-9_:./-]/g, '_')
|
|
22
|
+
.replace(/^[^a-z0-9]+/, '')
|
|
23
|
+
|
|
24
|
+
if (normalized.length > MAX_SERVICE_LENGTH) {
|
|
25
|
+
normalized = normalized.slice(0, MAX_SERVICE_LENGTH)
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return normalized
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
module.exports = { normalizeService }
|