@ahmedhegazee/nestjs-telescope
Version:
Advanced observability and monitoring solution for NestJS applications with ML-powered analytics, enterprise features, and production-ready scaling
40 lines (39 loc) • 1.64 kB
TypeScript
import { OnModuleInit } from '@nestjs/common';
import { StorageDriver, StorageStats } from './interfaces/storage.interface';
import { TelescopeEntry, TelescopeEntryFilter, TelescopeEntryResult } from '../core/interfaces/telescope-entry.interface';
import { TelescopeConfig } from '../core/interfaces/telescope-config.interface';
export declare class StorageManagerService implements StorageDriver, OnModuleInit {
private readonly config;
private readonly logger;
private drivers;
private primaryDriver;
private fallbackDriver?;
private healthStatus;
constructor(config: TelescopeConfig);
onModuleInit(): Promise<void>;
private initializeDrivers;
store(entry: TelescopeEntry): Promise<void>;
storeBatch(entries: TelescopeEntry[]): Promise<void>;
find(filter?: TelescopeEntryFilter): Promise<TelescopeEntryResult>;
findById(id: string): Promise<TelescopeEntry | null>;
delete(id: string): Promise<boolean>;
clear(): Promise<void>;
prune(olderThan: Date): Promise<number>;
getStats(): Promise<StorageStats>;
private executeWithFallback;
checkAllDriversHealth(): Promise<void>;
private checkDriverHealth;
private startHealthChecks;
getDriverHealth(): Record<string, boolean>;
getDetailedStats(): Promise<{
primary: string;
fallback?: string;
health: Record<string, boolean>;
stats: StorageStats;
}>;
getPrimaryDriver(): StorageDriver;
getFallbackDriver(): StorageDriver | undefined;
getAvailableDrivers(): string[];
switchPrimaryDriver(driverName: string): Promise<void>;
cleanup(): Promise<void>;
}