UNPKG

opentelemetry-tracing

Version:

Support add tracing in NodeJS project

51 lines 2.52 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.start = void 0; const dotenv_1 = require("dotenv"); const resources_1 = require("@opentelemetry/resources"); const semantic_conventions_1 = require("@opentelemetry/semantic-conventions"); const sdk_node_1 = require("@opentelemetry/sdk-node"); const auto_instrumentations_node_1 = require("@opentelemetry/auto-instrumentations-node"); const api_1 = require("@opentelemetry/api"); const sdk_trace_node_1 = require("@opentelemetry/sdk-trace-node"); const sdk_trace_base_1 = require("@opentelemetry/sdk-trace-base"); (0, dotenv_1.config)(); const isDebug = () => process.env.DEBUG_MODE === 'true'; const setResource = (opts) => { return resources_1.Resource.default().merge(new resources_1.Resource({ [semantic_conventions_1.SemanticResourceAttributes.SERVICE_NAME]: opts.serviceName, [semantic_conventions_1.SemanticResourceAttributes.SERVICE_VERSION]: opts.version, })); }; const setProvider = (resource) => new sdk_trace_node_1.NodeTracerProvider({ resource }); const setExporter = (opts) => new opts.exporter({ url: opts.otlpEndpoint }); if (isDebug()) api_1.diag.setLogger(new api_1.DiagConsoleLogger(), api_1.DiagLogLevel.INFO); const start = (configs) => { var _a; const provider = setProvider(setResource(configs)); const exporter = setExporter(configs); const showLogConsole = ((_a = configs === null || configs === void 0 ? void 0 : configs.console) === null || _a === void 0 ? void 0 : _a.log) || false; if (showLogConsole) provider.addSpanProcessor(new sdk_trace_base_1.SimpleSpanProcessor(new sdk_trace_base_1.ConsoleSpanExporter())); provider.addSpanProcessor(new sdk_trace_base_1.SimpleSpanProcessor(exporter)); const sdk = new sdk_node_1.NodeSDK({ traceExporter: exporter, instrumentations: [(0, auto_instrumentations_node_1.getNodeAutoInstrumentations)()], autoDetectResources: true, }); provider.register(); process.on('SIGTERM', () => { sdk .shutdown() .then(() => console.log('[Opentelemetry] - Tracing terminated')) .catch((error) => console.log('Error terminating tracing', error)) .finally(() => process.exit(0)); }); return sdk .start() .then(() => console.log('[Opentelemetry] - Tracing initialized')) .catch((error) => console.log('Error initializing tracing', error)); }; exports.start = start; //# sourceMappingURL=index.js.map