@gati-framework/observability
Version:
Observability stack for Gati framework - Prometheus, Grafana, Loki, and Tracing
22 lines (21 loc) • 874 B
TypeScript
import * as api from '@opentelemetry/api';
export interface TracingConfig {
serviceName: string;
serviceVersion?: string;
environment?: string;
autoInstrument?: boolean;
metricsPort?: number;
}
export declare class DistributedTracing {
private sdk?;
private tracer;
constructor(config: TracingConfig);
createSpan(name: string, attributes?: api.Attributes): api.Span;
withSpan<T>(name: string, fn: (span: api.Span) => Promise<T>, attributes?: api.Attributes): Promise<T>;
addEvent(name: string, attributes?: api.Attributes): void;
setAttribute(key: string, value: api.AttributeValue): void;
recordException(error: Error): void;
getTraceContext(): string | undefined;
shutdown(): Promise<void>;
}
export declare function createTracingMiddleware(tracing: DistributedTracing): (req: any, res: any, next: any) => void;