UNPKG

dd-trace

Version:

Datadog APM tracing client for JavaScript

30 lines (22 loc) 910 B
'use strict' const { entryTags } = require('../../datadog-code-origin') const Plugin = require('../../dd-trace/src/plugins/plugin') const web = require('../../dd-trace/src/plugins/util/web') const kCodeOriginForSpansTagsSym = Symbol('datadog.codeOriginForSpansTags') class FastifyCodeOriginForSpansPlugin extends Plugin { static id = 'fastify' constructor (...args) { super(...args) this.addSub('apm:fastify:request:handle', ({ req, routeConfig }) => { const tags = routeConfig?.[kCodeOriginForSpansTagsSym] if (!tags) return const context = web.getContext(req) context.span?.addTags(tags) }) this.addSub('apm:fastify:route:added', ({ routeOptions, onRoute }) => { if (!routeOptions.config) routeOptions.config = {} routeOptions.config[kCodeOriginForSpansTagsSym] = entryTags(onRoute) }) } } module.exports = FastifyCodeOriginForSpansPlugin