UNPKG

autosnippet

Version:

Extract code patterns into a knowledge base for AI coding assistants

105 lines (104 loc) 2.92 kB
/** * 性能监控中间件 * 记录 API 请求的响应时间、吞吐量和错误率 */ interface EndpointStats { count: number; errors: number; totalDuration: number; minDuration: number; maxDuration: number; avgDuration: number; } interface RequestData { route: string; method: string; path: string; statusCode: number; duration: number; userAgent?: string; ip?: string; timestamp: string; } export declare class PerformanceMonitor { config: { slowRequestThreshold: number; maxResponseTimeSamples: number; maxSlowRequests: number; }; metrics: { requests: { total: number; success: number; errors: number; }; endpoints: Map<string, EndpointStats>; responseTimes: number[]; slowRequests: RequestData[]; errorRate: number | string; averageResponseTime: number; startTime: number; rpm?: number; p95?: number; p99?: number; }; statsInterval: ReturnType<typeof setInterval>; constructor(); /** Express 中间件 */ middleware(): (req: { method: string; path: string; get: (header: string) => string | undefined; ip?: string; }, res: { on: (event: string, cb: () => void) => void; statusCode: number; }, next: () => void) => void; /** 记录请求 */ recordRequest(requestData: RequestData): void; /** 计算统计数据。silent=true 时不输出日志(定时器调用) */ calculateStats(silent?: boolean): void; /** 获取统计信息 */ getStats(): { summary: { totalRequests: number; successfulRequests: number; failedRequests: number; errorRate: string; averageResponseTime: string; requestsPerMinute: number | undefined; p95ResponseTime: string; p99ResponseTime: string; uptime: number; }; topEndpoints: { avgDuration: number; count: number; errors: number; totalDuration: number; minDuration: number; maxDuration: number; route: string; }[]; slowestEndpoints: { route: string; avgDuration: number; count: number; }[]; recentSlowRequests: { route: string; duration: string; timestamp: string; statusCode: number; }[]; }; /** 重置统计 */ reset(): void; /** 停止监控 */ shutdown(): void; } /** 初始化性能监控 */ export declare function initPerformanceMonitor(): PerformanceMonitor; /** 获取性能监控实例 */ export declare function getPerformanceMonitor(): PerformanceMonitor; export default PerformanceMonitor;