diff --git a/audit/internal/platform/live_metrics.go b/audit/internal/platform/live_metrics.go index b9228b1..0830b4b 100644 --- a/audit/internal/platform/live_metrics.go +++ b/audit/internal/platform/live_metrics.go @@ -64,12 +64,20 @@ func SampleLiveMetrics() LiveMetricSample { } } - // System power — returns 0 if unavailable - s.PowerW = sampleSystemPower() - // Per-PSU power — populated when IPMI SDR has Power Supply entities with Watt readings s.PSUs = samplePSUPower() + // System power: prefer sum of PSU AC inputs (full wall draw); fall back to DCMI. + if len(s.PSUs) > 0 { + var total float64 + for _, p := range s.PSUs { + total += p.PowerW + } + s.PowerW = total + } else { + s.PowerW = sampleSystemPower() + } + // CPU load — from /proc/stat s.CPULoadPct = sampleCPULoadPct()