UNPKG

@temporalio/interceptors-opentelemetry

Version:
30 lines (29 loc) 1.11 kB
/** * opentelemetry instrumentation helper functions * @module */ import * as otel from '@opentelemetry/api'; import { Headers } from '@temporalio/common'; /** Default trace header for opentelemetry interceptors */ export declare const TRACE_HEADER = "_tracer-data"; /** As in workflow run id */ export declare const RUN_ID_ATTR_KEY = "run_id"; /** * If found, return an otel Context deserialized from the provided headers */ export declare function extractContextFromHeaders(headers: Headers): Promise<otel.Context | undefined>; /** * Given headers, return new headers with the current otel context inserted */ export declare function headersWithContext(headers: Headers): Promise<Headers>; export interface InstrumentOptions<T> { tracer: otel.Tracer; spanName: string; fn: (span: otel.Span) => Promise<T>; context?: otel.Context; acceptableErrors?: (err: unknown) => boolean; } /** * Wraps `fn` in a span which ends when function returns or throws */ export declare function instrument<T>({ tracer, spanName, fn, context, acceptableErrors, }: InstrumentOptions<T>): Promise<T>;