@temporalio/interceptors-opentelemetry
Version:
Temporal.io SDK interceptors bundle for tracing with opentelemetry
33 lines (32 loc) • 2.35 kB
TypeScript
import './runtime';
import * as otel from '@opentelemetry/api';
import { ActivityInput, ContinueAsNewInput, DisposeInput, GetLogAttributesInput, LocalActivityInput, Next, SignalInput, SignalWorkflowInput, StartChildWorkflowExecutionInput, WorkflowExecuteInput, WorkflowInboundCallsInterceptor, WorkflowInternalsInterceptor, WorkflowOutboundCallsInterceptor } from '@temporalio/workflow';
export * from './definitions';
/**
* Intercepts calls to run a Workflow
*
* Wraps the operation in an opentelemetry Span and links it to a parent Span context if one is
* provided in the Workflow input headers.
*/
export declare class OpenTelemetryInboundInterceptor implements WorkflowInboundCallsInterceptor {
protected readonly tracer: otel.Tracer;
execute(input: WorkflowExecuteInput, next: Next<WorkflowInboundCallsInterceptor, 'execute'>): Promise<unknown>;
handleSignal(input: SignalInput, next: Next<WorkflowInboundCallsInterceptor, 'handleSignal'>): Promise<void>;
}
/**
* Intercepts outbound calls to schedule an Activity
*
* Wraps the operation in an opentelemetry Span and passes it to the Activity via headers.
*/
export declare class OpenTelemetryOutboundInterceptor implements WorkflowOutboundCallsInterceptor {
protected readonly tracer: otel.Tracer;
scheduleActivity(input: ActivityInput, next: Next<WorkflowOutboundCallsInterceptor, 'scheduleActivity'>): Promise<unknown>;
scheduleLocalActivity(input: LocalActivityInput, next: Next<WorkflowOutboundCallsInterceptor, 'scheduleLocalActivity'>): Promise<unknown>;
startChildWorkflowExecution(input: StartChildWorkflowExecutionInput, next: Next<WorkflowOutboundCallsInterceptor, 'startChildWorkflowExecution'>): Promise<[Promise<string>, Promise<unknown>]>;
continueAsNew(input: ContinueAsNewInput, next: Next<WorkflowOutboundCallsInterceptor, 'continueAsNew'>): Promise<never>;
signalWorkflow(input: SignalWorkflowInput, next: Next<WorkflowOutboundCallsInterceptor, 'signalWorkflow'>): Promise<void>;
getLogAttributes(input: GetLogAttributesInput, next: Next<WorkflowOutboundCallsInterceptor, 'getLogAttributes'>): Record<string, unknown>;
}
export declare class OpenTelemetryInternalsInterceptor implements WorkflowInternalsInterceptor {
dispose(input: DisposeInput, next: Next<WorkflowInternalsInterceptor, 'dispose'>): Promise<void>;
}