diff --git a/proxmox-monitor.prose.md b/proxmox-monitor.prose.md index 5fbc6f8..345fed2 100644 --- a/proxmox-monitor.prose.md +++ b/proxmox-monitor.prose.md @@ -110,8 +110,26 @@ The new `proxmox-monitor.sh` leg checks storepve-datastore GC health: - Reads GC state from CT 107: `pct exec 107 -- proxmox-backup-manager garbage-collection list --output-format json` - **FAILS** if `last-run-endtime` is older than 48 hours - Reports age in hours and pending-bytes -- A failed probe (000/timeout) is reported as `probe-failed: storepve:192.168.68.6 (expected JSON, got 000)` — **never** rendered as "GC stale" -- The healthy branch prints an explicit healthy line: `✅ PBS GC: healthy (last run Xh ago)` + +**All six verdict shapes** (exactly as emitted by the script): + +1. **Healthy** (fresh GC, 0 B pending): + `✅ PBS GC: healthy (last run 1h ago, pending-bytes: 0 B)` + +2. **Stale** (GC ran >48h ago): + `🔴 PBS GC: stale (last run 49h ago, pending-bytes: 1048576 B)` + +3. **Probe-failed: empty read** (000/timeout/unreadable): + `🔴 PBS GC: probe-failed: storepve:192.168.68.6 (expected JSON, got 000)` + +4. **Probe-failed: unparseable** (non-empty but invalid JSON — the "command not found" case): + `🔴 PBS GC: probe-failed: storepve:192.168.68.6 (unparseable JSON)` + +5. **Never-run: datastore absent** (valid JSON but storepve-datastore not in list): + `🔴 PBS GC: never-run (storepve-datastore not found in GC list)` + +6. **Never-run: no endtime** (valid JSON with datastore present but last-run-endtime is null/0): + `🔴 PBS GC: never-run (storepve-datastore has no last-run-endtime)` ## Operations