Alerty a metriky pro provoz

Alerty a metriky pro provoz

Proč metriky a alerty rozhodují o spolehlivosti

Provozní týmy (SRE/DevOps/Platform) stojí za spolehlivostí služeb. Bez jasně definovaných metrik, kvalitního monitoringu a přesně zacílených alertů se zvyšuje MTTR, roste šum a klesá důvěra uživatelů. Cílem je včas odhalit uživatelsky významné problémy, minimalizovat „alert fatigue“ a poskytovat akční signály navázané na runbooky a eskalační politiky.

SLI, SLO a chyba rozpočtu (Error Budget)

  • SLI (Service Level Indicator): měřitelný ukazatel kvality služby (např. p99 latence < 250 ms, dostupnost 99.9 %).
  • SLO (Service Level Objective): cílová hodnota SLI za období (např. měsíční dostupnost ≥ 99.95 %).
  • Error Budget: prostor pro „nespolehlivost“ (100 % − SLO). Slouží k řízení rychlosti releasů a prioritizaci stability.

Modely metrik: USE, RED a „Zlaté signály“

  • USE (Utilization, Saturation, Errors): pro infrastrukturu – vytížení, saturace (fronty), chyby.
  • RED (Rate, Errors, Duration): pro HTTP/RPC – počet požadavků, chybovost, trvání.
  • Four Golden Signals: latence, chybovost, propustnost, saturace.

Typy metrik a jejich správné použití

  • Counter: monotonně rostoucí (požadavky, chyby, bajty). Agregace rychlostí (rate).
  • Gauge: okamžitá hodnota (počet spojení, využití paměti, délka fronty).
  • Histogram/Summary: distribuce a kvantily latencí (p90/p95/p99) a velikostí; histogramy preferujte pro škálovatelnost.

Navrhování alertů: principy „málo, ale přesně“

  • Uživatelský dopad: alertujte na symptomy, které cítí uživatel (překročení p99 latence, chyba 5xx > X %), nikoli pouze na systémové signály.
  • Akčnost: každý alert musí mít owner, prioritu, runbook a jasný „first step“.
  • SNR: prahové hodnoty nastavte z baseline (diurnální křivky, sezónnost). Před nasazením sledujte alert v „shadow“ režimu.
  • Hystereze a tlumení: zpoždění, for okna (trvání poruchy), grace period po deployi.

Prioritizace a eskalace

  • P1: výpadek produkce / masivní dopad → pager (telefon/SMS), okamžitá eskalace Incident Commanderovi.
  • P2: významná degradace → pager během on-call, reakce v minutách.
  • P3: menší dopad / varování → chat/e-mail, reaktivně v hodinách.
  • P4: informační → bez paging, pouze dashboard/report.

Tabulka: mapování metrik na alerty

Doména SLI/metrika Prahová hodnota (příklad) Akce/Runbook
HTTP API p99 latence > 300 ms po dobu 5 min Škálování repliki, kontrola DB/Cache hit-rate
HTTP API Chybovost 5xx > 2 % po dobu 3 min Rollback posledního releasu, ověřit rate limit
DB CPU / lock wait CPU > 85 % a wait > 10 % 10 min Analyzovat slow queries, přidat indexy, škálovat
K8s Pod restart rate > 3/5 min v namespace Ověřit limity, OOMKilled, zdraví nodů
Fronty Délka fronty > 1000 zpráv 10 min Navýšit consumer concurrency, backpressure
Obchod Konverze < baseline − 3σ 15 min Incident biz/dopravní kanály, ověřit checkout

Cardinalita a náklady: jak se nespálit

  • Omezení labelů: vyhýbejte se vysoce kardinalitním štítkům (user_id, session_id). Používejte agregovatelné klíče (service, instance, region).
  • Sampling a downsampling: surová data krátce, agregace (1m, 5m), dlouhodobě pouze p95/p99 a denní SUM/AVG.
  • Retence: SLA/SLO na dashboardech v jemném rozlišení, historické trendy v zředěné podobě.

Blackbox vs. whitebox monitoring

  • Blackbox: syntetické testy (HTTP probe, TLS expirace, DNS resoluce). Detekuje uživatelský dopad.
  • Whitebox: interní metriky aplikace/infrastruktury (handler latency, cache hit-rate, GC). Pomáhá s diagnózou.
  • Oba směry kombinujte: blackbox pro alerty P1/P2, whitebox pro P2/P3 a triáž.

Alerty založené na kvantilových metrikách

  • Preferujte p95/p99 nad průměrem; průměr maskuje špičky.
  • Pro kvantily používejte histogramy s promyšlenými buckets (např. expo 5–10–20–40–… ms).

Chybovost a kvalita odpovědí

  • Rozlišujte 5xx (server), 4xx (klient/policy), timeouty, cancellations.
  • Pro gRPC sledujte status_code (UNAVAILABLE, DEADLINE_EXCEEDED) a transport chyby.

Kapacitní a výkonové metriky

  • Headroom: rezervy CPU/RAM/IOPS/throughput; alert při poklesu pod definovaný práh.
  • Fronty a backpressure: délka fronty, doba čekání, poměr produkce/konzumace.
  • GC/Heap (JVM/Node/.NET): frekvence stop-the-world, prahy pro leak detekci.

Runbooky a akčnost alertů

  • Každý alert má URL na runbook s kroky: ověření dopadu, diagnostika, mitigace, rollback, eskalace.
  • Runbook obsahuje odkazy na dashboardy, log dotazy, traces a poslední releasy.
  • Feature flag kill switch“ pro rychlou izolaci problému bez plného rollbacku.

Incident management a metriky spolehlivosti

  • MTTD (Time to Detect), MTTA (Time to Acknowledge), MTTR (Time to Recover).
  • Automatické vytváření incidentů (ticket/slack/IM) z P1/P2 alertů, přiřazení role Incident Commander, Scribe, Tech Lead.
  • Post-incident review: kořenová příčina (blameless), akční položky s jasným ownerem a termínem.

Dashboards: čitelnost a hierarchie

  • Struktura: Executive (SLO/SLA)Service (RED)Dependency (DB/Cache/Queues)Infra (USE).
  • Každý panel s kontextem (popis, jednotky, cíle), sdílené časové okno a anotace releasů.
  • Tematické barvy: zelená (OK), oranžová (varování), červená (incident). Barva není jediný signál – používejte ikony a text.

Korelace logs ⇄ metrics ⇄ traces

  • Trace/Span ID propagujte přes služby a ukládejte do logů pro rychlou navigaci mezi vrstvami observability.
  • Strukturované logy (JSON), sampling traces, metriky jako RED/USE extrahované z telemetrie (OpenTelemetry).

Testování alertů a „game days“

  • Chaos experimenty (úmyslné degradace) ověřují, že alerty skutečně pálí, a že runbooky vedou k obnově.
  • Load testy s baseline křivkami (p50/p95/p99) a definovanými SLO pro špičky.

CI/CD a observabilita

  • Po deployi dočasně uvolněte prahy (grace period), ale alertujte na tvrdé chyby ihned (např. zvýšení 5xx o řád).
  • Automatické anotace releasů do dashboardů a časových řad.

Bezpečnostní alerty vs. provozní alerty

  • Oddělte kanály a priority (SOC vs. NOC), ale propojte korelaci (neobvyklý egress + CPU špičky).
  • U bezpečnostních alertů preferujte detekce s nízkým FPR (behaviorální baseline, více signálů).

On-call hygiena a alert fatigue

  • Pravidelně prune alerty bez akce, slučujte duplicitní signály, zaveďte auto-dedup a grouping.
  • Měřte měsíční počet alertů na inženýra, poměr false/true positive, dobu mimo pracovní hodiny.
  • Rotace on-call, tiché hodiny pro P3/P4, „follow-the-sun“ model u globálních týmů.

Cost observability a kapacitní plánování

  • Tagujte zdroje (service, owner, env) pro showback/chargeback. Sledujte náklady na request, tenant, feature.
  • Alerty na cost drift, náhlé odchylky (např. storage růst > X %/den).

Checklist: kvalitní alerting a metriky

  • Definované SLI/SLO a propojení na error budget?
  • Dashboardy: RED/USE + závislosti + anotace release?
  • Alert má ownera, prioritu, runbook a tlumení (for/hysteresis)?
  • Kardinalita pod kontrolou, retence a náklady optimalizované?
  • On-call metriky (MTTD/MTTR, alerty/osoba/měsíc) se zlepšují?
  • Game days a chaos testy validují efektivitu?

Závěr

Efektivní observabilita stojí na dobře zvolených metrikách a pečlivě navržených alertecích, které reflektují uživatelský dopad, jsou akční a udržitelné. Kombinace SLI/SLO, modelů RED/USE, přísné práce s kardinalitou a propojení metrik s logy a traces umožňuje provozním týmům zkracovat MTTR, chránit error budget a doručovat stabilní zkušenost uživatelům. Pravidelná údržba alertů, runbooků a on-call procesu je stejně důležitá jako samotná instrumentace.

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *