UNPKG

polyv-live-cli

Version:

CLI tool for managing PolyV live streaming services.

149 lines 4.03 kB
import { EventEmitter } from 'events'; export interface PerformanceMonitorConfig { enableAutoMonitoring: boolean; monitoringInterval: number; maxRecords: number; cpuThreshold: number; memoryThreshold: number; responseTimeThreshold: number; enableAlerts: boolean; enableReporting: boolean; reportInterval: number; enableProfiling: boolean; profilingSampleRate: number; } export interface PerformanceMetrics { timestamp: number; cpuUsage: number; memoryUsage: number; heapUsage: number; eventLoopDelay: number; renderTime: number; apiResponseTime: number; apiCallCount: number; errorCount: number; cacheHitRate: number; activeConnections: number; gcPauseTime: number; frameRate: number; systemLoad: number[]; } export interface PerformanceTrend { metric: string; direction: 'increasing' | 'decreasing' | 'stable'; strength: number; average: number; min: number; max: number; standardDeviation: number; prediction: number; } export interface PerformanceAlert { id: string; type: 'warning' | 'critical' | 'info'; message: string; metric: string; currentValue: number; threshold: number; timestamp: number; severity: number; suggestedActions: string[]; } export interface PerformanceReport { timestamp: number; period: { start: number; end: number; }; summary: { averageCpuUsage: number; averageMemoryUsage: number; averageResponseTime: number; totalApiCalls: number; totalErrors: number; averageCacheHitRate: number; uptime: number; systemHealth: 'healthy' | 'degraded' | 'critical'; }; trends: PerformanceTrend[]; alerts: PerformanceAlert[]; recommendations: string[]; metrics: PerformanceMetrics[]; } export interface PerformanceProfile { id: string; name: string; startTime: number; endTime: number; duration: number; cpuSamples: Array<{ timestamp: number; usage: number; }>; memorySamples: Array<{ timestamp: number; usage: number; }>; callStack: Array<{ function: string; duration: number; calls: number; }>; hotSpots: Array<{ location: string; time: number; percentage: number; }>; } export declare class PerformanceMonitor extends EventEmitter { private config; private metrics; private alerts; private profiles; private monitoringTimer?; private reportTimer?; private isRunning; private startTime; private lastCpuUsage; private lastMeasurement; private alertIdCounter; private activeProfiles; constructor(config?: Partial<PerformanceMonitorConfig>); start(): void; stop(): void; collectMetrics(): PerformanceMetrics; recordMetrics(metrics: Partial<PerformanceMetrics>): void; startProfile(profileId: string, name: string): void; stopProfile(profileId: string): PerformanceProfile | null; getMetrics(timeRange?: { start: number; end: number; }): PerformanceMetrics[]; getTrends(timeRange?: { start: number; end: number; }): PerformanceTrend[]; getAlerts(timeRange?: { start: number; end: number; }): PerformanceAlert[]; generateReport(timeRange?: { start: number; end: number; }): PerformanceReport; getProfile(profileId: string): PerformanceProfile | null; clearData(): void; updateConfig(newConfig: Partial<PerformanceMonitorConfig>): void; private measureEventLoopDelay; private startMonitoring; private startReporting; private checkAlerts; private startProfilingSampling; private analyzeProfile; private findHotSpots; private calculateTrend; private calculateSummary; private generateRecommendations; private setupEventHandlers; } //# sourceMappingURL=performance-monitor.d.ts.map