fix: RAM percentage parsing — handle Mi vs Gi units

Panel VPS and Trinity Core report used RAM in Mi (e.g. 703Mi)
while total is in Gi (e.g. 1.9Gi). parseFloat gave 703/1.9 = 37000%.
Now normalizes both values to Gi before calculating percentage.

Chronicler #78 | firefrost-services
This commit is contained in:
Claude (Chronicler #78)
2026-04-11 10:30:43 +00:00
parent 55385634f2
commit 2e3d272e26

View File

@@ -100,10 +100,17 @@ function parseAuditOutput(output) {
const cpuModel = lines.find(l => l.includes('Model name'))?.split(':')[1]?.trim() || '?';
const cpuCores = lines.find(l => l.match(/^CPU\(s\)/))?.split(':')[1]?.trim() || '?';
// Parse RAM percentage
const totalGi = parseFloat(totalRam);
const usedGi = parseFloat(usedRam);
const ramPct = totalGi > 0 ? Math.round((usedGi / totalGi) * 100) : 0;
// Parse RAM percentage (handle Gi vs Mi units)
function toGi(val) {
if (!val) return 0;
const num = parseFloat(val);
if (val.includes('Mi')) return num / 1024;
if (val.includes('Gi')) return num;
return num;
}
const ramPct = toGi(totalRam) > 0
? Math.round((toGi(usedRam) / toGi(totalRam)) * 100)
: 0;
return {
hostname,