dd-trace
Version:
Datadog APM tracing client for JavaScript
162 lines (156 loc) • 5.03 kB
JavaScript
const { identityService, awsServiceV0, awsServiceSource } = require('../util')
function amqpServiceName ({ tracerService }) {
return `${tracerService}-amqp`
}
function integrationSource (source) {
return () => source
}
const messaging = {
producer: {
amqplib: {
opName: () => 'amqp.command',
serviceName: amqpServiceName,
serviceSource: integrationSource('amqp'),
},
amqp10: {
opName: () => 'amqp.send',
serviceName: amqpServiceName,
serviceSource: integrationSource('amqp'),
},
'azure-event-hubs': {
opName: () => 'azure.eventhubs.send',
serviceName: ({ tracerService }) => `${tracerService}-azure-event-hubs`,
serviceSource: integrationSource('azure-event-hubs'),
},
'azure-service-bus': {
opName: () => 'azure.servicebus.send',
serviceName: ({ tracerService }) => `${tracerService}-azure-service-bus`,
serviceSource: integrationSource('azure-service-bus'),
},
'electron:ipc:main:send': {
opName: () => 'electron.main.send',
serviceName: identityService,
},
'electron:ipc:renderer:send': {
opName: () => 'electron.renderer.send',
serviceName: identityService,
},
'google-cloud-pubsub': {
opName: () => 'pubsub.request',
serviceName: ({ tracerService }) => `${tracerService}-pubsub`,
serviceSource: integrationSource('google-cloud-pubsub'),
},
kafkajs: {
opName: () => 'kafka.produce',
serviceName: ({ tracerService }) => `${tracerService}-kafka`,
serviceSource: integrationSource('kafka'),
},
'confluentinc-kafka-javascript': {
opName: () => 'kafka.produce',
serviceName: ({ tracerService }) => `${tracerService}-kafka`,
serviceSource: integrationSource('kafka'),
},
nats: {
opName: () => 'nats.publish',
serviceName: ({ tracerService }) => `${tracerService}-nats`,
serviceSource: integrationSource('nats'),
},
rhea: {
opName: () => 'amqp.send',
serviceName: ({ tracerService }) => `${tracerService}-amqp-producer`,
serviceSource: integrationSource('amqp'),
},
sqs: {
opName: () => 'aws.request',
serviceName: awsServiceV0,
serviceSource: awsServiceSource,
},
sns: {
opName: () => 'aws.request',
serviceName: awsServiceV0,
serviceSource: awsServiceSource,
},
bullmq: {
opName: () => 'bullmq.add',
serviceName: ({ tracerService }) => `${tracerService}-bullmq`,
serviceSource: integrationSource('bullmq'),
},
},
consumer: {
amqplib: {
opName: () => 'amqp.command',
serviceName: amqpServiceName,
serviceSource: integrationSource('amqp'),
},
amqp10: {
opName: () => 'amqp.receive',
serviceName: amqpServiceName,
serviceSource: integrationSource('amqp'),
},
'electron:ipc:main:receive': {
opName: () => 'electron.main.receive',
serviceName: identityService,
},
'electron:ipc:main:handle': {
opName: () => 'electron.main.handle',
serviceName: identityService,
},
'electron:ipc:renderer:receive': {
opName: () => 'electron.renderer.receive',
serviceName: identityService,
},
'google-cloud-pubsub': {
opName: () => 'pubsub.receive',
serviceName: ({ tracerService }) => `${tracerService}-pubsub`,
serviceSource: integrationSource('google-cloud-pubsub'),
},
'google-cloud-pubsub-push-subscription': {
opName: () => 'pubsub.receive',
serviceName: ({ tracerService }) => `${tracerService}-pubsub`,
serviceSource: integrationSource('google-cloud-pubsub'),
},
kafkajs: {
opName: () => 'kafka.consume',
serviceName: ({ tracerService }) => `${tracerService}-kafka`,
serviceSource: integrationSource('kafka'),
},
'confluentinc-kafka-javascript': {
opName: () => 'kafka.consume',
serviceName: ({ tracerService }) => `${tracerService}-kafka`,
serviceSource: integrationSource('kafka'),
},
nats: {
opName: () => 'nats.consume',
serviceName: ({ tracerService }) => `${tracerService}-nats`,
serviceSource: integrationSource('nats'),
},
rhea: {
opName: () => 'amqp.receive',
serviceName: identityService,
},
sqs: {
opName: () => 'aws.request',
serviceName: awsServiceV0,
serviceSource: awsServiceSource,
},
bullmq: {
opName: () => 'bullmq.processJob',
serviceName: ({ tracerService }) => `${tracerService}-bullmq`,
serviceSource: integrationSource('bullmq'),
},
},
client: {
amqplib: {
opName: () => 'amqp.command',
serviceName: amqpServiceName,
serviceSource: integrationSource('amqp'),
},
'google-cloud-pubsub': {
opName: () => 'pubsub.request',
serviceName: ({ tracerService }) => `${tracerService}-pubsub`,
serviceSource: integrationSource('google-cloud-pubsub'),
},
},
}
module.exports = messaging