/** * Real-time Monitoring Dashboard - Comprehensive metrics and alerting * Provides real-time visualization and monitoring capabilities */ /// import { EventEmitter } from "events"; export interface MetricData { id: string; name: string; value: number; unit: string; timestamp: number; tags: Map; metadata: { source: string; type: "gauge" | "counter" | "histogram" | "summary"; description?: string; }; } export interface Dashboard { id: string; name: string; description: string; widgets: Widget[]; layout: { columns: number; rows: number; }; refreshInterval: number; timeRange: { start: number; end: number; }; filters: Map; permissions: { viewers: string[]; editors: string[]; }; } export interface Widget { id: string; type: "chart" | "gauge" | "table" | "alert" | "text" | "heatmap"; title: string; position: { x: number; y: number; width: number; height: number; }; config: { metrics: string[]; visualization: any; thresholds?: { warning: number; critical: number; }; aggregation?: "sum" | "avg" | "min" | "max" | "count"; timeWindow?: number; }; } export interface Alert { id: string; name: string; description: string; metric: string; condition: { operator: "gt" | "lt" | "eq" | "gte" | "lte"; value: number; timeWindow: number; }; severity: "info" | "warning" | "critical"; channels: AlertChannel[]; enabled: boolean; silenced: boolean; lastTriggered?: number; } export interface AlertChannel { type: "email" | "slack" | "webhook" | "sms"; config: Record; enabled: boolean; } export interface MonitoringConfig { metricsRetention: number; aggregationInterval: number; alertEvaluationInterval: number; maxMetricsPerSecond: number; } export declare class MonitoringDashboard extends EventEmitter { private metrics; private dashboards; private alerts; private widgets; private config; private metricsAggregator; private alertEngine; private dataCollector; private visualizationEngine; constructor(config: MonitoringConfig); /** * Record metric data point */ recordMetric(metric: MetricData): void; /** * Create new dashboard */ createDashboard(dashboard: Dashboard): void; /** * Get dashboard data with real-time metrics */ getDashboardData(dashboardId: string): { dashboard: Dashboard; widgets: Array<{ widget: Widget; data: any; status: "healthy" | "warning" | "critical"; }>; lastUpdate: number; }; /** * Create alert rule */ createAlert(alert: Alert): void; /** * Get comprehensive system health overview */ getSystemHealth(): { overall: "healthy" | "warning" | "critical"; components: Map; alerts: Alert[]; }>; performance: { responseTime: number; throughput: number; errorRate: number; availability: number; }; resources: { cpu: number; memory: number; disk: number; network: number; }; }; /** * Generate performance report */ generatePerformanceReport(timeRange: { start: number; end: number; }): { summary: { avgResponseTime: number; peakThroughput: number; uptime: number; errorCount: number; }; trends: { responseTime: number[]; throughput: number[]; errorRate: number[]; }; alerts: { triggered: number; resolved: number; active: number; }; recommendations: string[]; }; /** * Configure real-time streaming for dashboard updates */ enableRealTimeStreaming(dashboardId: string): void; /** * Export dashboard configuration */ exportDashboard(dashboardId: string): string; /** * Import dashboard configuration */ importDashboard(config: string): Dashboard; /** * Get metric statistics */ getMetricStatistics(metricId: string, timeRange: { start: number; end: number; }): { count: number; min: number; max: number; avg: number; p50: number; p95: number; p99: number; sum: number; }; private initializeDashboard; private createDefaultDashboards; private createDefaultAlerts; private getWidgetData; private evaluateWidgetStatus; private aggregateMetrics; private analyzeComponentHealth; private calculatePerformanceMetrics; private getResourceUtilization; private calculateOverallHealth; private getMetricsInRange; private calculateSummaryMetrics; private calculateTrends; private getAlertStatistics; private generateRecommendations; private startMetricsAggregation; private startAlertEvaluation; private percentile; private average; } declare class MetricsAggregator { private config; constructor(config: MonitoringConfig); aggregateMetrics(metrics: Map): void; } declare class AlertEngine { registerAlert(alert: Alert): void; evaluateMetric(metric: MetricData, alerts: Map): void; evaluateAllAlerts(metrics: Map, alerts: Map): void; } declare class DataCollector { collectSystemMetrics(): MetricData[]; } declare class VisualizationEngine { generateChart(data: any, config: any): any; } export { MetricsAggregator, AlertEngine, DataCollector, VisualizationEngine }; //# sourceMappingURL=monitoring-dashboard.d.ts.map