@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.53 kB
TypeScript
export interface MemoryManagerConfig {
enabled: boolean;
maxTimelineSize: number;
metricsRetentionMs: number;
cleanupIntervalMs: number;
memoryThresholdMB: number;
autoCleanup: boolean;
compressionEnabled: boolean;
}
export interface MemoryStats {
totalAllocated: number;
timelineEntries: number;
metricsEntries: number;
lastCleanup: number;
memoryUsageMB: number;
compressionRatio: number;
}
export declare class EnhancedMemoryManagerService {
private readonly logger;
private readonly timelines;
private readonly metrics;
private readonly config;
private cleanupTimer;
constructor(config?: Partial<MemoryManagerConfig>);
addTimelineEntry(timelineId: string, data: any): void;
addMetricsEntry(key: string, value: any, ttlMs?: number): void;
getTimelineEntries(timelineId: string, fromTimestamp?: number, toTimestamp?: number): any[];
getLatestMetrics(key: string, limit?: number): any[];
getMemoryStats(): MemoryStats;
cleanup(): Promise<void>;
clearTimeline(timelineId: string): void;
clearMetrics(key: string): void;
clearAll(): void;
shutdown(): void;
private lastCleanupTime;
private startCleanupTimer;
private cleanupOldTimelineEntries;
private cleanupOldMetricsEntries;
private cleanupAllExpiredMetrics;
private cleanupExpiredMetrics;
private checkMemoryUsage;
private compressData;
private decompressData;
private simplifyObject;
private calculateCompressionRatio;
}