@kurrent/opentelemetry
Version:
KurrentDB NodeJS Client SDK interceptors for tracing with OpenTelemetry
22 lines (21 loc) • 1.24 kB
TypeScript
import { Tracer } from "@opentelemetry/api";
import { InstrumentationBase, InstrumentationConfig, InstrumentationNodeModuleDefinition } from "@opentelemetry/instrumentation";
import type { PersistentSubscriptionImpl } from "@kurrent/kurrentdb-client/src/persistentSubscription/utils/PersistentSubscriptionImpl";
import type { Subscription } from "@kurrent/kurrentdb-client/src/streams/utils/Subscription";
import { type AuthContext } from "./utils";
export declare class Instrumentation extends InstrumentationBase {
constructor(config?: InstrumentationConfig);
protected init(): InstrumentationNodeModuleDefinition;
private _onPatchMain;
private wrap;
private _onUnPatchMain;
private _patchAppendToStream;
private _patchMultiStreamAppend;
private _patchAppendRecords;
static applySubscriptionInstrumentation<KnownEventType>(spanName: string, subscription: Subscription<KnownEventType> | PersistentSubscriptionImpl<KnownEventType>, uri: string, operation: string, authContext: AuthContext, tracer: Tracer): void;
private _patchCatchUpSubscription;
private _patchPersistentSubscription;
private static restoreContext;
private static handleError;
private static getServerAddress;
}