diff --git a/Plugin/usr/local/emhttp/plugins/varaverk/pages/monitor.php b/Plugin/usr/local/emhttp/plugins/varaverk/pages/monitor.php index a5585fd..119b905 100644 --- a/Plugin/usr/local/emhttp/plugins/varaverk/pages/monitor.php +++ b/Plugin/usr/local/emhttp/plugins/varaverk/pages/monitor.php @@ -259,8 +259,25 @@ function vvRenderMemory(mem) { const usedKb = total - (mem.free_kb ?? 0); const usedPct = Math.round(usedKb / total * 100); const totalColor = usedPct >= 85 ? '#f44336' : usedPct >= 65 ? '#ff9800' : '#ccc'; - let html = `
- ${vvFmtGib(usedKb)} / ${vvFmtGib(total)} + + const buckets = [ + { label: 'System', kb: mem.system_kb ?? 0, color: VV_MEM_COLORS.system }, + { label: 'VM', kb: mem.vm_kb ?? 0, color: VV_MEM_COLORS.vm }, + { label: 'ZFS', kb: mem.zfs_kb ?? 0, color: VV_MEM_COLORS.zfs }, + { label: 'Docker', kb: mem.docker_kb ?? 0, color: VV_MEM_COLORS.docker }, + ]; + const top3 = [...buckets].sort((a, b) => b.kb - a.kb).slice(0, 3); + const top3Html = top3.map(b => + `
`+ + `${b.label} `+ + `${vvFmtGib(b.kb)}
` + ).join(''); + + let html = `
+
+ ${vvFmtGib(usedKb)} / ${vvFmtGib(total)} +
+
${top3Html}
`; html += vvMemRow('System', mem.system_kb ?? 0, total, VV_MEM_COLORS.system) + vvMemRow('VM', mem.vm_kb ?? 0, total, VV_MEM_COLORS.vm)