UNPKG

polyv-live-cli

Version:

CLI tool for managing PolyV live streaming services.

137 lines 3.86 kB
import { EventEmitter } from 'events'; export interface ApiAnalyticsConfig { enableDetailedTracking: boolean; maxRequestRecords: number; analyticsWindow: number; enablePerformanceMonitoring: boolean; enableErrorTracking: boolean; sampleRate: number; } export interface ApiRequestRecord { id: string; method: string; url: string; timestamp: number; responseTime: number; statusCode: number; requestSize: number; responseSize: number; success: boolean; error: string; priority: 'low' | 'medium' | 'high'; cached: boolean; batched: boolean; userAgent: string; } export interface EndpointStats { endpoint: string; totalRequests: number; successfulRequests: number; failedRequests: number; averageResponseTime: number; minResponseTime: number; maxResponseTime: number; successRate: number; totalDataTransferred: number; lastRequestTime: number; requestsPerHour: number; } export interface PerformanceMetrics { averageResponseTime: number; p95ResponseTime: number; p99ResponseTime: number; overallSuccessRate: number; requestsPerSecond: number; cacheHitRate: number; batchEfficiency: number; errorRate: number; averageRequestSize: number; averageResponseSize: number; } export interface ErrorAnalysis { commonErrors: Array<{ error: string; count: number; percentage: number; endpoints: string[]; }>; errorsByEndpoint: Array<{ endpoint: string; errorCount: number; errorRate: number; }>; errorTrends: Array<{ timestamp: number; errorCount: number; totalRequests: number; }>; } export interface UsagePatterns { peakHours: Array<{ hour: number; requestCount: number; }>; activeEndpoints: Array<{ endpoint: string; requestCount: number; percentage: number; }>; methodDistribution: Record<string, number>; priorityDistribution: Record<string, number>; cachingStats: { cacheHitRate: number; cacheMissRate: number; cacheableRequests: number; }; } export declare class ApiAnalytics extends EventEmitter { private config; private requestRecords; private endpointStats; private errorCounts; private isRunning; private analyticsTimer?; constructor(config?: Partial<ApiAnalyticsConfig>); start(): void; stop(): void; recordRequest(id: string, method: string, url: string, responseTime: number, options?: { statusCode?: number; requestSize?: number; responseSize?: number; success?: boolean; error?: string; priority?: 'low' | 'medium' | 'high'; cached?: boolean; batched?: boolean; userAgent?: string; }): void; getOverallStats(): { totalRequests: number; successfulRequests: number; failedRequests: number; averageResponseTime: number; successRate: number; totalDataTransferred: number; timeWindow: number; }; getEndpointStats(): EndpointStats[]; getPerformanceMetrics(): PerformanceMetrics; getErrorAnalysis(): ErrorAnalysis; getUsagePatterns(): UsagePatterns; generateReport(): { summary: ReturnType<ApiAnalytics['getOverallStats']>; performance: PerformanceMetrics; errors: ErrorAnalysis; usage: UsagePatterns; endpoints: EndpointStats[]; generatedAt: number; }; clearData(): void; updateConfig(newConfig: Partial<ApiAnalyticsConfig>): void; private updateEndpointStats; private normalizeEndpoint; private trackError; private setupPeriodicAnalytics; private performPeriodicAnalytics; } //# sourceMappingURL=api-analytics.d.ts.map