@ahmedhegazee/nestjs-telescope
Version:
Advanced observability and monitoring solution for NestJS applications with ML-powered analytics, enterprise features, and production-ready scaling
47 lines (46 loc) • 1.47 kB
TypeScript
import { TelescopeEntry } from '../interfaces/telescope-entry.interface';
export interface BufferConfig {
enabled: boolean;
maxBufferSize: number;
flushInterval: number;
maxBatchSize: number;
priorityFlushThreshold: number;
retryAttempts: number;
retryDelay: number;
}
export interface BufferStats {
currentBufferSize: number;
totalEntries: number;
totalFlushes: number;
totalFailures: number;
lastFlushTime: number;
averageFlushSize: number;
bufferUtilization: number;
}
export declare class BufferedEntryManagerService {
private readonly flushHandler;
private readonly logger;
private readonly buffer;
private readonly config;
private flushTimer;
private isFlushInProgress;
private readonly stats;
constructor(config: Partial<BufferConfig>, flushHandler: (entries: TelescopeEntry[]) => Promise<void>);
addEntry(entry: TelescopeEntry, priority?: number): Promise<void>;
addBatch(entries: TelescopeEntry[], priority?: number): Promise<void>;
flush(): Promise<void>;
getStats(): BufferStats;
getBufferSize(): number;
isHealthy(): boolean;
clearBuffer(): void;
onDestroy(): void;
shutdown(): Promise<void>;
private shouldFlushImmediately;
private startFlushTimer;
private flushBuffer;
private processBatch;
private handleFailedBatch;
private updateBufferUtilization;
private updateAverageFlushSize;
private sleep;
}