UNPKG

@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
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; }