UNPKG

ultimate-mcp-server

Version:

The definitive all-in-one Model Context Protocol server for AI-assisted coding across 30+ platforms

202 lines 5.12 kB
/** * Performance Monitoring System * * Tracks metrics, performance, and provides insights * for Ultimate MCP server operations */ import { EventEmitter } from 'events'; interface PerformanceMetric { timestamp: number; duration: number; success: boolean; error?: string; } interface ToolMetrics { invocations: number; totalDuration: number; averageDuration: number; minDuration: number; maxDuration: number; successRate: number; lastUsed: number; errors: number; calls: number; } interface ModelMetrics { requests: number; tokens: { input: number; output: number; total: number; }; cost: number; averageLatency: number; errors: number; } export declare class PerformanceMonitor extends EventEmitter { private toolMetrics; private modelMetrics; private systemMetrics; private metricsInterval?; constructor(); /** * Start tracking tool execution */ private activeToolExecutions; startToolExecution(toolName: string): void; /** * End tracking tool execution */ endToolExecution(toolName: string, success: boolean, error?: string): void; /** * Record model usage */ recordModelUsage(model: string, tokens: number, latency: number, success: boolean, inputTokens?: number, outputTokens?: number, cost?: number): void; /** * Estimate cost based on model and tokens */ private estimateCost; /** * Track tool execution */ trackToolExecution(toolName: string, duration: number, success: boolean, error?: string): void; /** * Track model usage */ trackModelUsage(model: string, inputTokens: number, outputTokens: number, cost: number, latency: number, success: boolean): void; /** * Track request lifecycle */ startRequest(): string; endRequest(requestId: string): void; /** * Get tool metrics */ getToolMetrics(toolName?: string): Record<string, ToolMetrics> | ToolMetrics | null; /** * Calculate metrics for a tool */ private calculateToolMetrics; /** * Get model metrics */ getModelMetrics(model?: string): Record<string, ModelMetrics> | ModelMetrics | null; /** * Get performance summary */ getPerformanceSummary(): { uptime: number; totalRequests: number; activeRequests: number; peakActiveRequests: number; tools: Record<string, ToolMetrics>; models: Record<string, ModelMetrics>; memoryUsage: { timestamp: number; used: number; total: number; }; }; /** * Get system metrics */ getSystemMetrics(): { uptime: number; uptimeHuman: string; totalRequests: number; activeRequests: number; peakActiveRequests: number; requestsPerMinute: string; memory: { current: { heapUsed: number; heapTotal: number; external: number; rss: number; }; history: { timestamp: number; used: number; total: number; }[]; }; cpu: { history: { timestamp: number; usage: number; }[]; }; }; /** * Get cost breakdown */ getCostBreakdown(): { total: number; breakdown: Record<string, { cost: number; percentage: number; }>; byProvider: Record<string, number>; }; /** * Group costs by provider */ private groupCostByProvider; /** * Get performance insights */ getInsights(): string[]; /** * Export metrics for analysis */ exportMetrics(): { timestamp: number; tools: { [k: string]: PerformanceMetric[]; }; models: { [k: string]: ModelMetrics; }; system: { uptime: number; uptimeHuman: string; totalRequests: number; activeRequests: number; peakActiveRequests: number; requestsPerMinute: string; memory: { current: { heapUsed: number; heapTotal: number; external: number; rss: number; }; history: { timestamp: number; used: number; total: number; }[]; }; cpu: { history: { timestamp: number; usage: number; }[]; }; }; }; /** * Start collecting system metrics */ private startSystemMetricsCollection; /** * Format uptime */ private formatUptime; /** * Cleanup */ destroy(): void; } export {}; //# sourceMappingURL=performance-monitor.d.ts.map