@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
TypeScript
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[];
};
};
}