UNPKG

@loglayer/plugin-opentelemetry

Version:

OpenTelemetry plugin for LogLayer that adds trace context to logs.

44 lines (42 loc) 1.25 kB
let _opentelemetry_api = require("@opentelemetry/api"); //#region src/index.ts 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 = _opentelemetry_api.trace.getSpan(_opentelemetry_api.context.active()); if (span) { const spanContext = span.spanContext(); if ((0, _opentelemetry_api.isSpanContextValid)(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) }; } //#endregion exports.openTelemetryPlugin = openTelemetryPlugin; //# sourceMappingURL=index.cjs.map