Changes made to glances
This commit is contained in:
@@ -120,12 +120,19 @@
|
||||
|
||||
// Rich monitor parsers
|
||||
this.parsers = {
|
||||
glances: (data) => `CPU ${Math.round(data.cpu_percent)}% | RAM ${Math.round(data.mem_percent)}%`,
|
||||
glances: (data) => {
|
||||
// Glances v4 uses 'cpu'/'mem', v3 uses 'cpu_percent'/'mem_percent'
|
||||
const cpu = data.cpu ?? data.cpu_percent;
|
||||
const mem = data.mem ?? data.mem_percent;
|
||||
if (cpu == null || mem == null) return 'No data';
|
||||
return `CPU ${Math.round(cpu)}% | RAM ${Math.round(mem)}%`;
|
||||
},
|
||||
uptime: (data) => {
|
||||
const groups = data.heartbeatList || {};
|
||||
const monitors = Object.values(groups);
|
||||
const total = monitors.length;
|
||||
const up = monitors.filter(beats => beats.length > 0 && beats[beats.length - 1].status === 1).length;
|
||||
if (total === 0) return 'No monitors';
|
||||
const up = monitors.filter(beats => Array.isArray(beats) && beats.length > 0 && beats[beats.length - 1].status === 1).length;
|
||||
return `${up}/${total} services up`;
|
||||
},
|
||||
cadvisor: (data) => {
|
||||
@@ -162,9 +169,11 @@
|
||||
|
||||
if (!res.ok) throw new Error(`HTTP ${res.status}`);
|
||||
const data = await res.json();
|
||||
const result = this.parsers[mon.parseType](data);
|
||||
dot.className = 'status-dot ok';
|
||||
value.textContent = this.parsers[mon.parseType](data);
|
||||
} catch {
|
||||
value.textContent = result;
|
||||
} catch (err) {
|
||||
console.warn(`[StatusMonitor] ${mon.label} failed:`, err);
|
||||
dot.className = 'status-dot error';
|
||||
value.textContent = 'Unreachable';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user