UNPKG

@ahmedhegazee/nestjs-telescope

Version:

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

61 lines (60 loc) 1.63 kB
import { Observable } from 'rxjs'; export interface BatchResult { processed: number; failed: number; duration: number; success: boolean; error?: string; timestamp: Date; } export interface StreamMetrics { entriesInQueue: number; errorCount: number; averageProcessingTime: number; throughput: number; isProcessing: boolean; subscriptions: number; lastProcessedAt?: Date; } export interface BatchPerformanceMetrics { totalEntries: number; totalBatches: number; successfulBatches: number; failedBatches: number; averageProcessingTime: number; throughput: number; errorRate: number; uptime: number; } export declare class MetricsService { private readonly logger; private readonly batchResults; private readonly startTime; private metrics; private processingTimes; private readonly maxProcessingTimesSamples; private errorCount; constructor(); private setupMetricsStream; recordBatchProcessing(result: BatchResult): void; private updateMetrics; getMetrics(): BatchPerformanceMetrics; getStreamMetrics(): StreamMetrics; getErrorCount(): number; getAverageProcessingTime(): number; getThroughput(): number; getUptime(): number; getMetricsStream(): Observable<BatchPerformanceMetrics>; reset(): void; getPerformanceReport(): { metrics: BatchPerformanceMetrics; samples: { processingTimes: number[]; recentBatches: number; }; status: { isHealthy: boolean; alerts: string[]; }; }; }