/** * Metrics Collector - System-wide metrics collection and aggregation */ import { EventEmitter } from 'events'; /** * Metric types */ export interface SystemMetrics { timestamp: Date; cpu: CPUMetrics; memory: MemoryMetrics; network: NetworkMetrics; process: ProcessMetrics; } export interface CPUMetrics { usage: number; loadAverage: number[]; cores: number; } export interface MemoryMetrics { total: number; used: number; free: number; heapUsed: number; heapTotal: number; external: number; } export interface NetworkMetrics { bytesReceived: number; bytesSent: number; connectionsActive: number; requestsPerSecond: number; } export interface ProcessMetrics { uptime: number; pid: number; handles: number; threads: number; } export interface TaskMetrics { total: number; pending: number; inProgress: number; completed: number; failed: number; averageDuration: number; throughput: number; } export interface TerminalMetrics { connected: number; idle: number; busy: number; disconnected: number; averageLoad: number; } export interface ProjectMetrics { active: number; completed: number; failed: number; averageCompletion: number; totalTasks: number; } /** * Metrics Collector */ export declare class MetricsCollector extends EventEmitter { private logger; private interval?; private startTime; private tasksTotal; private tasksInProgress; private taskDuration; private terminalsConnected; private contextSize; private memoryUsage; private cpuUsage; private requestRate; private errorRate; private metrics; constructor(); /** * Initialize Prometheus metrics */ private initializePrometheusMetrics; /** * Start collecting metrics */ start(intervalMs?: number): void; /** * Stop collecting metrics */ stop(): void; /** * Collect all metrics */ private collectMetrics; /** * Collect system metrics */ private collectSystemMetrics; /** * Calculate CPU usage percentage */ private calculateCPUUsage; /** * Calculate request rate */ private calculateRequestRate; /** * Update Prometheus metrics */ private updatePrometheusMetrics; /** * Record task started */ recordTaskStarted(taskType: string): void; /** * Record task completed */ recordTaskCompleted(taskType: string, duration: number): void; /** * Record task failed */ recordTaskFailed(taskType: string, duration: number, error?: string): void; /** * Record terminal connected */ recordTerminalConnected(terminalId: string): void; /** * Record terminal disconnected */ recordTerminalDisconnected(terminalId: string): void; /** * Record terminal status change */ recordTerminalStatus(terminalId: string, oldStatus: string, newStatus: string): void; /** * Record project started */ recordProjectStarted(projectId: string, totalTasks: number): void; /** * Record project completed */ recordProjectCompleted(projectId: string, duration: number, success: boolean): void; /** * Record API request */ recordRequest(method: string, route: string, status: number, duration: number): void; /** * Record error */ recordError(component: string, error: string): void; /** * Record context size */ recordContextSize(bytes: number): void; /** * Get current metrics */ getMetrics(): any; /** * Get metrics history */ getMetricsHistory(duration?: number): SystemMetrics[]; /** * Get Prometheus metrics */ getPrometheusMetrics(): string; /** * Get health status */ getHealthStatus(): { status: 'healthy' | 'degraded' | 'unhealthy'; checks: Map; message?: string; }; /** * Reset metrics */ reset(): void; /** * Destroy collector */ destroy(): void; } //# sourceMappingURL=metrics-collector.d.ts.map