feat: surface ZFS ARC reclaimable as dashboard context line (#1760)

* feat: surface ZFS ARC reclaimable as dashboard context line

Add arcReclaimable to the HostMemory interface and MemoryWire shape so
the reclaimable ARC amount computed by readReclaimableArc() is exposed
through /api/system/stats and /api/fleet/overview. Show it as a context
line on the dashboard memory tile, matching the balloon pattern.

ARC continues to feed the gauge percentage as before; this is a
display-only addition for operator visibility.

* docs: clarify ARC line requires nonzero reclaimable, not just readable stats
This commit is contained in:
Anso
2026-08-03 13:44:20 -04:00
committed by GitHub
parent 1c9060a855
commit 71be1634a5
7 changed files with 69 additions and 7 deletions
@@ -15,6 +15,7 @@ export interface FleetNodeSystemStats {
used: number;
free: number;
usagePercent: string;
arcReclaimable?: number;
ballooned?: number;
effectiveTotal?: number;
effectiveUsed?: number;
@@ -116,6 +116,11 @@ export function ResourceGauges({ systemStats, cpuHistory, netHistory, historyEnd
{ramEffectivePercent !== null ? ` (effective ${parseFloat(ramEffectivePercent).toFixed(0)}%)` : ''}
</div>
) : null}
{systemStats?.memory.arcReclaimable && systemStats.memory.arcReclaimable > 0 ? (
<div className="mt-1 font-mono text-[10px] text-stat-subtitle/70">
ZFS ARC reclaimable: {formatBytes(systemStats.memory.arcReclaimable)}
</div>
) : null}
{systemStats ? <GaugeBar value={ramVal} /> : null}
</div>
@@ -16,6 +16,7 @@ export interface SystemStats {
used: number;
free: number;
usagePercent: string;
arcReclaimable?: number;
ballooned?: number;
effectiveTotal?: number;
effectiveUsed?: number;