dd-trace 5.82.0 → 5.84.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 +77 -79
- package/ci/init.js +6 -6
- package/index.d.ts +213 -4
- package/loader-hook.mjs +1 -1
- package/package.json +59 -56
- 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/compiler.js +6 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/index.js +2 -1
- package/packages/datadog-instrumentations/src/helpers/rewriter/transforms.js +73 -16
- package/packages/datadog-instrumentations/src/http/client.js +2 -2
- package/packages/datadog-instrumentations/src/jest.js +124 -64
- 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 +15 -11
- 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 +35 -34
- 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 +26 -26
- package/packages/datadog-plugin-undici/src/index.js +305 -2
- package/packages/datadog-plugin-vitest/src/index.js +5 -5
- package/packages/datadog-shimmer/src/shimmer.js +2 -5
- package/packages/dd-trace/index.js +19 -0
- package/packages/dd-trace/src/agent/info.js +57 -0
- package/packages/dd-trace/src/agent/url.js +28 -0
- package/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter.js +1 -1
- package/packages/dd-trace/src/appsec/index.js +47 -7
- 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/agent-proxy/index.js +3 -4
- 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 +5 -5
- 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 +5 -11
- 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/telemetry.js +6 -2
- 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} +107 -46
- package/packages/dd-trace/src/config/remote_config.js +188 -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} +3 -1
- package/packages/dd-trace/src/crashtracking/crashtracker.js +2 -5
- package/packages/dd-trace/src/datastreams/processor.js +1 -1
- package/packages/dd-trace/src/datastreams/writer.js +2 -8
- package/packages/dd-trace/src/debugger/devtools_client/condition.js +1 -1
- package/packages/dd-trace/src/debugger/devtools_client/config.js +2 -7
- package/packages/dd-trace/src/debugger/devtools_client/json-buffer.js +10 -11
- 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 +5 -11
- 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 +5 -11
- package/packages/dd-trace/src/exporters/agent/writer.js +12 -16
- package/packages/dd-trace/src/exporters/common/{agent-info-exporter.js → buffering-exporter.js} +10 -37
- 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 +3 -10
- 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 +118 -45
- package/packages/dd-trace/src/llmobs/writers/spans.js +4 -3
- package/packages/dd-trace/src/llmobs/writers/util.js +3 -9
- package/packages/dd-trace/src/log/index.js +50 -35
- package/packages/dd-trace/src/log/writer.js +13 -78
- package/packages/dd-trace/src/noop/proxy.js +3 -3
- package/packages/dd-trace/src/openfeature/writers/base.js +9 -16
- package/packages/dd-trace/src/openfeature/writers/util.js +3 -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 -34
- 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 +4 -0
- package/packages/dd-trace/src/remote_config/index.js +2 -7
- 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 +7 -16
- 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/vendor/dist/@isaacs/ttlcache/index.js +1 -1
- package/vendor/dist/esquery/index.js +1 -1
- package/vendor/dist/meriyah/index.js +1 -1
- package/vendor/dist/protobufjs/index.js +1 -1
- /package/packages/dd-trace/src/{git_properties.js → config/git_properties.js} +0 -0
|
@@ -2,51 +2,51 @@
|
|
|
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
|
-
|
|
9
|
-
TEST_STATUS,
|
|
10
|
-
TEST_SOURCE_START,
|
|
8
|
+
addIntelligentTestRunnerSpanTags,
|
|
11
9
|
finishAllTraceSpans,
|
|
12
|
-
|
|
10
|
+
getTestEndLine,
|
|
13
11
|
getTestSuiteCommonTags,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
TEST_CODE_OWNERS,
|
|
12
|
+
getTestSuitePath,
|
|
13
|
+
isModifiedTest,
|
|
14
|
+
CUCUMBER_IS_PARALLEL,
|
|
18
15
|
ITR_CORRELATION_ID,
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
TEST_BROWSER_DRIVER,
|
|
17
|
+
TEST_CODE_OWNERS,
|
|
21
18
|
TEST_EARLY_FLAKE_ABORT_REASON,
|
|
19
|
+
TEST_EARLY_FLAKE_ENABLED,
|
|
20
|
+
TEST_HAS_FAILED_ALL_RETRIES,
|
|
21
|
+
TEST_IS_MODIFIED,
|
|
22
22
|
TEST_IS_NEW,
|
|
23
23
|
TEST_IS_RETRY,
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
TEST_IS_RUM_ACTIVE,
|
|
25
|
+
TEST_ITR_FORCED_RUN,
|
|
26
|
+
TEST_ITR_UNSKIPPABLE,
|
|
27
|
+
TEST_MANAGEMENT_ATTEMPT_TO_FIX_PASSED,
|
|
26
28
|
TEST_MANAGEMENT_ENABLED,
|
|
27
|
-
TEST_MANAGEMENT_IS_QUARANTINED,
|
|
28
|
-
TEST_MANAGEMENT_IS_DISABLED,
|
|
29
29
|
TEST_MANAGEMENT_IS_ATTEMPT_TO_FIX,
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
TEST_MANAGEMENT_IS_DISABLED,
|
|
31
|
+
TEST_MANAGEMENT_IS_QUARANTINED,
|
|
32
32
|
TEST_RETRY_REASON_TYPES,
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
TEST_RETRY_REASON,
|
|
34
|
+
TEST_SKIP_REASON,
|
|
35
|
+
TEST_SOURCE_FILE,
|
|
36
|
+
TEST_SOURCE_START,
|
|
37
|
+
TEST_STATUS,
|
|
36
38
|
} = require('../../dd-trace/src/plugins/util/test')
|
|
37
39
|
const { RESOURCE_NAME } = require('../../../ext/tags')
|
|
38
40
|
const { COMPONENT, ERROR_MESSAGE } = require('../../dd-trace/src/constants')
|
|
39
41
|
const {
|
|
42
|
+
TELEMETRY_CODE_COVERAGE_EMPTY,
|
|
43
|
+
TELEMETRY_CODE_COVERAGE_FINISHED,
|
|
44
|
+
TELEMETRY_CODE_COVERAGE_NUM_FILES,
|
|
45
|
+
TELEMETRY_CODE_COVERAGE_STARTED,
|
|
40
46
|
TELEMETRY_EVENT_CREATED,
|
|
41
47
|
TELEMETRY_EVENT_FINISHED,
|
|
42
|
-
TELEMETRY_CODE_COVERAGE_STARTED,
|
|
43
|
-
TELEMETRY_CODE_COVERAGE_FINISHED,
|
|
44
48
|
TELEMETRY_ITR_FORCED_TO_RUN,
|
|
45
|
-
TELEMETRY_CODE_COVERAGE_EMPTY,
|
|
46
49
|
TELEMETRY_ITR_UNSKIPPABLE,
|
|
47
|
-
TELEMETRY_CODE_COVERAGE_NUM_FILES,
|
|
48
|
-
TEST_IS_RUM_ACTIVE,
|
|
49
|
-
TEST_BROWSER_DRIVER,
|
|
50
50
|
TELEMETRY_TEST_SESSION
|
|
51
51
|
} = require('../../dd-trace/src/ci-visibility/telemetry')
|
|
52
52
|
|
|
@@ -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
|
|
@@ -362,18 +362,19 @@ class CucumberPlugin extends CiPlugin {
|
|
|
362
362
|
}
|
|
363
363
|
}
|
|
364
364
|
|
|
365
|
+
const spanTags = span.context()._tags
|
|
366
|
+
const telemetryTags = {
|
|
367
|
+
hasCodeOwners: !!spanTags[TEST_CODE_OWNERS],
|
|
368
|
+
isNew,
|
|
369
|
+
isRum: spanTags[TEST_IS_RUM_ACTIVE] === 'true',
|
|
370
|
+
browserDriver: spanTags[TEST_BROWSER_DRIVER]
|
|
371
|
+
}
|
|
365
372
|
span.finish()
|
|
366
373
|
if (!isStep) {
|
|
367
|
-
const spanTags = span.context()._tags
|
|
368
374
|
this.telemetry.ciVisEvent(
|
|
369
375
|
TELEMETRY_EVENT_FINISHED,
|
|
370
376
|
'test',
|
|
371
|
-
|
|
372
|
-
hasCodeOwners: !!spanTags[TEST_CODE_OWNERS],
|
|
373
|
-
isNew,
|
|
374
|
-
isRum: spanTags[TEST_IS_RUM_ACTIVE] === 'true',
|
|
375
|
-
browserDriver: spanTags[TEST_BROWSER_DRIVER]
|
|
376
|
-
}
|
|
377
|
+
telemetryTags
|
|
377
378
|
)
|
|
378
379
|
finishAllTraceSpans(span)
|
|
379
380
|
// If it's a worker, flushing is cheap, as it's just sending data to the main process
|
|
@@ -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,48 +3,48 @@
|
|
|
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
|
-
TEST_STATUS,
|
|
10
9
|
finishAllTraceSpans,
|
|
11
|
-
getTestSuitePath,
|
|
12
10
|
getTestSuiteCommonTags,
|
|
13
|
-
|
|
11
|
+
getTestSuitePath,
|
|
12
|
+
isModifiedTest,
|
|
13
|
+
TEST_BROWSER_NAME,
|
|
14
|
+
TEST_BROWSER_VERSION,
|
|
14
15
|
TEST_CODE_OWNERS,
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
TEST_COMMAND,
|
|
17
|
+
TEST_EARLY_FLAKE_ABORT_REASON,
|
|
18
|
+
TEST_EARLY_FLAKE_ENABLED,
|
|
19
|
+
TEST_HAS_FAILED_ALL_RETRIES,
|
|
20
|
+
TEST_IS_MODIFIED,
|
|
17
21
|
TEST_IS_NEW,
|
|
18
22
|
TEST_IS_RETRY,
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
TELEMETRY_TEST_SESSION,
|
|
22
|
-
TEST_RETRY_REASON,
|
|
23
|
-
TEST_MANAGEMENT_IS_QUARANTINED,
|
|
23
|
+
TEST_IS_RUM_ACTIVE,
|
|
24
|
+
TEST_MANAGEMENT_ATTEMPT_TO_FIX_PASSED,
|
|
24
25
|
TEST_MANAGEMENT_ENABLED,
|
|
25
|
-
TEST_BROWSER_NAME,
|
|
26
|
-
TEST_MANAGEMENT_IS_DISABLED,
|
|
27
26
|
TEST_MANAGEMENT_IS_ATTEMPT_TO_FIX,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
TEST_SESSION_ID,
|
|
27
|
+
TEST_MANAGEMENT_IS_DISABLED,
|
|
28
|
+
TEST_MANAGEMENT_IS_QUARANTINED,
|
|
31
29
|
TEST_MODULE_ID,
|
|
32
|
-
TEST_COMMAND,
|
|
33
30
|
TEST_MODULE,
|
|
34
|
-
TEST_SUITE,
|
|
35
|
-
TEST_SUITE_ID,
|
|
36
31
|
TEST_NAME,
|
|
37
|
-
|
|
38
|
-
TEST_BROWSER_VERSION,
|
|
32
|
+
TEST_PARAMETERS,
|
|
39
33
|
TEST_RETRY_REASON_TYPES,
|
|
40
|
-
|
|
41
|
-
|
|
34
|
+
TEST_RETRY_REASON,
|
|
35
|
+
TEST_SESSION_ID,
|
|
36
|
+
TEST_SOURCE_FILE,
|
|
37
|
+
TEST_SOURCE_START,
|
|
38
|
+
TEST_STATUS,
|
|
39
|
+
TEST_SUITE_ID,
|
|
40
|
+
TEST_SUITE,
|
|
42
41
|
} = require('../../dd-trace/src/plugins/util/test')
|
|
43
42
|
const { RESOURCE_NAME } = require('../../../ext/tags')
|
|
44
43
|
const { COMPONENT } = require('../../dd-trace/src/constants')
|
|
45
44
|
const {
|
|
46
45
|
TELEMETRY_EVENT_CREATED,
|
|
47
|
-
TELEMETRY_EVENT_FINISHED
|
|
46
|
+
TELEMETRY_EVENT_FINISHED,
|
|
47
|
+
TELEMETRY_TEST_SESSION,
|
|
48
48
|
} = require('../../dd-trace/src/ci-visibility/telemetry')
|
|
49
49
|
const { appClosing: appClosingTelemetry } = require('../../dd-trace/src/telemetry')
|
|
50
50
|
const log = require('../../dd-trace/src/log')
|
|
@@ -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
|
})
|