@ahmedhegazee/nestjs-telescope
Version:
Advanced observability and monitoring solution for NestJS applications with ML-powered analytics, enterprise features, and production-ready scaling
30 lines (29 loc) • 1.75 kB
TypeScript
import { OnModuleInit } from '@nestjs/common';
import { TelescopeEntry, TelescopeEntryFilter, TelescopeEntryResult } from '../interfaces/telescope-entry.interface';
import { TelescopeConfig } from '../interfaces/telescope-config.interface';
import { EntryManagerService } from './entry-manager.service';
import { StorageService } from '../../storage/storage.service';
import { CircuitBreakerService } from './circuit-breaker.service';
export declare class TelescopeService implements OnModuleInit {
private readonly entryManager;
private readonly storageService;
private readonly circuitBreakerService;
private readonly config;
private readonly logger;
private readonly circuitBreakers;
constructor(entryManager: EntryManagerService, storageService: StorageService, circuitBreakerService: CircuitBreakerService, config: TelescopeConfig);
onModuleInit(): Promise<void>;
private initializeCircuitBreakers;
record(entry: TelescopeEntry): Promise<void>;
recordBatch(entries: TelescopeEntry[]): Promise<void>;
find(filter?: TelescopeEntryFilter): Promise<TelescopeEntryResult>;
findById(id: string): Promise<TelescopeEntry | null>;
getEntries(filter?: TelescopeEntryFilter, startDate?: Date, endDate?: Date): Promise<TelescopeEntry[]>;
clear(): Promise<void>;
prune(): Promise<number>;
getStats(): Promise<any>;
getCircuitBreakerStats(): Record<string, any>;
resetCircuitBreaker(type: 'entryProcessing' | 'batchProcessing' | 'storage' | 'queries'): boolean;
forceOpenCircuitBreaker(type: 'entryProcessing' | 'batchProcessing' | 'storage' | 'queries'): boolean;
forceCloseCircuitBreaker(type: 'entryProcessing' | 'batchProcessing' | 'storage' | 'queries'): boolean;
}