UNPKG

@ahmedhegazee/nestjs-telescope

Version:

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

58 lines (57 loc) 2.29 kB
import { OnModuleInit, OnModuleDestroy } from '@nestjs/common'; import { DevToolsBridgeService } from './devtools-bridge.service'; import { TelescopeService } from '../../core/services/telescope.service'; import { EnhancedEntryManagerService } from '../../core/services/enhanced-entry-manager.service'; import { MetricsService } from '../../core/services/metrics.service'; import { TelescopeEntry } from '../../core/interfaces/telescope-entry.interface'; import { TelescopeConfig } from '../../core/interfaces/telescope-config.interface'; export interface ProcessingError { message: string; stack?: string; entry?: TelescopeEntry; timestamp: Date; retryCount: number; } export interface StreamConfiguration { bufferTimeMs: number; maxBufferSize: number; maxConcurrentBatches: number; retryDelayMs: number; maxRetries: number; errorThrottleMs: number; } export declare class StreamProcessingBridgeService extends DevToolsBridgeService implements OnModuleInit, OnModuleDestroy { private readonly entryManager; private readonly metricsService; private readonly entryStream; private readonly errorStream; private subscriptions; private isProcessing; private readonly streamConfig; constructor(telescopeService: TelescopeService, entryManager: EnhancedEntryManagerService, metricsService: MetricsService, config: TelescopeConfig); onModuleInit(): Promise<void>; onModuleDestroy(): Promise<void>; private updateStreamConfig; private setupStreams; private processBatchSafely; private fallbackToIndividualProcessing; private handleBatchResults; processDevToolsEntry(entry: any, type: string): Promise<void>; protected transformToTelescopeFormat(entry: any, type: string): TelescopeEntry; getStreamMetrics(): { entriesInQueue: number; errorCount: number; averageProcessingTime: number; throughput: number; isProcessing: boolean; subscriptions: number; }; getStreamConfiguration(): StreamConfiguration; updateStreamConfiguration(config: Partial<StreamConfiguration>): void; flushBuffer(): Promise<void>; getHealthStatus(): { isHealthy: boolean; issues: string[]; lastProcessedAt?: Date; }; }