Jednotka 6 / 11

Monitorovanie a pozorovateľnosť: metrické, protokolové, sledovacie a alarmové pravidlá

zisky:

  • Schopnosť porozumieť trom pilierom pozorovateľnosti (metrika, log, sledovanie) a štyrom zlatým signálom a umelá inteligencia generovať PromQL dotazy, pravidlá alarmov a dashboardy
  • Schopnosť predchádzať únave z alarmov udržiavaním alarmov orientovaných na akciu a so správnou naliehavosťou a testovaním prahových hodnôt oproti historickým údajom vášho vlastného systému
  • Schopnosť zabrániť súkromiu a tajným únikom maskovaním citlivých oblastí pred odovzdaním protokolov umelej inteligencii

Aj keď sa môže zdať, že systém funguje, môže vo vnútri umierať: pamäť sa pomaly zapĺňa, časy odozvy sa zvyšujú, chybovosť sa postupne zvyšuje. Jediný spôsob, ako si to všimnúť, je neustále monitorovať systém. Pokročilejším konceptom je pozorovateľnosť: schopnosť porozumieť tomu, čo sa deje vo vnútri systému, pohľadom na jeho vonkajšie znaky. Existujú tri piliere pozorovateľnosti a profesionál DevOps používa všetky tri:

  • Metrika: Číselné hodnoty merané v priebehu času – využitie procesora, počet požiadaviek, čas odozvy, chybovosť. "Koľko?" odpovedá na otázku.
  • Protokol: Záznamy textových udalostí vytvorené systémom – „prihlásený používateľ“, „spojenie s databázou stratené“. "Čo sa presne stalo?" odpovedá na otázku.
  • Sledovanie: Cesta, ktorú požiadavka sleduje pri prechode zo služby do služby v rámci systému a trvanie každého kroku. "Kde je tá pomalosť?" odpovedá na otázku.

Najbežnejšie nástroje: Prometheus pre metriky, Grafana pre vizualizáciu, Loki/ELK pre log, Jaeger/OpenTelemetry pre sledovanie. Umelá inteligencia je veľmi zručná v písaní dopytovacích jazykov (najmä Prometheus' PromQL), pravidiel alarmov a konfigurácií dashboardu pre tieto nástroje. Je to tiež miesto, kde je AI najsilnejšia: sumarizuje veľké kusy protokolov a metrík a označuje anomálie.

Objasnime si rozdiel medzi monitorovaním a pozorovateľnosťou jednou vetou: monitorovanie kladie otázky, ktoré už poznáte („Je CPU za 90 %?“); pozorovateľnosť je schopnosť klásť otázky, ktoré ste ešte nevedeli („prečo sa táto divná pomalosť deje len pre určitého zákazníka v určitom čase?“). Moderné systémy sú také zložité, že nemôžete predvídať všetky spôsoby zlyhania; Preto sa schopnosť zhromažďovať bohaté metriky, protokoly a stopy a potom ich do hĺbky dotazovať – teda pozorovateľnosť – stáva kritickou. Tu vstupuje do hry AI pri odpovedi na „predtým neznámu otázku“: rýchlo skenuje nespracované údaje, ktoré máte, navrhuje vzory a anomálie a overením týchto indícií sa dostanete ku hlavnej príčine.

Krok za krokom: čo a ako sledovať?

  1. Vyberte si správne metriky. V tomto odvetví sa za základ berú „štyri zlaté signály“: latencia, návštevnosť, chyby, saturácia – ako plný je zdroj. Tieto sumarizujú zdravie väčšiny služieb.
  2. Zbierajte metriky. Nechajte aplikáciu prezentovať koncový bod, ktorý Prometheus dokáže prečítať.
  3. Nastavte informačné panely. Vizualizujte tieto metriky v Grafane.
  4. Napíšte pravidlá alarmu. Kto bude upozornený na prekročenie prahovej hodnoty a ako?
  5. Centralizujte denníky. Umožnite prehľadávať všetky denníky služieb na jednom mieste.
  6. Znížte hluk. Príliš veľa alarmov vytvára „unavujúcu únavu“; Dôležitý alarm zmizne.
Tip: Dobrý alarm spĺňa dve veci: je použiteľný a má správnu naliehavosť. Alarm, ktorý niekoho zobudí o 3:00, musí byť niečo, čo si v skutočnosti vyžaduje nočný zásah. Nebuďte nikoho kvôli niečomu, čo si samo o sebe nevyžaduje akciu, napríklad „CPU 70 %“; zobraziť ho na tabuli.

Ako napísať pravidlo alarmu?

Upozornenie pozostáva z troch komponentov: podmienka (ktorá metrika prekračuje ktorý prah a ako dlho), trvanie („na 5 minút“, aby sa predišlo spusteniu momentálnych výkyvov) a dôležitosť/akcia (pre koho a cez ktorý kanál). AI majstrovsky zakladá tieto tri so správnym kontextom. Napríklad preklad pravidla ako „kritický alarm, ak chybovosť prekročí 5 % počas 5 minút“ do PromQL je pre AI ​​úlohou zlomku sekundy – ale vy sami sa rozhodnete, či je prah vhodný pre váš systém.

Upozornenie: Prahové hodnoty alarmu navrhované AI sú všeobecné predpoklady. Normálne zaťaženie vášho systému, tolerancia a pracovný dopad sú odlišné. Pred vložením prahovej hodnoty priamo do produktu sa pozriete na svoje historické údaje a spýtate sa, „koľkokrát sa v minulosti táto prahová hodnota spustila, koľko z toho boli skutočné problémy?“ Odpovedzte na otázku.

Súkromie denníka: kritické varovanie

Polená sú najčastejšie prehliadaným zdrojom únikov. Riadok denníka môže náhodne obsahovať heslo, číslo kreditnej karty alebo osobné údaje (podľa KVKK/GDPR). Pri vkladaní protokolov do AI na analýzu:

  1. Zamaskujte citlivé oblasti. Hodnoty ako token, heslo, e-mail, identifikačné číslo nahraďte výrazom <REDACTED>.
  2. Uveďte príklady, nie všetky. Namiesto milióna riadkov často stačí niekoľko stoviek reprezentatívnych riadkov.
  3. Vyberte vozidlo schválené inštitúciou. Najmä pre produkčné denníky používajte nástroj, ktorého údaje nejdú na školenie.

Štyri zlaté signály a alarmové tabuľky

signál

merané podľa

Príklad prahu alarmu

naliehavosť

latencia

čas odozvy

p95 > 800 ms, 5 min

vysoká

dopravy

Žiadosť/sek

Náhle zvýšenie/zníženie o 300 %.

stredná

Chyba

Miera neúspešných žiadostí

> 5 %, 5 min

kritický

Sýtosť

obsadenosť zdrojov

Disk > 85 %

vysoká

tri mini prípady

Prípad 1 – 400 riadkov denníka zhrnutých za 30 sekúnd. Služba sa spomalila. Inžinier odovzdal maskovaných 400 riadkov denníka AI a povedal: „Zhrňte vzory opakujúcich sa chýb a časovú intenzitu.“ AI ukázala, že časový limit konkrétneho externého volania API uplynie každých 30 sekúnd. Hlavná príčina nájdená za 30 sekúnd; Manuálne skenovanie denníkov by trvalo pol hodiny.

Prípad 2 – únava z alarmu vyriešená. Jeden tím dostával 200 alarmov denne a všetky ich ignoroval – až kým sa neprehliadol aj alarm skutočného výpadku. Poskytnite AI všetky pravidlá varovania a opýtajte sa „ktoré z nich nie sú použiteľné a ktoré možno kombinovať?“ pýtali sa. Počet alarmov sa znížil na 12 za deň; Každý alarm sa teraz bral vážne.

Prípad 3 – nesprávny prah zachytený skoro. YZ navrhol pre disk „Upozorniť, keď je plný 95 %. Inžinier sa pozrel na historické údaje: akonáhle disk dosiahol 95 %, bolo málo času na zásah. Znížil prah na 80 % a pridal druhý alarm založený na „tempe rastu“. Verifikácia zabránila skutočnému polnočnému výpadku.

Štyri kopírovateľné šablóny

1) Zhrnutie denníka (maskované):

Analyzujte príklad protokolu nižšie (citlivé hodnoty som maskoval pomocou <REDACTED>). Dajte mi: (1) vzory opakujúcich sa chýb, (2) koncentráciu v priebehu času, (3) najpravdepodobnejšiu hlavnú príčinu a (4) 3 metriky, ktoré overím. Denník: [LINES]

2) Generovanie pravidiel alarmu:

Napíšte pravidlo poplachu pre Prometheus/Alertmanager: Vygenerujte poplach [VÝHODNOSŤ], ak [PRAH] prekročí [METRICKÁ [TRVANIE]. Pravidlo by malo byť orientované na akciu a malo by obsahovať pole s anotáciou a odkazom na runbook. Vysvetlite PromQL a napíšte, prečo je táto hranica primeraná.

3) Napísanie/deklarovanie dotazu PromQL:

Napíšte dotaz PromQL, ktorý meria: [EX. 5xxpercento chybovosti za posledných 5 minút]. Vysvetlite dotaz krok za krokom. Potom mi povedzte, aký by mal byť zdravý rozsah pre túto hodnotu.

4) Dizajn palubnej dosky:

Navrhnite ovládací panel Grafana pre [SERVICE]: pomocou ktorých panelov by som mal zobraziť štyri zlaté signály (latencia, návštevnosť, chyba, saturácia)? Navrhnite metriku, typ vizualizácie a primeranú hranicu pre každý panel. Účel: vidieť zdravotný stav strážcu za 10 sekúnd.

Slabá výzva / Silná výzva

Slabý: "Čo je v tom denníku?" (nasleduje 5 000 riadkov surového denníka, v ňom žetóny)

Výsledok: prezradíte tajomstvá a AI vám poskytne necielené, povrchné zhrnutie.

Strong: "Nájdite vzory opakujúcich sa chýb a intenzitu času v 300-riadkovom maskovanom príklade denníka nižšie; povedzte mi najpravdepodobnejšiu hlavnú príčinu a metriky, na ktoré sa pozriem, aby som ich overil. Tokeny som vytvoril <REDACTED>."

Rozdiel: druhá výzva poskytuje maskovaný a zameraný príklad, ktorý požaduje jasný výstup analýzy; Je to bezpečné aj užitočné.

Časté chyby

  • Vloženie logu do AI bez maskovania. Najčastejší únik tajných/osobných údajov.
  • Nastavenie budíkov pre všetko. Poplachová únava pochováva skutočný poplach.
  • Neakčný alarm. Je to varovný hluk, s ktorým nikto nič nezmôže.
  • Prijatie prahu AI bez otázok. Hranica by mala byť nastavená podľa histórie vášho systému.
  • Stačí sa pozrieť na metriku. Bez protokolu a sledovania sa väčšinou nedá nájsť hlavná príčina.
  • Nenastavuje sa čas budíka (pre). Momentálne výkyvy vyvolávajú falošné poplachy.

V súhrne

Pozorovateľnosť; Je to schopnosť porozumieť vnútri systému zvonku pomocou metrík, protokolov a stôp. Štyri zlaté signály (latencia, návštevnosť, chyba, saturácia) sumarizujú zdravie väčšiny služieb. Umelá inteligencia je veľmi výkonná pri písaní dotazov PromQL, pravidiel alarmu a dashboardov a pri sumarizácii veľkých kusov protokolov a hľadaní anomálií. Je však vašou zodpovednosťou overiť prahové hodnoty alarmov v porovnaní s históriou vášho vlastného systému, udržiavať alarmy orientované na akciu a nikdy nezdieľať protokoly bez ich maskovania.

Aplikačná úloha

Pre službu (alebo vzorovú službu): (1) Nechajte vygenerovať pravidlo alarmu pre chybovosť pomocou šablóny "Generovanie pravidla alarmu" a nastavte navrhovanú hranicu na "koľkokrát sa v minulosti spustilo?" Otestujte si to otázkou; (2) maskujte vzorku denníka, ktorú máte, a nechajte ju analyzovať pomocou šablóny „Súhrn denníka“; (3) všimnite si, na ktorú metriku sa budete pozerať, aby ste potvrdili najpravdepodobnejšiu hlavnú príčinu.

kontrolný zoznam

  • [ ] Metriky na sledovanie som zvolil na základe štyroch zlatých signálov.
  • [ ] Zamaskoval som všetky záznamy, ktoré som dal AI, pokiaľ ide o citlivé oblasti.
  • [ ] Overil som si, že každý alarm bol zameraný na akciu a so správnou naliehavosťou.
  • [ ] Testoval som prahové hodnoty alarmov oproti historickým údajom môjho systému.
  • [ ] Okamžité výkyvy som filtroval tak, že som k alarmom pridal čas (trvanie).
  • [ ] Na hlavnú príčinu som použil metriku + log + stopu.