UNPKG

@logistically/events-nestjs

Version:

NestJS integration for @logistically/events v3 - Event-driven architecture with Redis Streams

69 lines (68 loc) 1.92 kB
import { OnModuleInit } from '@nestjs/common'; import { EventMetadataExplorer } from './event-metadata-explorer.service'; import { EventDiscoveryService } from './event-discovery.service'; export interface PerformanceMetrics { cache: { hits: number; misses: number; hitRate: number; }; discovery: { pending: number; registered: number; retryCount: number; processingTime: number; }; memory: { heapUsed: number; heapTotal: number; external: number; }; timing: { lastDiscoveryRun: number; averageProcessingTime: number; totalRuns: number; }; } export declare class PerformanceMonitorService implements OnModuleInit { private readonly metadataExplorer; private readonly eventDiscoveryService; private readonly logger; private readonly startTime; private processingTimes; private lastDiscoveryRun; constructor(metadataExplorer: EventMetadataExplorer, eventDiscoveryService: EventDiscoveryService); onModuleInit(): Promise<void>; /** * Get comprehensive performance metrics */ getMetrics(): PerformanceMetrics; /** * Record processing time for performance tracking */ recordProcessingTime(processingTime: number): void; /** * Record discovery run completion */ recordDiscoveryRun(): void; /** * Get performance summary for logging */ getPerformanceSummary(): string; /** * Start periodic performance reporting */ private startPerformanceReporting; /** * Check for performance warnings and log them */ private checkPerformanceWarnings; /** * Reset performance metrics (useful for testing) */ resetMetrics(): void; /** * Get performance recommendations based on current metrics */ getRecommendations(): string[]; }