UNPKG

@opentelemetry/node

Version:

OpenTelemetry Node SDK provides automatic telemetry (tracing, metrics, etc) for Node.js applications

48 lines 1.93 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.NodeTracerProvider = void 0; const context_async_hooks_1 = require("@opentelemetry/context-async-hooks"); const propagator_b3_1 = require("@opentelemetry/propagator-b3"); const tracing_1 = require("@opentelemetry/tracing"); const semver = require("semver"); const propagator_jaeger_1 = require("@opentelemetry/propagator-jaeger"); /** * Register this TracerProvider for use with the OpenTelemetry API. * Undefined values may be replaced with defaults, and * null values will be skipped. * * @param config Configuration object for SDK registration */ class NodeTracerProvider extends tracing_1.BasicTracerProvider { constructor(config = {}) { super(config); } register(config = {}) { if (config.contextManager === undefined) { const ContextManager = semver.gte(process.version, '14.8.0') ? context_async_hooks_1.AsyncLocalStorageContextManager : context_async_hooks_1.AsyncHooksContextManager; config.contextManager = new ContextManager(); config.contextManager.enable(); } super.register(config); } _getPropagator(name) { var _a; return (super._getPropagator(name) || ((_a = NodeTracerProvider._registeredPropagators.get(name)) === null || _a === void 0 ? void 0 : _a())); } } exports.NodeTracerProvider = NodeTracerProvider; NodeTracerProvider._registeredPropagators = new Map([ [ 'b3', () => new propagator_b3_1.B3Propagator({ injectEncoding: propagator_b3_1.B3InjectEncoding.SINGLE_HEADER }), ], [ 'b3multi', () => new propagator_b3_1.B3Propagator({ injectEncoding: propagator_b3_1.B3InjectEncoding.MULTI_HEADER }), ], ['jaeger', () => new propagator_jaeger_1.JaegerPropagator()], ]); //# sourceMappingURL=NodeTracerProvider.js.map