@iota-big3/sdk-gateway
Version:
Universal API Gateway with protocol translation, intelligent routing, rate limiting, health checking, and caching
102 lines • 2.6 kB
TypeScript
import { EventEmitter } from 'events';
import type { GatewayRequest, GatewayResponse } from '../types/gateway-types';
export interface PerformanceThresholds {
latency: {
p50: number;
p95: number;
p99: number;
};
errorRate: number;
throughput: {
min: number;
max: number;
};
memory: {
max: number;
growthRate: number;
};
}
export interface Anomaly {
type: 'latency' | 'error_rate' | 'throughput' | 'memory' | 'cpu';
severity: 'low' | 'medium' | 'high' | 'critical';
value: number;
threshold: number;
timestamp: number;
message: string;
}
export interface PerformanceMetrics {
requests: {
total: number;
rate: number;
active: number;
};
latency: {
current: number;
p50: number;
p95: number;
p99: number;
avg: number;
min: number;
max: number;
};
errors: {
total: number;
rate: number;
byType: Record<string, number>;
};
throughput: {
current: number;
avg: number;
peak: number;
};
resources: {
cpu: {
usage: number;
system: number;
user: number;
};
memory: {
used: number;
rss: number;
heapUsed: number;
heapTotal: number;
external: number;
};
connections: {
active: number;
idle: number;
waiting: number;
};
};
}
export declare class PerformanceMonitor extends EventEmitter {
private metrics;
private thresholds;
private requests;
private latencies;
private windowSize;
private lastReset;
private anomalies;
constructor(thresholds?: Partial<PerformanceThresholds>);
startRequest(request: GatewayRequest): void;
endRequest(request: GatewayRequest, response: GatewayResponse): void;
private collectMetrics;
private recordResourceMetrics;
private checkSLACompliance;
detectAnomalies(): Anomaly[];
private detectLatencySpikes;
private detectMemoryLeaks;
private detectErrorRateIncrease;
private detectThroughputDegradation;
private checkAnomalies;
private cleanupOldData;
private calculatePercentile;
getMetrics(): PerformanceMetrics;
private calculateErrorRate;
private getErrorsByType;
private calculateCPUUsage;
private startMetricCollection;
reset(): void;
getAnomalies(): Anomaly[];
}
//# sourceMappingURL=performance-monitor.d.ts.map