dd-trace 5.101.0 → 5.103.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/ext/exporters.js +1 -0
- package/package.json +20 -17
- package/packages/datadog-esbuild/src/utils.js +2 -2
- package/packages/datadog-instrumentations/src/aerospike.js +2 -2
- package/packages/datadog-instrumentations/src/ai.js +9 -9
- package/packages/datadog-instrumentations/src/amqplib.js +6 -7
- package/packages/datadog-instrumentations/src/anthropic.js +10 -10
- package/packages/datadog-instrumentations/src/apollo-server-core.js +3 -3
- package/packages/datadog-instrumentations/src/apollo-server.js +5 -5
- package/packages/datadog-instrumentations/src/avsc.js +6 -6
- package/packages/datadog-instrumentations/src/aws-sdk.js +151 -67
- package/packages/datadog-instrumentations/src/azure-durable-functions.js +8 -8
- package/packages/datadog-instrumentations/src/bluebird.js +2 -2
- package/packages/datadog-instrumentations/src/body-parser.js +2 -2
- package/packages/datadog-instrumentations/src/cassandra-driver.js +7 -7
- package/packages/datadog-instrumentations/src/child_process.js +12 -12
- package/packages/datadog-instrumentations/src/confluentinc-kafka-javascript.js +41 -24
- package/packages/datadog-instrumentations/src/connect.js +7 -7
- package/packages/datadog-instrumentations/src/cookie-parser.js +4 -4
- package/packages/datadog-instrumentations/src/cookie.js +2 -2
- package/packages/datadog-instrumentations/src/couchbase.js +73 -238
- package/packages/datadog-instrumentations/src/crypto.js +4 -4
- package/packages/datadog-instrumentations/src/cucumber.js +78 -17
- package/packages/datadog-instrumentations/src/dns.js +0 -3
- package/packages/datadog-instrumentations/src/elasticsearch.js +8 -11
- package/packages/datadog-instrumentations/src/electron/preload.js +42 -0
- package/packages/datadog-instrumentations/src/electron.js +240 -0
- package/packages/datadog-instrumentations/src/express-mongo-sanitize.js +6 -6
- package/packages/datadog-instrumentations/src/express-session.js +4 -4
- package/packages/datadog-instrumentations/src/express.js +10 -11
- package/packages/datadog-instrumentations/src/fastify.js +2 -2
- package/packages/datadog-instrumentations/src/fetch.js +5 -5
- package/packages/datadog-instrumentations/src/fs.js +14 -14
- package/packages/datadog-instrumentations/src/google-cloud-pubsub.js +5 -7
- package/packages/datadog-instrumentations/src/google-genai.js +4 -4
- package/packages/datadog-instrumentations/src/graphql.js +13 -12
- package/packages/datadog-instrumentations/src/grpc/server.js +2 -2
- package/packages/datadog-instrumentations/src/hapi.js +2 -2
- package/packages/datadog-instrumentations/src/helpers/callback-instrumentor.js +9 -9
- package/packages/datadog-instrumentations/src/helpers/hook.js +4 -1
- package/packages/datadog-instrumentations/src/helpers/hooks.js +1 -0
- package/packages/datadog-instrumentations/src/helpers/instrument.js +2 -2
- package/packages/datadog-instrumentations/src/helpers/kafka.js +41 -0
- package/packages/datadog-instrumentations/src/helpers/promise.js +2 -2
- package/packages/datadog-instrumentations/src/hono.js +2 -2
- package/packages/datadog-instrumentations/src/http/client.js +6 -6
- package/packages/datadog-instrumentations/src/http/server.js +9 -9
- package/packages/datadog-instrumentations/src/ioredis.js +16 -12
- package/packages/datadog-instrumentations/src/jest.js +382 -81
- package/packages/datadog-instrumentations/src/kafkajs.js +165 -174
- package/packages/datadog-instrumentations/src/knex.js +17 -17
- package/packages/datadog-instrumentations/src/koa.js +12 -12
- package/packages/datadog-instrumentations/src/ldapjs.js +5 -5
- package/packages/datadog-instrumentations/src/light-my-request.js +2 -2
- package/packages/datadog-instrumentations/src/limitd-client.js +4 -4
- package/packages/datadog-instrumentations/src/lodash.js +4 -4
- package/packages/datadog-instrumentations/src/mariadb.js +13 -13
- package/packages/datadog-instrumentations/src/memcached.js +2 -2
- package/packages/datadog-instrumentations/src/microgateway-core.js +2 -2
- package/packages/datadog-instrumentations/src/mocha/common.js +3 -3
- package/packages/datadog-instrumentations/src/mocha/main.js +85 -11
- package/packages/datadog-instrumentations/src/mocha/utils.js +133 -16
- package/packages/datadog-instrumentations/src/mocha/worker.js +7 -5
- package/packages/datadog-instrumentations/src/mongodb-core.js +42 -30
- package/packages/datadog-instrumentations/src/mongodb.js +5 -5
- package/packages/datadog-instrumentations/src/mongoose.js +21 -21
- package/packages/datadog-instrumentations/src/mquery.js +5 -5
- package/packages/datadog-instrumentations/src/multer.js +4 -4
- package/packages/datadog-instrumentations/src/mysql.js +16 -16
- package/packages/datadog-instrumentations/src/mysql2.js +4 -4
- package/packages/datadog-instrumentations/src/net.js +14 -8
- package/packages/datadog-instrumentations/src/nyc.js +5 -5
- package/packages/datadog-instrumentations/src/openai.js +19 -19
- package/packages/datadog-instrumentations/src/oracledb.js +6 -6
- package/packages/datadog-instrumentations/src/passport-utils.js +5 -5
- package/packages/datadog-instrumentations/src/pg.js +39 -25
- package/packages/datadog-instrumentations/src/pino.js +6 -10
- package/packages/datadog-instrumentations/src/playwright.js +445 -68
- package/packages/datadog-instrumentations/src/protobufjs.js +16 -16
- package/packages/datadog-instrumentations/src/redis.js +20 -12
- package/packages/datadog-instrumentations/src/restify.js +2 -2
- package/packages/datadog-instrumentations/src/router.js +12 -12
- package/packages/datadog-instrumentations/src/stripe.js +12 -12
- package/packages/datadog-instrumentations/src/vitest.js +107 -26
- package/packages/datadog-instrumentations/src/winston.js +4 -4
- package/packages/datadog-instrumentations/src/ws.js +7 -7
- package/packages/datadog-plugin-apollo/src/gateway/request.js +1 -21
- package/packages/datadog-plugin-aws-sdk/src/base.js +70 -28
- package/packages/datadog-plugin-aws-sdk/src/services/cloudwatchlogs.js +1 -1
- package/packages/datadog-plugin-aws-sdk/src/services/eventbridge.js +20 -13
- package/packages/datadog-plugin-aws-sdk/src/services/kinesis.js +46 -36
- package/packages/datadog-plugin-aws-sdk/src/services/lambda.js +34 -23
- package/packages/datadog-plugin-aws-sdk/src/services/redshift.js +1 -1
- package/packages/datadog-plugin-aws-sdk/src/services/s3.js +1 -1
- package/packages/datadog-plugin-aws-sdk/src/services/sns.js +14 -15
- package/packages/datadog-plugin-aws-sdk/src/services/sqs.js +74 -55
- package/packages/datadog-plugin-aws-sdk/src/services/stepfunctions.js +20 -18
- package/packages/datadog-plugin-aws-sdk/src/util.js +22 -0
- package/packages/datadog-plugin-child_process/src/scrub-cmd-params.js +6 -6
- package/packages/datadog-plugin-couchbase/src/index.js +58 -52
- package/packages/datadog-plugin-cucumber/src/index.js +5 -0
- package/packages/datadog-plugin-cypress/src/cypress-plugin.js +215 -26
- package/packages/datadog-plugin-cypress/src/support.js +13 -1
- package/packages/datadog-plugin-electron/src/index.js +17 -0
- package/packages/datadog-plugin-electron/src/ipc.js +143 -0
- package/packages/datadog-plugin-electron/src/net.js +82 -0
- package/packages/datadog-plugin-google-cloud-pubsub/src/consumer.js +1 -5
- package/packages/datadog-plugin-google-cloud-pubsub/src/producer.js +27 -18
- package/packages/datadog-plugin-google-cloud-pubsub/src/pubsub-push-subscription.js +3 -1
- package/packages/datadog-plugin-graphql/src/execute.js +6 -28
- package/packages/datadog-plugin-graphql/src/resolve.js +30 -35
- package/packages/datadog-plugin-graphql/src/tools/signature.js +32 -7
- package/packages/datadog-plugin-graphql/src/tools/transforms.js +118 -100
- package/packages/datadog-plugin-graphql/src/utils.js +29 -0
- package/packages/datadog-plugin-grpc/src/client.js +6 -7
- package/packages/datadog-plugin-grpc/src/util.js +57 -22
- package/packages/datadog-plugin-http/src/client.js +3 -7
- package/packages/datadog-plugin-jest/src/index.js +92 -50
- package/packages/datadog-plugin-jest/src/util.js +1 -2
- package/packages/datadog-plugin-mocha/src/index.js +5 -0
- package/packages/datadog-plugin-mongodb-core/src/index.js +36 -69
- package/packages/datadog-plugin-mysql/src/index.js +1 -1
- package/packages/datadog-plugin-openai/src/services.js +2 -1
- package/packages/datadog-plugin-openai/src/tracing.js +12 -23
- package/packages/datadog-plugin-pg/src/index.js +3 -3
- package/packages/datadog-plugin-playwright/src/index.js +5 -1
- package/packages/datadog-plugin-redis/src/index.js +18 -23
- package/packages/datadog-plugin-vitest/src/index.js +8 -1
- package/packages/datadog-shimmer/src/shimmer.js +7 -1
- package/packages/dd-trace/src/aiguard/index.js +3 -1
- package/packages/dd-trace/src/aiguard/sdk.js +36 -30
- package/packages/dd-trace/src/aiguard/tags.js +20 -11
- package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-password-rules.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-secret-rules.js +81 -81
- package/packages/dd-trace/src/appsec/iast/security-controls/index.js +2 -2
- package/packages/dd-trace/src/appsec/iast/taint-tracking/plugins/kafka.js +2 -2
- package/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter.js +4 -4
- package/packages/dd-trace/src/appsec/iast/taint-tracking/taint-tracking-impl.js +2 -2
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-handler.js +2 -0
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/index.js +1 -3
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/utils.js +83 -48
- package/packages/dd-trace/src/appsec/iast/vulnerability-reporter.js +1 -1
- package/packages/dd-trace/src/appsec/index.js +21 -24
- package/packages/dd-trace/src/appsec/reporter.js +3 -1
- package/packages/dd-trace/src/appsec/rule_manager.js +4 -2
- package/packages/dd-trace/src/appsec/waf/waf_context_wrapper.js +31 -16
- package/packages/dd-trace/src/azure_metadata.js +17 -6
- package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/index.js +4 -4
- package/packages/dd-trace/src/ci-visibility/exporters/ci-visibility-exporter.js +4 -2
- package/packages/dd-trace/src/ci-visibility/exporters/test-worker/index.js +6 -4
- package/packages/dd-trace/src/ci-visibility/requests/fs-cache.js +1 -1
- package/packages/dd-trace/src/config/defaults.js +3 -14
- package/packages/dd-trace/src/config/generated-config-types.d.ts +3 -1
- package/packages/dd-trace/src/config/git_properties.js +2 -2
- package/packages/dd-trace/src/config/helper.js +4 -0
- package/packages/dd-trace/src/config/index.js +2 -2
- package/packages/dd-trace/src/config/major-overrides.js +98 -0
- package/packages/dd-trace/src/config/parsers.js +7 -1
- package/packages/dd-trace/src/config/supported-configurations.json +51 -38
- package/packages/dd-trace/src/datastreams/checkpointer.js +2 -2
- package/packages/dd-trace/src/datastreams/index.js +2 -1
- package/packages/dd-trace/src/datastreams/manager.js +1 -1
- package/packages/dd-trace/src/datastreams/processor.js +3 -4
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/collector.js +2 -2
- package/packages/dd-trace/src/debugger/devtools_client/snapshot-pruner.js +1 -0
- package/packages/dd-trace/src/debugger/devtools_client/source-maps.js +1 -1
- package/packages/dd-trace/src/debugger/devtools_client/state.js +2 -1
- package/packages/dd-trace/src/debugger/index.js +7 -7
- package/packages/dd-trace/src/dogstatsd.js +2 -2
- package/packages/dd-trace/src/encode/0.4.js +748 -232
- package/packages/dd-trace/src/encode/0.5.js +47 -10
- package/packages/dd-trace/src/encode/agentless-json.js +1 -1
- package/packages/dd-trace/src/exporter.js +2 -0
- package/packages/dd-trace/src/exporters/agent/index.js +2 -1
- package/packages/dd-trace/src/exporters/agentless/index.js +3 -2
- package/packages/dd-trace/src/exporters/agentless/writer.js +2 -2
- package/packages/dd-trace/src/exporters/common/buffering-exporter.js +2 -1
- package/packages/dd-trace/src/exporters/common/request.js +1 -1
- package/packages/dd-trace/src/exporters/electron/index.js +49 -0
- package/packages/dd-trace/src/external-logger/src/index.js +2 -1
- package/packages/dd-trace/src/git_metadata.js +10 -8
- package/packages/dd-trace/src/lambda/handler-paths.js +52 -0
- package/packages/dd-trace/src/lambda/index.js +62 -14
- package/packages/dd-trace/src/lambda/runtime/patch.js +21 -46
- package/packages/dd-trace/src/llmobs/index.js +13 -2
- package/packages/dd-trace/src/llmobs/plugins/ai/util.js +1 -2
- package/packages/dd-trace/src/llmobs/plugins/bedrockruntime.js +45 -15
- package/packages/dd-trace/src/llmobs/plugins/genai/util.js +6 -3
- package/packages/dd-trace/src/llmobs/sdk.js +24 -26
- package/packages/dd-trace/src/llmobs/span_processor.js +25 -5
- package/packages/dd-trace/src/llmobs/util.js +1 -0
- package/packages/dd-trace/src/llmobs/writers/base.js +2 -1
- package/packages/dd-trace/src/msgpack/chunk.js +6 -3
- package/packages/dd-trace/src/openfeature/noop.js +40 -36
- package/packages/dd-trace/src/openfeature/writers/base.js +2 -1
- package/packages/dd-trace/src/openfeature/writers/exposures.js +33 -52
- package/packages/dd-trace/src/opentelemetry/metrics/periodic_metric_reader.js +2 -1
- package/packages/dd-trace/src/opentelemetry/otlp/otlp_transformer_base.js +1 -2
- package/packages/dd-trace/src/opentelemetry/tracer.js +0 -22
- package/packages/dd-trace/src/opentracing/propagation/text_map.js +20 -9
- package/packages/dd-trace/src/opentracing/propagation/text_map_dsm.js +2 -11
- package/packages/dd-trace/src/payload-tagging/config/index.js +2 -2
- package/packages/dd-trace/src/plugins/ci_plugin.js +49 -4
- package/packages/dd-trace/src/plugins/database.js +54 -12
- package/packages/dd-trace/src/plugins/index.js +1 -0
- package/packages/dd-trace/src/plugins/plugin.js +2 -4
- package/packages/dd-trace/src/plugins/util/ci.js +9 -9
- package/packages/dd-trace/src/plugins/util/git-cache.js +23 -23
- package/packages/dd-trace/src/plugins/util/stacktrace.js +2 -2
- package/packages/dd-trace/src/plugins/util/test.js +56 -12
- package/packages/dd-trace/src/plugins/util/url.js +1 -3
- package/packages/dd-trace/src/plugins/util/user-provided-git.js +18 -16
- package/packages/dd-trace/src/plugins/util/web.js +5 -7
- package/packages/dd-trace/src/priority_sampler.js +1 -1
- package/packages/dd-trace/src/profiling/profiler.js +1 -1
- package/packages/dd-trace/src/profiling/profilers/events.js +3 -23
- package/packages/dd-trace/src/profiling/profilers/wall.js +5 -6
- package/packages/dd-trace/src/profiling/ssi-heuristics.js +1 -1
- package/packages/dd-trace/src/rate_limiter.js +1 -1
- package/packages/dd-trace/src/remote_config/scheduler.js +1 -1
- package/packages/dd-trace/src/ritm.js +2 -1
- package/packages/dd-trace/src/runtime_metrics/index.js +2 -2
- package/packages/dd-trace/src/runtime_metrics/runtime_metrics.js +5 -8
- package/packages/dd-trace/src/scope.js +3 -10
- package/packages/dd-trace/src/serverless.js +6 -6
- package/packages/dd-trace/src/service-naming/schemas/v0/messaging.js +27 -1
- package/packages/dd-trace/src/service-naming/schemas/v0/web.js +4 -0
- package/packages/dd-trace/src/service-naming/schemas/v1/messaging.js +24 -0
- package/packages/dd-trace/src/service-naming/schemas/v1/web.js +4 -0
- package/packages/dd-trace/src/span_stats.js +1 -1
- package/packages/dd-trace/src/telemetry/dependencies.js +1 -1
- package/packages/dd-trace/src/telemetry/endpoints.js +1 -1
- package/packages/dd-trace/src/telemetry/telemetry.js +2 -2
- package/packages/dd-trace/src/tracer.js +7 -7
- package/packages/dd-trace/src/lambda/runtime/ritm.js +0 -133
|
@@ -4,8 +4,8 @@ const fs = require('fs')
|
|
|
4
4
|
const path = require('path')
|
|
5
5
|
|
|
6
6
|
const gitPropertiesCommitSHARegex = /git\.commit\.sha=([a-f\d]{40})/
|
|
7
|
-
const gitPropertiesRepositoryUrlRegex = /git\.repository_url=([\w
|
|
8
|
-
const repositoryUrlRegex = /^([\w
|
|
7
|
+
const gitPropertiesRepositoryUrlRegex = /git\.repository_url=([\w:@/.-]+)/
|
|
8
|
+
const repositoryUrlRegex = /^([\w:@/.-]+)$/
|
|
9
9
|
const remoteOriginRegex = /^\[remote\s+"origin"\]/i
|
|
10
10
|
const gitHeadRefRegex = /ref:\s+(refs\/[A-Za-z0-9._/-]+)/
|
|
11
11
|
const commitSHARegex = /^[0-9a-f]{40}$/
|
|
@@ -21,10 +21,14 @@
|
|
|
21
21
|
*/
|
|
22
22
|
|
|
23
23
|
const { deprecate } = require('util')
|
|
24
|
+
const { DD_MAJOR } = require('../../../../version')
|
|
25
|
+
const applyMajorOverrides = require('./major-overrides')
|
|
24
26
|
const {
|
|
25
27
|
supportedConfigurations,
|
|
26
28
|
} = /** @type {SupportedConfigurationsJson} */ (require('./supported-configurations.json'))
|
|
27
29
|
|
|
30
|
+
applyMajorOverrides(supportedConfigurations, DD_MAJOR)
|
|
31
|
+
|
|
28
32
|
/**
|
|
29
33
|
* Types for environment variable handling.
|
|
30
34
|
*
|
|
@@ -165,7 +165,7 @@ class Config extends ConfigBase {
|
|
|
165
165
|
}
|
|
166
166
|
|
|
167
167
|
/**
|
|
168
|
-
* @param {TracerOptions} [options
|
|
168
|
+
* @param {TracerOptions} [options]
|
|
169
169
|
*/
|
|
170
170
|
constructor (options = {}) {
|
|
171
171
|
super()
|
|
@@ -357,7 +357,7 @@ class Config extends ConfigBase {
|
|
|
357
357
|
setAndTrack(this, 'DD_METRICS_OTEL_ENABLED', false)
|
|
358
358
|
}
|
|
359
359
|
|
|
360
|
-
if (this.OTEL_TRACES_EXPORTER === 'otlp' &&
|
|
360
|
+
if (this.OTEL_TRACES_EXPORTER === 'otlp' && trackedConfigOrigins.has('protocolVersion')) {
|
|
361
361
|
log.warn('DD_TRACE_AGENT_PROTOCOL_VERSION is set, disabling OTLP traces export')
|
|
362
362
|
setAndTrack(this, 'OTEL_TRACES_EXPORTER', 'none')
|
|
363
363
|
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @typedef {import('./helper').SupportedConfigurationsJson['supportedConfigurations']} SupportedConfigurations
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
const EXPERIMENTAL_APPSEC_PREFIX = 'experimental.appsec'
|
|
8
|
+
const EXPERIMENTAL_IAST_PREFIX = 'experimental.iast'
|
|
9
|
+
const INGESTION_PREFIX = 'ingestion.'
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @param {SupportedConfigurations} supportedConfigurations Mutated in place.
|
|
13
|
+
* @param {number} majorVersion
|
|
14
|
+
*/
|
|
15
|
+
function applyMajorOverrides (supportedConfigurations, majorVersion) {
|
|
16
|
+
if (majorVersion < 6) {
|
|
17
|
+
applyV5Overrides(supportedConfigurations)
|
|
18
|
+
return
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
for (const entries of Object.values(supportedConfigurations)) {
|
|
22
|
+
for (const entry of entries) {
|
|
23
|
+
if (Array.isArray(entry.configurationNames)) {
|
|
24
|
+
entry.configurationNames = entry.configurationNames.filter(
|
|
25
|
+
(name) =>
|
|
26
|
+
name !== EXPERIMENTAL_APPSEC_PREFIX &&
|
|
27
|
+
name !== EXPERIMENTAL_IAST_PREFIX &&
|
|
28
|
+
!name.startsWith(`${EXPERIMENTAL_APPSEC_PREFIX}.`) &&
|
|
29
|
+
!name.startsWith(`${EXPERIMENTAL_IAST_PREFIX}.`) &&
|
|
30
|
+
!name.startsWith(INGESTION_PREFIX)
|
|
31
|
+
)
|
|
32
|
+
if (entry.configurationNames.length === 0) delete entry.configurationNames
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
delete supportedConfigurations.DD_EXPERIMENTAL_APPSEC_STANDALONE_ENABLED
|
|
37
|
+
delete supportedConfigurations.DD_TRACE_EXPERIMENTAL_B3_ENABLED
|
|
38
|
+
|
|
39
|
+
/* eslint-disable eslint-rules/eslint-env-aliases */
|
|
40
|
+
for (const name of [
|
|
41
|
+
'DD_PROFILING_EXPERIMENTAL_CODEHOTSPOTS_ENABLED',
|
|
42
|
+
'DD_PROFILING_EXPERIMENTAL_CPU_ENABLED',
|
|
43
|
+
'DD_PROFILING_EXPERIMENTAL_ENDPOINT_COLLECTION_ENABLED',
|
|
44
|
+
'DD_PROFILING_EXPERIMENTAL_TIMELINE_ENABLED',
|
|
45
|
+
]) {
|
|
46
|
+
delete supportedConfigurations[name]
|
|
47
|
+
}
|
|
48
|
+
/* eslint-enable eslint-rules/eslint-env-aliases */
|
|
49
|
+
for (const canonical of [
|
|
50
|
+
'DD_PROFILING_CODEHOTSPOTS_ENABLED',
|
|
51
|
+
'DD_PROFILING_CPU_ENABLED',
|
|
52
|
+
'DD_PROFILING_ENDPOINT_COLLECTION_ENABLED',
|
|
53
|
+
'DD_PROFILING_TIMELINE_ENABLED',
|
|
54
|
+
]) {
|
|
55
|
+
dropAlias(supportedConfigurations[canonical], (alias) => alias.startsWith('DD_PROFILING_EXPERIMENTAL_'))
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
delete supportedConfigurations.DD_TRACE_EXPERIMENTAL_RUNTIME_ID_ENABLED
|
|
59
|
+
// eslint-disable-next-line eslint-rules/eslint-env-aliases
|
|
60
|
+
dropAlias(supportedConfigurations.DD_RUNTIME_METRICS_RUNTIME_ID_ENABLED, 'DD_TRACE_EXPERIMENTAL_RUNTIME_ID_ENABLED')
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* @param {SupportedConfigurations} supportedConfigurations Mutated in place.
|
|
65
|
+
*/
|
|
66
|
+
function applyV5Overrides (supportedConfigurations) {
|
|
67
|
+
const startupLogsEntry = supportedConfigurations.DD_TRACE_STARTUP_LOGS?.[0]
|
|
68
|
+
if (startupLogsEntry) {
|
|
69
|
+
startupLogsEntry.default = 'false'
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
const iastEntry = supportedConfigurations.DD_IAST_SECURITY_CONTROLS_CONFIGURATION?.[0]
|
|
73
|
+
if (!iastEntry) return
|
|
74
|
+
|
|
75
|
+
iastEntry.configurationNames = [
|
|
76
|
+
iastEntry.internalPropertyName || iastEntry.configurationNames?.[0],
|
|
77
|
+
`${EXPERIMENTAL_IAST_PREFIX}.securityControlsConfiguration`,
|
|
78
|
+
]
|
|
79
|
+
delete iastEntry.internalPropertyName
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* @param {import('./helper').SupportedConfigurationEntry[] | undefined} entries
|
|
84
|
+
* @param {string | ((alias: string) => boolean)} dropPredicate
|
|
85
|
+
*/
|
|
86
|
+
function dropAlias (entries, dropPredicate) {
|
|
87
|
+
const entry = entries?.[0]
|
|
88
|
+
if (entry?.aliases === undefined) return
|
|
89
|
+
const matches = typeof dropPredicate === 'string'
|
|
90
|
+
? (alias) => alias === dropPredicate
|
|
91
|
+
: dropPredicate
|
|
92
|
+
entry.aliases = entry.aliases.filter((alias) => !matches(alias))
|
|
93
|
+
if (entry.aliases.length === 0) {
|
|
94
|
+
delete entry.aliases
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
module.exports = applyMajorOverrides
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
const fs = require('fs')
|
|
4
4
|
|
|
5
|
+
const { DD_MAJOR } = require('../../../../version')
|
|
5
6
|
const tagger = require('../tagger')
|
|
6
7
|
|
|
7
8
|
let warnInvalidValue
|
|
@@ -9,6 +10,7 @@ function setWarnInvalidValue (fn) {
|
|
|
9
10
|
warnInvalidValue = fn
|
|
10
11
|
}
|
|
11
12
|
|
|
13
|
+
// `'b3 single header'` is the legacy spelling of `'b3'`; on v6 it is normalised below.
|
|
12
14
|
const VALID_PROPAGATION_STYLES = new Set([
|
|
13
15
|
'datadog', 'tracecontext', 'b3', 'b3 single header', 'b3multi', 'baggage', 'none',
|
|
14
16
|
])
|
|
@@ -145,11 +147,15 @@ const transformers = {
|
|
|
145
147
|
},
|
|
146
148
|
validatePropagationStyles (value, optionName) {
|
|
147
149
|
value = transformers.toLowerCase(value)
|
|
148
|
-
for (
|
|
150
|
+
for (let index = 0; index < value.length; index++) {
|
|
151
|
+
const propagator = value[index]
|
|
149
152
|
if (!VALID_PROPAGATION_STYLES.has(propagator)) {
|
|
150
153
|
warnInvalidValue(propagator, optionName, optionName, 'Invalid propagator')
|
|
151
154
|
return
|
|
152
155
|
}
|
|
156
|
+
if (DD_MAJOR >= 6 && propagator === 'b3 single header') {
|
|
157
|
+
value[index] = 'b3'
|
|
158
|
+
}
|
|
153
159
|
}
|
|
154
160
|
return value
|
|
155
161
|
},
|
|
@@ -254,7 +254,8 @@
|
|
|
254
254
|
"appsec.extendedHeadersCollection.redaction",
|
|
255
255
|
"experimental.appsec.extendedHeadersCollection.redaction"
|
|
256
256
|
],
|
|
257
|
-
"default": "true"
|
|
257
|
+
"default": "true",
|
|
258
|
+
"deprecated": true
|
|
258
259
|
}
|
|
259
260
|
],
|
|
260
261
|
"DD_APPSEC_HTTP_BLOCKED_TEMPLATE_HTML": [
|
|
@@ -289,7 +290,8 @@
|
|
|
289
290
|
"appsec.extendedHeadersCollection.maxHeaders",
|
|
290
291
|
"experimental.appsec.extendedHeadersCollection.maxHeaders"
|
|
291
292
|
],
|
|
292
|
-
"default": "50"
|
|
293
|
+
"default": "50",
|
|
294
|
+
"deprecated": true
|
|
293
295
|
}
|
|
294
296
|
],
|
|
295
297
|
"DD_APPSEC_MAX_STACK_TRACES": [
|
|
@@ -597,6 +599,13 @@
|
|
|
597
599
|
"default": "true"
|
|
598
600
|
}
|
|
599
601
|
],
|
|
602
|
+
"DD_CUSTOM_PARENT_ID": [
|
|
603
|
+
{
|
|
604
|
+
"implementation": "A",
|
|
605
|
+
"type": "string",
|
|
606
|
+
"default": null
|
|
607
|
+
}
|
|
608
|
+
],
|
|
600
609
|
"DD_CUSTOM_TRACE_ID": [
|
|
601
610
|
{
|
|
602
611
|
"implementation": "A",
|
|
@@ -780,9 +789,9 @@
|
|
|
780
789
|
],
|
|
781
790
|
"DD_EXPERIMENTAL_TEST_OPT_GIT_CACHE_DIR": [
|
|
782
791
|
{
|
|
783
|
-
"implementation": "
|
|
792
|
+
"implementation": "B",
|
|
784
793
|
"type": "string",
|
|
785
|
-
"default":
|
|
794
|
+
"default": null
|
|
786
795
|
}
|
|
787
796
|
],
|
|
788
797
|
"DD_EXPERIMENTAL_TEST_OPT_GIT_CACHE_ENABLED": [
|
|
@@ -1062,10 +1071,7 @@
|
|
|
1062
1071
|
{
|
|
1063
1072
|
"implementation": "B",
|
|
1064
1073
|
"type": "string",
|
|
1065
|
-
"
|
|
1066
|
-
"iast.securityControlsConfiguration",
|
|
1067
|
-
"experimental.iast.securityControlsConfiguration"
|
|
1068
|
-
],
|
|
1074
|
+
"internalPropertyName": "iast.securityControlsConfiguration",
|
|
1069
1075
|
"default": null
|
|
1070
1076
|
}
|
|
1071
1077
|
],
|
|
@@ -1934,9 +1940,9 @@
|
|
|
1934
1940
|
],
|
|
1935
1941
|
"DD_TRACE_AWS_SDK_AWS_BATCH_PROPAGATION_ENABLED": [
|
|
1936
1942
|
{
|
|
1937
|
-
"implementation": "
|
|
1943
|
+
"implementation": "B",
|
|
1938
1944
|
"type": "boolean",
|
|
1939
|
-
"default": "
|
|
1945
|
+
"default": "false"
|
|
1940
1946
|
}
|
|
1941
1947
|
],
|
|
1942
1948
|
"DD_TRACE_AWS_SDK_AWS_ENABLED": [
|
|
@@ -1948,16 +1954,16 @@
|
|
|
1948
1954
|
],
|
|
1949
1955
|
"DD_TRACE_AWS_SDK_BATCH_PROPAGATION_ENABLED": [
|
|
1950
1956
|
{
|
|
1951
|
-
"implementation": "
|
|
1957
|
+
"implementation": "B",
|
|
1952
1958
|
"type": "boolean",
|
|
1953
|
-
"default": "
|
|
1959
|
+
"default": "false"
|
|
1954
1960
|
}
|
|
1955
1961
|
],
|
|
1956
1962
|
"DD_TRACE_AWS_SDK_BEDROCKRUNTIME_BATCH_PROPAGATION_ENABLED": [
|
|
1957
1963
|
{
|
|
1958
|
-
"implementation": "
|
|
1964
|
+
"implementation": "B",
|
|
1959
1965
|
"type": "boolean",
|
|
1960
|
-
"default": "
|
|
1966
|
+
"default": "false"
|
|
1961
1967
|
}
|
|
1962
1968
|
],
|
|
1963
1969
|
"DD_TRACE_AWS_SDK_BEDROCKRUNTIME_ENABLED": [
|
|
@@ -1969,9 +1975,9 @@
|
|
|
1969
1975
|
],
|
|
1970
1976
|
"DD_TRACE_AWS_SDK_CLOUDWATCHLOGS_BATCH_PROPAGATION_ENABLED": [
|
|
1971
1977
|
{
|
|
1972
|
-
"implementation": "
|
|
1978
|
+
"implementation": "B",
|
|
1973
1979
|
"type": "boolean",
|
|
1974
|
-
"default": "
|
|
1980
|
+
"default": "false"
|
|
1975
1981
|
}
|
|
1976
1982
|
],
|
|
1977
1983
|
"DD_TRACE_AWS_SDK_CLOUDWATCHLOGS_ENABLED": [
|
|
@@ -1983,9 +1989,9 @@
|
|
|
1983
1989
|
],
|
|
1984
1990
|
"DD_TRACE_AWS_SDK_DYNAMODB_BATCH_PROPAGATION_ENABLED": [
|
|
1985
1991
|
{
|
|
1986
|
-
"implementation": "
|
|
1992
|
+
"implementation": "B",
|
|
1987
1993
|
"type": "boolean",
|
|
1988
|
-
"default": "
|
|
1994
|
+
"default": "false"
|
|
1989
1995
|
}
|
|
1990
1996
|
],
|
|
1991
1997
|
"DD_TRACE_AWS_SDK_DYNAMODB_ENABLED": [
|
|
@@ -2004,9 +2010,9 @@
|
|
|
2004
2010
|
],
|
|
2005
2011
|
"DD_TRACE_AWS_SDK_EVENTBRIDGE_BATCH_PROPAGATION_ENABLED": [
|
|
2006
2012
|
{
|
|
2007
|
-
"implementation": "
|
|
2013
|
+
"implementation": "B",
|
|
2008
2014
|
"type": "boolean",
|
|
2009
|
-
"default": "
|
|
2015
|
+
"default": "false"
|
|
2010
2016
|
}
|
|
2011
2017
|
],
|
|
2012
2018
|
"DD_TRACE_AWS_SDK_EVENTBRIDGE_ENABLED": [
|
|
@@ -2018,9 +2024,9 @@
|
|
|
2018
2024
|
],
|
|
2019
2025
|
"DD_TRACE_AWS_SDK_KINESIS_BATCH_PROPAGATION_ENABLED": [
|
|
2020
2026
|
{
|
|
2021
|
-
"implementation": "
|
|
2027
|
+
"implementation": "B",
|
|
2022
2028
|
"type": "boolean",
|
|
2023
|
-
"default": "
|
|
2029
|
+
"default": "false"
|
|
2024
2030
|
}
|
|
2025
2031
|
],
|
|
2026
2032
|
"DD_TRACE_AWS_SDK_KINESIS_ENABLED": [
|
|
@@ -2032,9 +2038,9 @@
|
|
|
2032
2038
|
],
|
|
2033
2039
|
"DD_TRACE_AWS_SDK_LAMBDA_BATCH_PROPAGATION_ENABLED": [
|
|
2034
2040
|
{
|
|
2035
|
-
"implementation": "
|
|
2041
|
+
"implementation": "B",
|
|
2036
2042
|
"type": "boolean",
|
|
2037
|
-
"default": "
|
|
2043
|
+
"default": "false"
|
|
2038
2044
|
}
|
|
2039
2045
|
],
|
|
2040
2046
|
"DD_TRACE_AWS_SDK_LAMBDA_ENABLED": [
|
|
@@ -2053,9 +2059,9 @@
|
|
|
2053
2059
|
],
|
|
2054
2060
|
"DD_TRACE_AWS_SDK_REDSHIFT_BATCH_PROPAGATION_ENABLED": [
|
|
2055
2061
|
{
|
|
2056
|
-
"implementation": "
|
|
2062
|
+
"implementation": "B",
|
|
2057
2063
|
"type": "boolean",
|
|
2058
|
-
"default": "
|
|
2064
|
+
"default": "false"
|
|
2059
2065
|
}
|
|
2060
2066
|
],
|
|
2061
2067
|
"DD_TRACE_AWS_SDK_REDSHIFT_ENABLED": [
|
|
@@ -2067,9 +2073,9 @@
|
|
|
2067
2073
|
],
|
|
2068
2074
|
"DD_TRACE_AWS_SDK_S3_BATCH_PROPAGATION_ENABLED": [
|
|
2069
2075
|
{
|
|
2070
|
-
"implementation": "
|
|
2076
|
+
"implementation": "B",
|
|
2071
2077
|
"type": "boolean",
|
|
2072
|
-
"default": "
|
|
2078
|
+
"default": "false"
|
|
2073
2079
|
}
|
|
2074
2080
|
],
|
|
2075
2081
|
"DD_TRACE_AWS_SDK_S3_ENABLED": [
|
|
@@ -2081,9 +2087,9 @@
|
|
|
2081
2087
|
],
|
|
2082
2088
|
"DD_TRACE_AWS_SDK_SFN_BATCH_PROPAGATION_ENABLED": [
|
|
2083
2089
|
{
|
|
2084
|
-
"implementation": "
|
|
2090
|
+
"implementation": "B",
|
|
2085
2091
|
"type": "boolean",
|
|
2086
|
-
"default": "
|
|
2092
|
+
"default": "false"
|
|
2087
2093
|
}
|
|
2088
2094
|
],
|
|
2089
2095
|
"DD_TRACE_AWS_SDK_SFN_CLIENT_ENABLED": [
|
|
@@ -2109,9 +2115,9 @@
|
|
|
2109
2115
|
],
|
|
2110
2116
|
"DD_TRACE_AWS_SDK_SNS_BATCH_PROPAGATION_ENABLED": [
|
|
2111
2117
|
{
|
|
2112
|
-
"implementation": "
|
|
2118
|
+
"implementation": "B",
|
|
2113
2119
|
"type": "boolean",
|
|
2114
|
-
"default": "
|
|
2120
|
+
"default": "false"
|
|
2115
2121
|
}
|
|
2116
2122
|
],
|
|
2117
2123
|
"DD_TRACE_AWS_SDK_SNS_ENABLED": [
|
|
@@ -2123,9 +2129,9 @@
|
|
|
2123
2129
|
],
|
|
2124
2130
|
"DD_TRACE_AWS_SDK_SQS_BATCH_PROPAGATION_ENABLED": [
|
|
2125
2131
|
{
|
|
2126
|
-
"implementation": "
|
|
2132
|
+
"implementation": "B",
|
|
2127
2133
|
"type": "boolean",
|
|
2128
|
-
"default": "
|
|
2134
|
+
"default": "false"
|
|
2129
2135
|
}
|
|
2130
2136
|
],
|
|
2131
2137
|
"DD_TRACE_AWS_SDK_SQS_ENABLED": [
|
|
@@ -2137,9 +2143,9 @@
|
|
|
2137
2143
|
],
|
|
2138
2144
|
"DD_TRACE_AWS_SDK_STATES_BATCH_PROPAGATION_ENABLED": [
|
|
2139
2145
|
{
|
|
2140
|
-
"implementation": "
|
|
2146
|
+
"implementation": "B",
|
|
2141
2147
|
"type": "boolean",
|
|
2142
|
-
"default": "
|
|
2148
|
+
"default": "false"
|
|
2143
2149
|
}
|
|
2144
2150
|
],
|
|
2145
2151
|
"DD_TRACE_AWS_SDK_STATES_ENABLED": [
|
|
@@ -2151,9 +2157,9 @@
|
|
|
2151
2157
|
],
|
|
2152
2158
|
"DD_TRACE_AWS_SDK_STEPFUNCTIONS_BATCH_PROPAGATION_ENABLED": [
|
|
2153
2159
|
{
|
|
2154
|
-
"implementation": "
|
|
2160
|
+
"implementation": "B",
|
|
2155
2161
|
"type": "boolean",
|
|
2156
|
-
"default": "
|
|
2162
|
+
"default": "false"
|
|
2157
2163
|
}
|
|
2158
2164
|
],
|
|
2159
2165
|
"DD_TRACE_AWS_SDK_STEPFUNCTIONS_ENABLED": [
|
|
@@ -2485,6 +2491,13 @@
|
|
|
2485
2491
|
"default": "true"
|
|
2486
2492
|
}
|
|
2487
2493
|
],
|
|
2494
|
+
"DD_TRACE_ELECTRON_ENABLED": [
|
|
2495
|
+
{
|
|
2496
|
+
"implementation": "A",
|
|
2497
|
+
"type": "boolean",
|
|
2498
|
+
"default": "true"
|
|
2499
|
+
}
|
|
2500
|
+
],
|
|
2488
2501
|
"DD_TRACE_ENABLED": [
|
|
2489
2502
|
{
|
|
2490
2503
|
"implementation": "A",
|
|
@@ -33,7 +33,7 @@ class DataStreamsCheckpointer {
|
|
|
33
33
|
* Examples include kafka, kinesis, sns etc.
|
|
34
34
|
* @param {string} source - The source of data. This can be a topic, exchange or stream name.
|
|
35
35
|
* @param {object} carrier - The carrier object to extract context from.
|
|
36
|
-
* @param {boolean} [manualCheckpoint
|
|
36
|
+
* @param {boolean} [manualCheckpoint] - Whether this checkpoint was manually set. Keep true if manually
|
|
37
37
|
* instrumenting. Manual instrumentation always overrides automatic
|
|
38
38
|
* instrumentation in the case a call is both manually and automatically
|
|
39
39
|
* instrumented.
|
|
@@ -60,7 +60,7 @@ class DataStreamsCheckpointer {
|
|
|
60
60
|
* Tags the active span (or the provided span) with the transaction ID and checkpoint name.
|
|
61
61
|
* @param {string} transactionId - The transaction identifier to track.
|
|
62
62
|
* @param {string} checkpointName - The logical checkpoint name.
|
|
63
|
-
* @param {object|null} [span
|
|
63
|
+
* @param {object|null} [span] - Span to tag. Defaults to the currently active span.
|
|
64
64
|
*/
|
|
65
65
|
trackTransaction (transactionId, checkpointName, span = null) {
|
|
66
66
|
if (!this.config.dsmEnabled) return
|
|
@@ -26,7 +26,7 @@ class DataStreamsManager {
|
|
|
26
26
|
/**
|
|
27
27
|
* @param {string} transactionId
|
|
28
28
|
* @param {string} checkpointName
|
|
29
|
-
* @param {object|null} [span
|
|
29
|
+
* @param {object|null} [span]
|
|
30
30
|
*/
|
|
31
31
|
trackTransaction (transactionId, checkpointName, span = null) {
|
|
32
32
|
this._dataStreamsProcessor.trackTransaction(transactionId, checkpointName, span)
|
|
@@ -237,7 +237,7 @@ class DataStreamsProcessor {
|
|
|
237
237
|
|
|
238
238
|
if (this.enabled) {
|
|
239
239
|
this.timer = setInterval(this.onInterval.bind(this), flushInterval)
|
|
240
|
-
this.timer.unref()
|
|
240
|
+
this.timer.unref?.()
|
|
241
241
|
}
|
|
242
242
|
globalThis[Symbol.for('dd-trace')].beforeExitHandlers.add(this.onInterval.bind(this))
|
|
243
243
|
}
|
|
@@ -271,8 +271,7 @@ class DataStreamsProcessor {
|
|
|
271
271
|
*/
|
|
272
272
|
bucketFromTimestamp (timestamp) {
|
|
273
273
|
const bucketTime = Math.round(timestamp - (timestamp % this.bucketSizeNs))
|
|
274
|
-
|
|
275
|
-
return bucket
|
|
274
|
+
return this.buckets.forTime(bucketTime)
|
|
276
275
|
}
|
|
277
276
|
|
|
278
277
|
recordCheckpoint (checkpoint, span = null) {
|
|
@@ -378,7 +377,7 @@ class DataStreamsProcessor {
|
|
|
378
377
|
*
|
|
379
378
|
* @param {string} transactionId - Truncated to 255 UTF-8 bytes.
|
|
380
379
|
* @param {string} checkpointName - Mapped to a stable 1-byte ID; silently dropped if registry full.
|
|
381
|
-
* @param {import('../opentelemetry/span').Span|null} [span
|
|
380
|
+
* @param {import('../opentelemetry/span').Span|null} [span] - Active span to tag with DSM transaction metadata.
|
|
382
381
|
*/
|
|
383
382
|
trackTransaction (transactionId, checkpointName, span = null) {
|
|
384
383
|
if (!this.enabled) {
|
|
@@ -72,9 +72,9 @@ module.exports = {
|
|
|
72
72
|
* @param {string} objectId - The ID of the object to get the properties of
|
|
73
73
|
* @param {GetObjectOptions} opts - The options for the snapshot. Also used to track the deadline and communicate the
|
|
74
74
|
* deadline overrun to the caller using the `deadlineReached` flag.
|
|
75
|
-
* @param {number} [depth
|
|
75
|
+
* @param {number} [depth] - The depth of the object. Only used internally by this module to track the current depth
|
|
76
76
|
* and should not be set by the caller.
|
|
77
|
-
* @param {boolean} [collection
|
|
77
|
+
* @param {boolean} [collection] - Whether the object is a collection. Only used internally by this module to
|
|
78
78
|
* track the current object type and should not be set by the caller.
|
|
79
79
|
* @returns {Promise<object[]>} The properties of the object
|
|
80
80
|
*/
|
|
@@ -175,6 +175,7 @@ function parseJsonToTree (json) {
|
|
|
175
175
|
switch (json.charCodeAt(index)) {
|
|
176
176
|
case 34: { // 34: double quote
|
|
177
177
|
const stringStart = index + 1
|
|
178
|
+
// eslint-disable-next-line sonarjs/updated-loop-counter -- skip past the string token
|
|
178
179
|
index = skipString(json, index)
|
|
179
180
|
const stringLength = index - stringStart
|
|
180
181
|
|
|
@@ -230,7 +230,8 @@ session.on('Debugger.scriptParsed', ({ params }) => {
|
|
|
230
230
|
if (reEvaluateProbesTimer === null) {
|
|
231
231
|
reEvaluateProbesTimer = setTimeout(() => {
|
|
232
232
|
session.emit('scriptLoadingStabilized')
|
|
233
|
-
}, 500)
|
|
233
|
+
}, 500)
|
|
234
|
+
reEvaluateProbesTimer.unref?.()
|
|
234
235
|
} else {
|
|
235
236
|
reEvaluateProbesTimer.refresh()
|
|
236
237
|
}
|
|
@@ -132,13 +132,13 @@ function start (config, rcInstance) {
|
|
|
132
132
|
cleanup(error) // Be nice, clean up now that the worker thread encountered an issue and we can't continue
|
|
133
133
|
})
|
|
134
134
|
|
|
135
|
-
worker.unref()
|
|
136
|
-
probeChannel.port1.unref()
|
|
137
|
-
probeChannel.port2.unref()
|
|
138
|
-
logChannel.port1.unref()
|
|
139
|
-
logChannel.port2.unref()
|
|
140
|
-
configChannel.port1.unref()
|
|
141
|
-
configChannel.port2.unref()
|
|
135
|
+
worker.unref?.()
|
|
136
|
+
probeChannel.port1.unref?.()
|
|
137
|
+
probeChannel.port2.unref?.()
|
|
138
|
+
logChannel.port1.unref?.()
|
|
139
|
+
logChannel.port2.unref?.()
|
|
140
|
+
configChannel.port1.unref?.()
|
|
141
|
+
configChannel.port2.unref?.()
|
|
142
142
|
})
|
|
143
143
|
}
|
|
144
144
|
|
|
@@ -161,7 +161,7 @@ class DogStatsDClient {
|
|
|
161
161
|
const socket = dgram.createSocket(type)
|
|
162
162
|
|
|
163
163
|
socket.on('error', () => {})
|
|
164
|
-
socket.unref()
|
|
164
|
+
socket.unref?.()
|
|
165
165
|
|
|
166
166
|
return socket
|
|
167
167
|
}
|
|
@@ -361,7 +361,7 @@ class CustomMetrics {
|
|
|
361
361
|
const flush = this.flush.bind(this)
|
|
362
362
|
|
|
363
363
|
// TODO(bengl) this magic number should be configurable
|
|
364
|
-
setInterval(flush, 10 * 1000).unref()
|
|
364
|
+
setInterval(flush, 10 * 1000).unref?.()
|
|
365
365
|
|
|
366
366
|
globalThis[Symbol.for('dd-trace')].beforeExitHandlers.add(flush)
|
|
367
367
|
}
|