UNPKG

@iota-big3/sdk-security

Version:

Advanced security features including zero trust, quantum-safe crypto, and ML threat detection

101 lines 3.26 kB
/** * @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