/** * Agentic QE v3 - Real Metrics Collector * Collects actual system metrics instead of fake Math.random() values * * Tracks: * - CPU usage via process.cpuUsage() * - Memory usage via process.memoryUsage() * - Task completion times with process.hrtime() * - Success/failure counts per agent * - Retry counts * - Load distribution */ export interface TaskMetric { taskId: string; agentId: string; startTime: [number, number]; endTime?: [number, number]; durationMs?: number; success: boolean; retries: number; } export interface AgentMetrics { agentId: string; tasksCompleted: number; tasksFailed: number; totalRetries: number; successfulRetries: number; maxRetriesReached: number; totalDurationMs: number; taskCount: number; } export interface ResourceSnapshot { timestamp: number; cpuUser: number; cpuSystem: number; memoryHeapUsed: number; memoryHeapTotal: number; memoryExternal: number; memoryRss: number; } export interface WorkerLoadStats { workerId: string; activeTaskCount: number; completedTaskCount: number; lastActivityTime: number; } /** * Singleton MetricsCollector for tracking real metrics across the system */ declare class MetricsCollectorImpl { private taskMetrics; private agentMetrics; private resourceSnapshots; private workerLoads; private activeTasks; private lastCpuUsage; private snapshotInterval; private initialized; /** * Initialize the metrics collector and start resource monitoring */ initialize(): void; /** * Stop the metrics collector */ shutdown(): void; /** * Start tracking a task */ startTask(taskId: string, agentId: string): void; /** * Record a retry for a task */ recordRetry(taskId: string): void; /** * Complete a task (success or failure) */ completeTask(taskId: string, success: boolean): number; /** * Get current CPU usage percentage */ getCpuUsagePercent(): number; /** * Get current memory usage percentage */ getMemoryUsagePercent(): number; /** * Get resource stats for an agent or overall */ getResourceStats(agentId?: string): { cpu: number; memory: number; }; /** * Get task stats for a specific agent */ getAgentTaskStats(agentId: string): { tasksCompleted: number; averageTime: number; successRate: number; }; /** * Get worker efficiency based on actual throughput */ getWorkerEfficiency(): number; /** * Get load balance score based on actual distribution */ getLoadBalanceScore(): number; /** * Get retry statistics */ getRetryStats(): { totalRetries: number; successfulRetries: number; maxRetriesReached: number; }; /** * Get average execution time from recent tasks */ getAverageExecutionTime(): number; /** * Get number of workers used (with active or completed tasks) */ getWorkersUsed(): number; /** * Generate individual test result durations based on actual execution * Uses the sliding window of real task durations */ getTestDurations(count: number): number[]; /** * Record a successful retry for tracking */ recordSuccessfulRetry(agentId: string): void; /** * Record when max retries is reached for a task */ recordMaxRetriesReached(agentId: string): void; /** * Reset all metrics (useful for testing) */ reset(): void; private ensureInitialized; private updateAgentMetrics; private updateWorkerLoad; private takeResourceSnapshot; } export declare const MetricsCollector: MetricsCollectorImpl; export { MetricsCollectorImpl }; export declare function createTaskTracker(taskId: string, agentId: string): { recordRetry: () => void; complete: (success: boolean) => number; }; //# sourceMappingURL=metrics-collector.d.ts.map