UNPKG

autotel

Version:
70 lines (69 loc) 2.41 kB
import { ReadableSpan, Span, SpanProcessor } from "@opentelemetry/sdk-trace-base"; import { Context } from "@opentelemetry/api"; //#region src/span-name-normalizer.d.ts /** * Function to normalize a span name * @param name - The original span name * @returns The normalized span name */ type SpanNameNormalizerFn = (name: string) => string; /** * Built-in normalizer preset names */ type SpanNameNormalizerPreset = 'rest-api' | 'graphql' | 'minimal'; /** * Normalizer config - either a function or a preset name */ type SpanNameNormalizerConfig = SpanNameNormalizerFn | SpanNameNormalizerPreset; interface SpanNameNormalizingProcessorOptions { /** * Normalizer function or preset name */ normalizer: SpanNameNormalizerConfig; } /** * Built-in normalizer patterns */ declare const NORMALIZER_PATTERNS: { readonly numericId: RegExp; readonly uuid: RegExp; readonly shortUuid: RegExp; readonly objectId: RegExp; readonly hash: RegExp; readonly isoDate: RegExp; readonly timestamp: RegExp; readonly email: RegExp; }; /** * Built-in normalizer presets */ declare const NORMALIZER_PRESETS: Record<SpanNameNormalizerPreset, SpanNameNormalizerFn>; /** * Span processor that normalizes span names to reduce cardinality. * * Normalization happens in onStart() when we have access to the mutable Span. * This allows us to call span.updateName() before the span is finalized. * * Common use cases: * - REST APIs: /users/123/posts/456 → /users/:id/posts/:id * - UUIDs: /items/550e8400-e29b-41d4-a716-446655440000 → /items/:uuid * - Dates: /logs/2024-01-15 → /logs/:date */ declare class SpanNameNormalizingProcessor implements SpanProcessor { private readonly wrappedProcessor; private readonly normalizer; constructor(wrappedProcessor: SpanProcessor, options: SpanNameNormalizingProcessorOptions); /** * Normalize span name on start (when Span is mutable) */ onStart(span: Span, parentContext: Context): void; /** * Pass through onEnd unchanged */ onEnd(span: ReadableSpan): void; forceFlush(): Promise<void>; shutdown(): Promise<void>; } //#endregion export { SpanNameNormalizerPreset as a, SpanNameNormalizerFn as i, NORMALIZER_PRESETS as n, SpanNameNormalizingProcessor as o, SpanNameNormalizerConfig as r, SpanNameNormalizingProcessorOptions as s, NORMALIZER_PATTERNS as t }; //# sourceMappingURL=span-name-normalizer-8ZOGJuwv.d.cts.map