ADR_00015: Observabilita – tracing, metriky, logy
Status: Proposed / Accepted
Date: 2025-12-30
Context
Distribuovaný systém bez observability je netransparentní a obtížně provozovatelný.
Je nutné:
- sledovat tok požadavků,
- měřit výkon,
- analyzovat selhání.
Decision
Povinný distributed tracing
- Všechny requesty a eventy nesou trace ID
- Použití OpenTelemetry
Metriky
Sledují se zejména:
- throughput eventů
- latence zpracování
- počet chyb
- DLQ metriky
Trace context
Tracing musí být obohacen o data, která v daném kontextu dávají smysl, tedy například User identifier etc
Logování
- Strukturované logy
- Žádné textové „romány“
- Korelace přes trace ID
- Pouze v případě, že prinese k tracu další informace
- Pokud možno využívat co nejméně
- Logy obsahují trace ID a relevantní metadata (event ID, user ID, doménový kontext).
- Logy se centralizují a indexují pro rychlé vyhledávání.
Consequences
Pozitiva
- Lepší diagnostika
- Rychlejší řešení incidentů
- Přehled o chování systému
Negativa
- Vyšší objem dat
- Nároky na observability stack
Rationale
| Rozhodnutí | Důvod |
|---|---|
| Povinný distributed tracing | Zajišťuje end-to-end viditelnost v distribuovaném systému |
| Metriky pro throughput, latenci, DLQ | Umožňují měřit výkon a identifikovat problémy |
| Strukturované logy | Usnadňují vyhledávání, korelaci a audit |
| Centralizovaná observabilita | Podporuje rychlou reakci na incidenty a prediktivní monitoring |