@iota-big3/sdk-security
Version:
Advanced security features including zero trust, quantum-safe crypto, and ML threat detection
101 lines • 3.26 kB
TypeScript
/**
* @iota-big3/sdk-security - Performance Monitoring
* Real-time metrics collection and analysis for production readiness
*/
import { EventEmitter } from 'events';
export interface PerformanceMetric {
name: string;
value: number;
unit: 'ms' | 'count' | 'percent' | 'bytes';
timestamp: number;
tags?: Record<string, string>;
}
export interface PerformanceThreshold {
metric: string;
operator: '<' | '>' | '<=' | '>=' | '==';
value: number;
action: 'alert' | 'degrade' | 'circuit_break';
}
export interface PerformanceSnapshot {
timestamp: number;
metrics: {
authLatencyP50: number;
authLatencyP95: number;
authLatencyP99: number;
authSuccessRate: number;
authFailureRate: number;
rbacCheckLatency: number;
abacCheckLatency: number;
accessDecisionCacheHitRate: number;
scanQueueDepth: number;
averageScanDuration: number;
scanThroughput: number;
complianceCheckDuration: number;
evidenceCollectionRate: number;
auditLogWriteLatency: number;
threatDetectionLatency: number;
anomalyDetectionRate: number;
falsePositiveRate: number;
cpuUsage: number;
memoryUsage: number;
eventLoopLag: number;
activeConnections: number;
};
alerts: PerformanceAlert[];
}
export interface PerformanceAlert {
id: string;
timestamp: number;
metric: string;
value: number;
threshold: number;
severity: 'low' | 'medium' | 'high' | 'critical';
message: string;
}
export declare class PerformanceMonitor extends EventEmitter {
private config;
private metrics;
private thresholds;
private alerts;
private isActive;
private collectionInterval?;
private metricsHistory;
private operationTimers;
private operationCounts;
private circuitBreakers;
constructor(config: {
collectionIntervalMs: number;
historySize: number;
enableAutoScaling?: boolean;
enableCircuitBreakers?: boolean;
});
private setupDefaultThresholds;
start(): Promise<void>;
stop(): Promise<void>;
startOperation(operationName: string, tags?: Record<string, string>): string;
endOperation(operationId: string, success?: boolean): void;
private updateCircuitBreaker;
isCircuitOpen(operation: string): boolean;
recordMetric(metric: PerformanceMetric): void;
private checkThresholds;
private evaluateThreshold;
private handleThresholdViolation;
private getSeverity;
private collectMetrics;
private calculatePercentile;
private getAverageMetric;
private getLatestMetric;
private calculateSuccessRate;
private calculateThroughput;
private calculateRate;
private calculateFalsePositiveRate;
private calculateCpuUsage;
private calculateMemoryUsage;
private measureEventLoopLag;
getSnapshot(): PerformanceSnapshot | null;
getHistory(duration?: number): PerformanceSnapshot[];
getAlerts(severity?: 'low' | 'medium' | 'high' | 'critical'): PerformanceAlert[];
exportMetrics(format?: 'prometheus' | 'json'): string;
private toPrometheusFormat;
}
//# sourceMappingURL=performance-monitor.d.ts.map