dd-trace 5.82.0 → 5.83.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 +78 -79
- package/ci/init.js +6 -6
- package/index.d.ts +152 -3
- package/loader-hook.mjs +1 -1
- package/package.json +58 -55
- package/packages/datadog-core/src/storage.js +7 -7
- package/packages/datadog-esbuild/index.js +6 -0
- package/packages/datadog-instrumentations/src/ai.js +7 -3
- package/packages/datadog-instrumentations/src/child_process.js +1 -1
- package/packages/datadog-instrumentations/src/cucumber.js +1 -1
- package/packages/datadog-instrumentations/src/graphql.js +1 -1
- package/packages/datadog-instrumentations/src/helpers/instrumentations.js +4 -3
- package/packages/datadog-instrumentations/src/helpers/register.js +3 -7
- package/packages/datadog-instrumentations/src/helpers/rewriter/index.js +1 -1
- package/packages/datadog-instrumentations/src/http/client.js +2 -2
- package/packages/datadog-instrumentations/src/jest.js +35 -14
- package/packages/datadog-instrumentations/src/koa.js +2 -1
- package/packages/datadog-instrumentations/src/light-my-request.js +2 -2
- package/packages/datadog-instrumentations/src/mocha/main.js +2 -2
- package/packages/datadog-instrumentations/src/mocha/worker.js +1 -1
- package/packages/datadog-instrumentations/src/mocha.js +1 -1
- package/packages/datadog-instrumentations/src/mysql.js +1 -1
- package/packages/datadog-instrumentations/src/mysql2.js +2 -2
- package/packages/datadog-instrumentations/src/net.js +13 -5
- package/packages/datadog-instrumentations/src/nyc.js +1 -1
- package/packages/datadog-instrumentations/src/otel-sdk-trace.js +4 -4
- package/packages/datadog-instrumentations/src/pg.js +4 -2
- package/packages/datadog-instrumentations/src/playwright.js +3 -3
- package/packages/datadog-instrumentations/src/selenium.js +2 -2
- package/packages/datadog-instrumentations/src/undici.js +12 -1
- package/packages/datadog-plugin-aws-sdk/src/base.js +4 -4
- package/packages/datadog-plugin-azure-event-hubs/src/producer.js +2 -2
- package/packages/datadog-plugin-azure-service-bus/src/producer.js +2 -2
- package/packages/datadog-plugin-cucumber/src/index.js +2 -2
- package/packages/datadog-plugin-cypress/src/cypress-plugin.js +2 -2
- package/packages/datadog-plugin-dd-trace-api/src/index.js +2 -2
- package/packages/datadog-plugin-express/src/code_origin.js +21 -15
- package/packages/datadog-plugin-fastify/src/code_origin.js +17 -4
- package/packages/datadog-plugin-jest/src/index.js +2 -2
- package/packages/datadog-plugin-mocha/src/index.js +2 -2
- package/packages/datadog-plugin-mongodb-core/src/index.js +2 -2
- package/packages/datadog-plugin-playwright/src/index.js +3 -3
- package/packages/datadog-plugin-undici/src/index.js +305 -2
- package/packages/datadog-plugin-vitest/src/index.js +5 -5
- package/packages/dd-trace/index.js +19 -0
- package/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter.js +1 -1
- package/packages/dd-trace/src/appsec/rasp/index.js +2 -4
- package/packages/dd-trace/src/azure_metadata.js +8 -3
- package/packages/dd-trace/src/baggage.js +36 -11
- package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/index.js +5 -1
- package/packages/dd-trace/src/ci-visibility/early-flake-detection/get-known-tests.js +2 -2
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/coverage-writer.js +2 -2
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/di-logs-writer.js +2 -2
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/writer.js +2 -2
- package/packages/dd-trace/src/ci-visibility/exporters/ci-visibility-exporter.js +3 -2
- package/packages/dd-trace/src/ci-visibility/exporters/git/git_metadata.js +3 -3
- package/packages/dd-trace/src/ci-visibility/exporters/test-worker/index.js +4 -4
- package/packages/dd-trace/src/ci-visibility/exporters/test-worker/writer.js +1 -1
- package/packages/dd-trace/src/ci-visibility/intelligent-test-runner/get-skippable-suites.js +2 -2
- package/packages/dd-trace/src/ci-visibility/log-submission/log-submission-plugin.js +4 -4
- package/packages/dd-trace/src/ci-visibility/requests/get-library-configuration.js +4 -4
- package/packages/dd-trace/src/ci-visibility/test-management/get-test-management-tests.js +2 -2
- package/packages/dd-trace/src/{config_defaults.js → config/defaults.js} +3 -3
- package/packages/dd-trace/src/{config-helper.js → config/helper.js} +88 -15
- package/packages/dd-trace/src/{config.js → config/index.js} +92 -45
- package/packages/dd-trace/src/config/remote_config.js +187 -19
- package/packages/dd-trace/src/{config_stable.js → config/stable.js} +20 -32
- package/packages/dd-trace/src/{supported-configurations.json → config/supported-configurations.json} +2 -0
- package/packages/dd-trace/src/crashtracking/crashtracker.js +1 -1
- package/packages/dd-trace/src/datastreams/processor.js +1 -1
- package/packages/dd-trace/src/datastreams/writer.js +1 -1
- package/packages/dd-trace/src/debugger/devtools_client/condition.js +1 -1
- package/packages/dd-trace/src/debugger/devtools_client/config.js +1 -1
- package/packages/dd-trace/src/debugger/devtools_client/send.js +3 -3
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/constants.js +1 -1
- package/packages/dd-trace/src/debugger/index.js +83 -15
- package/packages/dd-trace/src/dogstatsd.js +2 -2
- package/packages/dd-trace/src/encode/0.4.js +2 -2
- package/packages/dd-trace/src/exporter.js +1 -1
- package/packages/dd-trace/src/exporters/agent/index.js +2 -4
- package/packages/dd-trace/src/exporters/agent/writer.js +9 -14
- package/packages/dd-trace/src/exporters/common/agent-info-exporter.js +1 -1
- package/packages/dd-trace/src/exporters/common/docker.js +2 -2
- package/packages/dd-trace/src/exporters/common/request.js +1 -1
- package/packages/dd-trace/src/exporters/common/util.js +2 -2
- package/packages/dd-trace/src/exporters/span-stats/index.js +1 -1
- package/packages/dd-trace/src/flare/index.js +1 -1
- package/packages/dd-trace/src/guardrails/telemetry.js +1 -1
- package/packages/dd-trace/src/index.js +4 -4
- package/packages/dd-trace/src/lambda/handler.js +2 -2
- package/packages/dd-trace/src/lambda/index.js +2 -2
- package/packages/dd-trace/src/lambda/runtime/patch.js +2 -2
- package/packages/dd-trace/src/lambda/runtime/ritm.js +2 -2
- package/packages/dd-trace/src/llmobs/constants/tags.js +8 -1
- package/packages/dd-trace/src/llmobs/index.js +2 -2
- package/packages/dd-trace/src/llmobs/noop.js +2 -0
- package/packages/dd-trace/src/llmobs/plugins/openai/index.js +3 -4
- package/packages/dd-trace/src/llmobs/sdk.js +33 -6
- package/packages/dd-trace/src/llmobs/span_processor.js +17 -7
- package/packages/dd-trace/src/llmobs/tagger.js +175 -1
- package/packages/dd-trace/src/llmobs/writers/base.js +116 -37
- package/packages/dd-trace/src/llmobs/writers/spans.js +4 -3
- package/packages/dd-trace/src/log/index.js +5 -5
- package/packages/dd-trace/src/noop/proxy.js +3 -3
- package/packages/dd-trace/src/openfeature/writers/base.js +7 -8
- package/packages/dd-trace/src/opentelemetry/otlp/otlp_http_exporter_base.js +2 -2
- package/packages/dd-trace/src/opentelemetry/tracer.js +48 -6
- package/packages/dd-trace/src/opentracing/propagation/text_map.js +45 -21
- package/packages/dd-trace/src/opentracing/span.js +4 -4
- package/packages/dd-trace/src/plugin_manager.js +8 -6
- package/packages/dd-trace/src/plugins/util/ci.js +5 -8
- package/packages/dd-trace/src/plugins/util/git-cache.js +3 -3
- package/packages/dd-trace/src/plugins/util/test.js +1 -1
- package/packages/dd-trace/src/plugins/util/user-provided-git.js +41 -43
- package/packages/dd-trace/src/profiler.js +4 -39
- package/packages/dd-trace/src/profiling/config.js +74 -31
- package/packages/dd-trace/src/profiling/exporter_cli.js +5 -5
- package/packages/dd-trace/src/profiling/exporters/agent.js +1 -1
- package/packages/dd-trace/src/profiling/exporters/event_serializer.js +9 -2
- package/packages/dd-trace/src/profiling/index.js +1 -1
- package/packages/dd-trace/src/profiling/libuv-size.js +1 -1
- package/packages/dd-trace/src/profiling/profiler.js +57 -2
- package/packages/dd-trace/src/proxy.js +34 -5
- package/packages/dd-trace/src/remote_config/capabilities.js +3 -0
- package/packages/dd-trace/src/remote_config/index.js +1 -1
- package/packages/dd-trace/src/ritm.js +8 -4
- package/packages/dd-trace/src/runtime_metrics/runtime_metrics.js +2 -2
- package/packages/dd-trace/src/serverless.js +2 -2
- package/packages/dd-trace/src/span_processor.js +2 -2
- package/packages/dd-trace/src/startup-log.js +6 -15
- package/packages/dd-trace/src/telemetry/endpoints.js +67 -5
- package/packages/dd-trace/src/telemetry/send-data.js +103 -4
- package/packages/dd-trace/src/telemetry/telemetry.js +229 -110
- /package/packages/dd-trace/src/{git_properties.js → config/git_properties.js} +0 -0
|
@@ -112,8 +112,10 @@ function wrapQuery (query) {
|
|
|
112
112
|
arguments[0] = pgQuery
|
|
113
113
|
|
|
114
114
|
const retval = query.apply(this, arguments)
|
|
115
|
-
|
|
116
|
-
const
|
|
115
|
+
|
|
116
|
+
const deperecated = Object.hasOwn(this, '_activeQuery')
|
|
117
|
+
const queryQueue = deperecated ? this._queryQueue : this.queryQueue
|
|
118
|
+
const activeQuery = deperecated ? this._activeQuery : this.activeQuery
|
|
117
119
|
|
|
118
120
|
const newQuery = queryQueue.at(-1) || activeQuery
|
|
119
121
|
|
|
@@ -11,8 +11,8 @@ const {
|
|
|
11
11
|
} = require('../../dd-trace/src/plugins/util/test')
|
|
12
12
|
const log = require('../../dd-trace/src/log')
|
|
13
13
|
const {
|
|
14
|
-
|
|
15
|
-
} = require('../../dd-trace/src/config
|
|
14
|
+
getValueFromEnvSources
|
|
15
|
+
} = require('../../dd-trace/src/config/helper')
|
|
16
16
|
const { DD_MAJOR } = require('../../../version')
|
|
17
17
|
const { addHook, channel } = require('./helpers/instrument')
|
|
18
18
|
|
|
@@ -41,7 +41,7 @@ const testSuiteToTestStatuses = new Map()
|
|
|
41
41
|
const testSuiteToErrors = new Map()
|
|
42
42
|
const testsToTestStatuses = new Map()
|
|
43
43
|
|
|
44
|
-
const RUM_FLUSH_WAIT_TIME = Number(
|
|
44
|
+
const RUM_FLUSH_WAIT_TIME = Number(getValueFromEnvSources('DD_CIVISIBILITY_RUM_FLUSH_WAIT_MILLIS')) || 1000
|
|
45
45
|
|
|
46
46
|
let applyRepeatEachIndex = null
|
|
47
47
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
3
|
const shimmer = require('../../datadog-shimmer')
|
|
4
|
-
const {
|
|
4
|
+
const { getValueFromEnvSources } = require('../../dd-trace/src/config/helper')
|
|
5
5
|
const { addHook, channel } = require('./helpers/instrument')
|
|
6
6
|
|
|
7
7
|
const ciSeleniumDriverGetStartCh = channel('ci:selenium:driver:get')
|
|
@@ -17,7 +17,7 @@ if (window.DD_RUM && window.DD_RUM.stopSession) {
|
|
|
17
17
|
const IS_RUM_ACTIVE_SCRIPT = 'return !!window.DD_RUM'
|
|
18
18
|
|
|
19
19
|
const DD_CIVISIBILITY_RUM_FLUSH_WAIT_MILLIS =
|
|
20
|
-
Number(
|
|
20
|
+
Number(getValueFromEnvSources('DD_CIVISIBILITY_RUM_FLUSH_WAIT_MILLIS')) || 500
|
|
21
21
|
const DD_CIVISIBILITY_TEST_EXECUTION_ID_COOKIE_NAME = 'datadog-ci-visibility-test-execution-id'
|
|
22
22
|
|
|
23
23
|
// TODO: can we increase the supported version range?
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
const tracingChannel = require('dc-polyfill').tracingChannel
|
|
4
4
|
|
|
5
5
|
const shimmer = require('../../datadog-shimmer')
|
|
6
|
+
const satisfies = require('../../../vendor/dist/semifies')
|
|
6
7
|
const {
|
|
7
8
|
addHook
|
|
8
9
|
} = require('./helpers/instrument')
|
|
@@ -10,9 +11,19 @@ const { createWrapFetch } = require('./helpers/fetch')
|
|
|
10
11
|
|
|
11
12
|
const ch = tracingChannel('apm:undici:fetch')
|
|
12
13
|
|
|
14
|
+
// Undici 5.0.x has a bug where fetch doesn't preserve AggregateError in the error cause chain
|
|
15
|
+
// Use native DC only for versions where error handling works correctly
|
|
16
|
+
const NATIVE_DC_VERSION = '>=4.7.0 <5.0.0 || >=5.1.0'
|
|
17
|
+
|
|
13
18
|
addHook({
|
|
14
19
|
name: 'undici',
|
|
15
20
|
versions: ['^4.4.1', '5', '>=6.0.0']
|
|
16
|
-
}, undici => {
|
|
21
|
+
}, (undici, version) => {
|
|
22
|
+
// For versions with working native DC, let the plugin subscribe directly
|
|
23
|
+
if (satisfies(version, NATIVE_DC_VERSION)) {
|
|
24
|
+
return undici
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// For older versions or those with buggy error handling, wrap fetch
|
|
17
28
|
return shimmer.wrap(undici, 'fetch', createWrapFetch(undici.Request, ch))
|
|
18
29
|
})
|
|
@@ -5,7 +5,7 @@ const ClientPlugin = require('../../dd-trace/src/plugins/client')
|
|
|
5
5
|
const { storage } = require('../../datadog-core')
|
|
6
6
|
const { isTrue } = require('../../dd-trace/src/util')
|
|
7
7
|
const { tagsFromRequest, tagsFromResponse } = require('../../dd-trace/src/payload-tagging')
|
|
8
|
-
const {
|
|
8
|
+
const { getValueFromEnvSources } = require('../../dd-trace/src/config/helper')
|
|
9
9
|
|
|
10
10
|
class BaseAwsSdkPlugin extends ClientPlugin {
|
|
11
11
|
static id = 'aws'
|
|
@@ -190,7 +190,7 @@ class BaseAwsSdkPlugin extends ClientPlugin {
|
|
|
190
190
|
|
|
191
191
|
isEnabled (request) {
|
|
192
192
|
const serviceId = this.serviceIdentifier.toUpperCase()
|
|
193
|
-
const envVarValue =
|
|
193
|
+
const envVarValue = getValueFromEnvSources(`DD_TRACE_AWS_SDK_${serviceId}_ENABLED`)
|
|
194
194
|
return envVarValue ? isTrue(envVarValue) : true
|
|
195
195
|
}
|
|
196
196
|
|
|
@@ -273,9 +273,9 @@ function normalizeConfig (config, serviceIdentifier) {
|
|
|
273
273
|
const serviceId = serviceIdentifier.toUpperCase()
|
|
274
274
|
const batchPropagationEnabled = isTrue(
|
|
275
275
|
specificConfig.batchPropagationEnabled ??
|
|
276
|
-
|
|
276
|
+
getValueFromEnvSources(`DD_TRACE_AWS_SDK_${serviceId}_BATCH_PROPAGATION_ENABLED`) ??
|
|
277
277
|
config.batchPropagationEnabled ??
|
|
278
|
-
|
|
278
|
+
getValueFromEnvSources('DD_TRACE_AWS_SDK_BATCH_PROPAGATION_ENABLED')
|
|
279
279
|
)
|
|
280
280
|
|
|
281
281
|
// Merge the specific config back into the main config
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
-
const {
|
|
3
|
+
const { getValueFromEnvSources } = require('../../dd-trace/src/config/helper')
|
|
4
4
|
const ProducerPlugin = require('../../dd-trace/src/plugins/producer')
|
|
5
5
|
|
|
6
6
|
const spanContexts = new WeakMap()
|
|
@@ -89,7 +89,7 @@ function injectTraceContext (tracer, span, event) {
|
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
function batchLinksAreEnabled () {
|
|
92
|
-
const eh =
|
|
92
|
+
const eh = getValueFromEnvSources('DD_TRACE_AZURE_EVENTHUBS_BATCH_LINKS_ENABLED')
|
|
93
93
|
return eh !== 'false'
|
|
94
94
|
}
|
|
95
95
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
-
const {
|
|
3
|
+
const { getValueFromEnvSources } = require('../../dd-trace/src/config/helper')
|
|
4
4
|
const ProducerPlugin = require('../../dd-trace/src/plugins/producer')
|
|
5
5
|
const spanContexts = new WeakMap()
|
|
6
6
|
|
|
@@ -90,7 +90,7 @@ function injectTraceContext (tracer, span, msg) {
|
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
function batchLinksAreEnabled () {
|
|
93
|
-
const sb =
|
|
93
|
+
const sb = getValueFromEnvSources('DD_TRACE_AZURE_SERVICEBUS_BATCH_LINKS_ENABLED')
|
|
94
94
|
return sb !== 'false'
|
|
95
95
|
}
|
|
96
96
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
const CiPlugin = require('../../dd-trace/src/plugins/ci_plugin')
|
|
4
4
|
const { storage } = require('../../datadog-core')
|
|
5
|
-
const { getEnvironmentVariable } = require('../../dd-trace/src/config
|
|
5
|
+
const { getEnvironmentVariable, getValueFromEnvSources } = require('../../dd-trace/src/config/helper')
|
|
6
6
|
|
|
7
7
|
const {
|
|
8
8
|
TEST_SKIP_REASON,
|
|
@@ -112,7 +112,7 @@ class CucumberPlugin extends CiPlugin {
|
|
|
112
112
|
finishAllTraceSpans(this.testSessionSpan)
|
|
113
113
|
this.telemetry.count(TELEMETRY_TEST_SESSION, {
|
|
114
114
|
provider: this.ciProviderName,
|
|
115
|
-
autoInjected: !!
|
|
115
|
+
autoInjected: !!getValueFromEnvSources('DD_CIVISIBILITY_AUTO_INSTRUMENTATION_PROVIDER')
|
|
116
116
|
})
|
|
117
117
|
|
|
118
118
|
this.libraryConfig = null
|
|
@@ -51,7 +51,7 @@ const {
|
|
|
51
51
|
} = require('../../dd-trace/src/plugins/util/test')
|
|
52
52
|
const { isMarkedAsUnskippable } = require('../../datadog-plugin-jest/src/util')
|
|
53
53
|
const { ORIGIN_KEY, COMPONENT } = require('../../dd-trace/src/constants')
|
|
54
|
-
const {
|
|
54
|
+
const { getValueFromEnvSources } = require('../../dd-trace/src/config/helper')
|
|
55
55
|
const { appClosing: appClosingTelemetry } = require('../../dd-trace/src/telemetry')
|
|
56
56
|
const log = require('../../dd-trace/src/log')
|
|
57
57
|
|
|
@@ -644,7 +644,7 @@ class CypressPlugin {
|
|
|
644
644
|
this.ciVisEvent(TELEMETRY_EVENT_FINISHED, 'session')
|
|
645
645
|
incrementCountMetric(TELEMETRY_TEST_SESSION, {
|
|
646
646
|
provider: this.ciProviderName,
|
|
647
|
-
autoInjected: !!
|
|
647
|
+
autoInjected: !!getValueFromEnvSources('DD_CIVISIBILITY_AUTO_INSTRUMENTATION_PROVIDER')
|
|
648
648
|
})
|
|
649
649
|
|
|
650
650
|
finishAllTraceSpans(this.testSessionSpan)
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
const Plugin = require('../../dd-trace/src/plugins/plugin')
|
|
4
4
|
const telemetryMetrics = require('../../dd-trace/src/telemetry/metrics')
|
|
5
5
|
const apiMetrics = telemetryMetrics.manager.namespace('tracers')
|
|
6
|
-
const {
|
|
6
|
+
const { getValueFromEnvSources } = require('../../dd-trace/src/config/helper')
|
|
7
7
|
|
|
8
8
|
// api ==> here
|
|
9
9
|
const objectMap = new WeakMap()
|
|
10
10
|
|
|
11
11
|
const injectionEnabledTag =
|
|
12
|
-
`injection_enabled:${
|
|
12
|
+
`injection_enabled:${getValueFromEnvSources('DD_INJECTION_ENABLED') ? 'yes' : 'no'}`
|
|
13
13
|
|
|
14
14
|
module.exports = class DdTraceApiPlugin extends Plugin {
|
|
15
15
|
static id = 'dd-trace-api'
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
+
const dc = require('dc-polyfill')
|
|
4
|
+
|
|
3
5
|
const { entryTags } = require('../../datadog-code-origin')
|
|
4
6
|
const Plugin = require('../../dd-trace/src/plugins/plugin')
|
|
5
7
|
const web = require('../../dd-trace/src/plugins/util/web')
|
|
@@ -12,29 +14,33 @@ class ExpressCodeOriginForSpansPlugin extends Plugin {
|
|
|
12
14
|
|
|
13
15
|
const layerTags = new WeakMap()
|
|
14
16
|
|
|
15
|
-
|
|
17
|
+
// Middleware/request handling: apply pre-computed tags to spans
|
|
18
|
+
const handleMiddlewareEnter = ({ req, layer }) => {
|
|
16
19
|
const tags = layerTags.get(layer)
|
|
17
20
|
if (!tags) return
|
|
18
21
|
web.getContext(req)?.span?.addTags(tags)
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
this.addSub('apm:express:route:added', ({ topOfStackFunc, layer }) => {
|
|
22
|
-
if (!layer) return
|
|
23
|
-
if (layerTags.has(layer)) return
|
|
24
|
-
layerTags.set(layer, entryTags(topOfStackFunc))
|
|
25
|
-
})
|
|
22
|
+
}
|
|
26
23
|
|
|
27
|
-
this.addSub('apm:
|
|
28
|
-
|
|
29
|
-
if (!tags) return
|
|
30
|
-
web.getContext(req)?.span?.addTags(tags)
|
|
31
|
-
})
|
|
24
|
+
this.addSub('apm:express:middleware:enter', handleMiddlewareEnter)
|
|
25
|
+
this.addSub('apm:router:middleware:enter', handleMiddlewareEnter)
|
|
32
26
|
|
|
33
|
-
|
|
27
|
+
// Route added handling: compute and cache tags
|
|
28
|
+
const handleRouteAdded = ({ topOfStackFunc, layer }) => {
|
|
34
29
|
if (!layer) return
|
|
35
30
|
if (layerTags.has(layer)) return
|
|
36
31
|
layerTags.set(layer, entryTags(topOfStackFunc))
|
|
37
|
-
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
if (this._tracerConfig.remoteConfig?.enabled) {
|
|
35
|
+
// When RC is enabled, use manual subscriptions (always pre-compute)
|
|
36
|
+
// This allows tags to be computed even when CO is disabled, so runtime enabling works
|
|
37
|
+
dc.channel('apm:express:route:added').subscribe(handleRouteAdded)
|
|
38
|
+
dc.channel('apm:router:route:added').subscribe(handleRouteAdded)
|
|
39
|
+
} else {
|
|
40
|
+
// When RC is disabled, use addSub (only computes when CO is enabled)
|
|
41
|
+
this.addSub('apm:express:route:added', handleRouteAdded)
|
|
42
|
+
this.addSub('apm:router:route:added', handleRouteAdded)
|
|
43
|
+
}
|
|
38
44
|
}
|
|
39
45
|
}
|
|
40
46
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
+
const dc = require('dc-polyfill')
|
|
4
|
+
|
|
3
5
|
const { entryTags } = require('../../datadog-code-origin')
|
|
4
6
|
const Plugin = require('../../dd-trace/src/plugins/plugin')
|
|
5
7
|
const web = require('../../dd-trace/src/plugins/util/web')
|
|
@@ -18,11 +20,22 @@ class FastifyCodeOriginForSpansPlugin extends Plugin {
|
|
|
18
20
|
web.getContext(req)?.span?.addTags(tags)
|
|
19
21
|
})
|
|
20
22
|
|
|
21
|
-
this.
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
if (this._tracerConfig.remoteConfig?.enabled) {
|
|
24
|
+
// When RC is enabled, use manual subscription (always pre-computes)
|
|
25
|
+
// This allows tags to be computed even when CO is disabled, so runtime enabling works
|
|
26
|
+
dc.channel('apm:fastify:route:added').subscribe(handleRouteAdded)
|
|
27
|
+
} else {
|
|
28
|
+
// When RC is disabled, use addSub (only computes when CO is enabled)
|
|
29
|
+
this.addSub('apm:fastify:route:added', handleRouteAdded)
|
|
30
|
+
}
|
|
25
31
|
}
|
|
26
32
|
}
|
|
27
33
|
|
|
28
34
|
module.exports = FastifyCodeOriginForSpansPlugin
|
|
35
|
+
|
|
36
|
+
// Route added handling: compute and cache tags
|
|
37
|
+
function handleRouteAdded ({ routeOptions, onRoute }) {
|
|
38
|
+
if (!routeOptions.config) routeOptions.config = {}
|
|
39
|
+
if (routeOptions.config[kCodeOriginForSpansTagsSym]) return
|
|
40
|
+
routeOptions.config[kCodeOriginForSpansTagsSym] = entryTags(onRoute)
|
|
41
|
+
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
const CiPlugin = require('../../dd-trace/src/plugins/ci_plugin')
|
|
4
4
|
const { storage } = require('../../datadog-core')
|
|
5
|
-
const { getEnvironmentVariable } = require('../../dd-trace/src/config
|
|
5
|
+
const { getEnvironmentVariable, getValueFromEnvSources } = require('../../dd-trace/src/config/helper')
|
|
6
6
|
|
|
7
7
|
const {
|
|
8
8
|
TEST_STATUS,
|
|
@@ -161,7 +161,7 @@ class JestPlugin extends CiPlugin {
|
|
|
161
161
|
|
|
162
162
|
this.telemetry.count(TELEMETRY_TEST_SESSION, {
|
|
163
163
|
provider: this.ciProviderName,
|
|
164
|
-
autoInjected: !!
|
|
164
|
+
autoInjected: !!getValueFromEnvSources('DD_CIVISIBILITY_AUTO_INSTRUMENTATION_PROVIDER')
|
|
165
165
|
})
|
|
166
166
|
|
|
167
167
|
this.tracer._exporter.flush(() => {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
const CiPlugin = require('../../dd-trace/src/plugins/ci_plugin')
|
|
4
4
|
const { storage } = require('../../datadog-core')
|
|
5
|
-
const {
|
|
5
|
+
const { getValueFromEnvSources } = require('../../dd-trace/src/config/helper')
|
|
6
6
|
|
|
7
7
|
const {
|
|
8
8
|
TEST_STATUS,
|
|
@@ -406,7 +406,7 @@ class MochaPlugin extends CiPlugin {
|
|
|
406
406
|
finishAllTraceSpans(this.testSessionSpan)
|
|
407
407
|
this.telemetry.count(TELEMETRY_TEST_SESSION, {
|
|
408
408
|
provider: this.ciProviderName,
|
|
409
|
-
autoInjected: !!
|
|
409
|
+
autoInjected: !!getValueFromEnvSources('DD_CIVISIBILITY_AUTO_INSTRUMENTATION_PROVIDER')
|
|
410
410
|
})
|
|
411
411
|
}
|
|
412
412
|
this.libraryConfig = null
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
const { isTrue } = require('../../dd-trace/src/util')
|
|
4
4
|
const DatabasePlugin = require('../../dd-trace/src/plugins/database')
|
|
5
|
-
const {
|
|
5
|
+
const { getValueFromEnvSources } = require('../../dd-trace/src/config/helper')
|
|
6
6
|
|
|
7
7
|
class MongodbCorePlugin extends DatabasePlugin {
|
|
8
8
|
static id = 'mongodb-core'
|
|
@@ -20,7 +20,7 @@ class MongodbCorePlugin extends DatabasePlugin {
|
|
|
20
20
|
configure (config) {
|
|
21
21
|
super.configure(config)
|
|
22
22
|
|
|
23
|
-
const heartbeatFromEnv =
|
|
23
|
+
const heartbeatFromEnv = getValueFromEnvSources('DD_TRACE_MONGODB_HEARTBEAT_ENABLED')
|
|
24
24
|
|
|
25
25
|
this.config.heartbeatEnabled = config.heartbeatEnabled ??
|
|
26
26
|
(heartbeatFromEnv && isTrue(heartbeatFromEnv)) ??
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
const { storage } = require('../../datadog-core')
|
|
4
4
|
const id = require('../../dd-trace/src/id')
|
|
5
5
|
const CiPlugin = require('../../dd-trace/src/plugins/ci_plugin')
|
|
6
|
-
const {
|
|
6
|
+
const { getValueFromEnvSources } = require('../../dd-trace/src/config/helper')
|
|
7
7
|
|
|
8
8
|
const {
|
|
9
9
|
TEST_STATUS,
|
|
@@ -106,7 +106,7 @@ class PlaywrightPlugin extends CiPlugin {
|
|
|
106
106
|
finishAllTraceSpans(this.testSessionSpan)
|
|
107
107
|
this.telemetry.count(TELEMETRY_TEST_SESSION, {
|
|
108
108
|
provider: this.ciProviderName,
|
|
109
|
-
autoInjected: !!
|
|
109
|
+
autoInjected: !!getValueFromEnvSources('DD_CIVISIBILITY_AUTO_INSTRUMENTATION_PROVIDER')
|
|
110
110
|
})
|
|
111
111
|
appClosingTelemetry()
|
|
112
112
|
this.tracer._exporter.flush(onDone)
|
|
@@ -393,7 +393,7 @@ class PlaywrightPlugin extends CiPlugin {
|
|
|
393
393
|
span.finish()
|
|
394
394
|
|
|
395
395
|
finishAllTraceSpans(span)
|
|
396
|
-
if (
|
|
396
|
+
if (getValueFromEnvSources('DD_PLAYWRIGHT_WORKER')) {
|
|
397
397
|
this.tracer._exporter.flush(onDone)
|
|
398
398
|
}
|
|
399
399
|
})
|