tryaii-mcp-server
Version:
TryAII MCP Server - 15+ AI models with comparison, cost tracking, and collective intelligence
82 lines • 2.57 kB
TypeScript
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