@temporalio/interceptors-opentelemetry
Version:
Temporal.io SDK interceptors bundle for tracing with opentelemetry
30 lines (29 loc) • 1.11 kB
TypeScript
/**
* 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>;