UNPKG

@embrace-io/web-sdk

Version:
40 lines (39 loc) 1.21 kB
import { KEY_EMB_TYPE } from "../../constants/attributes.js"; import { isSessionPartSpan, isSoftNavigationSpan } from "../../utils/spanPredicates.js"; import { diag } from "@opentelemetry/api"; import { hrTimeToMilliseconds } from "@opentelemetry/core"; //#region src/processors/SignalCorrelationSpanProcessor/SignalCorrelationSpanProcessor.ts /** * Records eligible spans as they start into a shared buffer, so a * soft-navigation span can later correlate the logs and spans that started * within its window. */ var SignalCorrelationSpanProcessor = class { _buffer; constructor({ buffer }) { this._buffer = buffer; } forceFlush() { return Promise.resolve(void 0); } onStart(span) { try { if (isSoftNavigationSpan(span) || isSessionPartSpan(span)) return; this._buffer.record({ kind: "span", id: span.spanContext().spanId, startTime: hrTimeToMilliseconds(span.startTime), type: span.attributes[KEY_EMB_TYPE] }); } catch (e) { diag.error("failed to record span for correlation", e); } } onEnd() {} shutdown() { return Promise.resolve(void 0); } }; //#endregion export { SignalCorrelationSpanProcessor }; //# sourceMappingURL=SignalCorrelationSpanProcessor.js.map