UNPKG

okta-mcp-server

Version:

Model Context Protocol (MCP) server for Okta API operations with support for bulk operations and caching

109 lines 3.48 kB
/** * Circuit Breaker Monitoring and Metrics System * * Provides comprehensive monitoring, metrics collection, and alerting * for circuit breaker instances with Prometheus export support. */ import { EventEmitter } from 'events'; import { ICircuitBreaker } from './types.js'; import { CircuitBreakerMetrics, AlertCondition, DashboardData } from './monitoring-types.js'; export { MetricType } from './monitoring-types.js'; export type { MetricPoint, TimeSeries, CircuitBreakerMetrics, AlertCondition, Alert, DashboardData, MonitoringEvents, MonitorConfig, PrometheusConfig, } from './monitoring-types.js'; /** * Circuit Breaker Monitor implementation */ export declare class CircuitBreakerMonitor extends EventEmitter { private readonly circuits; private readonly metricsRetention; private readonly metricsInterval; private cleanupTimer?; private readonly alertConditions; private readonly activeAlerts; private readonly alertCooldowns; private readonly cacheMetrics; constructor(options?: { metricsRetention?: number; metricsInterval?: number; }); /** * Register a circuit breaker for monitoring */ register(name: string, circuitBreaker: ICircuitBreaker): void; /** * Unregister a circuit breaker from monitoring */ unregister(name: string): void; /** * Add alert condition for a circuit */ addAlertCondition(circuitName: string, condition: AlertCondition): void; /** * Get metrics for a specific circuit */ getMetrics(circuitName: string): CircuitBreakerMetrics | undefined; /** * Get all metrics */ getAllMetrics(): Map<string, CircuitBreakerMetrics>; /** * Export metrics in Prometheus format */ exportPrometheus(): string; /** * Get dashboard data for real-time monitoring */ getDashboard(): DashboardData; /** * Get real-time stream of metrics */ streamMetrics(interval?: number): AsyncGenerator<DashboardData>; /** * Record cache hit */ recordCacheHit(circuitName: string): void; /** * Record cache miss */ recordCacheMiss(circuitName: string): void; /** * Destroy the monitor and clean up resources */ destroy(): void; private createInitialMetrics; private createTimeSeries; private recordStateChange; private recordSuccess; private recordFailure; private recordTimeout; private recordRejection; private incrementCounter; private addMetricPoint; private getLatestValue; private updateRates; private updateLatencyPercentiles; private percentile; private checkAlerts; private getMetricValue; private evaluateCondition; private triggerAlert; private getAlertSeverity; private calculateHealth; private startCleanupTimer; private cleanupTimeSeries; } /** * Create a new circuit breaker monitor instance */ export declare function createCircuitBreakerMonitor(options?: { metricsRetention?: number; metricsInterval?: number; }): CircuitBreakerMonitor; /** * Express/HTTP endpoint for Prometheus metrics */ export declare function createMetricsEndpoint(monitor: CircuitBreakerMonitor): (req: any, res: any) => void; /** * WebSocket handler for real-time dashboard */ export declare function createDashboardWebSocket(monitor: CircuitBreakerMonitor): (ws: any) => Promise<void>; //# sourceMappingURL=monitoring.d.ts.map