From ed54c2777a2f722e6f14074e7479cef16108f300 Mon Sep 17 00:00:00 2001 From: oskar Date: Mon, 22 Jun 2026 22:15:24 +0200 Subject: [PATCH] docs(backlog): swap VPS DONE; sekcja planu Prometheus-as-truth floty Swap 2-4GB na VPS -> Zamkniete (2026-06-22). Nowa sekcja planu monitoringu floty (Prometheus pull up{}, osobny instance, bez Alertmanagera) z krokami. Zastepuje szkic blackbox+Alertmanager z 2026-06-17. Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/backlog.md | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/docs/backlog.md b/docs/backlog.md index 8d9e007..991dbe1 100644 --- a/docs/backlog.md +++ b/docs/backlog.md @@ -4,6 +4,37 @@ Centralny tracker tech-długu i znanych usterek. Wpisy ze sesji — dodawaj z da --- +## Plan: Monitoring floty — Prometheus jako źródło prawdy + +**Data**: 2026-06-22 +**Źródło**: sesja 2026-06-22 (`docs/sessions/2026-06-22.md`) +**Decyzja**: Prometheus (pull, `up{}`) zastępuje warstwę WYKRYWANIA liveness +(node-agent shipper + rsync/ssh + event-store + observer prune/checkpoint + ręczne TTL) +— przyczynę nawracających awarii (uid≠1000, ślepy ssh-mount, bloat ~242k eventów, +race prune↔checkpoint, NOMINAL-bez-TTL). Osobny fleet-Prometheus pod GitOps, **nie** +adopcja domowego instance PIHA. **BEZ** Alertmanagera — alert przez brain-watchdog. +Placement: VPS. Granica: zostają supervisor (remediacja), observer/panel, ha-diag-agent, +historia incydentów, out-of-band watchdog. +> Zastępuje wcześniejszy szkic (blackbox + Alertmanager) z sesji 2026-06-17. + +**Kroki (priorytetowo)**: +1. Scaffold serwisu `fleet-prometheus` pod GitOps (worktree `task/fleet-prometheus`, + wzorzec `services/vikunja/`): compose + `env.example` + `service.yaml` + README + + `healthcheck.sh`; rejestracja w `hosts/vps/services.yaml` + `inventory/topology.yaml`; + exposure `tailscale-internal`; pusty scrape na start (self + lokalny `node_exporter` VPS). +2. Inwentaryzacja nodów floty `100.x` do scrape (osobny krok). +3. Container-layer exporter (cAdvisor lub lekki docker-state) — `node_exporter` nie widzi + kontenerów. +4. Reguły liveness (`up==0 for: 5m`) w Prometheusie. +5. brain-watchdog: drugie wejście — odpyt Prometheus `/api/v1/alerts` (`firing`) → Telegram, + bez ruszania działającego toru `token → chat_id`. +6. Rotacja tokenu HAOS w domowym prom (plaintext). +7. Przepięcie observer / panel `agents.okit.pl` na Prometheus jako źródło — największy + znak zapytania przy cutoverze. +8. Parallel-run obok rury eventowej; cutover dopiero gdy Prometheus-truth się udowodni. + +--- + ## Aktywne ### 🔴 BLOKUJĄCE — FLOTA-BOMBA: node-agent SSH mount ślepy po recreate @@ -113,6 +144,19 @@ Długoterminowo: `agent.sh new` powinien odmawiać jeśli żądana gałąź jest ## Zamknięte +### Swap 2–4 GB na VPS — ZROBIONE + +**Data**: 2026-06-22 (zgłoszone PENDING w sesji 2026-06-09 flota-recovery) +**Źródło**: sesja 2026-06-22 (`docs/sessions/2026-06-22.md`) +**Było**: VPS (3.7 GB RAM) z `swap=0` → OOM 2026-06-01. +**Zrobione**: `/swapfile` 4 GB aktywny i trwały (wpis w `/etc/fstab`); `vm.swappiness=10` +na żywo i w `/etc/sysctl.conf`. Weryfikacja: `free -h` → `Swap: 4.0Gi (0B used)`, +`/proc/swaps` zawiera `/swapfile`. +**Uwaga**: host-level one-off (nie czysto GitOps), udokumentowany jako celowy host-state +w `hosts/vps/host.yaml`. Brak commitu kodu — zmiana host-side gotowcem. + +--- + ### Observer staleness — martwy node pokazywany NOMINAL **Data**: 2026-06-08 (złapane), status: OTWARTY w sensie implementacji