@sumologic/opentelemetry-rum
Version:
Adds OpenTelemetry tracing auto-instrumentation in the browser. Collects spans on network events and sends them to Sumo Logic.
26 lines (25 loc) • 1.21 kB
TypeScript
import { Context } from '@opentelemetry/api';
import { ReadableSpan, Span as SdkTraceSpan } from '@opentelemetry/sdk-trace-base';
import { SumoLogicSpanProcessor } from '.';
declare type TraceId = string;
interface InternalTraceRecord {
traceId: TraceId;
timeout: number;
/** Only the first root span is recorded */
rootSpan?: SdkTraceSpan;
/** Call it when metrics are calculated and the root span is ready to be send */
send?: () => void;
/** All ended spans in a trace */
spans: SdkTraceSpan[];
}
export declare type TraceRecord = Pick<InternalTraceRecord, 'rootSpan' | 'spans'>;
export declare enum TraceProcessorResult {
DROP_ROOT_SPAN = 0
}
export declare type TraceProcessor = (rootSpan: SdkTraceSpan, spans: SdkTraceSpan[], spanProcessor: SumoLogicSpanProcessor) => TraceProcessorResult | void;
export declare const getTraceById: (traceId: TraceId) => TraceRecord | undefined;
export declare const createTraceProcessor: (spanProcessor: SumoLogicSpanProcessor) => {
onStart: (span: SdkTraceSpan, context?: Context | undefined) => void;
onEnd: (readableSpan: ReadableSpan, superOnEnd: (span: ReadableSpan) => void) => void;
};
export {};