dd-trace 2.32.0 → 2.34.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/index.d.ts +8 -1
- package/package.json +4 -3
- package/packages/datadog-instrumentations/src/helpers/register.js +4 -0
- package/packages/datadog-instrumentations/src/jest.js +20 -17
- package/packages/datadog-instrumentations/src/mocha.js +8 -4
- package/packages/datadog-instrumentations/src/next.js +6 -1
- package/packages/datadog-instrumentations/src/pg.js +3 -4
- package/packages/datadog-instrumentations/src/playwright.js +11 -1
- package/packages/datadog-plugin-amqp10/src/consumer.js +3 -1
- package/packages/datadog-plugin-amqp10/src/producer.js +3 -1
- package/packages/datadog-plugin-amqplib/src/client.js +3 -4
- package/packages/datadog-plugin-amqplib/src/consumer.js +3 -1
- package/packages/datadog-plugin-amqplib/src/producer.js +3 -1
- package/packages/datadog-plugin-aws-sdk/src/base.js +3 -0
- package/packages/datadog-plugin-aws-sdk/src/services/cloudwatchlogs.js +2 -1
- package/packages/datadog-plugin-aws-sdk/src/services/dynamodb.js +4 -2
- package/packages/datadog-plugin-aws-sdk/src/services/eventbridge.js +4 -3
- package/packages/datadog-plugin-aws-sdk/src/services/kinesis.js +2 -1
- package/packages/datadog-plugin-aws-sdk/src/services/lambda.js +1 -0
- package/packages/datadog-plugin-aws-sdk/src/services/redshift.js +2 -1
- package/packages/datadog-plugin-aws-sdk/src/services/s3.js +2 -1
- package/packages/datadog-plugin-aws-sdk/src/services/sns.js +8 -1
- package/packages/datadog-plugin-aws-sdk/src/services/sqs.js +7 -1
- package/packages/datadog-plugin-google-cloud-pubsub/src/client.js +3 -4
- package/packages/datadog-plugin-google-cloud-pubsub/src/consumer.js +3 -1
- package/packages/datadog-plugin-google-cloud-pubsub/src/producer.js +3 -1
- package/packages/datadog-plugin-http/src/client.js +2 -1
- package/packages/datadog-plugin-http2/src/client.js +2 -1
- package/packages/datadog-plugin-jest/src/util.js +10 -1
- package/packages/datadog-plugin-kafkajs/src/consumer.js +6 -1
- package/packages/datadog-plugin-kafkajs/src/producer.js +3 -1
- package/packages/datadog-plugin-pg/src/index.js +5 -5
- package/packages/datadog-plugin-rhea/src/consumer.js +3 -1
- package/packages/datadog-plugin-rhea/src/producer.js +5 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/command-injection-analyzer.js +2 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/ldap-injection-analyzer.js +2 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/path-traversal-analyzer.js +22 -5
- package/packages/dd-trace/src/appsec/iast/analyzers/sql-injection-analyzer.js +40 -4
- package/packages/dd-trace/src/appsec/iast/analyzers/weak-cipher-analyzer.js +2 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/weak-hash-analyzer.js +2 -1
- package/packages/dd-trace/src/appsec/iast/index.js +1 -1
- package/packages/dd-trace/src/appsec/iast/path-line.js +2 -1
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/range-utils.js +37 -0
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/command-sensitive-analyzer.js +29 -0
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/ldap-sensitive-analyzer.js +35 -0
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/sql-sensitive-analyzer.js +95 -0
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-handler.js +144 -0
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/index.js +113 -0
- package/packages/dd-trace/src/appsec/iast/vulnerabilities.js +8 -0
- package/packages/dd-trace/src/appsec/iast/vulnerability-reporter.js +4 -76
- package/packages/dd-trace/src/config.js +59 -25
- package/packages/dd-trace/src/constants.js +3 -1
- package/packages/dd-trace/src/encode/agentless-ci-visibility.js +14 -4
- package/packages/dd-trace/src/git_metadata_tagger.js +17 -0
- package/packages/dd-trace/src/git_properties.js +32 -0
- package/packages/dd-trace/src/plugin_manager.js +0 -2
- package/packages/dd-trace/src/plugins/client.js +2 -3
- package/packages/dd-trace/src/plugins/consumer.js +2 -17
- package/packages/dd-trace/src/plugins/incoming.js +7 -0
- package/packages/dd-trace/src/plugins/{outbound.js → outgoing.js} +2 -2
- package/packages/dd-trace/src/plugins/producer.js +2 -17
- package/packages/dd-trace/src/plugins/server.js +2 -2
- package/packages/dd-trace/src/plugins/tracing.js +0 -11
- package/packages/dd-trace/src/plugins/util/ci.js +62 -7
- package/packages/dd-trace/src/plugins/util/tags.js +5 -1
- package/packages/dd-trace/src/plugins/util/test.js +34 -17
- package/packages/dd-trace/src/profiling/constants.js +0 -1
- package/packages/dd-trace/src/profiling/profilers/space.js +1 -3
- package/packages/dd-trace/src/proxy.js +4 -0
- package/packages/dd-trace/src/serverless.js +25 -0
- package/packages/dd-trace/src/span_processor.js +3 -0
- package/packages/dd-trace/src/telemetry/send-data.js +13 -3
- package/packages/dd-trace/src/tracer.js +3 -2
- package/version.js +9 -0
- package/packages/dd-trace/src/plugins/inbound.js +0 -7
- package/packages/dd-trace/src/service-naming/index.js +0 -41
- package/packages/dd-trace/src/service-naming/schemas/definition.js +0 -28
- package/packages/dd-trace/src/service-naming/schemas/index.js +0 -6
- package/packages/dd-trace/src/service-naming/schemas/v0.js +0 -66
- package/packages/dd-trace/src/service-naming/schemas/v1.js +0 -58
|
@@ -50,12 +50,10 @@ const CI_APP_ORIGIN = 'ciapp-test'
|
|
|
50
50
|
const JEST_TEST_RUNNER = 'test.jest.test_runner'
|
|
51
51
|
|
|
52
52
|
const TEST_ITR_TESTS_SKIPPED = '_dd.ci.itr.tests_skipped'
|
|
53
|
-
const
|
|
54
|
-
const
|
|
55
|
-
const TEST_MODULE_ITR_SKIPPING_ENABLED = 'test_module.itr.tests_skipping.enabled'
|
|
56
|
-
const TEST_MODULE_CODE_COVERAGE_ENABLED = 'test_module.code_coverage.enabled'
|
|
53
|
+
const TEST_ITR_SKIPPING_ENABLED = 'test.itr.tests_skipping.enabled'
|
|
54
|
+
const TEST_CODE_COVERAGE_ENABLED = 'test.code_coverage.enabled'
|
|
57
55
|
|
|
58
|
-
const
|
|
56
|
+
const TEST_CODE_COVERAGE_LINES_PCT = 'test.code_coverage.lines_pct'
|
|
59
57
|
|
|
60
58
|
// jest worker variables
|
|
61
59
|
const JEST_WORKER_TRACE_PAYLOAD_CODE = 60
|
|
@@ -97,17 +95,16 @@ module.exports = {
|
|
|
97
95
|
TEST_SUITE_ID,
|
|
98
96
|
TEST_ITR_TESTS_SKIPPED,
|
|
99
97
|
TEST_MODULE,
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
TEST_MODULE_CODE_COVERAGE_ENABLED,
|
|
104
|
-
TEST_CODE_COVERAGE_LINES_TOTAL,
|
|
98
|
+
TEST_ITR_SKIPPING_ENABLED,
|
|
99
|
+
TEST_CODE_COVERAGE_ENABLED,
|
|
100
|
+
TEST_CODE_COVERAGE_LINES_PCT,
|
|
105
101
|
addIntelligentTestRunnerSpanTags,
|
|
106
102
|
getCoveredFilenamesFromCoverage,
|
|
107
103
|
resetCoverage,
|
|
108
104
|
mergeCoverage,
|
|
109
105
|
fromCoverageMapToCoverage,
|
|
110
|
-
getTestLineStart
|
|
106
|
+
getTestLineStart,
|
|
107
|
+
getCallSites
|
|
111
108
|
}
|
|
112
109
|
|
|
113
110
|
// Returns pkg manager and its version, separated by '-', e.g. npm-8.15.0 or yarn-1.22.19
|
|
@@ -316,17 +313,17 @@ function addIntelligentTestRunnerSpanTags (
|
|
|
316
313
|
{ isSuitesSkipped, isSuitesSkippingEnabled, isCodeCoverageEnabled, testCodeCoverageLinesTotal }
|
|
317
314
|
) {
|
|
318
315
|
testSessionSpan.setTag(TEST_ITR_TESTS_SKIPPED, isSuitesSkipped ? 'true' : 'false')
|
|
319
|
-
testSessionSpan.setTag(
|
|
320
|
-
testSessionSpan.setTag(
|
|
316
|
+
testSessionSpan.setTag(TEST_ITR_SKIPPING_ENABLED, isSuitesSkippingEnabled ? 'true' : 'false')
|
|
317
|
+
testSessionSpan.setTag(TEST_CODE_COVERAGE_ENABLED, isCodeCoverageEnabled ? 'true' : 'false')
|
|
321
318
|
|
|
322
319
|
testModuleSpan.setTag(TEST_ITR_TESTS_SKIPPED, isSuitesSkipped ? 'true' : 'false')
|
|
323
|
-
testModuleSpan.setTag(
|
|
324
|
-
testModuleSpan.setTag(
|
|
320
|
+
testModuleSpan.setTag(TEST_ITR_SKIPPING_ENABLED, isSuitesSkippingEnabled ? 'true' : 'false')
|
|
321
|
+
testModuleSpan.setTag(TEST_CODE_COVERAGE_ENABLED, isCodeCoverageEnabled ? 'true' : 'false')
|
|
325
322
|
|
|
326
323
|
// If suites have been skipped we don't want to report the total coverage, as it will be wrong
|
|
327
324
|
if (testCodeCoverageLinesTotal !== undefined && !isSuitesSkipped) {
|
|
328
|
-
testSessionSpan.setTag(
|
|
329
|
-
testModuleSpan.setTag(
|
|
325
|
+
testSessionSpan.setTag(TEST_CODE_COVERAGE_LINES_PCT, testCodeCoverageLinesTotal)
|
|
326
|
+
testModuleSpan.setTag(TEST_CODE_COVERAGE_LINES_PCT, testCodeCoverageLinesTotal)
|
|
330
327
|
}
|
|
331
328
|
}
|
|
332
329
|
|
|
@@ -399,3 +396,23 @@ function getTestLineStart (err, testSuitePath) {
|
|
|
399
396
|
return null
|
|
400
397
|
}
|
|
401
398
|
}
|
|
399
|
+
|
|
400
|
+
// From https://github.com/felixge/node-stack-trace/blob/ba06dcdb50d465cd440d84a563836e293b360427/index.js#L1
|
|
401
|
+
function getCallSites () {
|
|
402
|
+
const oldLimit = Error.stackTraceLimit
|
|
403
|
+
Error.stackTraceLimit = Infinity
|
|
404
|
+
|
|
405
|
+
const dummy = {}
|
|
406
|
+
|
|
407
|
+
const v8Handler = Error.prepareStackTrace
|
|
408
|
+
Error.prepareStackTrace = function (_, v8StackTrace) {
|
|
409
|
+
return v8StackTrace
|
|
410
|
+
}
|
|
411
|
+
Error.captureStackTrace(dummy)
|
|
412
|
+
|
|
413
|
+
const v8StackTrace = dummy.stack
|
|
414
|
+
Error.prepareStackTrace = v8Handler
|
|
415
|
+
Error.stackTraceLimit = oldLimit
|
|
416
|
+
|
|
417
|
+
return v8StackTrace
|
|
418
|
+
}
|
|
@@ -3,9 +3,7 @@
|
|
|
3
3
|
const { oomExportStrategies } = require('../constants')
|
|
4
4
|
|
|
5
5
|
function strategiesToCallbackMode (strategies, callbackMode) {
|
|
6
|
-
|
|
7
|
-
const hasCallback = strategies.includes(oomExportStrategies.ASYNC_CALLBACK) ? callbackMode.Async : 0
|
|
8
|
-
return hasInterrupt | hasCallback
|
|
6
|
+
return strategies.includes(oomExportStrategies.ASYNC_CALLBACK) ? callbackMode.Async : 0
|
|
9
7
|
}
|
|
10
8
|
|
|
11
9
|
class NativeSpaceProfiler {
|
|
@@ -30,6 +30,10 @@ class Tracer extends NoopProxy {
|
|
|
30
30
|
remoteConfig.enable(config)
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
+
if (config.isGCPFunction) {
|
|
34
|
+
require('./serverless').maybeStartServerlessMiniAgent()
|
|
35
|
+
}
|
|
36
|
+
|
|
33
37
|
if (config.profiling.enabled) {
|
|
34
38
|
// do not stop tracer initialization if the profiler fails to be imported
|
|
35
39
|
try {
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
function maybeStartServerlessMiniAgent () {
|
|
4
|
+
let rustBinaryPath =
|
|
5
|
+
'/workspace/node_modules/@datadog/sma/datadog-serverless-agent-linux-amd64/datadog-serverless-trace-mini-agent'
|
|
6
|
+
if (process.env.DD_MINI_AGENT_PATH !== undefined) {
|
|
7
|
+
rustBinaryPath = process.env.DD_MINI_AGENT_PATH
|
|
8
|
+
}
|
|
9
|
+
const log = require('./log')
|
|
10
|
+
const fs = require('fs')
|
|
11
|
+
|
|
12
|
+
// trying to spawn with an invalid path will return a non-descriptive error, so we want to catch
|
|
13
|
+
// invalid paths and log our own error.
|
|
14
|
+
if (!fs.existsSync(rustBinaryPath)) {
|
|
15
|
+
log.error('Serverless Mini Agent did not start. Could not find mini agent binary.')
|
|
16
|
+
return
|
|
17
|
+
}
|
|
18
|
+
try {
|
|
19
|
+
require('child_process').spawn(rustBinaryPath, { stdio: 'inherit' })
|
|
20
|
+
} catch (err) {
|
|
21
|
+
log.error(`Error spawning mini agent process: ${err}`)
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
module.exports = { maybeStartServerlessMiniAgent }
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
const log = require('./log')
|
|
4
4
|
const format = require('./format')
|
|
5
5
|
const SpanSampler = require('./span_sampler')
|
|
6
|
+
const GitMetadataTagger = require('./git_metadata_tagger')
|
|
6
7
|
|
|
7
8
|
const { SpanStatsProcessor } = require('./span_stats')
|
|
8
9
|
|
|
@@ -18,6 +19,7 @@ class SpanProcessor {
|
|
|
18
19
|
|
|
19
20
|
this._stats = new SpanStatsProcessor(config)
|
|
20
21
|
this._spanSampler = new SpanSampler(config.sampler)
|
|
22
|
+
this._gitMetadataTagger = new GitMetadataTagger(config)
|
|
21
23
|
}
|
|
22
24
|
|
|
23
25
|
process (span) {
|
|
@@ -32,6 +34,7 @@ class SpanProcessor {
|
|
|
32
34
|
if (started.length === finished.length || finished.length >= flushMinSpans) {
|
|
33
35
|
this._prioritySampler.sample(spanContext)
|
|
34
36
|
this._spanSampler.sample(spanContext)
|
|
37
|
+
this._gitMetadataTagger.tagGitMetadata(spanContext)
|
|
35
38
|
|
|
36
39
|
for (const span of started) {
|
|
37
40
|
if (span._duration !== undefined) {
|
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
const request = require('../exporters/common/request')
|
|
2
2
|
let seqId = 0
|
|
3
|
+
|
|
4
|
+
function getPayload (payload) {
|
|
5
|
+
// Some telemetry endpoints payloads accept collections of elements such as the 'logs' endpoint.
|
|
6
|
+
// 'logs' request type payload is meant to send library logs to Datadog’s backend.
|
|
7
|
+
if (Array.isArray(payload)) {
|
|
8
|
+
return payload
|
|
9
|
+
} else {
|
|
10
|
+
const { logger, tags, serviceMapping, ...trimmedPayload } = payload
|
|
11
|
+
return trimmedPayload
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
3
15
|
function sendData (config, application, host, reqType, payload = {}) {
|
|
4
16
|
const {
|
|
5
17
|
hostname,
|
|
@@ -7,8 +19,6 @@ function sendData (config, application, host, reqType, payload = {}) {
|
|
|
7
19
|
url
|
|
8
20
|
} = config
|
|
9
21
|
|
|
10
|
-
const { logger, tags, serviceMapping, ...trimmedPayload } = payload
|
|
11
|
-
|
|
12
22
|
const options = {
|
|
13
23
|
url,
|
|
14
24
|
hostname,
|
|
@@ -27,7 +37,7 @@ function sendData (config, application, host, reqType, payload = {}) {
|
|
|
27
37
|
tracer_time: Math.floor(Date.now() / 1000),
|
|
28
38
|
runtime_id: config.tags['runtime-id'],
|
|
29
39
|
seq_id: ++seqId,
|
|
30
|
-
payload:
|
|
40
|
+
payload: getPayload(payload),
|
|
31
41
|
application,
|
|
32
42
|
host
|
|
33
43
|
})
|
|
@@ -7,6 +7,7 @@ const { storage } = require('../../datadog-core')
|
|
|
7
7
|
const { isError } = require('./util')
|
|
8
8
|
const { setStartupLogConfig } = require('./startup-log')
|
|
9
9
|
const { ERROR_MESSAGE, ERROR_TYPE, ERROR_STACK } = require('../../dd-trace/src/constants')
|
|
10
|
+
const { MAJOR } = require('../../../version')
|
|
10
11
|
|
|
11
12
|
const SPAN_TYPE = tags.SPAN_TYPE
|
|
12
13
|
const RESOURCE_NAME = tags.RESOURCE_NAME
|
|
@@ -26,7 +27,7 @@ class DatadogTracer extends Tracer {
|
|
|
26
27
|
childOf: this.scope().active()
|
|
27
28
|
}, options)
|
|
28
29
|
|
|
29
|
-
if (!options.childOf && options.orphanable === false) {
|
|
30
|
+
if (!options.childOf && options.orphanable === false && MAJOR < 4) {
|
|
30
31
|
return fn(null, () => {})
|
|
31
32
|
}
|
|
32
33
|
|
|
@@ -81,7 +82,7 @@ class DatadogTracer extends Tracer {
|
|
|
81
82
|
optionsObj = optionsObj.apply(this, arguments)
|
|
82
83
|
}
|
|
83
84
|
|
|
84
|
-
if (optionsObj && optionsObj.orphanable === false && !tracer.scope().active()) {
|
|
85
|
+
if (optionsObj && optionsObj.orphanable === false && !tracer.scope().active() && MAJOR < 4) {
|
|
85
86
|
return fn.apply(this, arguments)
|
|
86
87
|
}
|
|
87
88
|
|
package/version.js
ADDED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
const { schemaDefinitions } = require('./schemas')
|
|
2
|
-
|
|
3
|
-
const kindMap = {
|
|
4
|
-
messaging: {
|
|
5
|
-
client: 'controlPlane',
|
|
6
|
-
consumer: 'inbound',
|
|
7
|
-
producer: 'outbound'
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
class SchemaManager {
|
|
12
|
-
constructor () {
|
|
13
|
-
this.schemas = schemaDefinitions
|
|
14
|
-
this.config = { spanAttributeSchema: 'v0' }
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
get schema () {
|
|
18
|
-
return this.schemas[this.version]
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
get version () {
|
|
22
|
-
return this.config.spanAttributeSchema
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
opName (type, kind, plugin, opNameArgs) {
|
|
26
|
-
return this.schema.getOpName(type, kindMap[type][kind], plugin, opNameArgs)
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
serviceName (type, kind, plugin, serviceNameArgs) {
|
|
30
|
-
return this.schema.getServiceName(type, kindMap[type][kind], plugin, serviceNameArgs)
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
configure (config = {}) {
|
|
34
|
-
this.config = config
|
|
35
|
-
Object.values(this.schemas).forEach(schemaDef => {
|
|
36
|
-
schemaDef.configure(config)
|
|
37
|
-
})
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
module.exports = new SchemaManager()
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
class SchemaDefinition {
|
|
2
|
-
constructor (schema) {
|
|
3
|
-
this.schema = schema
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
getSchemaItem (type, subType, plugin) {
|
|
7
|
-
const schema = this.schema
|
|
8
|
-
if (schema && schema[type] && schema[type][subType] && schema[type][subType][plugin]) {
|
|
9
|
-
return schema[type][subType][plugin]
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
getOpName (type, subType, plugin, opNameArgs) {
|
|
14
|
-
const item = this.getSchemaItem(type, subType, plugin)
|
|
15
|
-
return item.opName(opNameArgs)
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
getServiceName (type, subType, plugin, serviceNameArgs) {
|
|
19
|
-
const item = this.getSchemaItem(type, subType, plugin)
|
|
20
|
-
return item.serviceName(this.service, serviceNameArgs)
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
configure ({ service }) {
|
|
24
|
-
this.service = service
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
module.exports = SchemaDefinition
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
const SchemaDefinition = require('./definition')
|
|
2
|
-
|
|
3
|
-
function amqpServiceName (service) {
|
|
4
|
-
return `${service}-amqp`
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
const schema = {
|
|
8
|
-
messaging: {
|
|
9
|
-
outbound: {
|
|
10
|
-
amqplib: {
|
|
11
|
-
opName: () => 'amqp.command',
|
|
12
|
-
serviceName: amqpServiceName
|
|
13
|
-
},
|
|
14
|
-
amqp10: {
|
|
15
|
-
opName: () => 'amqp.send',
|
|
16
|
-
serviceName: amqpServiceName
|
|
17
|
-
},
|
|
18
|
-
'google-cloud-pubsub': {
|
|
19
|
-
opName: () => 'pubsub.request',
|
|
20
|
-
serviceName: service => `${service}-pubsub`
|
|
21
|
-
},
|
|
22
|
-
kafkajs: {
|
|
23
|
-
opName: () => 'kafka.produce',
|
|
24
|
-
serviceName: service => `${service}-kafka`
|
|
25
|
-
},
|
|
26
|
-
rhea: {
|
|
27
|
-
opName: () => 'amqp.send',
|
|
28
|
-
serviceName: service => `${service}-amqp-producer`
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
|
-
inbound: {
|
|
32
|
-
amqplib: {
|
|
33
|
-
opName: () => 'amqp.command',
|
|
34
|
-
serviceName: amqpServiceName
|
|
35
|
-
},
|
|
36
|
-
amqp10: {
|
|
37
|
-
opName: () => 'amqp.receive',
|
|
38
|
-
serviceName: amqpServiceName
|
|
39
|
-
},
|
|
40
|
-
'google-cloud-pubsub': {
|
|
41
|
-
opName: () => 'pubsub.receive',
|
|
42
|
-
serviceName: service => service
|
|
43
|
-
},
|
|
44
|
-
kafkajs: {
|
|
45
|
-
opName: () => 'kafka.consume',
|
|
46
|
-
serviceName: service => `${service}-kafka`
|
|
47
|
-
},
|
|
48
|
-
rhea: {
|
|
49
|
-
opName: () => 'amqp.receive',
|
|
50
|
-
serviceName: service => service
|
|
51
|
-
}
|
|
52
|
-
},
|
|
53
|
-
controlPlane: {
|
|
54
|
-
amqplib: {
|
|
55
|
-
opName: () => 'amqp.command',
|
|
56
|
-
serviceName: amqpServiceName
|
|
57
|
-
},
|
|
58
|
-
'google-cloud-pubsub': {
|
|
59
|
-
opName: () => 'pubsub.request',
|
|
60
|
-
serviceName: service => `${service}-pubsub`
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
module.exports = new SchemaDefinition(schema)
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
const SchemaDefinition = require('./definition')
|
|
2
|
-
|
|
3
|
-
function identityService (service) {
|
|
4
|
-
return service
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
const amqpInbound = {
|
|
8
|
-
opName: () => 'amqp.process',
|
|
9
|
-
serviceName: identityService
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
const amqpOutbound = {
|
|
13
|
-
opName: () => 'amqp.send',
|
|
14
|
-
serviceName: identityService
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
const schema = {
|
|
18
|
-
messaging: {
|
|
19
|
-
outbound: {
|
|
20
|
-
amqplib: amqpOutbound,
|
|
21
|
-
amqp10: amqpOutbound,
|
|
22
|
-
'google-cloud-pubsub': {
|
|
23
|
-
opName: () => 'gcp.pubsub.send',
|
|
24
|
-
serviceName: identityService
|
|
25
|
-
},
|
|
26
|
-
kafkajs: {
|
|
27
|
-
opName: () => 'kafka.send',
|
|
28
|
-
serviceName: identityService
|
|
29
|
-
},
|
|
30
|
-
rhea: amqpOutbound
|
|
31
|
-
},
|
|
32
|
-
inbound: {
|
|
33
|
-
amqplib: amqpInbound,
|
|
34
|
-
amqp10: amqpInbound,
|
|
35
|
-
'google-cloud-pubsub': {
|
|
36
|
-
opName: () => 'gcp.pubsub.process',
|
|
37
|
-
serviceName: identityService
|
|
38
|
-
},
|
|
39
|
-
kafkajs: {
|
|
40
|
-
opName: () => 'kafka.process',
|
|
41
|
-
serviceName: identityService
|
|
42
|
-
},
|
|
43
|
-
rhea: amqpInbound
|
|
44
|
-
},
|
|
45
|
-
controlPlane: {
|
|
46
|
-
amqplib: {
|
|
47
|
-
opName: () => 'amqp.command',
|
|
48
|
-
serviceName: identityService
|
|
49
|
-
},
|
|
50
|
-
'google-cloud-pubsub': {
|
|
51
|
-
opName: () => 'gcp.pubsub.request',
|
|
52
|
-
serviceName: identityService
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
module.exports = new SchemaDefinition(schema)
|