codecrucible-synth
Version:
Production-Ready AI Development Platform with Multi-Voice Synthesis, Smithery MCP Integration, Enterprise Security, and Zero-Timeout Reliability
137 lines • 3.6 kB
TypeScript
#!/usr/bin/env node
/**
* Performance Monitor - Consolidated performance tracking and metrics
* Replaces: system-benchmark.ts, performance-optimized-client.ts, and scattered metrics
*/
import { EventEmitter } from 'events';
import { PerformanceMetrics, ProviderMetrics } from '../core/types.js';
export interface RequestMetrics {
provider: string;
model: string;
startTime: number;
endTime?: number;
tokenCount?: number;
success: boolean;
error?: string;
}
export interface SystemMetrics {
cpu: {
usage: number;
cores: number;
};
memory: {
used: number;
total: number;
percentage: number;
};
disk: {
used: number;
total: number;
percentage: number;
};
}
export interface PerformanceAlert {
type: 'latency' | 'error_rate' | 'resource_usage';
severity: 'warning' | 'critical';
message: string;
value: number;
threshold: number;
provider?: string;
timestamp: Date;
}
export declare class PerformanceMonitor extends EventEmitter {
private providerMetrics;
private requestHistory;
private systemMetrics;
private alerts;
private startTime;
private monitoringEnabled;
private monitoringInterval?;
private lastAlertTimes;
private readonly MAX_HISTORY_SIZE;
private readonly ALERT_THRESHOLDS;
constructor(enableMonitoring?: boolean);
private initializeSystemMonitoring;
/**
* Disable monitoring and clean up intervals
*/
disableMonitoring(): void;
/**
* Clean up resources and disable monitoring
*/
destroy(): void;
private updateSystemMetrics;
private getCPUUsage;
/**
* Record a request for performance tracking
*/
recordRequest(provider: string, metrics: RequestMetrics): void;
private updateProviderMetrics;
private checkPerformanceAlerts;
private createAlert;
/**
* Get metrics for a specific provider
*/
getProviderMetrics(provider?: string): Record<string, ProviderMetrics>;
/**
* Get overall performance summary
*/
getSummary(): PerformanceMetrics;
/**
* Get recent performance alerts
*/
getAlerts(limit?: number): PerformanceAlert[];
/**
* Get system metrics
*/
getSystemMetrics(): SystemMetrics | null;
/**
* Get request history
*/
getRequestHistory(provider?: string, limit?: number): RequestMetrics[];
/**
* Reset metrics for a provider
*/
resetProviderMetrics(provider: string): void;
/**
* Clear all metrics
*/
clearAllMetrics(): void;
/**
* Export metrics for analysis
*/
exportMetrics(): {
summary: PerformanceMetrics;
history: RequestMetrics[];
alerts: PerformanceAlert[];
system: SystemMetrics | null;
exportTime: Date;
};
/**
* Get performance recommendations
*/
getRecommendations(): Array<{
type: 'performance' | 'reliability' | 'resource';
priority: 'low' | 'medium' | 'high';
description: string;
action: string;
}>;
/**
* Start performance monitoring
*/
start(): void;
/**
* Stop performance monitoring
*/
stop(): void;
/**
* Start operation tracking (for compatibility)
*/
startOperation(operationId: string, component?: string): void;
/**
* End operation tracking (for compatibility)
*/
endOperation(operationId: string): void;
private operationTracking?;
}
//# sourceMappingURL=performance.d.ts.map