// Monitoring Page Module class MonitoringPage { constructor() { this.isPaused = false; this.requestStream = []; this.systemLogs = []; this.init(); } async init() { // Load initial data await this.loadSystemMetrics(); await this.loadCharts(); // Setup event listeners this.setupEventListeners(); // Setup WebSocket subscriptions this.setupWebSocketSubscriptions(); // Start simulated updates for demo this.startDemoUpdates(); } async loadSystemMetrics() { const container = document.getElementById('system-metrics'); if (!container) return; try { const data = await window.api.get('/system/metrics'); const metrics = [ { label: 'CPU Usage', value: `${data.cpu.usage_percent}%`, trend: data.cpu.usage_percent > 80 ? 'up' : data.cpu.usage_percent < 30 ? 'down' : 'stable' }, { label: 'Memory', value: `${(data.memory.used_mb / 1024).toFixed(1)} / ${(data.memory.total_mb / 1024).toFixed(1)} GB`, trend: data.memory.usage_percent > 80 ? 'up' : 'stable' }, { label: 'Disk', value: `${data.disk.used_gb.toFixed(1)} / ${data.disk.total_gb.toFixed(1)} GB`, trend: data.disk.usage_percent > 80 ? 'up' : 'stable' }, { label: 'Process RSS', value: `${data.memory.process_rss_mb} MB`, trend: 'stable' }, { label: 'Load Average', value: data.cpu.load_average.map(v => v.toFixed(2)).join(' / '), trend: data.cpu.load_average[0] > 2 ? 'up' : 'down' }, { label: 'Connections', value: `${data.connections.db_active} DB, ${data.connections.websocket_listeners} WS`, trend: 'stable' }, ]; container.innerHTML = metrics.map(metric => `