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>
3 KiB
3 KiB
| okf | type | visibility | status | updated | links | |
|---|---|---|---|---|---|---|
| 0.1 | phase | private | active | 2026-08-03 |
|
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):
- Scaffold serwisu
fleet-prometheuspod GitOps (worktreetask/fleet-prometheus, wzorzecservices/vikunja/): compose +env.example+service.yaml+ README +healthcheck.sh; rejestracja whosts/vps/services.yaml+inventory/topology.yaml; exposuretailscale-internal; pusty scrape na start (self + lokalnynode_exporterVPS). - ✅ ZROBIONE (2026-06-26, commit
7d4014e) — Inwentaryzacja nodów floty100.xdo 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). - Container-layer exporter (cAdvisor lub lekki docker-state) —
node_exporternie widzi kontenerów. - ✅ 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. - ✅ 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 po62d6fc0,PROMETHEUS_URLw.envi w env kontenera, zero poll failed) — patrzkb/subsystems/fleet-inventory-verify.md. ✅ END-TO-END UDOWODNIONE 2026-07-06 (Etap 0 cutoveru): tor Prometheus → watchdog → Telegram potwierdzony w produkcji testemAlertTestEtap0(firing → log polla → Telegram → rollback) — patrzdocs/sessions/2026-07-06.md. - Rotacja tokenu HAOS w domowym prom (plaintext).
- Przepięcie observer / panel
agents.okit.plna Prometheus jako źródło — największy znak zapytania przy cutoverze. - Parallel-run obok rury eventowej; cutover dopiero gdy Prometheus-truth się udowodni.