UNPKG

@embrace-io/web-sdk

Version:
1 lines 2.31 kB
{"version":3,"file":"SignalCorrelationSpanProcessor.cjs","names":["isSoftNavigationSpan","isSessionPartSpan","KEY_EMB_TYPE"],"sources":["../../../src/processors/SignalCorrelationSpanProcessor/SignalCorrelationSpanProcessor.ts"],"sourcesContent":["import { diag } from '@opentelemetry/api';\nimport { hrTimeToMilliseconds } from '@opentelemetry/core';\nimport type { Span, SpanProcessor } from '@opentelemetry/sdk-trace';\nimport { KEY_EMB_TYPE } from '../../constants/index.ts';\nimport { isSessionPartSpan, isSoftNavigationSpan } from '../../utils/index.ts';\nimport type { SignalBuffer } from '../utils/SignalBuffer.ts';\nimport type { SignalCorrelationSpanProcessorArgs } from './types.ts';\n\n/**\n * Records eligible spans as they start into a shared buffer, so a\n * soft-navigation span can later correlate the logs and spans that started\n * within its window.\n */\nexport class SignalCorrelationSpanProcessor implements SpanProcessor {\n private readonly _buffer: SignalBuffer;\n\n public constructor({ buffer }: SignalCorrelationSpanProcessorArgs) {\n this._buffer = buffer;\n }\n\n public forceFlush(): Promise<void> {\n return Promise.resolve(undefined);\n }\n\n public onStart(span: Span): void {\n try {\n if (isSoftNavigationSpan(span) || isSessionPartSpan(span)) {\n return;\n }\n this._buffer.record({\n kind: 'span',\n id: span.spanContext().spanId,\n startTime: hrTimeToMilliseconds(span.startTime),\n type: span.attributes[KEY_EMB_TYPE] as string | undefined,\n });\n } catch (e) {\n diag.error('failed to record span for correlation', e);\n }\n }\n\n public onEnd(this: void): void {\n // do nothing.\n }\n\n public shutdown(): Promise<void> {\n return Promise.resolve(undefined);\n }\n}\n"],"mappings":";;;;;;;;;;;AAaA,IAAa,iCAAb,MAAqE;CACnE;CAEA,YAAmB,EAAE,UAA8C;EACjE,KAAK,UAAU;CACjB;CAEA,aAAmC;EACjC,OAAO,QAAQ,QAAQ,KAAA,CAAS;CAClC;CAEA,QAAe,MAAkB;EAC/B,IAAI;GACF,IAAIA,6BAAAA,qBAAqB,IAAI,KAAKC,6BAAAA,kBAAkB,IAAI,GACtD;GAEF,KAAK,QAAQ,OAAO;IAClB,MAAM;IACN,IAAI,KAAK,YAAY,CAAC,CAAC;IACvB,YAAA,GAAA,oBAAA,qBAAA,CAAgC,KAAK,SAAS;IAC9C,MAAM,KAAK,WAAWC,6BAAAA;GACxB,CAAC;EACH,SAAS,GAAG;GACV,mBAAA,KAAK,MAAM,yCAAyC,CAAC;EACvD;CACF;CAEA,QAA+B,CAE/B;CAEA,WAAiC;EAC/B,OAAO,QAAQ,QAAQ,KAAA,CAAS;CAClC;AACF"}