dd-trace 5.97.0 → 5.99.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 +0 -1
- package/ext/tags.js +1 -0
- package/index.d.ts +35 -3
- package/package.json +48 -46
- package/packages/datadog-instrumentations/src/crypto.js +45 -0
- package/packages/datadog-instrumentations/src/cucumber.js +65 -3
- package/packages/datadog-instrumentations/src/cypress-config.js +153 -53
- package/packages/datadog-instrumentations/src/dns.js +24 -56
- package/packages/datadog-instrumentations/src/graphql.js +1 -1
- package/packages/datadog-instrumentations/src/helpers/callback-instrumentor.js +74 -0
- package/packages/datadog-instrumentations/src/helpers/check-require-cache.js +4 -1
- package/packages/datadog-instrumentations/src/helpers/hooks.js +2 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/compiler.js +10 -3
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/index.js +1 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/modelcontextprotocol-sdk.js +59 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/transforms.js +11 -2
- package/packages/datadog-instrumentations/src/jest.js +104 -12
- package/packages/datadog-instrumentations/src/mocha/utils.js +8 -0
- package/packages/datadog-instrumentations/src/modelcontextprotocol-sdk.js +7 -0
- package/packages/datadog-instrumentations/src/pino.js +4 -28
- package/packages/datadog-instrumentations/src/playwright-browser-scripts.js +27 -0
- package/packages/datadog-instrumentations/src/playwright.js +5 -17
- package/packages/datadog-instrumentations/src/redis.js +12 -6
- package/packages/datadog-instrumentations/src/stripe.js +38 -24
- package/packages/datadog-instrumentations/src/vitest.js +32 -4
- package/packages/datadog-instrumentations/src/zlib.js +29 -0
- package/packages/datadog-plugin-aws-sdk/src/base.js +2 -3
- package/packages/datadog-plugin-aws-sdk/src/services/dynamodb.js +1 -0
- package/packages/datadog-plugin-aws-sdk/src/services/eventbridge.js +1 -0
- package/packages/datadog-plugin-aws-sdk/src/services/kinesis.js +1 -0
- package/packages/datadog-plugin-aws-sdk/src/services/redshift.js +1 -0
- package/packages/datadog-plugin-aws-sdk/src/services/sns.js +1 -0
- package/packages/datadog-plugin-aws-sdk/src/services/sqs.js +1 -0
- package/packages/datadog-plugin-azure-event-hubs/src/producer.js +8 -15
- package/packages/datadog-plugin-azure-service-bus/src/producer.js +4 -9
- package/packages/datadog-plugin-cucumber/src/index.js +8 -2
- package/packages/datadog-plugin-cypress/src/cypress-plugin.js +114 -6
- package/packages/datadog-plugin-cypress/src/index.js +59 -2
- package/packages/datadog-plugin-cypress/src/source-map-utils.js +48 -1
- package/packages/datadog-plugin-fs/src/index.js +1 -1
- package/packages/datadog-plugin-google-cloud-pubsub/src/consumer.js +2 -1
- package/packages/datadog-plugin-google-cloud-pubsub/src/pubsub-push-subscription.js +2 -7
- package/packages/datadog-plugin-http/src/client.js +1 -1
- package/packages/datadog-plugin-http/src/server.js +21 -13
- package/packages/datadog-plugin-http2/src/client.js +1 -1
- package/packages/datadog-plugin-http2/src/server.js +10 -2
- package/packages/datadog-plugin-jest/src/index.js +2 -2
- package/packages/datadog-plugin-mocha/src/index.js +1 -2
- package/packages/datadog-plugin-modelcontextprotocol-sdk/src/index.js +24 -0
- package/packages/datadog-plugin-modelcontextprotocol-sdk/src/tracing.js +55 -0
- package/packages/datadog-plugin-mongodb-core/src/index.js +4 -9
- package/packages/datadog-plugin-mysql/src/index.js +1 -1
- package/packages/datadog-plugin-next/src/index.js +8 -2
- package/packages/datadog-plugin-pg/src/index.js +1 -1
- package/packages/datadog-plugin-playwright/src/index.js +2 -3
- package/packages/datadog-plugin-tedious/src/index.js +1 -1
- package/packages/datadog-plugin-vitest/src/index.js +14 -6
- package/packages/datadog-plugin-ws/src/close.js +3 -1
- package/packages/datadog-plugin-ws/src/producer.js +2 -0
- package/packages/datadog-plugin-ws/src/receiver.js +2 -1
- package/packages/dd-trace/src/aiguard/channels.js +8 -0
- package/packages/dd-trace/src/aiguard/index.js +7 -3
- package/packages/dd-trace/src/aiguard/sdk.js +66 -22
- package/packages/dd-trace/src/aiguard/tags.js +1 -0
- package/packages/dd-trace/src/appsec/blocked_templates.js +4 -3
- package/packages/dd-trace/src/appsec/blocking.js +62 -34
- package/packages/dd-trace/src/appsec/graphql.js +6 -6
- package/packages/dd-trace/src/appsec/index.js +9 -11
- package/packages/dd-trace/src/appsec/rasp/command_injection.js +4 -5
- package/packages/dd-trace/src/appsec/rasp/lfi.js +8 -4
- package/packages/dd-trace/src/appsec/rasp/sql_injection.js +5 -10
- package/packages/dd-trace/src/appsec/rasp/ssrf.js +5 -6
- package/packages/dd-trace/src/appsec/recommended.json +2438 -13
- package/packages/dd-trace/src/appsec/reporter.js +6 -5
- package/packages/dd-trace/src/appsec/sdk/set_user.js +1 -1
- package/packages/dd-trace/src/appsec/sdk/track_event.js +5 -5
- package/packages/dd-trace/src/appsec/sdk/user_blocking.js +6 -10
- package/packages/dd-trace/src/appsec/sdk/utils.js +4 -2
- package/packages/dd-trace/src/appsec/store.js +50 -0
- package/packages/dd-trace/src/appsec/waf/index.js +3 -5
- package/packages/dd-trace/src/ci-visibility/early-flake-detection/get-known-tests.js +2 -2
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/coverage-writer.js +2 -2
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/di-logs-writer.js +2 -2
- 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 +3 -4
- package/packages/dd-trace/src/ci-visibility/intelligent-test-runner/get-skippable-suites.js +2 -2
- package/packages/dd-trace/src/ci-visibility/log-submission/log-submission-plugin.js +4 -5
- package/packages/dd-trace/src/ci-visibility/requests/fs-cache.js +3 -4
- package/packages/dd-trace/src/ci-visibility/requests/get-library-configuration.js +6 -6
- package/packages/dd-trace/src/ci-visibility/requests/upload-coverage-report.js +2 -2
- package/packages/dd-trace/src/ci-visibility/test-management/get-test-management-tests.js +2 -2
- package/packages/dd-trace/src/config/config-types.d.ts +0 -4
- package/packages/dd-trace/src/config/defaults.js +10 -11
- package/packages/dd-trace/src/config/generated-config-types.d.ts +14 -8
- package/packages/dd-trace/src/config/index.js +49 -32
- package/packages/dd-trace/src/config/parsers.js +26 -9
- package/packages/dd-trace/src/config/supported-configurations.json +86 -33
- package/packages/dd-trace/src/constants.js +1 -0
- package/packages/dd-trace/src/debugger/config.js +2 -0
- package/packages/dd-trace/src/debugger/devtools_client/send.js +25 -5
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/processor.js +5 -2
- package/packages/dd-trace/src/encode/0.4.js +11 -11
- package/packages/dd-trace/src/encode/span-stats.js +4 -1
- package/packages/dd-trace/src/exporters/agent/index.js +0 -1
- package/packages/dd-trace/src/exporters/agent/writer.js +1 -2
- package/packages/dd-trace/src/exporters/agentless/writer.js +3 -3
- package/packages/dd-trace/src/exporters/common/util.js +2 -2
- package/packages/dd-trace/src/id.js +2 -0
- package/packages/dd-trace/src/index.js +2 -5
- package/packages/dd-trace/src/lambda/handler.js +1 -3
- package/packages/dd-trace/src/llmobs/plugins/{anthropic.js → anthropic/index.js} +5 -63
- package/packages/dd-trace/src/llmobs/plugins/anthropic/util.js +106 -0
- package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/chain.js +3 -2
- package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/chat_model.js +3 -2
- package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/embedding.js +2 -1
- package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/index.js +0 -49
- package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/vectorstore.js +2 -1
- package/packages/dd-trace/src/llmobs/plugins/langchain/messages.js +76 -0
- package/packages/dd-trace/src/llmobs/plugins/langgraph/index.js +1 -26
- package/packages/dd-trace/src/llmobs/plugins/modelcontextprotocol-sdk/index.js +68 -0
- package/packages/dd-trace/src/llmobs/plugins/modelcontextprotocol-sdk/utils.js +57 -0
- package/packages/dd-trace/src/llmobs/sdk.js +2 -2
- package/packages/dd-trace/src/log/index.js +0 -10
- package/packages/dd-trace/src/openfeature/eval-metrics-hook.js +103 -0
- package/packages/dd-trace/src/openfeature/flagging_provider.js +3 -0
- package/packages/dd-trace/src/openfeature/remote_config.js +6 -1
- package/packages/dd-trace/src/opentelemetry/context_manager.js +6 -4
- package/packages/dd-trace/src/opentelemetry/logs/index.js +1 -1
- package/packages/dd-trace/src/opentelemetry/logs/otlp_http_log_exporter.js +3 -2
- package/packages/dd-trace/src/opentelemetry/metrics/index.js +1 -1
- package/packages/dd-trace/src/opentelemetry/metrics/otlp_http_metric_exporter.js +3 -2
- package/packages/dd-trace/src/opentelemetry/otlp/otlp_http_exporter_base.js +19 -51
- package/packages/dd-trace/src/opentelemetry/otlp/protobuf_loader.js +14 -2
- package/packages/dd-trace/src/opentelemetry/otlp/trace.proto +358 -0
- package/packages/dd-trace/src/opentelemetry/otlp/trace_service.proto +78 -0
- package/packages/dd-trace/src/opentelemetry/trace/index.js +70 -0
- package/packages/dd-trace/src/opentelemetry/trace/otlp_http_trace_exporter.js +74 -0
- package/packages/dd-trace/src/opentelemetry/trace/otlp_transformer.js +342 -0
- package/packages/dd-trace/src/opentelemetry/tracer.js +9 -11
- package/packages/dd-trace/src/opentracing/propagation/text_map.js +17 -10
- package/packages/dd-trace/src/opentracing/span.js +1 -1
- package/packages/dd-trace/src/opentracing/tracer.js +17 -5
- package/packages/dd-trace/src/plugins/index.js +1 -0
- package/packages/dd-trace/src/plugins/log_plugin.js +3 -0
- package/packages/dd-trace/src/plugins/plugin.js +6 -11
- package/packages/dd-trace/src/plugins/storage.js +2 -2
- package/packages/dd-trace/src/plugins/tracing.js +22 -5
- package/packages/dd-trace/src/plugins/util/test.js +128 -5
- package/packages/dd-trace/src/plugins/util/url.js +2 -1
- package/packages/dd-trace/src/plugins/util/web.js +6 -88
- package/packages/dd-trace/src/profiling/profiler.js +34 -77
- package/packages/dd-trace/src/profiling/profilers/event_plugins/crypto.js +32 -0
- package/packages/dd-trace/src/profiling/profilers/event_plugins/zlib.js +19 -0
- package/packages/dd-trace/src/profiling/profilers/events.js +35 -0
- package/packages/dd-trace/src/proxy.js +3 -4
- package/packages/dd-trace/src/runtime_metrics/runtime_metrics.js +17 -13
- package/packages/dd-trace/src/service-naming/index.js +1 -1
- package/packages/dd-trace/src/service-naming/schemas/definition.js +4 -1
- package/packages/dd-trace/src/service-naming/schemas/util.js +15 -1
- package/packages/dd-trace/src/service-naming/schemas/v0/messaging.js +24 -1
- package/packages/dd-trace/src/service-naming/schemas/v0/storage.js +60 -0
- package/packages/dd-trace/src/service-naming/schemas/v0/web.js +21 -1
- package/packages/dd-trace/src/service-naming/schemas/v0/websocket.js +5 -0
- package/packages/dd-trace/src/service-naming/schemas/v1/storage.js +17 -0
- package/packages/dd-trace/src/service-naming/schemas/v1/web.js +15 -1
- package/packages/dd-trace/src/service-naming/schemas/v1/websocket.js +6 -0
- package/packages/dd-trace/src/span_processor.js +1 -2
- package/packages/dd-trace/src/span_stats.js +5 -1
- package/packages/dd-trace/src/tagger.js +2 -2
- package/packages/dd-trace/src/telemetry/send-data.js +5 -7
- package/vendor/dist/@apm-js-collab/code-transformer/index.js +28 -6
- package/vendor/dist/protobufjs/index.js +1 -1
- package/packages/dd-trace/src/log/utils.js +0 -16
- package/vendor/dist/ignore/LICENSE +0 -21
- package/vendor/dist/ignore/index.js +0 -1
|
@@ -51,24 +51,28 @@ module.exports = {
|
|
|
51
51
|
const trackEventLoop = config.runtimeMetrics.eventLoop !== false
|
|
52
52
|
const trackGc = config.runtimeMetrics.gc !== false
|
|
53
53
|
|
|
54
|
+
client = new MetricsAggregationClient(new DogStatsDClient(clientConfig))
|
|
55
|
+
|
|
54
56
|
if (trackGc) {
|
|
55
57
|
startGCObserver()
|
|
56
58
|
}
|
|
57
59
|
|
|
58
|
-
|
|
59
|
-
// passing any options means all metrics are tracked.
|
|
60
|
-
// TODO: This is a workaround. We should find a better solution.
|
|
61
|
-
const watchers = trackEventLoop ? ['loop'] : ['no-gc']
|
|
62
|
-
|
|
63
|
-
try {
|
|
64
|
-
nativeMetrics = require('@datadog/native-metrics')
|
|
65
|
-
nativeMetrics.start(...watchers)
|
|
66
|
-
} catch (error) {
|
|
67
|
-
log.error('Error starting native metrics', error)
|
|
68
|
-
nativeMetrics = null
|
|
69
|
-
}
|
|
60
|
+
const useNative = config.runtimeMetrics.native !== false
|
|
70
61
|
|
|
71
|
-
|
|
62
|
+
if (useNative) {
|
|
63
|
+
// Using no-gc prevents the native gc metrics from being tracked. Not
|
|
64
|
+
// passing any options means all metrics are tracked.
|
|
65
|
+
// TODO: This is a workaround. We should find a better solution.
|
|
66
|
+
const watchers = trackEventLoop ? ['loop'] : ['no-gc']
|
|
67
|
+
|
|
68
|
+
try {
|
|
69
|
+
nativeMetrics = require('@datadog/native-metrics')
|
|
70
|
+
nativeMetrics.start(...watchers)
|
|
71
|
+
} catch (error) {
|
|
72
|
+
log.error('Error starting native metrics', error)
|
|
73
|
+
nativeMetrics = null
|
|
74
|
+
}
|
|
75
|
+
}
|
|
72
76
|
|
|
73
77
|
lastTime = performance.now()
|
|
74
78
|
|
|
@@ -41,7 +41,7 @@ class SchemaManager {
|
|
|
41
41
|
* @param {string} kind
|
|
42
42
|
* @param {string} plugin
|
|
43
43
|
* @param {object} opts
|
|
44
|
-
* @returns {
|
|
44
|
+
* @returns {object} {name, source}
|
|
45
45
|
*/
|
|
46
46
|
serviceName (type, kind, plugin, opts) {
|
|
47
47
|
const schema = this.shouldUseConsistentServiceNaming
|
|
@@ -12,7 +12,10 @@ class SchemaDefinition {
|
|
|
12
12
|
|
|
13
13
|
getServiceName (type, kind, plugin, opts) {
|
|
14
14
|
const item = this.schema[type][kind][plugin]
|
|
15
|
-
return
|
|
15
|
+
return {
|
|
16
|
+
name: item.serviceName(opts),
|
|
17
|
+
source: item.serviceSource?.(opts),
|
|
18
|
+
}
|
|
16
19
|
}
|
|
17
20
|
}
|
|
18
21
|
|
|
@@ -18,8 +18,22 @@ function httpPluginClientService ({ tracerService, pluginConfig, sessionDetails
|
|
|
18
18
|
return tracerService
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
+
function optionServiceSource ({ pluginConfig }) {
|
|
22
|
+
if (pluginConfig.splitByDomain) {
|
|
23
|
+
return 'opt.split_by_domain'
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
if (pluginConfig.service) {
|
|
27
|
+
return 'opt.plugin'
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
21
31
|
function awsServiceV0 ({ tracerService, awsService }) {
|
|
22
32
|
return `${tracerService}-aws-${awsService}`
|
|
23
33
|
}
|
|
24
34
|
|
|
25
|
-
|
|
35
|
+
function awsServiceSource ({ awsService }) {
|
|
36
|
+
return awsService
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
module.exports = { identityService, httpPluginClientService, awsServiceV0, optionServiceSource, awsServiceSource }
|
|
@@ -1,66 +1,83 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
-
const { identityService, awsServiceV0 } = require('../util')
|
|
3
|
+
const { identityService, awsServiceV0, awsServiceSource } = require('../util')
|
|
4
4
|
|
|
5
5
|
function amqpServiceName ({ tracerService }) {
|
|
6
6
|
return `${tracerService}-amqp`
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
+
function integrationSource (source) {
|
|
10
|
+
return () => source
|
|
11
|
+
}
|
|
12
|
+
|
|
9
13
|
const messaging = {
|
|
10
14
|
producer: {
|
|
11
15
|
amqplib: {
|
|
12
16
|
opName: () => 'amqp.command',
|
|
13
17
|
serviceName: amqpServiceName,
|
|
18
|
+
serviceSource: integrationSource('amqp'),
|
|
14
19
|
},
|
|
15
20
|
amqp10: {
|
|
16
21
|
opName: () => 'amqp.send',
|
|
17
22
|
serviceName: amqpServiceName,
|
|
23
|
+
serviceSource: integrationSource('amqp'),
|
|
18
24
|
},
|
|
19
25
|
'azure-event-hubs': {
|
|
20
26
|
opName: () => 'azure.eventhubs.send',
|
|
21
27
|
serviceName: ({ tracerService }) => `${tracerService}-azure-event-hubs`,
|
|
28
|
+
serviceSource: integrationSource('azure-event-hubs'),
|
|
22
29
|
},
|
|
23
30
|
'azure-service-bus': {
|
|
24
31
|
opName: () => 'azure.servicebus.send',
|
|
25
32
|
serviceName: ({ tracerService }) => `${tracerService}-azure-service-bus`,
|
|
33
|
+
serviceSource: integrationSource('azure-service-bus'),
|
|
26
34
|
},
|
|
27
35
|
'google-cloud-pubsub': {
|
|
28
36
|
opName: () => 'pubsub.request',
|
|
29
37
|
serviceName: ({ tracerService }) => `${tracerService}-pubsub`,
|
|
38
|
+
serviceSource: integrationSource('google-cloud-pubsub'),
|
|
30
39
|
},
|
|
31
40
|
kafkajs: {
|
|
32
41
|
opName: () => 'kafka.produce',
|
|
33
42
|
serviceName: ({ tracerService }) => `${tracerService}-kafka`,
|
|
43
|
+
serviceSource: integrationSource('kafka'),
|
|
34
44
|
},
|
|
35
45
|
'confluentinc-kafka-javascript': {
|
|
36
46
|
opName: () => 'kafka.produce',
|
|
37
47
|
serviceName: ({ tracerService }) => `${tracerService}-kafka`,
|
|
48
|
+
serviceSource: integrationSource('kafka'),
|
|
38
49
|
},
|
|
39
50
|
rhea: {
|
|
40
51
|
opName: () => 'amqp.send',
|
|
41
52
|
serviceName: ({ tracerService }) => `${tracerService}-amqp-producer`,
|
|
53
|
+
serviceSource: integrationSource('amqp'),
|
|
42
54
|
},
|
|
43
55
|
sqs: {
|
|
44
56
|
opName: () => 'aws.request',
|
|
45
57
|
serviceName: awsServiceV0,
|
|
58
|
+
serviceSource: awsServiceSource,
|
|
46
59
|
},
|
|
47
60
|
sns: {
|
|
48
61
|
opName: () => 'aws.request',
|
|
49
62
|
serviceName: awsServiceV0,
|
|
63
|
+
serviceSource: awsServiceSource,
|
|
50
64
|
},
|
|
51
65
|
bullmq: {
|
|
52
66
|
opName: () => 'bullmq.add',
|
|
53
67
|
serviceName: ({ tracerService }) => `${tracerService}-bullmq`,
|
|
68
|
+
serviceSource: integrationSource('bullmq'),
|
|
54
69
|
},
|
|
55
70
|
},
|
|
56
71
|
consumer: {
|
|
57
72
|
amqplib: {
|
|
58
73
|
opName: () => 'amqp.command',
|
|
59
74
|
serviceName: amqpServiceName,
|
|
75
|
+
serviceSource: integrationSource('amqp'),
|
|
60
76
|
},
|
|
61
77
|
amqp10: {
|
|
62
78
|
opName: () => 'amqp.receive',
|
|
63
79
|
serviceName: amqpServiceName,
|
|
80
|
+
serviceSource: integrationSource('amqp'),
|
|
64
81
|
},
|
|
65
82
|
'google-cloud-pubsub': {
|
|
66
83
|
opName: () => 'pubsub.receive',
|
|
@@ -69,10 +86,12 @@ const messaging = {
|
|
|
69
86
|
kafkajs: {
|
|
70
87
|
opName: () => 'kafka.consume',
|
|
71
88
|
serviceName: ({ tracerService }) => `${tracerService}-kafka`,
|
|
89
|
+
serviceSource: integrationSource('kafka'),
|
|
72
90
|
},
|
|
73
91
|
'confluentinc-kafka-javascript': {
|
|
74
92
|
opName: () => 'kafka.consume',
|
|
75
93
|
serviceName: ({ tracerService }) => `${tracerService}-kafka`,
|
|
94
|
+
serviceSource: integrationSource('kafka'),
|
|
76
95
|
},
|
|
77
96
|
rhea: {
|
|
78
97
|
opName: () => 'amqp.receive',
|
|
@@ -81,20 +100,24 @@ const messaging = {
|
|
|
81
100
|
sqs: {
|
|
82
101
|
opName: () => 'aws.request',
|
|
83
102
|
serviceName: awsServiceV0,
|
|
103
|
+
serviceSource: awsServiceSource,
|
|
84
104
|
},
|
|
85
105
|
bullmq: {
|
|
86
106
|
opName: () => 'bullmq.processJob',
|
|
87
107
|
serviceName: ({ tracerService }) => `${tracerService}-bullmq`,
|
|
108
|
+
serviceSource: integrationSource('bullmq'),
|
|
88
109
|
},
|
|
89
110
|
},
|
|
90
111
|
client: {
|
|
91
112
|
amqplib: {
|
|
92
113
|
opName: () => 'amqp.command',
|
|
93
114
|
serviceName: amqpServiceName,
|
|
115
|
+
serviceSource: integrationSource('amqp'),
|
|
94
116
|
},
|
|
95
117
|
'google-cloud-pubsub': {
|
|
96
118
|
opName: () => 'pubsub.request',
|
|
97
119
|
serviceName: ({ tracerService }) => `${tracerService}-pubsub`,
|
|
120
|
+
serviceSource: integrationSource('google-cloud-pubsub'),
|
|
98
121
|
},
|
|
99
122
|
},
|
|
100
123
|
}
|
|
@@ -30,11 +30,26 @@ function withSuffixFunction (suffix) {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
+
function optionServiceSource ({ pluginConfig, integration, connectionName }) {
|
|
34
|
+
if (pluginConfig.splitByInstance && connectionName) {
|
|
35
|
+
return 'opt.split_by_instance'
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
if (pluginConfig.service) {
|
|
39
|
+
return 'opt.plugin'
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return integration
|
|
43
|
+
}
|
|
44
|
+
|
|
33
45
|
const redisConfig = {
|
|
34
46
|
opName: () => 'redis.command',
|
|
35
47
|
serviceName: ({ tracerService, pluginConfig, system, connectionName }) => {
|
|
36
48
|
return getRedisService(pluginConfig, connectionName) || fromSystem(tracerService, system)
|
|
37
49
|
},
|
|
50
|
+
serviceSource: ({ tracerService, pluginConfig, connectionName }) => {
|
|
51
|
+
return optionServiceSource({ tracerService, pluginConfig, connectionName, integration: 'redis' })
|
|
52
|
+
},
|
|
38
53
|
}
|
|
39
54
|
|
|
40
55
|
const valkeyConfig = {
|
|
@@ -42,6 +57,9 @@ const valkeyConfig = {
|
|
|
42
57
|
serviceName: ({ tracerService, pluginConfig, system, connectionName }) => {
|
|
43
58
|
return getRedisService(pluginConfig, connectionName) || fromSystem(tracerService, system)
|
|
44
59
|
},
|
|
60
|
+
serviceSource: ({ tracerService, pluginConfig, connectionName }) => {
|
|
61
|
+
return optionServiceSource({ tracerService, pluginConfig, connectionName, integration: 'valkey' })
|
|
62
|
+
},
|
|
45
63
|
}
|
|
46
64
|
|
|
47
65
|
const storage = {
|
|
@@ -50,67 +68,109 @@ const storage = {
|
|
|
50
68
|
opName: () => 'aerospike.command',
|
|
51
69
|
serviceName: ({ tracerService, pluginConfig }) =>
|
|
52
70
|
pluginConfig.service || `${tracerService}-aerospike`,
|
|
71
|
+
serviceSource: ({ tracerService, pluginConfig, connectionName }) => {
|
|
72
|
+
return optionServiceSource({ tracerService, pluginConfig, connectionName, integration: 'aerospike' })
|
|
73
|
+
},
|
|
53
74
|
},
|
|
54
75
|
'cassandra-driver': {
|
|
55
76
|
opName: () => 'cassandra.query',
|
|
56
77
|
serviceName: ({ tracerService, pluginConfig, system }) =>
|
|
57
78
|
pluginConfig.service || fromSystem(tracerService, system),
|
|
79
|
+
serviceSource: ({ tracerService, pluginConfig, connectionName }) => {
|
|
80
|
+
return optionServiceSource({ tracerService, pluginConfig, connectionName, integration: 'cassandra-driver' })
|
|
81
|
+
},
|
|
58
82
|
},
|
|
59
83
|
couchbase: {
|
|
60
84
|
opName: ({ operation }) => `couchbase.${operation}`,
|
|
61
85
|
serviceName: ({ tracerService, pluginConfig }) => pluginConfig.service || `${tracerService}-couchbase`,
|
|
86
|
+
serviceSource: ({ tracerService, pluginConfig, connectionName }) => {
|
|
87
|
+
return optionServiceSource({ tracerService, pluginConfig, connectionName, integration: 'couchbase' })
|
|
88
|
+
},
|
|
62
89
|
},
|
|
63
90
|
elasticsearch: {
|
|
64
91
|
opName: () => 'elasticsearch.query',
|
|
65
92
|
serviceName: ({ tracerService, pluginConfig }) =>
|
|
66
93
|
pluginConfig.service || `${tracerService}-elasticsearch`,
|
|
94
|
+
serviceSource: ({ tracerService, pluginConfig, connectionName }) => {
|
|
95
|
+
return optionServiceSource({ tracerService, pluginConfig, connectionName, integration: 'elasticsearch' })
|
|
96
|
+
},
|
|
67
97
|
},
|
|
68
98
|
ioredis: redisConfig,
|
|
69
99
|
iovalkey: valkeyConfig,
|
|
70
100
|
mariadb: {
|
|
71
101
|
opName: () => 'mariadb.query',
|
|
72
102
|
serviceName: mysqlServiceName,
|
|
103
|
+
serviceSource: ({ tracerService, pluginConfig, connectionName }) => {
|
|
104
|
+
return optionServiceSource({ tracerService, pluginConfig, connectionName, integration: 'mysql' })
|
|
105
|
+
},
|
|
73
106
|
},
|
|
74
107
|
memcached: {
|
|
75
108
|
opName: () => 'memcached.command',
|
|
76
109
|
serviceName: ({ tracerService, pluginConfig, system }) =>
|
|
77
110
|
pluginConfig.service || fromSystem(tracerService, system),
|
|
111
|
+
serviceSource: ({ tracerService, pluginConfig, connectionName }) => {
|
|
112
|
+
return optionServiceSource({ tracerService, pluginConfig, connectionName, integration: 'memcached' })
|
|
113
|
+
},
|
|
78
114
|
},
|
|
79
115
|
'mongodb-core': {
|
|
80
116
|
opName: () => 'mongodb.query',
|
|
81
117
|
serviceName: ({ tracerService, pluginConfig }) =>
|
|
82
118
|
pluginConfig.service || `${tracerService}-mongodb`,
|
|
119
|
+
serviceSource: ({ tracerService, pluginConfig, connectionName }) => {
|
|
120
|
+
return optionServiceSource({ tracerService, pluginConfig, connectionName, integration: 'mongodb' })
|
|
121
|
+
},
|
|
83
122
|
},
|
|
84
123
|
mysql: {
|
|
85
124
|
opName: () => 'mysql.query',
|
|
86
125
|
serviceName: mysqlServiceName,
|
|
126
|
+
serviceSource: ({ tracerService, pluginConfig, connectionName }) => {
|
|
127
|
+
return optionServiceSource({ tracerService, pluginConfig, connectionName, integration: 'mysql' })
|
|
128
|
+
},
|
|
87
129
|
},
|
|
88
130
|
mysql2: {
|
|
89
131
|
opName: () => 'mysql.query',
|
|
90
132
|
serviceName: mysqlServiceName,
|
|
133
|
+
serviceSource: ({ tracerService, pluginConfig, connectionName }) => {
|
|
134
|
+
return optionServiceSource({ tracerService, pluginConfig, connectionName, integration: 'mysql' })
|
|
135
|
+
},
|
|
91
136
|
},
|
|
92
137
|
opensearch: {
|
|
93
138
|
opName: () => 'opensearch.query',
|
|
94
139
|
serviceName: ({ tracerService, pluginConfig }) =>
|
|
95
140
|
pluginConfig.service || `${tracerService}-opensearch`,
|
|
141
|
+
serviceSource: ({ tracerService, pluginConfig, connectionName }) => {
|
|
142
|
+
return optionServiceSource({ tracerService, pluginConfig, connectionName, integration: 'opensearch' })
|
|
143
|
+
},
|
|
96
144
|
},
|
|
97
145
|
oracledb: {
|
|
98
146
|
opName: () => 'oracle.query',
|
|
99
147
|
serviceName: withSuffixFunction('oracle'),
|
|
148
|
+
serviceSource: ({ tracerService, pluginConfig, connectionName }) => {
|
|
149
|
+
return optionServiceSource({ tracerService, pluginConfig, connectionName, integration: 'oracledb' })
|
|
150
|
+
},
|
|
100
151
|
},
|
|
101
152
|
pg: {
|
|
102
153
|
opName: () => 'pg.query',
|
|
103
154
|
serviceName: withSuffixFunction('postgres'),
|
|
155
|
+
serviceSource: ({ tracerService, pluginConfig, connectionName }) => {
|
|
156
|
+
return optionServiceSource({ tracerService, pluginConfig, connectionName, integration: 'pg' })
|
|
157
|
+
},
|
|
104
158
|
},
|
|
105
159
|
prisma: {
|
|
106
160
|
opName: ({ operation }) => `prisma.${operation}`,
|
|
107
161
|
serviceName: withSuffixFunction('prisma'),
|
|
162
|
+
serviceSource: ({ tracerService, pluginConfig, connectionName }) => {
|
|
163
|
+
return optionServiceSource({ tracerService, pluginConfig, connectionName, integration: 'prisma' })
|
|
164
|
+
},
|
|
108
165
|
},
|
|
109
166
|
redis: redisConfig,
|
|
110
167
|
tedious: {
|
|
111
168
|
opName: () => 'tedious.request',
|
|
112
169
|
serviceName: ({ tracerService, pluginConfig, system }) =>
|
|
113
170
|
pluginConfig.service || fromSystem(tracerService, system),
|
|
171
|
+
serviceSource: ({ tracerService, pluginConfig, connectionName }) => {
|
|
172
|
+
return optionServiceSource({ tracerService, pluginConfig, connectionName, integration: 'tedious' })
|
|
173
|
+
},
|
|
114
174
|
},
|
|
115
175
|
},
|
|
116
176
|
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
-
const {
|
|
3
|
+
const {
|
|
4
|
+
identityService, httpPluginClientService, awsServiceV0,
|
|
5
|
+
optionServiceSource, awsServiceSource,
|
|
6
|
+
} = require('../util')
|
|
4
7
|
|
|
5
8
|
const web = {
|
|
6
9
|
client: {
|
|
@@ -15,56 +18,73 @@ const web = {
|
|
|
15
18
|
http: {
|
|
16
19
|
opName: () => 'http.request',
|
|
17
20
|
serviceName: httpPluginClientService,
|
|
21
|
+
serviceSource: optionServiceSource,
|
|
18
22
|
},
|
|
19
23
|
fetch: {
|
|
20
24
|
opName: () => 'http.request',
|
|
21
25
|
serviceName: httpPluginClientService,
|
|
26
|
+
serviceSource: optionServiceSource,
|
|
22
27
|
},
|
|
23
28
|
http2: {
|
|
24
29
|
opName: () => 'http.request',
|
|
25
30
|
serviceName: httpPluginClientService,
|
|
31
|
+
serviceSource: optionServiceSource,
|
|
26
32
|
},
|
|
27
33
|
genai: {
|
|
28
34
|
opName: () => 'google_genai.request',
|
|
29
35
|
serviceName: ({ pluginConfig, tracerService }) => pluginConfig.service || tracerService,
|
|
36
|
+
serviceSource: optionServiceSource,
|
|
37
|
+
},
|
|
38
|
+
'modelcontextprotocol-sdk': {
|
|
39
|
+
opName: () => 'mcp.tool.call',
|
|
40
|
+
serviceName: ({ pluginService, tracerService }) => pluginService || tracerService,
|
|
30
41
|
},
|
|
31
42
|
aws: {
|
|
32
43
|
opName: () => 'aws.request',
|
|
33
44
|
serviceName: awsServiceV0,
|
|
45
|
+
serviceSource: awsServiceSource,
|
|
34
46
|
},
|
|
35
47
|
lambda: {
|
|
36
48
|
opName: () => 'aws.request',
|
|
37
49
|
serviceName: awsServiceV0,
|
|
50
|
+
serviceSource: awsServiceSource,
|
|
38
51
|
},
|
|
39
52
|
undici: {
|
|
40
53
|
opName: () => 'undici.request',
|
|
41
54
|
serviceName: httpPluginClientService,
|
|
55
|
+
serviceSource: optionServiceSource,
|
|
42
56
|
},
|
|
43
57
|
},
|
|
44
58
|
server: {
|
|
45
59
|
'apollo.gateway.request': {
|
|
46
60
|
opName: () => 'apollo.gateway.request',
|
|
47
61
|
serviceName: ({ pluginConfig, tracerService }) => pluginConfig.service || tracerService,
|
|
62
|
+
serviceSource: optionServiceSource,
|
|
48
63
|
},
|
|
49
64
|
'apollo.gateway.plan': {
|
|
50
65
|
opName: () => 'apollo.gateway.plan',
|
|
51
66
|
serviceName: ({ pluginConfig, tracerService }) => pluginConfig.service || tracerService,
|
|
67
|
+
serviceSource: optionServiceSource,
|
|
52
68
|
},
|
|
53
69
|
'apollo.gateway.validate': {
|
|
54
70
|
opName: () => 'apollo.gateway.validate',
|
|
55
71
|
serviceName: ({ pluginConfig, tracerService }) => pluginConfig.service || tracerService,
|
|
72
|
+
serviceSource: optionServiceSource,
|
|
56
73
|
},
|
|
57
74
|
'apollo.gateway.execute': {
|
|
58
75
|
opName: () => 'apollo.gateway.execute',
|
|
59
76
|
serviceName: ({ pluginConfig, tracerService }) => pluginConfig.service || tracerService,
|
|
77
|
+
serviceSource: optionServiceSource,
|
|
60
78
|
},
|
|
61
79
|
'apollo.gateway.fetch': {
|
|
62
80
|
opName: () => 'apollo.gateway.fetch',
|
|
63
81
|
serviceName: ({ pluginConfig, tracerService }) => pluginConfig.service || tracerService,
|
|
82
|
+
serviceSource: optionServiceSource,
|
|
64
83
|
},
|
|
65
84
|
'apollo.gateway.postprocessing': {
|
|
66
85
|
opName: () => 'apollo.gateway.postprocessing',
|
|
67
86
|
serviceName: ({ pluginConfig, tracerService }) => pluginConfig.service || tracerService,
|
|
87
|
+
serviceSource: optionServiceSource,
|
|
68
88
|
},
|
|
69
89
|
grpc: {
|
|
70
90
|
opName: () => 'grpc.server',
|
|
@@ -1,28 +1,33 @@
|
|
|
1
1
|
'use strict'
|
|
2
|
+
const { optionServiceSource } = require('../util')
|
|
2
3
|
|
|
3
4
|
const websocket = {
|
|
4
5
|
request: {
|
|
5
6
|
ws: {
|
|
6
7
|
opName: () => 'web.request',
|
|
7
8
|
serviceName: ({ pluginConfig, tracerService }) => pluginConfig.service || tracerService,
|
|
9
|
+
serviceSource: optionServiceSource,
|
|
8
10
|
},
|
|
9
11
|
},
|
|
10
12
|
producer: {
|
|
11
13
|
ws: {
|
|
12
14
|
opName: () => 'websocket.send',
|
|
13
15
|
serviceName: ({ pluginConfig, tracerService }) => pluginConfig.service || tracerService,
|
|
16
|
+
serviceSource: optionServiceSource,
|
|
14
17
|
},
|
|
15
18
|
},
|
|
16
19
|
consumer: {
|
|
17
20
|
ws: {
|
|
18
21
|
opName: () => 'websocket.receive',
|
|
19
22
|
serviceName: ({ pluginConfig, tracerService }) => pluginConfig.service || tracerService,
|
|
23
|
+
serviceSource: optionServiceSource,
|
|
20
24
|
},
|
|
21
25
|
},
|
|
22
26
|
close: {
|
|
23
27
|
ws: {
|
|
24
28
|
opName: () => 'websocket.close',
|
|
25
29
|
serviceName: ({ pluginConfig, tracerService }) => pluginConfig.service || tracerService,
|
|
30
|
+
serviceSource: optionServiceSource,
|
|
26
31
|
},
|
|
27
32
|
},
|
|
28
33
|
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
+
const { optionServiceSource } = require('../util')
|
|
4
|
+
|
|
3
5
|
function configWithFallback ({ tracerService, pluginConfig }) {
|
|
4
6
|
return pluginConfig.service || tracerService
|
|
5
7
|
}
|
|
@@ -7,11 +9,13 @@ function configWithFallback ({ tracerService, pluginConfig }) {
|
|
|
7
9
|
const redisNaming = {
|
|
8
10
|
opName: () => 'redis.command',
|
|
9
11
|
serviceName: configWithFallback,
|
|
12
|
+
serviceSource: optionServiceSource,
|
|
10
13
|
}
|
|
11
14
|
|
|
12
15
|
const mySQLNaming = {
|
|
13
16
|
opName: () => 'mysql.query',
|
|
14
17
|
serviceName: withFunction,
|
|
18
|
+
serviceSource: optionServiceSource,
|
|
15
19
|
}
|
|
16
20
|
|
|
17
21
|
function withFunction ({ tracerService, pluginConfig, params }) {
|
|
@@ -27,58 +31,71 @@ const storage = {
|
|
|
27
31
|
aerospike: {
|
|
28
32
|
opName: () => 'aerospike.command',
|
|
29
33
|
serviceName: configWithFallback,
|
|
34
|
+
serviceSource: optionServiceSource,
|
|
30
35
|
},
|
|
31
36
|
'cassandra-driver': {
|
|
32
37
|
opName: () => 'cassandra.query',
|
|
33
38
|
serviceName: configWithFallback,
|
|
39
|
+
serviceSource: optionServiceSource,
|
|
34
40
|
},
|
|
35
41
|
couchbase: {
|
|
36
42
|
opName: () => 'couchbase.query',
|
|
37
43
|
serviceName: configWithFallback,
|
|
44
|
+
serviceSource: optionServiceSource,
|
|
38
45
|
},
|
|
39
46
|
elasticsearch: {
|
|
40
47
|
opName: () => 'elasticsearch.query',
|
|
41
48
|
serviceName: configWithFallback,
|
|
49
|
+
serviceSource: optionServiceSource,
|
|
42
50
|
},
|
|
43
51
|
ioredis: redisNaming,
|
|
44
52
|
iovalkey: {
|
|
45
53
|
opName: () => 'valkey.command',
|
|
46
54
|
serviceName: configWithFallback,
|
|
55
|
+
serviceSource: optionServiceSource,
|
|
47
56
|
},
|
|
48
57
|
mariadb: {
|
|
49
58
|
opName: () => 'mariadb.query',
|
|
50
59
|
serviceName: withFunction,
|
|
60
|
+
serviceSource: optionServiceSource,
|
|
51
61
|
},
|
|
52
62
|
memcached: {
|
|
53
63
|
opName: () => 'memcached.command',
|
|
54
64
|
serviceName: configWithFallback,
|
|
65
|
+
serviceSource: optionServiceSource,
|
|
55
66
|
},
|
|
56
67
|
'mongodb-core': {
|
|
57
68
|
opName: () => 'mongodb.query',
|
|
58
69
|
serviceName: configWithFallback,
|
|
70
|
+
serviceSource: optionServiceSource,
|
|
59
71
|
},
|
|
60
72
|
mysql: mySQLNaming,
|
|
61
73
|
mysql2: mySQLNaming,
|
|
62
74
|
opensearch: {
|
|
63
75
|
opName: () => 'opensearch.query',
|
|
64
76
|
serviceName: configWithFallback,
|
|
77
|
+
serviceSource: optionServiceSource,
|
|
65
78
|
},
|
|
66
79
|
oracledb: {
|
|
67
80
|
opName: () => 'oracle.query',
|
|
68
81
|
serviceName: withFunction,
|
|
82
|
+
serviceSource: optionServiceSource,
|
|
69
83
|
},
|
|
70
84
|
pg: {
|
|
71
85
|
opName: () => 'postgresql.query',
|
|
72
86
|
serviceName: withFunction,
|
|
87
|
+
serviceSource: optionServiceSource,
|
|
73
88
|
},
|
|
74
89
|
prisma: {
|
|
75
90
|
opName: ({ operation }) => `prisma.${operation}`,
|
|
76
91
|
serviceName: configWithFallback,
|
|
92
|
+
serviceSource: optionServiceSource,
|
|
77
93
|
},
|
|
78
94
|
redis: redisNaming,
|
|
79
95
|
tedious: {
|
|
80
96
|
opName: () => 'mssql.query',
|
|
81
97
|
serviceName: configWithFallback,
|
|
98
|
+
serviceSource: optionServiceSource,
|
|
82
99
|
},
|
|
83
100
|
},
|
|
84
101
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
-
const { identityService, httpPluginClientService } = require('../util')
|
|
3
|
+
const { identityService, httpPluginClientService, optionServiceSource } = require('../util')
|
|
4
4
|
|
|
5
5
|
const web = {
|
|
6
6
|
client: {
|
|
@@ -15,18 +15,26 @@ const web = {
|
|
|
15
15
|
http: {
|
|
16
16
|
opName: () => 'http.client.request',
|
|
17
17
|
serviceName: httpPluginClientService,
|
|
18
|
+
serviceSource: optionServiceSource,
|
|
18
19
|
},
|
|
19
20
|
genai: {
|
|
20
21
|
opName: () => 'google_genai.request',
|
|
21
22
|
serviceName: ({ pluginConfig, tracerService }) => pluginConfig.service || tracerService,
|
|
23
|
+
serviceSource: optionServiceSource,
|
|
24
|
+
},
|
|
25
|
+
'modelcontextprotocol-sdk': {
|
|
26
|
+
opName: () => 'mcp.tool.call',
|
|
27
|
+
serviceName: identityService,
|
|
22
28
|
},
|
|
23
29
|
fetch: {
|
|
24
30
|
opName: () => 'http.client.request',
|
|
25
31
|
serviceName: httpPluginClientService,
|
|
32
|
+
serviceSource: optionServiceSource,
|
|
26
33
|
},
|
|
27
34
|
http2: {
|
|
28
35
|
opName: () => 'http.client.request',
|
|
29
36
|
serviceName: httpPluginClientService,
|
|
37
|
+
serviceSource: optionServiceSource,
|
|
30
38
|
},
|
|
31
39
|
aws: {
|
|
32
40
|
opName: ({ awsService }) => `aws.${awsService}.request`,
|
|
@@ -45,26 +53,32 @@ const web = {
|
|
|
45
53
|
'apollo.gateway.request': {
|
|
46
54
|
opName: () => 'apollo.gateway.request',
|
|
47
55
|
serviceName: ({ pluginConfig, tracerService }) => pluginConfig.service || tracerService,
|
|
56
|
+
serviceSource: optionServiceSource,
|
|
48
57
|
},
|
|
49
58
|
'apollo.gateway.plan': {
|
|
50
59
|
opName: () => 'apollo.gateway.plan',
|
|
51
60
|
serviceName: ({ pluginConfig, tracerService }) => pluginConfig.service || tracerService,
|
|
61
|
+
serviceSource: optionServiceSource,
|
|
52
62
|
},
|
|
53
63
|
'apollo.gateway.validate': {
|
|
54
64
|
opName: () => 'apollo.gateway.validate',
|
|
55
65
|
serviceName: ({ pluginConfig, tracerService }) => pluginConfig.service || tracerService,
|
|
66
|
+
serviceSource: optionServiceSource,
|
|
56
67
|
},
|
|
57
68
|
'apollo.gateway.execute': {
|
|
58
69
|
opName: () => 'apollo.gateway.execute',
|
|
59
70
|
serviceName: ({ pluginConfig, tracerService }) => pluginConfig.service || tracerService,
|
|
71
|
+
serviceSource: optionServiceSource,
|
|
60
72
|
},
|
|
61
73
|
'apollo.gateway.fetch': {
|
|
62
74
|
opName: () => 'apollo.gateway.fetch',
|
|
63
75
|
serviceName: ({ pluginConfig, tracerService }) => pluginConfig.service || tracerService,
|
|
76
|
+
serviceSource: optionServiceSource,
|
|
64
77
|
},
|
|
65
78
|
'apollo.gateway.postprocessing': {
|
|
66
79
|
opName: () => 'apollo.gateway.postprocessing',
|
|
67
80
|
serviceName: ({ pluginConfig, tracerService }) => pluginConfig.service || tracerService,
|
|
81
|
+
serviceSource: optionServiceSource,
|
|
68
82
|
},
|
|
69
83
|
grpc: {
|
|
70
84
|
opName: () => 'grpc.server.request',
|
|
@@ -1,28 +1,34 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
+
const { optionServiceSource } = require('../util')
|
|
4
|
+
|
|
3
5
|
const websocket = {
|
|
4
6
|
request: {
|
|
5
7
|
ws: {
|
|
6
8
|
opName: () => 'web.request',
|
|
7
9
|
serviceName: ({ pluginConfig, tracerService }) => pluginConfig.service || tracerService,
|
|
10
|
+
serviceSource: optionServiceSource,
|
|
8
11
|
},
|
|
9
12
|
},
|
|
10
13
|
producer: {
|
|
11
14
|
ws: {
|
|
12
15
|
opName: () => 'websocket.send',
|
|
13
16
|
serviceName: ({ pluginConfig, tracerService }) => pluginConfig.service || tracerService,
|
|
17
|
+
serviceSource: optionServiceSource,
|
|
14
18
|
},
|
|
15
19
|
},
|
|
16
20
|
consumer: {
|
|
17
21
|
ws: {
|
|
18
22
|
opName: () => 'websocket.receive',
|
|
19
23
|
serviceName: ({ pluginConfig, tracerService }) => pluginConfig.service || tracerService,
|
|
24
|
+
serviceSource: optionServiceSource,
|
|
20
25
|
},
|
|
21
26
|
},
|
|
22
27
|
close: {
|
|
23
28
|
ws: {
|
|
24
29
|
opName: () => 'websocket.close',
|
|
25
30
|
serviceName: ({ pluginConfig, tracerService }) => pluginConfig.service || tracerService,
|
|
31
|
+
serviceSource: optionServiceSource,
|
|
26
32
|
},
|
|
27
33
|
},
|
|
28
34
|
}
|