UNPKG

tryaii-mcp-server

Version:

TryAII MCP Server - 15+ AI models with comparison, cost tracking, and collective intelligence

82 lines 2.57 kB
import { EventEmitter } from 'events'; export interface MetricData { name: string; value: number; timestamp: number; labels: Record<string, string>; unit: string; } export interface SystemMetrics { requests: { total: number; successful: number; failed: number; rate: number; }; performance: { averageResponseTime: number; p95ResponseTime: number; p99ResponseTime: number; }; ai: { totalCost: number; totalTokens: number; modelUsage: Record<string, number>; providerUsage: Record<string, number>; }; users: { activeUsers: number; totalUsers: number; rateLimitViolations: number; }; system: { uptime: number; memoryUsage: number; cpuUsage: number; }; } export interface PerformanceSnapshot { timestamp: number; responseTime: number; statusCode: number; endpoint: string; userId: string | undefined; modelId?: string; cost?: number; tokens?: number; } export declare class MetricsService extends EventEmitter { private static instance; private metrics; private performanceData; private counters; private gauges; private histograms; private startTime; private readonly maxMetricsAge; private readonly maxDataPoints; private constructor(); static getInstance(): MetricsService; private initializeMetrics; recordCounter(name: string, value?: number, labels?: Record<string, string>): void; recordGauge(name: string, value: number, labels?: Record<string, string>): void; recordHistogram(name: string, value: number, labels?: Record<string, string>): void; private recordMetric; recordRequest(success: boolean, responseTime: number, endpoint: string, userId?: string): void; recordAIUsage(modelId: string, provider: string, cost: number, tokens: number, userId?: string): void; recordUserActivity(userId: string, action: string): void; recordRateLimitViolation(userId: string, tier: string, reason: string): void; updateSystemMetrics(): void; getSystemMetrics(): SystemMetrics; private getModelUsage; private getProviderUsage; private getUniqueUsersCount; checkAlerts(): void; exportMetrics(format?: 'json' | 'prometheus'): string; private exportPrometheusFormat; private startCleanupTimer; private cleanup; reset(): void; } export declare const metricsService: MetricsService; //# sourceMappingURL=MetricsService.d.ts.map