UNPKG

failover-sdk

Version:

One-line API failover with zero downtime. Native Rust performance with TypeScript interface.

102 lines 3.18 kB
export interface MetricsSummary { total_requests: number; total_failures: number; total_failovers: number; active_connections: number; uptime_seconds: number; average_response_time_ms: number; requests_per_second: number; } export interface ProviderMetrics { provider: string; requests: number; successes: number; failures: number; average_response_time_ms: number; total_response_time_ms: number; last_request_time: number; health_score: number; } export interface FailoverEvent { timestamp: number; from_provider: string; to_provider: string; reason: string; service: string; operation: string; } export interface RequestMetric { timestamp: number; provider: string; service: string; operation: string; method: string; status_code: number; response_time_ms: number; success: boolean; } export declare class MetricsManager { private static initialized; /** * Initialize the metrics system (call once at startup) */ static initialize(): void; /** * Track a request */ static trackRequest(provider: string, service: string, operation: string, method: string, status_code: number, response_time_ms: number): void; /** * Track a failover event */ static trackFailover(from_provider: string, to_provider: string, reason: string, service?: string, operation?: string): void; /** * Get metrics summary */ static getSummary(): MetricsSummary; /** * Get provider-specific metrics */ static getProviderMetrics(): Record<string, ProviderMetrics>; /** * Get recent failover events */ static getFailoverEvents(): FailoverEvent[]; /** * Get recent requests */ static getRecentRequests(limit?: number): RequestMetric[]; /** * Export metrics in Prometheus format */ static exportPrometheus(): string; /** * Reset all metrics */ static reset(): void; /** * Create Express.js middleware for automatic request tracking */ static createExpressMiddleware(): (req: { method: string; path: string; }, res: { statusCode: number; get: (header: string) => string | undefined; on: (event: string, callback: () => void) => void; }, next: () => void) => void; } export declare function initialize(): void; export declare function trackRequest(provider: string, service: string, operation: string, method: string, status_code: number, response_time_ms: number): void; export declare function trackFailover(from_provider: string, to_provider: string, reason: string): void; export declare function getSummary(): MetricsSummary; export declare function getProviderMetrics(): Record<string, ProviderMetrics>; export declare function exportPrometheus(): string; export declare function createExpressMiddleware(): (req: { method: string; path: string; }, res: { statusCode: number; get: (header: string) => string | undefined; on: (event: string, callback: () => void) => void; }, next: () => void) => void; //# sourceMappingURL=metrics.d.ts.map