nestjs-otel
Version:
NestJS OpenTelemetry Library
30 lines (29 loc) • 1.2 kB
TypeScript
import { ModuleMetadata, Type, Abstract } from '@nestjs/common';
import { Attributes } from '@opentelemetry/api-metrics';
import { RouteInfo } from '@nestjs/common/interfaces';
export declare type OpenTelemetryModuleOptions = {
metrics?: OpenTelemetryMetrics;
};
export interface OpenTelemetryOptionsFactory {
createOpenTelemetryOptions(): Promise<OpenTelemetryModuleOptions> | OpenTelemetryModuleOptions;
}
export interface OpenTelemetryModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
name?: string;
useClass?: Type<OpenTelemetryOptionsFactory>;
useExisting?: Type<OpenTelemetryOptionsFactory>;
useFactory?: (...args: any[]) => Promise<OpenTelemetryModuleOptions> | OpenTelemetryModuleOptions;
inject?: (string | symbol | Function | Type<any> | Abstract<any>)[];
}
export declare type OpenTelemetryMetrics = {
defaultMetrics?: boolean;
hostMetrics?: boolean;
apiMetrics?: {
enable?: boolean;
timeBuckets?: number[];
requestSizeBuckets?: number[];
responseSizeBuckets?: number[];
defaultAttributes?: Attributes;
ignoreRoutes?: (string | RouteInfo)[];
ignoreUndefinedRoutes?: boolean;
};
};