dd-trace 6.7.0 → 6.8.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/ci/test-optimization-validation/command-output-policy.js +5 -5
- package/ci/test-optimization-validation/framework-adapters/playwright.js +5 -5
- package/ci/test-optimization-validation/generated-files.js +9 -9
- package/ci/test-optimization-validation/generated-test-contract.js +1 -3
- package/ci/test-optimization-validation/manifest-scaffold.js +1 -2
- package/ci/test-optimization-validation/offline-output.js +6 -6
- package/ci/test-optimization-validation/runner-command.js +1 -1
- package/ci/test-optimization-validation/safe-files.js +4 -4
- package/ci/test-optimization-validation/scenarios/basic-reporting.js +1 -1
- package/ci/test-optimization-validation/scenarios/test-management.js +2 -2
- package/ci/vitest-no-worker-init-setup.mjs +348 -51
- package/index.d.ts +77 -13
- package/package.json +9 -3
- package/packages/datadog-core/src/utils/src/kebabcase.js +8 -2
- package/packages/datadog-esbuild/index.js +4 -2
- package/packages/datadog-esbuild/src/utils.js +1 -1
- package/packages/datadog-instrumentations/src/claude-agent-sdk.js +4 -4
- package/packages/datadog-instrumentations/src/cucumber.js +9 -6
- package/packages/datadog-instrumentations/src/helpers/extract-package-and-module-path.js +10 -0
- package/packages/datadog-instrumentations/src/helpers/hook.js +19 -2
- package/packages/datadog-instrumentations/src/helpers/hooks.js +2 -0
- package/packages/datadog-instrumentations/src/helpers/register.js +9 -3
- package/packages/datadog-instrumentations/src/helpers/rewriter/index.js +1 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/index.js +1 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/webdriverio.js +57 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/transforms.js +50 -18
- package/packages/datadog-instrumentations/src/helpers/router-helper.js +1 -1
- package/packages/datadog-instrumentations/src/helpers/shared-utils.js +39 -0
- package/packages/datadog-instrumentations/src/http/client.js +1 -3
- package/packages/datadog-instrumentations/src/jest.js +8 -14
- package/packages/datadog-instrumentations/src/mocha/common.js +1 -3
- package/packages/datadog-instrumentations/src/mocha/main.js +2 -42
- package/packages/datadog-instrumentations/src/mocha/utils.js +68 -2
- package/packages/datadog-instrumentations/src/mocha/webdriverio-protocol.js +19 -0
- package/packages/datadog-instrumentations/src/mocha/worker.js +446 -42
- package/packages/datadog-instrumentations/src/moleculer/client.js +1 -1
- package/packages/datadog-instrumentations/src/playwright.js +3 -2
- package/packages/datadog-instrumentations/src/rhea.js +1 -1
- package/packages/datadog-instrumentations/src/vitest-main-no-worker-init.js +525 -56
- package/packages/datadog-instrumentations/src/vitest-main.js +90 -10
- package/packages/datadog-instrumentations/src/webdriverio.js +914 -0
- package/packages/datadog-plugin-aerospike/src/index.js +1 -3
- package/packages/datadog-plugin-amqplib/src/client.js +1 -1
- package/packages/datadog-plugin-amqplib/src/producer.js +1 -1
- package/packages/datadog-plugin-aws-sdk/src/services/eventbridge.js +2 -2
- package/packages/datadog-plugin-aws-sdk/src/services/stepfunctions.js +2 -2
- package/packages/datadog-plugin-azure-event-hubs/src/producer.js +1 -3
- package/packages/datadog-plugin-azure-service-bus/src/producer.js +5 -3
- package/packages/datadog-plugin-bullmq/src/producer.js +3 -3
- package/packages/datadog-plugin-child_process/src/index.js +3 -3
- package/packages/datadog-plugin-child_process/src/scrub-cmd-params.js +5 -8
- package/packages/datadog-plugin-cypress/src/source-map-utils.js +1 -1
- package/packages/datadog-plugin-fastify/src/tracing.js +1 -1
- package/packages/datadog-plugin-fs/src/index.js +0 -4
- package/packages/datadog-plugin-google-cloud-pubsub/src/consumer.js +14 -7
- package/packages/datadog-plugin-google-cloud-pubsub/src/producer.js +19 -10
- package/packages/datadog-plugin-graphql/src/execute.js +1 -0
- package/packages/datadog-plugin-graphql/src/tools/signature.js +1 -1
- package/packages/datadog-plugin-http/src/client.js +2 -1
- package/packages/datadog-plugin-jest/src/index.js +2 -3
- package/packages/datadog-plugin-jest/src/util.js +2 -1
- package/packages/datadog-plugin-langchain/src/tokens.js +2 -2
- package/packages/datadog-plugin-mocha/src/index.js +25 -6
- package/packages/datadog-plugin-prisma/src/index.js +5 -1
- package/packages/datadog-plugin-rhea/src/consumer.js +16 -13
- package/packages/datadog-plugin-rhea/src/producer.js +1 -1
- package/packages/datadog-plugin-undici/src/index.js +2 -1
- package/packages/datadog-plugin-vitest/src/index.js +84 -11
- package/packages/datadog-webpack/index.js +2 -2
- package/packages/dd-trace/src/appsec/downstream_requests.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-base-analyzer.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-password-analyzer.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/sql-injection-analyzer.js +1 -1
- package/packages/dd-trace/src/appsec/iast/taint-tracking/taint-tracking-impl.js +1 -3
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/utils.js +1 -1
- package/packages/dd-trace/src/appsec/iast/vulnerability-reporter.js +2 -2
- package/packages/dd-trace/src/appsec/sdk/track_event.js +1 -1
- package/packages/dd-trace/src/appsec/waf/waf_manager.js +1 -1
- package/packages/dd-trace/src/ci-visibility/exporters/ci-validation/sink.js +7 -6
- package/packages/dd-trace/src/ci-visibility/exporters/ci-visibility-exporter.js +2 -2
- package/packages/dd-trace/src/ci-visibility/exporters/git/git_metadata.js +2 -1
- package/packages/dd-trace/src/ci-visibility/exporters/test-worker/index.js +4 -0
- package/packages/dd-trace/src/ci-visibility/exporters/test-worker/webdriverio.js +26 -0
- package/packages/dd-trace/src/ci-visibility/exporters/test-worker/writer.js +9 -1
- package/packages/dd-trace/src/ci-visibility/requests/request.js +3 -3
- package/packages/dd-trace/src/ci-visibility/test-optimization-http-cache-schema.js +1 -1
- package/packages/dd-trace/src/config/defaults.js +14 -6
- package/packages/dd-trace/src/config/generated-config-types.d.ts +2 -2
- package/packages/dd-trace/src/config/index.js +15 -0
- package/packages/dd-trace/src/config/parsers.js +19 -1
- package/packages/dd-trace/src/config/supported-configurations.json +5 -6
- package/packages/dd-trace/src/datastreams/encoding.js +3 -4
- package/packages/dd-trace/src/debugger/devtools_client/log.js +2 -1
- package/packages/dd-trace/src/debugger/devtools_client/probe_sampler.js +1 -4
- package/packages/dd-trace/src/debugger/devtools_client/send.js +1 -2
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/index.js +2 -2
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/redaction.js +16 -2
- package/packages/dd-trace/src/encode/tags-processors.js +2 -2
- package/packages/dd-trace/src/exporters/common/url.js +3 -5
- package/packages/dd-trace/src/exporters/electron/index.js +4 -1
- package/packages/dd-trace/src/external-logger/src/index.js +1 -2
- package/packages/dd-trace/src/flare/index.js +2 -2
- package/packages/dd-trace/src/id.js +1 -1
- package/packages/dd-trace/src/llmobs/constants/tags.js +1 -1
- package/packages/dd-trace/src/llmobs/experiments/client.js +4 -2
- package/packages/dd-trace/src/llmobs/experiments/dataset.js +66 -14
- package/packages/dd-trace/src/llmobs/experiments/experiment.js +289 -95
- package/packages/dd-trace/src/llmobs/experiments/index.js +51 -12
- package/packages/dd-trace/src/llmobs/experiments/noop.js +95 -10
- package/packages/dd-trace/src/llmobs/experiments/result.js +13 -2
- package/packages/dd-trace/src/llmobs/experiments/util.js +218 -0
- package/packages/dd-trace/src/llmobs/plugins/anthropic/index.js +1 -1
- package/packages/dd-trace/src/llmobs/plugins/claude-agent-sdk/index.js +1 -1
- package/packages/dd-trace/src/llmobs/plugins/genai/index.js +1 -1
- package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/index.js +1 -1
- package/packages/dd-trace/src/llmobs/sdk.js +4 -11
- package/packages/dd-trace/src/llmobs/span_processor.js +9 -7
- package/packages/dd-trace/src/llmobs/tagger.js +1 -2
- package/packages/dd-trace/src/llmobs/writers/spans.js +12 -6
- package/packages/dd-trace/src/noop/proxy.js +2 -2
- package/packages/dd-trace/src/opentelemetry/metrics/otlp_transformer.js +1 -1
- package/packages/dd-trace/src/opentelemetry/metrics/periodic_metric_reader.js +2 -1
- package/packages/dd-trace/src/opentracing/span.js +1 -1
- package/packages/dd-trace/src/opentracing/span_context.js +1 -1
- package/packages/dd-trace/src/plugins/ci_plugin.js +105 -20
- package/packages/dd-trace/src/plugins/index.js +1 -0
- package/packages/dd-trace/src/plugins/plugin.js +1 -1
- package/packages/dd-trace/src/plugins/tracing.js +1 -0
- package/packages/dd-trace/src/plugins/util/ci.js +7 -6
- package/packages/dd-trace/src/plugins/util/git.js +1 -1
- package/packages/dd-trace/src/plugins/util/http-otel-semantics.js +1 -1
- package/packages/dd-trace/src/plugins/util/llm.js +2 -2
- package/packages/dd-trace/src/plugins/util/tags.js +2 -0
- package/packages/dd-trace/src/plugins/util/test.js +38 -12
- package/packages/dd-trace/src/plugins/util/url.js +5 -5
- package/packages/dd-trace/src/plugins/util/user-provided-git.js +1 -1
- package/packages/dd-trace/src/plugins/util/web.js +1 -1
- package/packages/dd-trace/src/priority_sampler.js +6 -3
- package/packages/dd-trace/src/profiling/profilers/poisson.js +1 -1
- package/packages/dd-trace/src/profiling/profilers/shared.js +2 -2
- package/packages/dd-trace/src/ritm.js +5 -20
- package/packages/dd-trace/src/startup-log.js +3 -0
- package/packages/dd-trace/src/telemetry/logs/log-collector.js +3 -1
- package/packages/dd-trace/src/util.js +16 -0
- package/vendor/dist/@apm-js-collab/code-transformer/index.js +12 -12
- package/vendor/dist/pprof-format/index.js +1 -1
- package/vendor/dist/source-map/index.js +1 -1
|
@@ -17,8 +17,8 @@ function getThreadLabels () {
|
|
|
17
17
|
const nativeThreadId = pprof.getNativeThreadId()
|
|
18
18
|
return {
|
|
19
19
|
[THREAD_NAME_LABEL]: eventLoopThreadName,
|
|
20
|
-
[THREAD_ID_LABEL]:
|
|
21
|
-
[OS_THREAD_ID_LABEL]:
|
|
20
|
+
[THREAD_ID_LABEL]: threadId.toString(),
|
|
21
|
+
[OS_THREAD_ID_LABEL]: nativeThreadId.toString(),
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
|
|
@@ -7,7 +7,11 @@ const Module = require('module')
|
|
|
7
7
|
const dc = require('dc-polyfill')
|
|
8
8
|
|
|
9
9
|
const parse = require('../../../vendor/dist/module-details-from-path')
|
|
10
|
-
const {
|
|
10
|
+
const {
|
|
11
|
+
isBuiltinModuleName,
|
|
12
|
+
isRelativeRequire,
|
|
13
|
+
normalizeModuleName,
|
|
14
|
+
} = require('../../datadog-instrumentations/src/helpers/shared-utils')
|
|
11
15
|
const { getConfiguredEnvName, getEnvironmentVariable } = require('./config/helper')
|
|
12
16
|
|
|
13
17
|
const origRequire = Module.prototype.require
|
|
@@ -22,25 +26,6 @@ let patchedRequire = null
|
|
|
22
26
|
const moduleLoadStartChannel = dc.channel('dd-trace:moduleLoadStart')
|
|
23
27
|
const moduleLoadEndChannel = dc.channel('dd-trace:moduleLoadEnd')
|
|
24
28
|
|
|
25
|
-
function stripNodePrefix (name) {
|
|
26
|
-
if (typeof name !== 'string') return name
|
|
27
|
-
return name.startsWith('node:') ? name.slice(5) : name
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
const builtinModules = new Set(Module.builtinModules.map(stripNodePrefix))
|
|
31
|
-
|
|
32
|
-
function isBuiltinModuleName (name) {
|
|
33
|
-
if (typeof name !== 'string') return false
|
|
34
|
-
if (name === 'electron') return true
|
|
35
|
-
return builtinModules.has(stripNodePrefix(name))
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
function normalizeModuleName (name) {
|
|
39
|
-
if (typeof name !== 'string') return name
|
|
40
|
-
const stripped = stripNodePrefix(name)
|
|
41
|
-
return builtinModules.has(stripped) ? stripped : name
|
|
42
|
-
}
|
|
43
|
-
|
|
44
29
|
/**
|
|
45
30
|
* @overload
|
|
46
31
|
* @param {string[]} modules list of modules to hook into
|
|
@@ -108,6 +108,9 @@ function configInfo () {
|
|
|
108
108
|
profiling_enabled: profilingEnabled === 'true' || profilingEnabled === 'auto',
|
|
109
109
|
appsec_enabled: config.appsec.enabled,
|
|
110
110
|
data_streams_enabled: !!config.dsmEnabled,
|
|
111
|
+
otlp_traces_export_enabled: config.OTEL_TRACES_EXPORTER === 'otlp' && !config.isCiVisibility,
|
|
112
|
+
otlp_metrics_export_enabled: !!config.DD_METRICS_OTEL_ENABLED,
|
|
113
|
+
otlp_logs_export_enabled: !!config.DD_LOGS_OTEL_ENABLED,
|
|
111
114
|
}
|
|
112
115
|
}
|
|
113
116
|
|
|
@@ -31,7 +31,9 @@ function isValid (logEntry) {
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
const EOL = '\n'
|
|
34
|
-
|
|
34
|
+
// `[ \t]*` (horizontal whitespace) cannot span line terminators, so under `m` the `^`-anchored
|
|
35
|
+
// match runs once per line instead of rescanning across lines. Stack frames indent with spaces.
|
|
36
|
+
const STACK_FRAME_LINE_REGEX = /^[ \t]*at\s/gm
|
|
35
37
|
|
|
36
38
|
function sanitize (logEntry) {
|
|
37
39
|
const stack = logEntry.stack_trace
|
|
@@ -102,6 +102,21 @@ function getSegment (string, separator, index, fallback) {
|
|
|
102
102
|
return end === -1 ? string.slice(start) : string.slice(start, end)
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
+
/**
|
|
106
|
+
* Return the path portion of a request target, dropping any query string and fragment.
|
|
107
|
+
* The two scans avoid the array and substring a `split(/[?#]/)` allocates per call.
|
|
108
|
+
*
|
|
109
|
+
* @param {string} target
|
|
110
|
+
*/
|
|
111
|
+
function stripQueryAndFragment (target) {
|
|
112
|
+
let cut = target.indexOf('?')
|
|
113
|
+
const fragment = target.indexOf('#')
|
|
114
|
+
if (cut === -1 || (fragment !== -1 && fragment < cut)) {
|
|
115
|
+
cut = fragment
|
|
116
|
+
}
|
|
117
|
+
return cut === -1 ? target : target.slice(0, cut)
|
|
118
|
+
}
|
|
119
|
+
|
|
105
120
|
function calculateDDBasePath (dirname) {
|
|
106
121
|
const dirSteps = dirname.split(path.sep)
|
|
107
122
|
const packagesIndex = dirSteps.lastIndexOf('packages')
|
|
@@ -136,6 +151,7 @@ module.exports = {
|
|
|
136
151
|
isError,
|
|
137
152
|
globMatch,
|
|
138
153
|
getSegment,
|
|
154
|
+
stripQueryAndFragment,
|
|
139
155
|
ddBasePath: globalThis.__DD_ESBUILD_BASEPATH || calculateDDBasePath(__dirname),
|
|
140
156
|
normalizePluginEnvName,
|
|
141
157
|
formatKnuthRate,
|