UNPKG

apitally

Version:

Simple API monitoring & analytics for REST APIs built with Express, Fastify, NestJS, AdonisJS, Hono, H3, Elysia, Hapi, and Koa.

46 lines (43 loc) 1.3 kB
import { SpanProcessor, Span, ReadableSpan } from '@opentelemetry/sdk-trace-base'; type SpanData = { spanId: string; parentSpanId: string | null; name: string; kind: string; startTime: string; endTime: string; status?: string; attributes?: Record<string, unknown>; }; type SpanHandle = { traceId?: string; setName: (name: string) => void; runInContext: <T>(fn: () => T) => T; enterContext: () => void; end: () => SpanData[] | undefined; }; declare class SpanCollector implements SpanProcessor { enabled: boolean; private includedSpanIds; private collectedSpans; private traceStartTimes; private maintainIntervalId?; private tracer?; constructor(enabled: boolean); startSpan(): SpanHandle; private getAndClearSpans; onStart(span: Span): void; onEnd(span: ReadableSpan): void; private serializeSpan; private maintain; shutdown(): Promise<void>; forceFlush(): Promise<void>; } declare class ApitallySpanProcessor implements SpanProcessor { private getCollector; onStart(span: Span): void; onEnd(span: ReadableSpan): void; shutdown(): Promise<void>; forceFlush(): Promise<void>; } export { ApitallySpanProcessor, type SpanData, type SpanHandle, SpanCollector as default };