UNPKG

@ahmedhegazee/nestjs-telescope

Version:

Advanced observability and monitoring solution for NestJS applications with ML-powered analytics, enterprise features, and production-ready scaling

65 lines (64 loc) 2.12 kB
import { Observable } from 'rxjs'; export interface PerformanceMetrics { averageProcessingTime: number; throughput: number; memoryUsage: number; cpuUsage: number; errorRate: number; queueSize: number; } export interface OptimizationRecommendation { type: 'batch_size' | 'flush_interval' | 'concurrency' | 'memory' | 'circuit_breaker'; current: number; recommended: number; reason: string; impact: 'low' | 'medium' | 'high'; confidence: number; } export interface PerformanceSettings { batchSize: number; flushInterval: number; maxConcurrency: number; memoryThreshold: number; adaptiveOptimization: boolean; } export declare class PerformanceOptimizerService { private readonly logger; private readonly metricsSubject; private readonly settingsSubject; private readonly performanceHistory; private readonly maxHistorySize; private lastOptimizationTime; private readonly optimizationInterval; constructor(); private startPerformanceMonitoring; private collectSystemMetrics; private calculateAverageProcessingTime; private calculateThroughput; private getMemoryUsage; private getCpuUsage; private calculateErrorRate; private getCurrentQueueSize; private addToHistory; private analyzeAndOptimize; private generateOptimizationRecommendations; private calculateAverageMetrics; private applyOptimizations; getMetricsStream(): Observable<PerformanceMetrics>; getSettingsStream(): Observable<PerformanceSettings>; getCurrentMetrics(): PerformanceMetrics | null; getCurrentSettings(): PerformanceSettings; updateSettings(settings: Partial<PerformanceSettings>): void; generatePerformanceReport(): { currentMetrics: PerformanceMetrics | null; settings: PerformanceSettings; recommendations: OptimizationRecommendation[]; trends: { processingTime: number[]; throughput: number[]; memoryUsage: number[]; errorRate: number[]; }; }; resetOptimizations(): void; }