Skip to content

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