Status: Draft — discussion only. Žádné rozhodnutí nebylo přijato. Tento dokument slouží jako podklad pro budoucí rozhodování ve Stopě F. Před zahájením implementace bude vydán ADR-019.
TODO: Přidat Stopu F do roadmap dokumentu, jakmile bude existovat.
1. Vrstvy monitoringu
| Vrstva | Co monitorujeme | Nástroj / zdroj |
|---|---|---|
| Infra | CPU, RAM, disk, pod restarts, NFS health | DO Monitoring + kube-state-metrics |
| App metrics | HTTP req rate, p95 latency, JVM heap, DB pool, SSE connections | Spring Actuator /actuator/prometheus |
| Logs | Structured JSON logs | stdout → log aggregator |
| Errors | Stack traces, error groups | Sentry SDK |
| AI cost | Anthropic token spend per session/user | Anthropic Usage API |
| Uptime / synthetic | Externí HTTP probe na api.talkide.app, talkide.app | Better Uptime / UptimeRobot |
2. Tři varianty stacku
Varianta A — Pure SaaS Free Tier
| Komponenta | Nástroj | Poznámka |
|---|---|---|
| Infra + App metrics + Logs + Dashboards | Grafana Cloud Free | 10k series, 50 GB logs, 14 dní retention |
| Errors | Sentry Free | 5k events/měs |
| Uptime / synthetic | Better Uptime Free | 2 monitors, 3min interval |
Cost: $0/měs
Pro:
- Žádný hosting overhead, vše managed
- Rychlý onboarding, nulová ops zátěž
Proti:
- Data u 3rd party (GDPR edge cases)
- Retention limity mohou být nedostatečné po spuštění
- Vendor lock-in
Varianta B — Self-host kube-prometheus-stack
| Komponenta | Nástroj | Poznámka |
|---|---|---|
| Metrics + Dashboards + Alerting | kube-prometheus-stack (Helm) | Prometheus + Grafana + Alertmanager + node-exporter |
| Logs | Loki (Helm) | Logback → Loki push agent |
| Errors | Sentry Free SaaS | Self-host Sentry je příliš heavy (2+ GB RAM) |
| Uptime / synthetic | Better Uptime Free | 2 monitors |
Cost: +$15–24/měs (větší K8s node nebo extra node pro observability stack)
Pro:
- Data v naší VPC, plná kontrola
- Žádný retention limit
- Prometheus + Grafana průmyslový standard
Proti:
- My managujeme (upgrade, backup Prometheus dat)
- Větší K8s resource footprint
- Komplexnější setup
Varianta C — Hybrid (orientačně vhodné pro alpha)
| Komponenta | Nástroj | Cost |
|---|---|---|
| Infra monitoring | DO built-in Monitoring | FREE (součást DO) |
| App metrics + Logs | Grafana Cloud Free (push agent v clusteru) | FREE / $19/měs Pro |
| Errors | Sentry Free (BE + FE SDK) | FREE |
| Uptime / synthetic | Better Uptime Free (2 monitors) | FREE |
Cost: $0/měs alpha, ~$19/měs Grafana Cloud Pro po alpha launch
Pro:
- Minimal ops — žádný self-hosted observability stack
- DO Monitoring zdarma pokrývá infra vrstvu bez konfigurace
- Grafana Cloud agent je lightweight (push model, běží jako sidecar nebo DaemonSet)
- Sentry SDK integrace je minutová záležitost
- Scaleable — přechod na Pro tier je jediná změna
Proti:
- Data distribuovaná napříč 3 SaaS službami
- Při free tier limitu nutný upgrade nebo migrace
3. User-app monitoring specifika
Každý user-app pod generovaný platformou má /actuator/prometheus jako součást template scaffoldu.
Scraping:
- Centrální Prometheus scrape přes
ServiceMonitors label selectorapp=user-app - Multi-tenancy isolation: každý scrape target dostane label
tenant=<slug>, dashboard query filtruje bytenant
User-facing UI (post-MVP) — “App Health” tab v project view:
- Request rate sparkline (posledních 24h)
- Error rate %
- Response time (p95)
- Pod restarts
Implementace: BE endpoint /api/v1/projects/{slug}/metrics dotazuje Prometheus HTTP API a vrací agregovaná data. FE zobrazí sparkline grafy bez přímého přístupu k Prometheus.
4. Fázování (orientační)
Závazné rozhodnutí teprve ve Stopě F po výběru stacku.
| Fáze | Co | Kdy (orientačně) |
|---|---|---|
| Pre-alpha | Sentry SDK (BE + FE), basic Actuator endpoint, 2 Better Uptime monitors | Před public alpha |
| Alpha launch | Grafana Cloud agent + 5–6 BE dashboardů (req rate, p95, JVM heap, DB pool) | Před public alpha |
| Public alpha | User-facing “App Health” UI v project view | +1–2 týdny po launch |
| Post-alpha | AI cost tracking dashboard, alert rules, paging | Postupně dle potřeby |
5. Otevřené otázky (k rozhodnutí ve Stopě F)
- Která varianta stacku (A / B / C)?
- Které vrstvy implementujeme jako první?
- Self-hosted Grafana vs Grafana Cloud?
- Logs retention policy (14 dní? 30 dní? neomezeno?)
- Alert rules a paging — PagerDuty, OpsGenie, nebo email?
- AI cost dashboard: v admin UI TalkIDE vs. externí Grafana dashboard?
- Sentry plan — kdy přejít z Free (5k events) na Team?
6. Reference
- DO Monitoring docs
- Grafana Cloud Free tier limits
- Sentry SDK pricing
- Spring Boot Actuator + Micrometer
- kube-prometheus-stack Helm chart
- Better Uptime pricing
Poznámka: Tento dokument NENÍ finální rozhodnutí ani závazná specifikace. Slouží jako přehled možností a podklad pro diskuzi. Konkrétní výběr stacku a implementační plán budou formalizovány jako ADR-019 na začátku Stopy F.
Thanks for the feedback.