UNPKG

@texagon/nestjs-health

Version:

A comprehensive health monitoring package for NestJS applications with metrics and Kubernetes-ready health checks

80 lines (79 loc) 2.08 kB
export interface ResourceMetrics { timestamp: number; memory: { rss: number; heapTotal: number; heapUsed: number; external: number; arrayBuffers?: number; }; cpu: { user: number; system: number; percent: number; }; loadAvg: number[]; freeMemory: number; } export interface RequestMetrics { timestamp: number; method: string; path: string; statusCode: number; responseTime: number; } export declare class MetricsService { private readonly logger; private readonly maxHistoryPoints; private readonly resourceMetrics; private readonly requestMetrics; private maxMemoryUsage; private minMemoryUsage; private maxCpuUsage; private requestStats; private lastCpuUsage; private lastCpuUsageTime; constructor(); recordRequest(method: string, path: string, statusCode: number, responseTime: number): void; private collectResourceMetrics; getMetrics(): { current: ResourceMetrics; max: { memory: { rss: number; heapTotal: number; heapUsed: number; external: number; arrayBuffers: number; }; cpu: { user: number; system: number; percent: number; }; }; min: { memory: { rss: number; heapTotal: number; heapUsed: number; external: number; arrayBuffers: number; }; }; requests: { stats: { total: number; byMethod: Record<string, number>; byStatusCode: Record<string, number>; avgResponseTime: number; maxResponseTime: number; minResponseTime: number; }; recent: RequestMetrics[]; }; history: { resources: ResourceMetrics[]; }; }; }