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.
Files changed (80) hide show
  1. package/index.d.ts +8 -1
  2. package/package.json +4 -3
  3. package/packages/datadog-instrumentations/src/helpers/register.js +4 -0
  4. package/packages/datadog-instrumentations/src/jest.js +20 -17
  5. package/packages/datadog-instrumentations/src/mocha.js +8 -4
  6. package/packages/datadog-instrumentations/src/next.js +6 -1
  7. package/packages/datadog-instrumentations/src/pg.js +3 -4
  8. package/packages/datadog-instrumentations/src/playwright.js +11 -1
  9. package/packages/datadog-plugin-amqp10/src/consumer.js +3 -1
  10. package/packages/datadog-plugin-amqp10/src/producer.js +3 -1
  11. package/packages/datadog-plugin-amqplib/src/client.js +3 -4
  12. package/packages/datadog-plugin-amqplib/src/consumer.js +3 -1
  13. package/packages/datadog-plugin-amqplib/src/producer.js +3 -1
  14. package/packages/datadog-plugin-aws-sdk/src/base.js +3 -0
  15. package/packages/datadog-plugin-aws-sdk/src/services/cloudwatchlogs.js +2 -1
  16. package/packages/datadog-plugin-aws-sdk/src/services/dynamodb.js +4 -2
  17. package/packages/datadog-plugin-aws-sdk/src/services/eventbridge.js +4 -3
  18. package/packages/datadog-plugin-aws-sdk/src/services/kinesis.js +2 -1
  19. package/packages/datadog-plugin-aws-sdk/src/services/lambda.js +1 -0
  20. package/packages/datadog-plugin-aws-sdk/src/services/redshift.js +2 -1
  21. package/packages/datadog-plugin-aws-sdk/src/services/s3.js +2 -1
  22. package/packages/datadog-plugin-aws-sdk/src/services/sns.js +8 -1
  23. package/packages/datadog-plugin-aws-sdk/src/services/sqs.js +7 -1
  24. package/packages/datadog-plugin-google-cloud-pubsub/src/client.js +3 -4
  25. package/packages/datadog-plugin-google-cloud-pubsub/src/consumer.js +3 -1
  26. package/packages/datadog-plugin-google-cloud-pubsub/src/producer.js +3 -1
  27. package/packages/datadog-plugin-http/src/client.js +2 -1
  28. package/packages/datadog-plugin-http2/src/client.js +2 -1
  29. package/packages/datadog-plugin-jest/src/util.js +10 -1
  30. package/packages/datadog-plugin-kafkajs/src/consumer.js +6 -1
  31. package/packages/datadog-plugin-kafkajs/src/producer.js +3 -1
  32. package/packages/datadog-plugin-pg/src/index.js +5 -5
  33. package/packages/datadog-plugin-rhea/src/consumer.js +3 -1
  34. package/packages/datadog-plugin-rhea/src/producer.js +5 -1
  35. package/packages/dd-trace/src/appsec/iast/analyzers/command-injection-analyzer.js +2 -1
  36. package/packages/dd-trace/src/appsec/iast/analyzers/ldap-injection-analyzer.js +2 -1
  37. package/packages/dd-trace/src/appsec/iast/analyzers/path-traversal-analyzer.js +22 -5
  38. package/packages/dd-trace/src/appsec/iast/analyzers/sql-injection-analyzer.js +40 -4
  39. package/packages/dd-trace/src/appsec/iast/analyzers/weak-cipher-analyzer.js +2 -1
  40. package/packages/dd-trace/src/appsec/iast/analyzers/weak-hash-analyzer.js +2 -1
  41. package/packages/dd-trace/src/appsec/iast/index.js +1 -1
  42. package/packages/dd-trace/src/appsec/iast/path-line.js +2 -1
  43. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/range-utils.js +37 -0
  44. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/command-sensitive-analyzer.js +29 -0
  45. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/ldap-sensitive-analyzer.js +35 -0
  46. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/sql-sensitive-analyzer.js +95 -0
  47. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-handler.js +144 -0
  48. package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/index.js +113 -0
  49. package/packages/dd-trace/src/appsec/iast/vulnerabilities.js +8 -0
  50. package/packages/dd-trace/src/appsec/iast/vulnerability-reporter.js +4 -76
  51. package/packages/dd-trace/src/config.js +59 -25
  52. package/packages/dd-trace/src/constants.js +3 -1
  53. package/packages/dd-trace/src/encode/agentless-ci-visibility.js +14 -4
  54. package/packages/dd-trace/src/git_metadata_tagger.js +17 -0
  55. package/packages/dd-trace/src/git_properties.js +32 -0
  56. package/packages/dd-trace/src/plugin_manager.js +0 -2
  57. package/packages/dd-trace/src/plugins/client.js +2 -3
  58. package/packages/dd-trace/src/plugins/consumer.js +2 -17
  59. package/packages/dd-trace/src/plugins/incoming.js +7 -0
  60. package/packages/dd-trace/src/plugins/{outbound.js → outgoing.js} +2 -2
  61. package/packages/dd-trace/src/plugins/producer.js +2 -17
  62. package/packages/dd-trace/src/plugins/server.js +2 -2
  63. package/packages/dd-trace/src/plugins/tracing.js +0 -11
  64. package/packages/dd-trace/src/plugins/util/ci.js +62 -7
  65. package/packages/dd-trace/src/plugins/util/tags.js +5 -1
  66. package/packages/dd-trace/src/plugins/util/test.js +34 -17
  67. package/packages/dd-trace/src/profiling/constants.js +0 -1
  68. package/packages/dd-trace/src/profiling/profilers/space.js +1 -3
  69. package/packages/dd-trace/src/proxy.js +4 -0
  70. package/packages/dd-trace/src/serverless.js +25 -0
  71. package/packages/dd-trace/src/span_processor.js +3 -0
  72. package/packages/dd-trace/src/telemetry/send-data.js +13 -3
  73. package/packages/dd-trace/src/tracer.js +3 -2
  74. package/version.js +9 -0
  75. package/packages/dd-trace/src/plugins/inbound.js +0 -7
  76. package/packages/dd-trace/src/service-naming/index.js +0 -41
  77. package/packages/dd-trace/src/service-naming/schemas/definition.js +0 -28
  78. package/packages/dd-trace/src/service-naming/schemas/index.js +0 -6
  79. package/packages/dd-trace/src/service-naming/schemas/v0.js +0 -66
  80. 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 TEST_SESSION_ITR_SKIPPING_ENABLED = 'test_session.itr.tests_skipping.enabled'
54
- const TEST_SESSION_CODE_COVERAGE_ENABLED = 'test_session.code_coverage.enabled'
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 TEST_CODE_COVERAGE_LINES_TOTAL = 'test.codecov_lines_total'
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
- TEST_SESSION_ITR_SKIPPING_ENABLED,
101
- TEST_SESSION_CODE_COVERAGE_ENABLED,
102
- TEST_MODULE_ITR_SKIPPING_ENABLED,
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(TEST_SESSION_ITR_SKIPPING_ENABLED, isSuitesSkippingEnabled ? 'true' : 'false')
320
- testSessionSpan.setTag(TEST_SESSION_CODE_COVERAGE_ENABLED, isCodeCoverageEnabled ? 'true' : 'false')
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(TEST_MODULE_ITR_SKIPPING_ENABLED, isSuitesSkippingEnabled ? 'true' : 'false')
324
- testModuleSpan.setTag(TEST_MODULE_CODE_COVERAGE_ENABLED, isCodeCoverageEnabled ? 'true' : 'false')
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(TEST_CODE_COVERAGE_LINES_TOTAL, testCodeCoverageLinesTotal)
329
- testModuleSpan.setTag(TEST_CODE_COVERAGE_LINES_TOTAL, testCodeCoverageLinesTotal)
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
+ }
@@ -9,7 +9,6 @@ const snapshotKinds = Object.freeze({
9
9
  const oomExportStrategies = Object.freeze({
10
10
  PROCESS: 'process',
11
11
  ASYNC_CALLBACK: 'async',
12
- INTERRUPT_CALLBACK: 'interrupt',
13
12
  LOGS: 'logs'
14
13
  })
15
14
 
@@ -3,9 +3,7 @@
3
3
  const { oomExportStrategies } = require('../constants')
4
4
 
5
5
  function strategiesToCallbackMode (strategies, callbackMode) {
6
- const hasInterrupt = strategies.includes(oomExportStrategies.INTERRUPT_CALLBACK) ? callbackMode.Interrupt : 0
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: trimmedPayload,
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
@@ -0,0 +1,9 @@
1
+ 'use strict'
2
+
3
+ const matches = require('./package.json').version.match(/^(\d+)\.(\d+)\.(\d+)/)
4
+
5
+ module.exports = {
6
+ MAJOR: parseInt(matches[1]),
7
+ MINOR: parseInt(matches[2]),
8
+ PATCH: parseInt(matches[3])
9
+ }
@@ -1,7 +0,0 @@
1
- 'use strict'
2
-
3
- const TracingPlugin = require('./tracing')
4
-
5
- class InboundPlugin extends TracingPlugin {}
6
-
7
- module.exports = InboundPlugin
@@ -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,6 +0,0 @@
1
- const v0 = require('./v0')
2
- const v1 = require('./v1')
3
-
4
- module.exports = {
5
- schemaDefinitions: { v0, v1 }
6
- }
@@ -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)