@nodedaemon/core
Version:
Production-ready Node.js process manager with zero external dependencies
49 lines • 1.38 kB
TypeScript
import { EventEmitter } from 'events';
import { ProcessInfo } from '../types';
import { LogManager } from './LogManager';
interface ProcessMetrics {
pid: number;
memory: {
rss: number;
heapTotal: number;
heapUsed: number;
external: number;
};
cpu: {
user: number;
system: number;
percent: number;
};
uptime: number;
timestamp: number;
}
export declare class HealthMonitor extends EventEmitter {
private logger;
private processes;
private metrics;
private monitorInterval;
private isMonitoring;
private checkInterval;
constructor(logger: LogManager);
addProcess(processInfo: ProcessInfo): void;
removeProcess(processId: string): void;
updateProcess(processInfo: ProcessInfo): void;
startMonitoring(): void;
stopMonitoring(): void;
private performHealthCheck;
private checkInstanceHealth;
private getProcessMetrics;
private getPlatformMetrics;
private getLinuxMetrics;
private getMacMetrics;
private getWindowsMetrics;
private detectMemoryLeak;
private detectCPUSpikes;
private analyzeHealthTrends;
getMetricsHistory(pid: number): ProcessMetrics[];
getHealthSummary(): any;
setCheckInterval(interval: number): void;
clearMetrics(): void;
}
export {};
//# sourceMappingURL=HealthMonitor.d.ts.map