Alerty a metriky pro provozní týmy

Alerty a metriky pro provozní týmy: Upozornění

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 prodlužuje MTTR, přibývá šumu a klesá důvěra uživatelů. Cílem je včas odhalit problémy významné pro uživatele, minimalizovat „únavu z alertů“ (alert fatigue) a poskytovat akční signály navázané na provozní příručky a eskalační politiky.

SLI, SLO a rozpočet na chyby (Error Budget)

  • SLI (Service Level Indicator): měřitelný ukazatel kvality služby (např. latence p99 < 250 ms, dostupnost 99,9 %).
  • SLO (Service Level Objective): cílová hodnota SLI za určité období (např. měsíční dostupnost ≥ 99,95 %).
  • Error Budget: prostor pro „nespolehlivost“ (100 % − SLO). Slouží k řízení rychlosti nasazování nových verzí a určování priorit v oblasti stability.

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

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

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

  • Counter: monotónně rostoucí hodnota (požadavky, chyby, bajty). Agregace pomocí rychlosti (rate).
  • Gauge: okamžitá hodnota (počet spojení, využití paměti, délka fronty).
  • Histogram/Summary: rozdělení a kvantily latencí (p90/p95/p99) a velikostí; z hlediska škálovatelnosti upřednostňujte histogramy.

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

  • Dopad na uživatele: upozorňujte na příznaky, které uživatel skutečně vnímá (překročení latence p99, chybovost 5xx > X %), nikoli pouze na systémové signály.
  • Akčnost: každý alert musí mít vlastníka, prioritu, provozní příručku a jasný „první krok“.
  • SNR: prahové hodnoty nastavte podle výchozího stavu (denní křivky, sezónnost). Před nasazením sledujte alert v režimu „shadow“.
  • Hystereze a tlumení: zpoždění, časová okna for (doba trvání poruchy), ochranná lhůta (grace period) po nasazení.

Prioritizace a eskalace

  • P1: výpadek produkce / masivní dopad → pager (telefon/SMS), okamžitá eskalace veliteli incidentu (Incident Commander).
  • P2: významné zhoršení služby → pager během pohotovosti, reakce během několika minut.
  • P3: menší dopad / varování → chat/e-mail, reakce v řádu hodin.
  • P4: informační → bez pageru, pouze dashboard/report.

Tabulka: mapování metrik na alerty

Doména SLI/metrika Prahová hodnota (příklad) Akce/provozní příručka
HTTP API Latence p99 > 300 ms po dobu 5 min Navýšit počet replik, zkontrolovat míru zásahů do DB/cache
HTTP API Chybovost 5xx > 2 % po dobu 3 min Vrátit poslední verzi, ověřit omezení rychlosti požadavků
DB CPU / čekání na zámek CPU > 85 % a čekání > 10 % po dobu 10 min Analyzovat pomalé dotazy, přidat indexy, škálovat
K8s Frekvence restartů podů > 3/5 min v namespace Ověřit limity, OOMKilled a stav nodů
Fronty Délka fronty > 1000 zpráv po dobu 10 min Navýšit souběžnost konzumentů, zavést řízení zpětného tlaku
Obchod Konverze < výchozí úroveň − 3σ po dobu 15 min Incident v obchodních/dopravních kanálech, ověřit proces objednávky

Kardinalita a náklady: jak se nespálit

  • Omezení štítků: vyhýbejte se štítkům s vysokou kardinalitou (user_id, session_id). Používejte agregovatelné klíče (service, instance, region).
  • Vzorkování a snížení rozlišení: surová data uchovávejte krátce, používejte agregace (1m, 5m) a dlouhodobě uchovávejte pouze p95/p99 a denní SUM/AVG.
  • Retence: SLA/SLO na dashboardech zobrazujte v jemném rozlišení, historické trendy v hrubším.

Blackbox vs. whitebox monitoring

  • Blackbox: syntetické testy (HTTP probe, expirace TLS, překlad DNS). Odhaluje dopad na uživatele.
  • Whitebox: interní metriky aplikace/infrastruktury (latence obsluhy požadavků, míra zásahů do cache, GC). Pomáhá s diagnostikou.
  • Kombinujte oba přístupy: blackbox pro alerty P1/P2, whitebox pro P2/P3 a třídění incidentů.

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

  • Upřednostňujte p95/p99 před průměrem; průměr maskuje špičky.
  • Pro kvantily používejte histogramy s promyšlenými intervaly (buckets) (např. exponenciálně 5–10–20–40–… ms).

Chybovost a kvalita odpovědí

  • Rozlišujte 5xx (server), 4xx (klient/politika), timeouty a zrušené požadavky (cancellations).
  • U gRPC sledujte status_code (UNAVAILABLE, DEADLINE_EXCEEDED) a chyby přenosové vrstvy (transport).

Kapacitní a výkonové metriky

  • Kapacitní rezerva (headroom): rezervy CPU/RAM/IOPS/propustnosti; upozornění při poklesu pod stanovený práh.
  • Fronty a řízení zpětného tlaku: délka fronty, doba čekání, poměr produkce a spotřeby.
  • GC/heap (JVM/Node/.NET): frekvence pauz stop-the-world, prahové hodnoty pro detekci úniků paměti.

Provozní příručky a akčnost alertů

  • Každý alert obsahuje URL na provozní příručku s kroky: ověření dopadu, diagnostika, zmírnění dopadu, návrat k předchozí verzi, eskalace.
  • Provozní příručka obsahuje odkazy na dashboardy, dotazy do logů, trasování a poslední verze.
  • „Vypínač funkce“ (feature flag kill switch) pro rychlou izolaci problému bez úplného návratu k předchozí verzi.

Řízení incidentů a metriky spolehlivosti

  • MTTD (doba do detekce), MTTA (doba do potvrzení) a MTTR (doba do obnovení).
  • Automatické vytváření incidentů (ticket/slack/IM) na základě alertů P1/P2, přiřazení rolí Incident Commander, zapisovatel (Scribe) a technický vedoucí (Tech Lead).
  • Kontrola po incidentu: analýza základní příčiny (bez hledání viníka), akční úkoly s jasně určeným vlastníkem a termínem.

Dashboardy: přehlednost a hierarchie

  • Struktura: Executive (SLO/SLA) → Service (RED) → Dependency (DB/Cache/Queues) → Infra (USE).
  • Každý panel má kontext (popis, jednotky, cíle), společné časové okno a anotace verzí.
  • Tematické barvy: zelená (v pořádku), oranžová (varování), červená (incident). Barva nesmí být jediným signálem – používejte také ikony a text.

Korelace logů ⇄ metrik ⇄ trasování

  • ID tras/spanu propagujte napříč službami a ukládejte do logů, aby bylo možné rychle přecházet mezi vrstvami observability.
  • Strukturované logy (JSON), vzorkování trasování a metriky RED/USE extrahované z telemetrie (OpenTelemetry).

Testování alertů a „herní dny“

  • Experimenty s chaosem (záměrná zhoršení) ověřují, zda se alerty skutečně spouštějí a zda provozní příručky vedou k obnovení služby.
  • Zátěžové testy s výchozími křivkami (p50/p95/p99) a definovanými SLO pro období špičky.

CI/CD a observabilita

  • Po nasazení dočasně uvolněte prahové hodnoty (ochranná lhůta, grace period), ale na závažné chyby upozorňujte ihned (např. řádový nárůst chybovosti 5xx).
  • Automatické anotace verzí do dashboardů a časových řad.

Bezpečnostní a provozní alerty

  • Oddělte kanály a priority (SOC vs. NOC), ale propojte korelaci (neobvyklý odchozí provoz + špičky využití CPU).
  • U bezpečnostních alertů upřednostňujte detekce s nízkým podílem falešně pozitivních výsledků (behaviorální výchozí stav, více signálů).

Hygiena pohotovostní služby a únava z alertů

  • Pravidelně odstraňujte alerty, které nevyžadují žádnou akci, slučujte duplicitní signály a zavádějte automatické odstraňování duplicit (auto-dedup) a seskupování (grouping).
  • Měřte měsíční počet alertů na inženýra, poměr falešně a skutečně pozitivních výsledků a dobu zásahů mimo pracovní dobu.
  • Střídejte pohotovostní služby, zavádějte klidové hodiny pro P3/P4 a u globálních týmů využívejte model „follow-the-sun“.

Finanční observabilita a kapacitní plánování

  • Označujte zdroje (service, owner, env) pro showback/chargeback. Sledujte náklady na požadavek, tenanta a funkci.
  • Nastavujte alerty na odchylky nákladů a náhlé změny (např. růst úložiště > X %/den).

Kontrolní seznam: kvalitní alerting a metriky

  • Jsou definovány SLI/SLO a propojeny s rozpočtem na chyby?
  • Obsahují dashboardy metriky RED/USE, závislosti a anotace verzí?
  • Má alert vlastníka, prioritu, provozní příručku a nastavené tlumení (for/hystereze)?
  • Je kardinalita pod kontrolou a jsou optimalizovány retence i náklady?
  • Zlepšují se provozní metriky pohotovostních služeb (MTTD/MTTR, alerty/osoba/měsíc)?
  • Ověřují herní dny a testy chaosu účinnost?

Závěr

Efektivní observabilita stojí na vhodně zvolených metrikách a pečlivě navržených alertech, které odrážejí dopad na uživatele, vedou ke konkrétní akci a jsou udržitelné. Kombinace SLI/SLO, modelů RED/USE, důsledné kontroly kardinality a propojení metrik s logy a trasováním umožňuje provozním týmům zkracovat MTTR, chránit rozpočet na chyby a poskytovat uživatelům stabilní služby. Pravidelná údržba alertů, provozních příruček a pohotovostního procesu je stejně důležitá jako samotná instrumentace.