UNPKG

@allan1361/iota-big3-sdk-middleware

Version:

🏆 A+ Grade Certified Enterprise Middleware Framework - Phase 3 Certified (90/100) with advanced resilience patterns, comprehensive type safety, and production-ready observability

107 lines 2.92 kB
import { EventEmitter } from 'events'; export interface PerformanceConfig { enabled?: boolean; sampleRate?: number; metrics?: { latency?: boolean; cpu?: boolean; memory?: boolean; throughput?: boolean; errors?: boolean; }; thresholds?: { latencyWarn?: number; latencyCritical?: number; cpuWarn?: number; memoryWarn?: number; }; reporting?: { interval?: number; destination?: 'console' | 'file' | 'metrics-service'; format?: 'json' | 'prometheus' | 'statsd'; }; storage?: { maxDataPoints?: number; aggregationInterval?: number; }; } export interface MiddlewareMetrics { name: string; latency: LatencyMetrics; throughput: ThroughputMetrics; errors: ErrorMetrics; resources?: ResourceMetrics; } export interface LatencyMetrics { count: number; min: number; max: number; mean: number; median: number; p75: number; p95: number; p99: number; histogram: Map<number, number>; } export interface ThroughputMetrics { requestsPerSecond: number; bytesPerSecond: number; totalRequests: number; totalBytes: number; } export interface ErrorMetrics { totalErrors: number; errorRate: number; errorsByType: Map<string, number>; errorsByStatusCode: Map<number, number>; } export interface ResourceMetrics { cpu: { usage: number; user: number; system: number; }; memory: { heapUsed: number; heapTotal: number; external: number; rss: number; }; } export declare class PerformanceMonitor extends EventEmitter { private config; private metrics; private activeRequests; private reportingInterval?; private aggregationInterval?; private dataPoints; constructor(config?: PerformanceConfig); wrap(name: string, middleware: Function): Function; monitorApp(app: any): void; private initializeMetrics; private updateMetrics; private checkThresholds; private startMonitoring; private generateReport; private formatReport; private formatPrometheus; private formatStatsd; private aggregateMetrics; private calculatePercentiles; private percentile; private calculateThroughput; private calculateErrorRate; private getRequestId; private generateRequestId; getMetrics(middlewareName?: string): Map<string, MiddlewareMetrics> | MiddlewareMetrics | undefined; getReport(): any; getHistory(): Array<{ timestamp: Date; metrics: Map<string, MiddlewareMetrics>; }>; findBottlenecks(threshold?: number): string[]; reset(middlewareName?: string): void; stop(): void; } export declare function createPerformanceMonitor(config?: PerformanceConfig): PerformanceMonitor; //# sourceMappingURL=performance-monitor.d.ts.map