UNPKG

@loglayer/plugin-opentelemetry

Version:

OpenTelemetry plugin for LogLayer that adds trace context to logs.

1 lines 2.76 kB
{"version":3,"file":"index.cjs","names":["trace","context"],"sources":["../src/index.ts"],"sourcesContent":["import type { LogLayerPlugin, LogLayerPluginParams } from \"@loglayer/plugin\";\nimport { context, isSpanContextValid, trace } from \"@opentelemetry/api\";\n\nexport interface OpenTelemetryPluginParams extends LogLayerPluginParams {\n /**\n * If specified, all trace fields will be nested under this key\n */\n traceFieldName?: string;\n /**\n * Field name for the trace ID. Defaults to 'trace_id'\n */\n traceIdFieldName?: string;\n /**\n * Field name for the span ID. Defaults to 'span_id'\n */\n spanIdFieldName?: string;\n /**\n * Field name for the trace flags. Defaults to 'trace_flags'\n */\n traceFlagsFieldName?: string;\n}\n\nexport function openTelemetryPlugin(config: OpenTelemetryPluginParams = {}): LogLayerPlugin {\n const traceIdField = config.traceIdFieldName || \"trace_id\";\n const spanIdField = config.spanIdFieldName || \"span_id\";\n const traceFlagsField = config.traceFlagsFieldName || \"trace_flags\";\n\n const addTraceContext = (data: Record<string, any> | undefined) => {\n const span = trace.getSpan(context.active());\n if (span) {\n const spanContext = span.spanContext();\n if (isSpanContextValid(spanContext)) {\n const fields = {\n [traceIdField]: spanContext.traceId,\n [spanIdField]: spanContext.spanId,\n [traceFlagsField]: `0${spanContext.traceFlags.toString(16)}`,\n };\n\n if (config.traceFieldName) {\n const traceData = {\n [config.traceFieldName]: fields,\n };\n if (data) {\n return {\n ...data,\n ...traceData,\n };\n }\n return traceData;\n }\n\n if (data) {\n return {\n ...data,\n ...fields,\n };\n }\n return fields;\n }\n }\n return data || {};\n };\n\n return {\n id: config.id,\n disabled: config.disabled,\n onBeforeDataOut: ({ data }) => addTraceContext(data),\n };\n}\n"],"mappings":";;;AAsBA,SAAgB,oBAAoB,SAAoC,EAAE,EAAkB;CAC1F,MAAM,eAAe,OAAO,oBAAoB;CAChD,MAAM,cAAc,OAAO,mBAAmB;CAC9C,MAAM,kBAAkB,OAAO,uBAAuB;CAEtD,MAAM,mBAAmB,SAA0C;EACjE,MAAM,OAAOA,yBAAM,QAAQC,2BAAQ,QAAQ,CAAC;AAC5C,MAAI,MAAM;GACR,MAAM,cAAc,KAAK,aAAa;AACtC,kDAAuB,YAAY,EAAE;IACnC,MAAM,SAAS;MACZ,eAAe,YAAY;MAC3B,cAAc,YAAY;MAC1B,kBAAkB,IAAI,YAAY,WAAW,SAAS,GAAG;KAC3D;AAED,QAAI,OAAO,gBAAgB;KACzB,MAAM,YAAY,GACf,OAAO,iBAAiB,QAC1B;AACD,SAAI,KACF,QAAO;MACL,GAAG;MACH,GAAG;MACJ;AAEH,YAAO;;AAGT,QAAI,KACF,QAAO;KACL,GAAG;KACH,GAAG;KACJ;AAEH,WAAO;;;AAGX,SAAO,QAAQ,EAAE;;AAGnB,QAAO;EACL,IAAI,OAAO;EACX,UAAU,OAAO;EACjB,kBAAkB,EAAE,WAAW,gBAAgB,KAAK;EACrD"}