route-claudecode
Version:
Advanced routing and transformation system for Claude Code outputs to multiple AI providers
114 lines • 3 kB
TypeScript
/**
* CodeWhisperer 性能监控器
* 收集实时流式和缓冲式实现的性能指标
* 项目所有者: Jason Zhang
*/
import { PerformanceReport, SSEEvent } from '../client-interface';
import { CodeWhispererStreamingConfig } from './streaming-config';
export interface MetricsSnapshot {
timestamp: number;
memoryUsage: NodeJS.MemoryUsage;
cpuUsage: NodeJS.CpuUsage;
}
export interface StreamMetrics {
requestId: string;
startTime: number;
endTime?: number;
eventsCount: number;
totalLatency: number;
maxLatency: number;
minLatency: number;
memorySnapshots: MetricsSnapshot[];
implementation: 'buffered' | 'realtime';
success: boolean;
error?: string;
}
export declare class CodeWhispererPerformanceMetrics {
private metrics;
private config;
private metricsInterval?;
private aggregatedMetrics;
constructor(config: CodeWhispererStreamingConfig);
/**
* 初始化聚合指标
*/
private initializeAggregatedMetrics;
/**
* 开始性能指标收集
*/
private startMetricsCollection;
/**
* 开始跟踪单个请求的性能
*/
startTracking(requestId: string, implementation: 'buffered' | 'realtime'): void;
/**
* 记录事件延迟
*/
recordLatency(requestId: string, event: SSEEvent): void;
/**
* 结束跟踪并生成性能报告
*/
endTracking(requestId: string, success?: boolean, error?: string): PerformanceReport | null;
/**
* 更新聚合指标
*/
private updateAggregatedMetrics;
/**
* 收集系统指标
*/
private collectSystemMetrics;
/**
* 清理旧指标
*/
private cleanupOldMetrics;
/**
* 获取聚合性能报告
*/
getAggregatedReport(): {
currentActiveRequests: number;
timestamp: number;
totalRequests: number;
successfulRequests: number;
failedRequests: number;
avgDuration: number;
avgLatency: number;
memoryPeak: number;
implementationStats: {
buffered: {
count: number;
avgDuration: number;
successRate: number;
};
realtime: {
count: number;
avgDuration: number;
successRate: number;
};
};
};
/**
* 获取当前活跃请求指标
*/
getActiveRequestsMetrics(): StreamMetrics[];
/**
* 比较两个实现的性能
*/
compareImplementations(): {
buffered: any;
realtime: any;
comparison: {
durationImprovement: number;
successRateImprovement: number;
recommendation: 'realtime' | 'buffered' | 'mixed';
};
};
/**
* 重置聚合指标
*/
resetAggregatedMetrics(): void;
/**
* 销毁性能监控器
*/
destroy(): void;
}
//# sourceMappingURL=performance-metrics.d.ts.map