nestjs-otel
Version:
NestJS OpenTelemetry Library
41 lines (40 loc) • 1.26 kB
TypeScript
import type { Abstract, ModuleMetadata, Type } from "@nestjs/common";
export type OpenTelemetryModuleOptions = {
/**
* OpenTelemetry Metrics Setup
*/
metrics?: OpenTelemetryMetrics;
};
export type OpenTelemetryOptionsFactory = {
createOpenTelemetryOptions(): Promise<OpenTelemetryModuleOptions> | OpenTelemetryModuleOptions;
};
/**
* The options for the asynchronous OpenTelemetry module creation
*
* @publicApi
*/
export interface OpenTelemetryModuleAsyncOptions extends Pick<ModuleMetadata, "imports"> {
/**
* The name of the module
*/
name?: string;
/**
* The class which should be used to provide the OpenTelemetry options
*/
useClass?: Type<OpenTelemetryOptionsFactory>;
/**
* Import existing providers from other module
*/
useExisting?: Type<OpenTelemetryOptionsFactory>;
/**
* The factory which should be used to provide the OpenTelemetry options
*/
useFactory?: (...args: any[]) => Promise<OpenTelemetryModuleOptions> | OpenTelemetryModuleOptions;
/**
* The providers which should get injected
*/
inject?: (string | symbol | Function | Type<any> | Abstract<any>)[];
}
export type OpenTelemetryMetrics = {
hostMetrics?: boolean;
};