/** * Performance Monitor - Monitors MCP server performance and metrics * * This module collects, analyzes, and reports performance metrics */ import { Logger } from "../types.js"; export interface PerformanceMetrics { server: { uptime: number; requestCount: number; errorCount: number; averageResponseTime: number; memoryUsage: number; cpuUsage: number; }; tools: { executionCount: Map; averageExecutionTime: Map; errorRate: Map; cacheHitRate: Map; }; sessions: { activeSessions: number; totalSessions: number; averageSessionDuration: number; }; } export interface PerformanceMonitorConfig { collectionInterval?: number; enableDetailedMetrics?: boolean; enableMemoryTracking?: boolean; enableCPUTracking?: boolean; metricsRetention?: number; } export declare class PerformanceMonitor { private metrics; private logger; private config; private collectionTimer?; private startTime; private requestTimes; private errorCount; private requestCount; constructor(logger: Logger, config?: PerformanceMonitorConfig); /** * Record a request */ recordRequest(responseTime: number): void; /** * Record an error */ recordError(): void; /** * Record tool execution */ recordToolExecution(toolName: string, executionTime: number, success: boolean): void; /** * Record cache hit */ recordCacheHit(toolName: string): void; /** * Update session metrics */ updateSessionMetrics(activeSessions: number, totalSessions: number, averageDuration: number): void; /** * Get current metrics */ getMetrics(): PerformanceMetrics; /** * Get metrics summary */ getMetricsSummary(): { uptime: string; requestsPerSecond: number; errorRate: number; averageResponseTime: number; memoryUsage: string; topTools: Array<{ name: string; count: number; avgTime: number; }>; }; /** * Export metrics in different formats */ exportMetrics(format: "json" | "prometheus" | "summary"): string; /** * Initialize metrics structure */ private initializeMetrics; /** * Update server metrics */ private updateServerMetrics; /** * Start metrics collection */ private startCollection; /** * Collect and log metrics */ private collectMetrics; /** * Export metrics in Prometheus format */ private exportPrometheusMetrics; /** * Export metrics summary */ private exportSummaryMetrics; /** * Clone metrics to prevent external modification */ private cloneMetrics; /** * Format duration in human-readable format */ private formatDuration; /** * Format bytes in human-readable format */ private formatBytes; /** * Cleanup resources */ destroy(): void; } //# sourceMappingURL=performance-monitor.d.ts.map