UNPKG

@loglayer/plugin-opentelemetry

Version:

OpenTelemetry plugin for LogLayer that adds trace context to logs.

49 lines (47 loc) 1.45 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/index.ts var _api = require('@opentelemetry/api'); function openTelemetryPlugin(config = {}) { const traceIdField = config.traceIdFieldName || "trace_id"; const spanIdField = config.spanIdFieldName || "span_id"; const traceFlagsField = config.traceFlagsFieldName || "trace_flags"; const addTraceContext = (data) => { const span = _api.trace.getSpan(_api.context.active()); if (span) { const spanContext = span.spanContext(); if (_api.isSpanContextValid.call(void 0, spanContext)) { const fields = { [traceIdField]: spanContext.traceId, [spanIdField]: spanContext.spanId, [traceFlagsField]: `0${spanContext.traceFlags.toString(16)}` }; if (config.traceFieldName) { const traceData = { [config.traceFieldName]: fields }; if (data) { return { ...data, ...traceData }; } return traceData; } if (data) { return { ...data, ...fields }; } return fields; } } return data || {}; }; return { id: config.id, disabled: config.disabled, onBeforeDataOut: ({ data }) => addTraceContext(data) }; } exports.openTelemetryPlugin = openTelemetryPlugin; //# sourceMappingURL=index.cjs.map