Homelab / Observability
Observability
Public-safe fleet pulse — aggregate numbers and sparklines without hostnames, IPs, or admin UIs.
Status
Trends
Posture
Observability belongs to the platform from day one — metrics, logs, alerts, and host audit. What is public here are scrubbed aggregates: how many edge probes are green, average fleet load, how fresh backups and app pins are. No hostnames, no IPs, no inventory list.
Pipeline
From exporters to the public page — without hostnames.
The same Prometheus aggregates feed internal monitoring and the Lab Pulse above. History is built server-side from the push interval (about every 5 minutes) and feeds the sparklines — without labels and without reachability hints.
Internal vs public
Discarded
- Hostnames and FQDNs (
*.lan) - IPs, VMIDs, node placement
- Dashboard inventory and admin UIs
- Which edges are down
Kept
- Probes up/total, hosts online
- Fleet CPU/RAM/network (aggregates)
- Apps current/tracked, backup coverage %
- Alerts firing (count), edge latency p95
Signal routing
Alerts and aggregates fan out internally — the public site only shows the scrubbed pulse.
| Channel | Role |
|---|---|
| Wallboard | Pixoo64 in the lab — synthetic preview here only |
| Mail digest | Daily summary / incident mail |
| Local LLM analysis | Multi-pass on Ollama — hypotheses, no blind apply |
| Change ticket | App behind upstream → service desk with runbook |
More: Ops AI showcases. Architecture: Architecture.
What is deliberately missing
- No embed of the internal Grafana UI (OIDC, hostnames, dashboard inventory)
- No screenshots of admin surfaces
- No statement of which edges are down — only aggregates
Apply, snapshots, and runbooks stay internal.