guest-power: add the liveness observable it shipped without (v0.109.0)

The v0.107.0 watchdog was silent on a healthy box, so its health could only be inferred
from absence — F-OBS's shape, shipped in the same session F-OBS was fixed. INFO summary
every 10th sweep with what it saw; aborted sweeps are not counted. Red-proofs 7 and 8.
This commit is contained in:
2026-07-28 11:14:56 +02:00
parent 8db92947cd
commit f27f7a2659
4 changed files with 184 additions and 1 deletions
+5 -1
View File
@@ -266,7 +266,11 @@ type Server struct {
// guestPower (F-REBOOT) is per-guest start-attempt state for the guest-power watchdog.
// Guarded by guestPowerMu in guestpower.go; in-memory on purpose (see guestPowerState).
guestPower map[int]guestPowerState
host storage.HostReader // role classification source (optional; defaults to ProcHostReader)
// guestPowerSweeps counts completed guest-power sweeps, for the liveness observable. Touched only
// from GuestPowerTick, which the ticker calls serially.
guestPowerSweeps int
host storage.HostReader // role classification source (optional; defaults to ProcHostReader)
hostMetrics HostMetricsProvider // slice 9 (optional)
hostID string // slice 10B: for the data-bearing-format pending-op hint