UNPKG

@ahmedhegazee/nestjs-telescope

Version:

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

77 lines (76 loc) 2.45 kB
import { OnModuleInit } from '@nestjs/common'; import { TelescopeEntry } from '../interfaces/telescope-entry.interface'; import { TelescopeConfig } from '../interfaces/telescope-config.interface'; import { StorageManagerService } from '../../storage/storage-manager.service'; export declare class EnhancedEntryManagerService implements OnModuleInit { private readonly storageManager; private readonly config; private readonly logger; private readonly batchQueues; private readonly retryQueue; private readonly metrics; private sequenceCounter; private processingIntervals; constructor(storageManager: StorageManagerService, config: TelescopeConfig); onModuleInit(): Promise<void>; process(entry: TelescopeEntry): Promise<void>; processBatch(entries: TelescopeEntry[]): Promise<void>; private getQueueKey; private shouldBatch; private addToQueue; private flushQueue; private processImmediate; private processRetryQueue; private startBatchProcessors; private startRetryProcessor; private startMetricsReporting; private reportMetrics; private ensureEntryFields; private generateFamilyHash; private getQueueConfig; private groupEntriesByQueue; getMetrics(): ProcessingMetrics; getQueueStatus(): Record<string, QueueStatus>; forceFlushAll(): Promise<void>; cleanup(): Promise<void>; } declare class ProcessingMetrics { private entriesProcessed; private batchesProcessed; private batchesSuccessful; private immediateProcessed; private immediateSuccessful; private retriesAttempted; private retriesSuccessful; private errors; private startTime; recordEntry(entry: TelescopeEntry): void; recordBatch(size: number, success: boolean): void; recordImmediate(success: boolean): void; recordRetry(success: boolean): void; recordError(): void; getMetrics(): MetricsSnapshot; reset(): void; } interface QueueConfig { batchSize: number; flushInterval: number; } interface QueueStatus { name: string; size: number; config: QueueConfig; } interface MetricsSnapshot { entriesProcessed: number; batchesProcessed: number; batchSuccessRate: number; immediateProcessed: number; immediateSuccessRate: number; retriesAttempted: number; retrySuccessRate: number; errors: number; throughput: number; elapsedSeconds: number; } export {};