UNPKG

nestjs-otel

Version:
41 lines (40 loc) 1.26 kB
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; };