dd-trace 5.55.0 → 5.57.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 +1 -0
- package/index.d.ts +44 -2
- package/init.js +4 -1
- package/package.json +24 -23
- package/packages/datadog-core/src/utils/src/set.js +8 -10
- package/packages/datadog-esbuild/index.js +22 -0
- package/packages/datadog-instrumentations/src/cassandra-driver.js +43 -60
- package/packages/datadog-instrumentations/src/confluentinc-kafka-javascript.js +12 -12
- package/packages/datadog-instrumentations/src/cucumber.js +4 -6
- package/packages/datadog-instrumentations/src/elasticsearch.js +16 -19
- package/packages/datadog-instrumentations/src/fastify.js +91 -9
- package/packages/datadog-instrumentations/src/helpers/bundler-register.js +20 -5
- package/packages/datadog-instrumentations/src/helpers/check-require-cache.js +2 -2
- package/packages/datadog-instrumentations/src/helpers/hooks.js +1 -0
- package/packages/datadog-instrumentations/src/helpers/register.js +17 -5
- package/packages/datadog-instrumentations/src/ioredis.js +8 -13
- package/packages/datadog-instrumentations/src/iovalkey.js +10 -14
- package/packages/datadog-instrumentations/src/jest.js +423 -325
- package/packages/datadog-instrumentations/src/memcached.js +17 -24
- package/packages/datadog-instrumentations/src/mocha/main.js +7 -6
- package/packages/datadog-instrumentations/src/moleculer/client.js +9 -10
- package/packages/datadog-instrumentations/src/moleculer/server.js +12 -13
- package/packages/datadog-instrumentations/src/openai.js +30 -2
- package/packages/datadog-instrumentations/src/playwright.js +4 -1
- package/packages/datadog-instrumentations/src/prisma.js +116 -0
- package/packages/datadog-instrumentations/src/redis.js +32 -43
- package/packages/datadog-instrumentations/src/router.js +1 -1
- package/packages/datadog-instrumentations/src/sharedb.js +10 -16
- package/packages/datadog-instrumentations/src/vitest.js +4 -4
- package/packages/datadog-plugin-aws-sdk/src/base.js +6 -1
- package/packages/datadog-plugin-aws-sdk/src/services/dynamodb.js +9 -4
- package/packages/datadog-plugin-aws-sdk/src/services/kinesis.js +3 -2
- package/packages/datadog-plugin-aws-sdk/src/services/sqs.js +2 -1
- package/packages/datadog-plugin-aws-sdk/src/util.js +2 -2
- package/packages/datadog-plugin-azure-functions/src/index.js +5 -4
- package/packages/datadog-plugin-bunyan/src/index.js +2 -2
- package/packages/datadog-plugin-cassandra-driver/src/index.js +6 -2
- package/packages/datadog-plugin-confluentinc-kafka-javascript/src/batch-consumer.js +1 -1
- package/packages/datadog-plugin-confluentinc-kafka-javascript/src/consumer.js +1 -1
- package/packages/datadog-plugin-confluentinc-kafka-javascript/src/index.js +1 -1
- package/packages/datadog-plugin-confluentinc-kafka-javascript/src/producer.js +1 -1
- package/packages/datadog-plugin-cucumber/src/index.js +4 -2
- package/packages/datadog-plugin-cypress/src/cypress-plugin.js +9 -5
- package/packages/datadog-plugin-elasticsearch/src/index.js +12 -4
- package/packages/datadog-plugin-http/src/client.js +1 -0
- package/packages/datadog-plugin-http/src/server.js +2 -1
- package/packages/datadog-plugin-http2/src/client.js +1 -0
- package/packages/datadog-plugin-http2/src/server.js +1 -0
- package/packages/datadog-plugin-jest/src/index.js +4 -3
- package/packages/datadog-plugin-memcached/src/index.js +6 -2
- package/packages/datadog-plugin-mocha/src/index.js +3 -2
- package/packages/datadog-plugin-moleculer/src/client.js +15 -9
- package/packages/datadog-plugin-moleculer/src/server.js +9 -5
- package/packages/datadog-plugin-next/src/index.js +2 -1
- package/packages/datadog-plugin-openai/src/tracing.js +127 -80
- package/packages/datadog-plugin-oracledb/src/index.js +2 -1
- package/packages/datadog-plugin-pino/src/index.js +2 -2
- package/packages/datadog-plugin-prisma/src/client.js +62 -0
- package/packages/datadog-plugin-prisma/src/engine.js +81 -0
- package/packages/datadog-plugin-prisma/src/index.js +22 -0
- package/packages/datadog-plugin-protobufjs/src/schema_iterator.js +1 -1
- package/packages/datadog-plugin-redis/src/index.js +9 -3
- package/packages/datadog-plugin-router/src/index.js +1 -0
- package/packages/datadog-plugin-sharedb/src/index.js +13 -5
- package/packages/datadog-plugin-winston/src/index.js +2 -2
- package/packages/dd-trace/src/appsec/channels.js +26 -21
- package/packages/dd-trace/src/appsec/iast/analyzers/sql-injection-analyzer.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/unvalidated-redirect-analyzer.js +13 -20
- package/packages/dd-trace/src/appsec/iast/security-controls/index.js +1 -1
- package/packages/dd-trace/src/appsec/iast/taint-tracking/operations-taint-object.js +44 -1
- package/packages/dd-trace/src/appsec/iast/taint-tracking/operations.js +2 -1
- package/packages/dd-trace/src/appsec/iast/taint-tracking/plugin.js +7 -2
- package/packages/dd-trace/src/appsec/iast/taint-tracking/source-types.js +0 -1
- package/packages/dd-trace/src/appsec/index.js +28 -2
- package/packages/dd-trace/src/appsec/rasp/utils.js +0 -5
- package/packages/dd-trace/src/appsec/reporter.js +6 -4
- package/packages/dd-trace/src/baggage.js +2 -2
- package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/worker/index.js +3 -3
- package/packages/dd-trace/src/ci-visibility/early-flake-detection/get-known-tests.js +1 -1
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/coverage-writer.js +1 -1
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/di-logs-writer.js +1 -1
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/writer.js +2 -2
- package/packages/dd-trace/src/ci-visibility/exporters/git/git_metadata.js +6 -6
- package/packages/dd-trace/src/ci-visibility/intelligent-test-runner/get-skippable-suites.js +2 -3
- package/packages/dd-trace/src/ci-visibility/requests/get-library-configuration.js +3 -3
- package/packages/dd-trace/src/config.js +334 -312
- package/packages/dd-trace/src/constants.js +2 -1
- package/packages/dd-trace/src/crashtracking/crashtracker.js +12 -14
- package/packages/dd-trace/src/datastreams/context.js +1 -1
- package/packages/dd-trace/src/datastreams/processor.js +1 -1
- package/packages/dd-trace/src/datastreams/writer.js +3 -3
- package/packages/dd-trace/src/debugger/devtools_client/breakpoints.js +6 -3
- package/packages/dd-trace/src/debugger/devtools_client/condition.js +1 -1
- package/packages/dd-trace/src/debugger/devtools_client/index.js +2 -3
- package/packages/dd-trace/src/debugger/devtools_client/send.js +5 -1
- package/packages/dd-trace/src/debugger/devtools_client/state.js +7 -4
- package/packages/dd-trace/src/debugger/devtools_client/status.js +5 -1
- package/packages/dd-trace/src/dogstatsd.js +3 -3
- package/packages/dd-trace/src/exporters/agent/index.js +10 -5
- package/packages/dd-trace/src/exporters/agent/writer.js +4 -2
- package/packages/dd-trace/src/exporters/common/agent-info-exporter.js +2 -2
- package/packages/dd-trace/src/exporters/log/index.js +1 -1
- package/packages/dd-trace/src/exporters/span-stats/writer.js +2 -2
- package/packages/dd-trace/src/guardrails/index.js +3 -1
- package/packages/dd-trace/src/guardrails/telemetry.js +1 -1
- package/packages/dd-trace/src/llmobs/index.js +11 -5
- package/packages/dd-trace/src/llmobs/plugins/base.js +2 -2
- package/packages/dd-trace/src/llmobs/plugins/langchain/index.js +1 -1
- package/packages/dd-trace/src/llmobs/tagger.js +13 -13
- package/packages/dd-trace/src/llmobs/writers/base.js +2 -2
- package/packages/dd-trace/src/llmobs/writers/spans.js +2 -2
- package/packages/dd-trace/src/opentelemetry/tracer.js +1 -1
- package/packages/dd-trace/src/opentracing/propagation/text_map.js +22 -28
- package/packages/dd-trace/src/opentracing/span.js +1 -0
- package/packages/dd-trace/src/plugin_manager.js +3 -3
- package/packages/dd-trace/src/plugins/cache.js +2 -2
- package/packages/dd-trace/src/plugins/ci_plugin.js +11 -7
- package/packages/dd-trace/src/plugins/database.js +3 -1
- package/packages/dd-trace/src/plugins/index.js +1 -0
- package/packages/dd-trace/src/plugins/log_plugin.js +5 -1
- package/packages/dd-trace/src/plugins/outbound.js +8 -6
- package/packages/dd-trace/src/plugins/structured_log_plugin.js +9 -0
- package/packages/dd-trace/src/plugins/tracing.js +1 -1
- package/packages/dd-trace/src/plugins/util/ci.js +83 -30
- package/packages/dd-trace/src/plugins/util/git.js +1 -0
- package/packages/dd-trace/src/plugins/util/inferred_proxy.js +3 -2
- package/packages/dd-trace/src/plugins/util/ip_extractor.js +1 -0
- package/packages/dd-trace/src/plugins/util/tags.js +4 -1
- package/packages/dd-trace/src/plugins/util/test.js +80 -10
- package/packages/dd-trace/src/plugins/util/web.js +1 -0
- package/packages/dd-trace/src/profiler.js +0 -2
- package/packages/dd-trace/src/profiling/exporter_cli.js +1 -3
- package/packages/dd-trace/src/profiling/profilers/events.js +10 -2
- package/packages/dd-trace/src/profiling/ssi-heuristics.js +18 -126
- package/packages/dd-trace/src/proxy.js +12 -27
- package/packages/dd-trace/src/runtime_metrics/index.js +1 -1
- package/packages/dd-trace/src/runtime_metrics/runtime_metrics.js +14 -45
- package/packages/dd-trace/src/service-naming/schemas/v0/messaging.js +2 -2
- package/packages/dd-trace/src/service-naming/schemas/v0/storage.js +4 -0
- package/packages/dd-trace/src/service-naming/schemas/v1/messaging.js +2 -2
- package/packages/dd-trace/src/service-naming/schemas/v1/storage.js +4 -0
- package/packages/dd-trace/src/supported-configurations.json +13 -3
- package/packages/dd-trace/src/telemetry/telemetry.js +11 -4
- package/packages/dd-trace/src/tracer.js +11 -0
- package/packages/dd-trace/src/tracer_metadata.js +25 -0
- package/packages/dd-trace/src/util.js +11 -4
- package/version.js +3 -1
- package/packages/datadog-core/src/utils/src/get.js +0 -11
- package/packages/datadog-core/src/utils/src/has.js +0 -14
- package/packages/dd-trace/src/profiling/ssi-telemetry-mock-profiler.js +0 -30
|
@@ -43,10 +43,10 @@ function encodeValue (valueObject) {
|
|
|
43
43
|
case 'B':
|
|
44
44
|
return Buffer.isBuffer(value) ? value : Buffer.from(value)
|
|
45
45
|
default:
|
|
46
|
-
log.debug(
|
|
46
|
+
log.debug('Found unknown type while trying to create DynamoDB span pointer:', type)
|
|
47
47
|
}
|
|
48
48
|
} catch (err) {
|
|
49
|
-
log.debug(
|
|
49
|
+
log.debug('Failed to encode value while trying to create DynamoDB span pointer:', err.message)
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
|
|
@@ -19,14 +19,15 @@ class AzureFunctionsPlugin extends TracingPlugin {
|
|
|
19
19
|
static get operation () { return 'invoke' }
|
|
20
20
|
static get kind () { return 'server' }
|
|
21
21
|
static get type () { return 'serverless' }
|
|
22
|
-
|
|
23
22
|
static get prefix () { return 'tracing:datadog:azure:functions:invoke' }
|
|
24
23
|
|
|
25
24
|
bindStart (ctx) {
|
|
26
|
-
const { functionName, methodName } = ctx
|
|
25
|
+
const { functionName, methodName, httpRequest } = ctx
|
|
27
26
|
const store = storage('legacy').getStore()
|
|
28
|
-
|
|
27
|
+
// httpRequest.headers is a map
|
|
28
|
+
const childOf = this._tracer.extract('http_headers', Object.fromEntries(httpRequest.headers))
|
|
29
29
|
const span = this.startSpan(this.operationName(), {
|
|
30
|
+
childOf,
|
|
30
31
|
service: this.serviceName(),
|
|
31
32
|
type: 'serverless',
|
|
32
33
|
meta: {
|
|
@@ -52,7 +53,7 @@ class AzureFunctionsPlugin extends TracingPlugin {
|
|
|
52
53
|
const path = (new URL(httpRequest.url)).pathname
|
|
53
54
|
const req = {
|
|
54
55
|
method: httpRequest.method,
|
|
55
|
-
headers: Object.fromEntries(httpRequest.headers
|
|
56
|
+
headers: Object.fromEntries(httpRequest.headers),
|
|
56
57
|
url: path
|
|
57
58
|
}
|
|
58
59
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
-
const
|
|
3
|
+
const StructuredLogPlugin = require('../../dd-trace/src/plugins/structured_log_plugin')
|
|
4
4
|
|
|
5
|
-
class BunyanPlugin extends
|
|
5
|
+
class BunyanPlugin extends StructuredLogPlugin {
|
|
6
6
|
static get id () {
|
|
7
7
|
return 'bunyan'
|
|
8
8
|
}
|
|
@@ -8,7 +8,9 @@ class CassandraDriverPlugin extends DatabasePlugin {
|
|
|
8
8
|
static get system () { return 'cassandra' }
|
|
9
9
|
static get peerServicePrecursors () { return [CASSANDRA_CONTACT_POINTS_KEY] }
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
bindStart (ctx) {
|
|
12
|
+
let { keyspace, query, contactPoints = {} } = ctx
|
|
13
|
+
|
|
12
14
|
if (Array.isArray(query)) {
|
|
13
15
|
query = combine(query)
|
|
14
16
|
}
|
|
@@ -24,7 +26,9 @@ class CassandraDriverPlugin extends DatabasePlugin {
|
|
|
24
26
|
'cassandra.keyspace': keyspace,
|
|
25
27
|
[CASSANDRA_CONTACT_POINTS_KEY]: contactPoints.join(',') || null
|
|
26
28
|
}
|
|
27
|
-
})
|
|
29
|
+
}, ctx)
|
|
30
|
+
|
|
31
|
+
return ctx.currentStore
|
|
28
32
|
}
|
|
29
33
|
}
|
|
30
34
|
|
|
@@ -4,7 +4,7 @@ const KafkajsBatchConsumerPlugin = require('../../datadog-plugin-kafkajs/src/bat
|
|
|
4
4
|
|
|
5
5
|
class ConfluentKafkaJsBatchConsumerPlugin extends KafkajsBatchConsumerPlugin {
|
|
6
6
|
static get id () {
|
|
7
|
-
return '
|
|
7
|
+
return 'confluentinc-kafka-javascript'
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
10
|
|
|
@@ -4,7 +4,7 @@ const KafkajsConsumerPlugin = require('../../datadog-plugin-kafkajs/src/consumer
|
|
|
4
4
|
|
|
5
5
|
class ConfluentKafkaJsConsumerPlugin extends KafkajsConsumerPlugin {
|
|
6
6
|
static get id () {
|
|
7
|
-
return '
|
|
7
|
+
return 'confluentinc-kafka-javascript'
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
10
|
|
|
@@ -6,7 +6,7 @@ const BatchConsumerPlugin = require('./batch-consumer')
|
|
|
6
6
|
const KafkajsPlugin = require('../../datadog-plugin-kafkajs/src/index')
|
|
7
7
|
|
|
8
8
|
class ConfluentKafkaJsPlugin extends KafkajsPlugin {
|
|
9
|
-
static get id () { return '
|
|
9
|
+
static get id () { return 'confluentinc-kafka-javascript' }
|
|
10
10
|
static get plugins () {
|
|
11
11
|
return {
|
|
12
12
|
producer: ProducerPlugin,
|
|
@@ -4,7 +4,7 @@ const KafkajsProducerPlugin = require('../../datadog-plugin-kafkajs/src/producer
|
|
|
4
4
|
|
|
5
5
|
class ConfluentKafkaJsProducerPlugin extends KafkajsProducerPlugin {
|
|
6
6
|
static get id () {
|
|
7
|
-
return '
|
|
7
|
+
return 'confluentinc-kafka-javascript'
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
10
|
|
|
@@ -184,7 +184,8 @@ class CucumberPlugin extends CiPlugin {
|
|
|
184
184
|
[COMPONENT]: this.constructor.id,
|
|
185
185
|
...this.testEnvironmentMetadata,
|
|
186
186
|
...testSuiteMetadata
|
|
187
|
-
}
|
|
187
|
+
},
|
|
188
|
+
integrationName: this.constructor.id
|
|
188
189
|
})
|
|
189
190
|
this.testSuiteSpanByPath[testSuitePath] = testSuiteSpan
|
|
190
191
|
|
|
@@ -295,7 +296,8 @@ class CucumberPlugin extends CiPlugin {
|
|
|
295
296
|
[COMPONENT]: this.constructor.id,
|
|
296
297
|
'cucumber.step': resource,
|
|
297
298
|
[RESOURCE_NAME]: resource
|
|
298
|
-
}
|
|
299
|
+
},
|
|
300
|
+
integrationName: this.constructor.id
|
|
299
301
|
})
|
|
300
302
|
ctx.parentStore = store
|
|
301
303
|
ctx.currentStore = { ...store, span }
|
|
@@ -376,7 +376,8 @@ class CypressPlugin {
|
|
|
376
376
|
[COMPONENT]: TEST_FRAMEWORK_NAME,
|
|
377
377
|
...this.testEnvironmentMetadata,
|
|
378
378
|
...testSuiteSpanMetadata
|
|
379
|
-
}
|
|
379
|
+
},
|
|
380
|
+
integrationName: TEST_FRAMEWORK_NAME
|
|
380
381
|
})
|
|
381
382
|
}
|
|
382
383
|
|
|
@@ -443,7 +444,8 @@ class CypressPlugin {
|
|
|
443
444
|
...testSpanMetadata,
|
|
444
445
|
...this.testEnvironmentMetadata,
|
|
445
446
|
...testSuiteTags
|
|
446
|
-
}
|
|
447
|
+
},
|
|
448
|
+
integrationName: TEST_FRAMEWORK_NAME
|
|
447
449
|
})
|
|
448
450
|
}
|
|
449
451
|
|
|
@@ -550,7 +552,7 @@ class CypressPlugin {
|
|
|
550
552
|
[TEST_SESSION_NAME]: testSessionName
|
|
551
553
|
}
|
|
552
554
|
}
|
|
553
|
-
const libraryCapabilitiesTags = getLibraryCapabilitiesTags(this.constructor.id)
|
|
555
|
+
const libraryCapabilitiesTags = getLibraryCapabilitiesTags(this.constructor.id, false, this.frameworkVersion)
|
|
554
556
|
metadataTags.test = {
|
|
555
557
|
...metadataTags.test,
|
|
556
558
|
...libraryCapabilitiesTags
|
|
@@ -565,7 +567,8 @@ class CypressPlugin {
|
|
|
565
567
|
[COMPONENT]: TEST_FRAMEWORK_NAME,
|
|
566
568
|
...this.testEnvironmentMetadata,
|
|
567
569
|
...testSessionSpanMetadata
|
|
568
|
-
}
|
|
570
|
+
},
|
|
571
|
+
integrationName: TEST_FRAMEWORK_NAME
|
|
569
572
|
})
|
|
570
573
|
this.ciVisEvent(TELEMETRY_EVENT_CREATED, 'session')
|
|
571
574
|
|
|
@@ -575,7 +578,8 @@ class CypressPlugin {
|
|
|
575
578
|
[COMPONENT]: TEST_FRAMEWORK_NAME,
|
|
576
579
|
...this.testEnvironmentMetadata,
|
|
577
580
|
...testModuleSpanMetadata
|
|
578
|
-
}
|
|
581
|
+
},
|
|
582
|
+
integrationName: TEST_FRAMEWORK_NAME
|
|
579
583
|
})
|
|
580
584
|
this.ciVisEvent(TELEMETRY_EVENT_CREATED, 'module')
|
|
581
585
|
|
|
@@ -5,7 +5,9 @@ const DatabasePlugin = require('../../dd-trace/src/plugins/database')
|
|
|
5
5
|
class ElasticsearchPlugin extends DatabasePlugin {
|
|
6
6
|
static get id () { return 'elasticsearch' }
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
bindStart (ctx) {
|
|
9
|
+
const { params } = ctx
|
|
10
|
+
|
|
9
11
|
const body = getBody(params.body || params.bulkBody)
|
|
10
12
|
|
|
11
13
|
this.startSpan(this.operationName(), {
|
|
@@ -20,13 +22,19 @@ class ElasticsearchPlugin extends DatabasePlugin {
|
|
|
20
22
|
[`${this.system}.body`]: body,
|
|
21
23
|
[`${this.system}.params`]: JSON.stringify(params.querystring || params.query)
|
|
22
24
|
}
|
|
23
|
-
})
|
|
25
|
+
}, ctx)
|
|
26
|
+
|
|
27
|
+
return ctx.currentStore
|
|
24
28
|
}
|
|
25
29
|
|
|
26
|
-
|
|
30
|
+
bindFinish (ctx) {
|
|
31
|
+
const { params } = ctx
|
|
32
|
+
|
|
27
33
|
const span = this.activeSpan
|
|
28
34
|
this.config.hooks.query(span, params)
|
|
29
|
-
super.finish(
|
|
35
|
+
super.finish(ctx)
|
|
36
|
+
|
|
37
|
+
return ctx.parentStore
|
|
30
38
|
}
|
|
31
39
|
}
|
|
32
40
|
|
|
@@ -38,6 +38,7 @@ class HttpClientPlugin extends ClientPlugin {
|
|
|
38
38
|
// TODO delegate to super.startspan
|
|
39
39
|
const span = this.startSpan(this.operationName(), {
|
|
40
40
|
childOf,
|
|
41
|
+
integrationName: this.constructor.id,
|
|
41
42
|
meta: {
|
|
42
43
|
[COMPONENT]: this.constructor.id,
|
|
43
44
|
'span.kind': 'client',
|
|
@@ -27,13 +27,14 @@ class HttpServerPlugin extends ServerPlugin {
|
|
|
27
27
|
this.tracer,
|
|
28
28
|
{
|
|
29
29
|
...this.config,
|
|
30
|
-
service: this.config.service || this.serviceName()
|
|
30
|
+
service: this.config.service || this.serviceName(),
|
|
31
31
|
},
|
|
32
32
|
req,
|
|
33
33
|
res,
|
|
34
34
|
this.operationName()
|
|
35
35
|
)
|
|
36
36
|
span.setTag(COMPONENT, this.constructor.id)
|
|
37
|
+
span._integrationName = this.constructor.id
|
|
37
38
|
|
|
38
39
|
this._parentStore = store
|
|
39
40
|
this.enter(span, { ...store, req, res })
|
|
@@ -40,6 +40,7 @@ class Http2ClientPlugin extends ClientPlugin {
|
|
|
40
40
|
const childOf = store && allowed ? store.span : null
|
|
41
41
|
const span = this.startSpan(this.operationName(), {
|
|
42
42
|
childOf,
|
|
43
|
+
integrationName: this.constructor.id,
|
|
43
44
|
meta: {
|
|
44
45
|
[COMPONENT]: this.constructor.id,
|
|
45
46
|
[SPAN_KIND]: CLIENT,
|
|
@@ -252,7 +252,8 @@ class JestPlugin extends CiPlugin {
|
|
|
252
252
|
[COMPONENT]: this.constructor.id,
|
|
253
253
|
...this.testEnvironmentMetadata,
|
|
254
254
|
...testSuiteMetadata
|
|
255
|
-
}
|
|
255
|
+
},
|
|
256
|
+
integrationName: this.constructor.id
|
|
256
257
|
})
|
|
257
258
|
this.telemetry.ciVisEvent(TELEMETRY_EVENT_CREATED, 'suite')
|
|
258
259
|
if (_ddTestCodeCoverageEnabled) {
|
|
@@ -318,11 +319,11 @@ class JestPlugin extends CiPlugin {
|
|
|
318
319
|
* because this subscription happens in a different process from the one
|
|
319
320
|
* fetching the ITR config.
|
|
320
321
|
*/
|
|
321
|
-
this.addSub('ci:jest:test-suite:code-coverage', ({ coverageFiles, testSuite }) => {
|
|
322
|
+
this.addSub('ci:jest:test-suite:code-coverage', ({ coverageFiles, testSuite, mockedFiles }) => {
|
|
322
323
|
if (!coverageFiles.length) {
|
|
323
324
|
this.telemetry.count(TELEMETRY_CODE_COVERAGE_EMPTY)
|
|
324
325
|
}
|
|
325
|
-
const files = [...coverageFiles, testSuite]
|
|
326
|
+
const files = [...coverageFiles, ...mockedFiles, testSuite]
|
|
326
327
|
|
|
327
328
|
const { _traceId, _spanId } = this.testSuiteSpan.context()
|
|
328
329
|
const formattedCoverage = {
|
|
@@ -6,7 +6,9 @@ const CachePlugin = require('../../dd-trace/src/plugins/cache')
|
|
|
6
6
|
class MemcachedPlugin extends CachePlugin {
|
|
7
7
|
static get id () { return 'memcached' }
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
bindStart (ctx) {
|
|
10
|
+
const { client, server, query } = ctx
|
|
11
|
+
|
|
10
12
|
const address = getAddress(client, server, query)
|
|
11
13
|
|
|
12
14
|
const meta = {
|
|
@@ -23,7 +25,9 @@ class MemcachedPlugin extends CachePlugin {
|
|
|
23
25
|
resource: query.type,
|
|
24
26
|
type: 'memcached',
|
|
25
27
|
meta
|
|
26
|
-
})
|
|
28
|
+
}, ctx)
|
|
29
|
+
|
|
30
|
+
return ctx.currentStore
|
|
27
31
|
}
|
|
28
32
|
}
|
|
29
33
|
|
|
@@ -152,7 +152,8 @@ class MochaPlugin extends CiPlugin {
|
|
|
152
152
|
[COMPONENT]: this.constructor.id,
|
|
153
153
|
...this.testEnvironmentMetadata,
|
|
154
154
|
...testSuiteMetadata
|
|
155
|
-
}
|
|
155
|
+
},
|
|
156
|
+
integrationName: this.constructor.id
|
|
156
157
|
})
|
|
157
158
|
this.telemetry.ciVisEvent(TELEMETRY_EVENT_CREATED, 'suite')
|
|
158
159
|
if (this.libraryConfig?.isCodeCoverageEnabled) {
|
|
@@ -450,7 +451,7 @@ class MochaPlugin extends CiPlugin {
|
|
|
450
451
|
const testSuite = span.meta[TEST_SUITE]
|
|
451
452
|
const testSuiteSpan = this._testSuites.get(testSuite)
|
|
452
453
|
if (!testSuiteSpan) {
|
|
453
|
-
log.warn(
|
|
454
|
+
log.warn('Test suite span not found for test span with test suite', testSuite)
|
|
454
455
|
return formattedSpan
|
|
455
456
|
}
|
|
456
457
|
const suiteTags = getTestSuiteLevelVisibilityTags(testSuiteSpan)
|
|
@@ -7,29 +7,35 @@ class MoleculerClientPlugin extends ClientPlugin {
|
|
|
7
7
|
static get id () { return 'moleculer' }
|
|
8
8
|
static get operation () { return 'call' }
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
bindStart (ctx) {
|
|
11
|
+
const { actionName, opts } = ctx
|
|
12
|
+
|
|
11
13
|
const span = this.startSpan(this.operationName(), {
|
|
12
14
|
service: this.config.service || this.serviceName(),
|
|
13
15
|
resource: actionName,
|
|
14
16
|
kind: 'client'
|
|
15
|
-
})
|
|
17
|
+
}, ctx)
|
|
16
18
|
|
|
17
19
|
this.tracer.inject(span, 'text_map', opts.meta)
|
|
20
|
+
|
|
21
|
+
return ctx.currentStore
|
|
18
22
|
}
|
|
19
23
|
|
|
20
|
-
finish (
|
|
21
|
-
const
|
|
24
|
+
finish (ctx) {
|
|
25
|
+
const { promiseCtx, broker } = ctx
|
|
26
|
+
|
|
27
|
+
const span = ctx.currentStore.span || this.activeSpan
|
|
22
28
|
|
|
23
|
-
if (
|
|
24
|
-
const endpoint =
|
|
29
|
+
if (promiseCtx) {
|
|
30
|
+
const endpoint = promiseCtx.endpoint || {}
|
|
25
31
|
const node = endpoint.node || {}
|
|
26
32
|
|
|
27
|
-
this.addHost(node.hostname, node.port)
|
|
33
|
+
this.addHost({ hostname: node.hostname, port: node.port })
|
|
28
34
|
|
|
29
|
-
span.addTags(moleculerTags(broker,
|
|
35
|
+
span.addTags(moleculerTags(broker, promiseCtx, this.config))
|
|
30
36
|
}
|
|
31
37
|
|
|
32
|
-
super.finish()
|
|
38
|
+
super.finish(ctx)
|
|
33
39
|
}
|
|
34
40
|
}
|
|
35
41
|
|
|
@@ -7,19 +7,23 @@ class MoleculerServerPlugin extends ServerPlugin {
|
|
|
7
7
|
static get id () { return 'moleculer' }
|
|
8
8
|
static get operation () { return 'action' }
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
const
|
|
10
|
+
bindStart (ctx) {
|
|
11
|
+
const { action, middlewareCtx, broker } = ctx
|
|
12
|
+
|
|
13
|
+
const followsFrom = this.tracer.extract('text_map', middlewareCtx.meta)
|
|
12
14
|
this.startSpan(this.operationName(), {
|
|
13
|
-
childOf: followsFrom || this.activeSpan,
|
|
15
|
+
childOf: followsFrom || ctx?.currentStore?.span || this.activeSpan,
|
|
14
16
|
service: this.config.service || this.serviceName(),
|
|
15
17
|
resource: action.name,
|
|
16
18
|
kind: 'server',
|
|
17
19
|
type: 'web',
|
|
18
20
|
meta: {
|
|
19
21
|
'resource.name': action.name,
|
|
20
|
-
...moleculerTags(broker,
|
|
22
|
+
...moleculerTags(broker, middlewareCtx, this.config)
|
|
21
23
|
}
|
|
22
|
-
})
|
|
24
|
+
}, ctx)
|
|
25
|
+
|
|
26
|
+
return ctx.currentStore
|
|
23
27
|
}
|
|
24
28
|
}
|
|
25
29
|
|