@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
TypeScript
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[];
};
};
}