UNPKG

@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
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 {};