126 plikow (md, yaml, sh, py) odwolywalo sie do sciezek sprzed migracji.
15 markdown-linkow [..](..) -> policzona sciezka WZGLEDNA wobec pliku
odsylajacego (wczesniej czesc z nich byla repo-root-relative i nie
rozwiazywala sie z katalogu, w ktorym lezala)
200 odwolan tekstowych (backticki, proza, yaml, importy w kodzie)
-> nowa sciezka repo-root-relative, zgodnie z konwencja repo
5 linkow rodzenstwa (gole nazwy plikow, np. "](DEPLOY.md)") — dzialaly
tylko w starym katalogu; przeliczone recznie
Objete m.in.: CLAUDE.md (scripts/onboard/README.md -> kb/runbooks/
node-onboarding-tool.md, docs/backlog.md -> kb/phases/backlog.md),
README.md, .claude/skills/, 20 session logow, kod jobow.
Ostatnie 5 odwolan pochodzi z tresci wciagnietej rebasem z origin/master
(session log 2026-07-31, override node-agenta na SOLARII, dwie pozycje
backlogu) — wskazywaly na docs/incidents/, docs/kb/modules/ i
services/narty27/README.md sprzed migracji.
Dodany wzajemny link miedzy kb/services/control-plane.md (stub kodu)
a kb/subsystems/control-plane.md (opis, deprecated) — dwa dokumenty o tym
samym systemie, latwe do pomylenia.
Weryfikacja na 790 plikach: 0 odwolan do starych sciezek,
0 martwych linkow markdown. Lint OKF: 190/190 plikow ZGODNE.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
54 lines
3 KiB
Markdown
54 lines
3 KiB
Markdown
---
|
|
okf: "0.1"
|
|
type: phase
|
|
visibility: private
|
|
status: active
|
|
updated: 2026-08-03
|
|
links:
|
|
- backlog.md
|
|
---
|
|
|
|
## 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. ✅ ZROBIONE (2026-06-26, commit `7d4014e`) — Inwentaryzacja nodów floty `100.x` do
|
|
scrape. Dodane: piha/solaria/lustro (`node:` label), vps zachowany. Saturn pominięty
|
|
(workstation), chelsty/chelsty-infra pominięte (node_exporter down z VPS → osobny wpis).
|
|
3. Container-layer exporter (cAdvisor lub lekki docker-state) — `node_exporter` nie widzi
|
|
kontenerów.
|
|
4. ✅ ZROBIONE (2026-06-30, commit `d417000`) — Reguły liveness (`up==0 for: 5m`).
|
|
`rules/liveness.yml`: `NodeDown expr up{node=~"vps|piha"}==0 for 5m severity critical`.
|
|
Only always-on (vps, piha); solaria/lustro świadomie wykluczone (intermittent → anomaly
|
|
detection). Deploy: fleet-prometheus Recreated (zmiana compose), reguła inactive=poprawnie.
|
|
5. ✅ ZROBIONE (2026-06-30, commit `62d6fc0`) — brain-watchdog: drugie wejście — poll
|
|
Prometheus `/api/v1/alerts` (`firing`) → Telegram. Architektura A: dwa niezależne tory,
|
|
mózg NIETKNIĘTY, debounce per-alert (klucz alertname:node w state.json). 12 testów pass.
|
|
PENDING zamknięty 2026-07-02: poll POTWIERDZONY reconem (obraz zbudowany po `62d6fc0`,
|
|
`PROMETHEUS_URL` w `.env` i w env kontenera, zero poll failed) — patrz
|
|
`kb/subsystems/fleet-inventory-verify.md`.
|
|
✅ END-TO-END UDOWODNIONE 2026-07-06 (Etap 0 cutoveru): tor Prometheus →
|
|
watchdog → Telegram potwierdzony w produkcji testem `AlertTestEtap0`
|
|
(firing → log polla → Telegram → rollback) — patrz `docs/sessions/2026-07-06.md`.
|
|
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.
|
|
|
|
---
|
|
|