dd-trace 3.36.0 → 3.38.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 +2 -0
- package/ext/tags.d.ts +1 -0
- package/ext/tags.js +1 -0
- package/index.d.ts +1 -0
- package/package.json +9 -6
- package/packages/datadog-esbuild/index.js +30 -25
- package/packages/datadog-instrumentations/src/body-parser.js +4 -3
- package/packages/datadog-instrumentations/src/cookie-parser.js +37 -0
- package/packages/datadog-instrumentations/src/cucumber.js +24 -4
- package/packages/datadog-instrumentations/src/express-mongo-sanitize.js +45 -0
- package/packages/datadog-instrumentations/src/express.js +3 -2
- package/packages/datadog-instrumentations/src/graphql.js +5 -0
- package/packages/datadog-instrumentations/src/helpers/hooks.js +5 -1
- package/packages/datadog-instrumentations/src/http/server.js +1 -1
- package/packages/datadog-instrumentations/src/jest.js +20 -11
- package/packages/datadog-instrumentations/src/knex.js +62 -1
- package/packages/datadog-instrumentations/src/mocha.js +19 -4
- package/packages/datadog-instrumentations/src/mongodb.js +63 -0
- package/packages/datadog-instrumentations/src/mongoose.js +140 -1
- package/packages/datadog-instrumentations/src/next.js +62 -80
- package/packages/datadog-instrumentations/src/pg.js +14 -15
- package/packages/datadog-instrumentations/src/playwright.js +26 -5
- package/packages/datadog-plugin-cucumber/src/index.js +17 -5
- package/packages/datadog-plugin-cypress/src/plugin.js +38 -8
- package/packages/datadog-plugin-jest/src/index.js +19 -4
- package/packages/datadog-plugin-jest/src/util.js +45 -2
- package/packages/datadog-plugin-memcached/src/index.js +10 -5
- package/packages/datadog-plugin-mocha/src/index.js +19 -6
- package/packages/datadog-plugin-mysql/src/index.js +2 -2
- package/packages/datadog-plugin-next/src/index.js +14 -5
- package/packages/datadog-plugin-pg/src/index.js +2 -2
- package/packages/dd-trace/src/appsec/channels.js +4 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/analyzers.js +1 -0
- package/packages/dd-trace/src/appsec/iast/analyzers/nosql-injection-mongodb-analyzer.js +166 -0
- package/packages/dd-trace/src/appsec/iast/analyzers/sql-injection-analyzer.js +21 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/unvalidated-redirect-analyzer.js +3 -3
- package/packages/dd-trace/src/appsec/iast/analyzers/vulnerability-analyzer.js +1 -2
- package/packages/dd-trace/src/appsec/iast/iast-plugin.js +4 -0
- package/packages/dd-trace/src/appsec/iast/taint-tracking/operations.js +25 -12
- package/packages/dd-trace/src/appsec/iast/taint-tracking/plugin.js +4 -4
- package/packages/dd-trace/src/appsec/iast/taint-tracking/secure-marks-generator.js +13 -0
- package/packages/dd-trace/src/appsec/iast/taint-tracking/source-types.js +2 -1
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/json-sensitive-analyzer.js +16 -0
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-handler.js +3 -4
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-regex.js +9 -0
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/index.js +13 -1
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/utils.js +169 -0
- package/packages/dd-trace/src/appsec/iast/vulnerabilities.js +1 -0
- package/packages/dd-trace/src/appsec/index.js +45 -14
- package/packages/dd-trace/src/appsec/recommended.json +549 -24
- package/packages/dd-trace/src/appsec/remote_config/capabilities.js +2 -1
- package/packages/dd-trace/src/appsec/remote_config/index.js +2 -0
- package/packages/dd-trace/src/appsec/remote_config/manager.js +11 -3
- package/packages/dd-trace/src/appsec/reporter.js +7 -5
- package/packages/dd-trace/src/appsec/telemetry.js +2 -2
- package/packages/dd-trace/src/appsec/waf/waf_context_wrapper.js +18 -5
- package/packages/dd-trace/src/appsec/waf/waf_manager.js +5 -4
- package/packages/dd-trace/src/ci-visibility/intelligent-test-runner/get-itr-configuration.js +1 -14
- package/packages/dd-trace/src/ci-visibility/intelligent-test-runner/get-skippable-suites.js +1 -13
- package/packages/dd-trace/src/config.js +8 -0
- package/packages/dd-trace/src/datastreams/processor.js +6 -2
- package/packages/dd-trace/src/format.js +9 -1
- package/packages/dd-trace/src/opentracing/propagation/text_map.js +2 -2
- package/packages/dd-trace/src/opentracing/tracer.js +0 -2
- package/packages/dd-trace/src/plugin_manager.js +4 -3
- package/packages/dd-trace/src/plugins/database.js +14 -4
- package/packages/dd-trace/src/plugins/index.js +1 -0
- package/packages/dd-trace/src/plugins/outbound.js +4 -3
- package/packages/dd-trace/src/plugins/util/ci.js +17 -0
- package/packages/dd-trace/src/plugins/util/git.js +26 -4
- package/packages/dd-trace/src/plugins/util/test.js +16 -1
- package/packages/dd-trace/src/profiling/config.js +36 -5
- package/packages/dd-trace/src/profiling/profilers/wall.js +7 -1
- package/packages/dd-trace/src/service-naming/extra-services.js +24 -0
- package/packages/dd-trace/src/telemetry/index.js +10 -1
- package/packages/dd-trace/src/telemetry/metrics.js +0 -5
|
@@ -23,7 +23,7 @@ function getStartedSpans (context) {
|
|
|
23
23
|
return context._trace.started
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
function generateLabels ({ spanId, rootSpanId, webTags, endpoint }) {
|
|
26
|
+
function generateLabels ({ context: { spanId, rootSpanId, webTags, endpoint }, timestamp }) {
|
|
27
27
|
const labels = {}
|
|
28
28
|
if (spanId) {
|
|
29
29
|
labels['span id'] = spanId
|
|
@@ -37,6 +37,8 @@ function generateLabels ({ spanId, rootSpanId, webTags, endpoint }) {
|
|
|
37
37
|
// fallback to endpoint computed when sample was taken
|
|
38
38
|
labels['trace endpoint'] = endpoint
|
|
39
39
|
}
|
|
40
|
+
// Incoming timestamps are in microseconds, we emit nanos.
|
|
41
|
+
labels['end_timestamp_ns'] = timestamp * 1000n
|
|
40
42
|
|
|
41
43
|
return labels
|
|
42
44
|
}
|
|
@@ -100,6 +102,10 @@ class NativeWallProfiler {
|
|
|
100
102
|
return this._codeHotspotsEnabled
|
|
101
103
|
}
|
|
102
104
|
|
|
105
|
+
endpointCollectionEnabled () {
|
|
106
|
+
return this._endpointCollectionEnabled
|
|
107
|
+
}
|
|
108
|
+
|
|
103
109
|
start ({ mapper } = {}) {
|
|
104
110
|
if (this._started) return
|
|
105
111
|
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
const maxExtraServices = 64
|
|
4
|
+
const extraServices = new Set()
|
|
5
|
+
|
|
6
|
+
function getExtraServices () {
|
|
7
|
+
return [...extraServices]
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
function registerExtraService (serviceName) {
|
|
11
|
+
if (serviceName && extraServices.size < maxExtraServices) {
|
|
12
|
+
extraServices.add(serviceName)
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function clear () {
|
|
17
|
+
extraServices.clear()
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
module.exports = {
|
|
21
|
+
registerExtraService,
|
|
22
|
+
getExtraServices,
|
|
23
|
+
clear
|
|
24
|
+
}
|
|
@@ -57,11 +57,20 @@ function appStarted () {
|
|
|
57
57
|
return {
|
|
58
58
|
integrations: getIntegrations(),
|
|
59
59
|
dependencies: [],
|
|
60
|
-
configuration: flatten(config),
|
|
60
|
+
configuration: flatten(formatConfig(config)),
|
|
61
61
|
additional_payload: []
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
+
function formatConfig (config) {
|
|
66
|
+
// format peerServiceMapping from an object to a string map in order for
|
|
67
|
+
// telemetry intake to accept the configuration
|
|
68
|
+
config.peerServiceMapping = config.peerServiceMapping
|
|
69
|
+
? Object.entries(config.peerServiceMapping).map(([key, value]) => `${key}:${value}`).join(',')
|
|
70
|
+
: ''
|
|
71
|
+
return config
|
|
72
|
+
}
|
|
73
|
+
|
|
65
74
|
function onBeforeExit () {
|
|
66
75
|
process.removeListener('beforeExit', onBeforeExit)
|
|
67
76
|
sendData(config, application, host, 'app-closing')
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
-
const { version } = require('../../../../package.json')
|
|
4
|
-
|
|
5
3
|
const { sendData } = require('./send-data')
|
|
6
4
|
|
|
7
5
|
function getId (type, namespace, name, tags) {
|
|
@@ -35,10 +33,7 @@ class Metric {
|
|
|
35
33
|
this.metric = common ? metric : `nodejs.${metric}`
|
|
36
34
|
this.tags = tagArray(tags)
|
|
37
35
|
if (common) {
|
|
38
|
-
this.tags.push('lib_language:nodejs')
|
|
39
36
|
this.tags.push(`version:${process.version}`)
|
|
40
|
-
} else {
|
|
41
|
-
this.tags.push(`lib_version:${version}`)
|
|
42
37
|
}
|
|
43
38
|
this.common = common
|
|
44
39
|
|