v0.169.0: disk-health card + degradation notification (Lemezek állapota)
Consumes the agent v0.94.0 smart payload (MinAgent floor unchanged; feature-detect by presence). One pure verdict fn agentapi.DiskVerdictFor shared by the dashboard card and the 6h check. Card via a 60s /disks TTL cache (anti-smartctl-storm); unreachable agent -> Nincs adat, page never blocks. disk-health-check (6h) emits disk_health_degraded on a degradation only vs an in-memory baseline (first run silent, recovery/UNKNOWN never notify, multi-attr -> one event). No global banner (deliberate). Pairs with the hub allowlist bump. Tests: verdict table (>=90 red-proof), notifier emit, check first-run-silent (red-proof), degradation-once, recovery-silent, UNKNOWN-excluded, FAILING-critical, nil-smart card, TTL cache.
This commit is contained in:
@@ -201,6 +201,22 @@ backups, monitoring and notifications. All Proxmox/disk operations are delegated
|
||||
|
||||
## Features
|
||||
|
||||
### Disk health — "Lemezek állapota" card + degradation alert (v0.169.0)
|
||||
|
||||
The dashboard shows a per-physical-disk health card driven by the agent's SMART summary (serialized
|
||||
into `/disks` from agent v0.94.0 — no new smartctl load; the controller only reads it). One pure
|
||||
verdict function (`agentapi.DiskVerdictFor`) is the shared truth for the card chip and the check:
|
||||
|
||||
- **Rendben** (PASSED, clean) · **Figyelmeztetés** (PASSED but reallocated/pending/offline-uncorrectable
|
||||
or NVMe critical/media/percentage-used ≥ 90) · **Hiba** (FAILING) · **Nincs adat** (nil/UNKNOWN/old
|
||||
agent — never alarms).
|
||||
- The card fetches `/disks` through a **60 s TTL cache** (dashboard refresh-spam can't smartctl-storm
|
||||
the host); an unreachable agent renders "Nincs adat" and the page still loads.
|
||||
- A **6-hourly `disk-health-check`** emits `disk_health_degraded` (warn/critical) **only on a
|
||||
degradation** vs an in-memory baseline — first run baselines silently, recovery/UNKNOWN never notify,
|
||||
and a controller restart re-baselines silently. **No global banner** (deliberate): the card + email
|
||||
carry it. The hub allowlist must include `disk_health_degraded`.
|
||||
|
||||
### 1. App Management
|
||||
|
||||
The controller manages Docker Compose stacks through a complete lifecycle: catalog sync, first-time deployment, runtime operations, and deletion.
|
||||
|
||||
Reference in New Issue
Block a user