Jednotka 6 / 11

Monitorování a pozorovatelnost: Pravidla pro metriky, protokoly, sledování a alarmy

zisky:

  • Schopnost porozumět třem pilířům pozorovatelnosti (metrika, log, trace) a čtyřem zlatým signálům a umělá inteligence generovat dotazy PromQL, pravidla alarmů a řídicí panely
  • Schopnost předcházet únavě z alarmů udržováním alarmů orientovaných na akci a ve správné naléhavosti a testováním prahových hodnot s historickými daty vašeho vlastního systému
  • Schopnost zabránit úniku soukromí a tajných informací maskováním citlivých oblastí před předáním protokolů umělé inteligenci

I když se může zdát, že systém funguje, může uvnitř umírat: paměť se pomalu plní, doba odezvy se zvyšuje, chybovost se plíží. Jediný způsob, jak si toho všimnout, je neustálé sledování systému. Pokročilejším konceptem je pozorovatelnost: schopnost porozumět tomu, co se děje uvnitř systému, pohledem na jeho vnější znaky. Existují tři pilíře pozorovatelnosti a profesionál DevOps používá všechny tři:

  • Metrika: Číselné hodnoty měřené v průběhu času — využití procesoru, počet požadavků, doba odezvy, chybovost. "Kolik?" odpovídá na otázku.
  • Protokol: Textové záznamy událostí vytvořené systémem – „přihlášený uživatel“, „ztráta připojení k databázi“. "Co se přesně stalo?" odpovídá na otázku.
  • Trace: Cesta, kterou požadavek sleduje při přechodu ze služby na službu v rámci systému, a trvání každého kroku. "Kde je ta pomalost?" odpovídá na otázku.

Nejběžnější nástroje: Prometheus pro metriky, Grafana pro vizualizaci, Loki/ELK pro log, Jaeger/OpenTelemetry pro trasování. Umělá inteligence je velmi zručná v psaní dotazovacích jazyků (zejména Prometheus' PromQL), pravidel alarmů a konfigurací řídicích panelů pro tyto nástroje. Je to také místo, kde je umělá inteligence nejsilnější: shrnuje velké kusy protokolů a metrik a označuje anomálie.

Pojďme si jednou větou objasnit rozdíl mezi monitorováním a pozorovatelností: monitorování klade otázky, které již znáte („Je CPU za 90 %?“); pozorovatelnost je schopnost klást otázky, které jste ještě nevěděli („proč se tato podivná pomalost děje pouze u určitého zákazníka v určitou dobu?“). Moderní systémy jsou tak složité, že nelze předvídat všechny způsoby selhání; Schopnost shromažďovat bohaté metriky, protokoly a trasování a poté se na ně podrobně dotazovat – tedy na pozorovatelnost – se proto stává kritickou. Zde vstupuje do hry umělá inteligence, když odpovídá na „dříve neznámou otázku“: rychle prohledá nezpracovaná data, která máte, navrhne vzory a anomálie a ověřením těchto vodítek se dostanete k hlavní příčině.

Krok za krokem: co a jak sledovat?

  1. Vyberte správné metriky. V průmyslu se za základ berou „čtyři zlaté signály“: latence, provoz, chyby, saturace – jak je zdroj plný. Ty shrnují zdraví většiny služeb.
  2. Sbírejte metriky. Nechte aplikaci předložit koncový bod, který může Prometheus číst.
  3. Nastavit řídicí panely. Vizualizujte tyto metriky v Grafaně.
  4. Napište pravidla alarmu. Kdo bude varován při překročení prahové hodnoty a jak?
  5. Centralizujte protokoly. Umožněte vyhledávání všech protokolů služeb na jednom místě.
  6. Snižte hluk. Příliš mnoho alarmů vytváří „unavitelnost“; Důležitý alarm zmizí.
Tip: Dobrý alarm splňuje dvě věci: je proveditelný a má správnou naléhavost. Alarm, který někoho probudí ve 3 hodiny ráno, musí být něco, co ve skutečnosti vyžaduje noční zásah. Nebuďte nikoho kvůli něčemu, co samo o sobě nevyžaduje akci, například „CPU 70 %“; zobrazit na tabuli.

Jak napsat pravidlo alarmu?

Výstraha se skládá ze tří složek: podmínka (která metrika překračuje který práh a na jak dlouho), trvání („po dobu 5 minut“, aby nedošlo ke spuštění momentálních výkyvů) a důležitost/akce (pro koho, prostřednictvím kterého kanálu). Umělá inteligence tyto tři mistrovsky zavádí do správného kontextu. Například překlad pravidla jako „kritický alarm, pokud četnost chyb překročí 5 % po dobu 5 minut“ do PromQL je pro AI ​​úkol ve zlomku sekundy – ale vy sami se rozhodnete, zda je práh vhodný pro váš systém.

Upozornění: Prahové hodnoty alarmu navržené AI jsou obecné předpoklady. Normální zatížení vašeho systému, tolerance a pracovní dopad se liší. Než vložíte práh přímo do produktu, podíváte se na svá historická data a zeptáte se: „Kolikrát byl tento práh v minulosti spuštěn, kolik z toho byly skutečné problémy?“ Odpovězte na otázku.

Soukromí protokolu: kritické varování

Špalky jsou nejčastěji přehlíženým zdrojem úniků. Řádek protokolu může náhodně obsahovat heslo, číslo kreditní karty nebo osobní údaje (podle KVKK/GDPR). Při vkládání protokolů do AI pro analýzu:

  1. Maskujte citlivá místa. Nahraďte hodnoty, jako je token, heslo, e-mail, ID číslo, za <REDACTED>.
  2. Uveďte příklady, ne všechny. Místo milionu linek často stačí pár stovek reprezentativních linek.
  3. Vyberte vozidlo schválené institucí. Zejména pro produkční protokoly použijte nástroj, jehož data nejdou na školení.

Čtyři zlaté signály a výstražné tabulky

signál

měřeno podle

Příklad prahové hodnoty alarmu

naléhavost

latence

doba odezvy

p95 > 800 ms, 5 min

vysoká

provoz

Žádost/sek

Náhlý 300% nárůst/pokles

střední

Chyba

Míra neúspěšných požadavků

> 5 %, 5 min

kritický

Sytost

obsazenost zdrojů

Disk > 85 %

vysoká

tři mini pouzdra

Případ 1 — 400 řádků protokolu shrnutých za 30 sekund. Služba se zpomalila. Inženýr předal maskovaných 400 řádků protokolu AI a řekl: "Shrňte vzorce opakujících se chyb a časovou intenzitu." Umělá inteligence ukázala, že časový limit konkrétního externího volání API vyprší každých 30 sekund. Hlavní příčina nalezena za 30 sekund; Ruční skenování protokolů by trvalo půl hodiny.

Případ 2 — únava z alarmu vyřešena. Jeden tým dostával 200 poplachů denně a všechny je ignoroval – dokud nebyl přehlédnut i skutečný poplach. Poskytněte AI všechna pravidla výstrahy a zeptejte se, „která z nich nejsou použitelná a která lze kombinovat? zeptali se. Počet poplachů se snížil na 12 za den; Každý poplach byl nyní brán vážně.

Případ 3 – časně zachycený nesprávný práh. YZ navrhl pro disk „Upozornit, když je 95 % plné“. Technik se podíval na historická data: jakmile disk dosáhl 95 %, bylo málo času na zásah. Snížil práh na 80 % a přidal druhý alarm založený na „rychlosti růstu“. Ověření zabránilo skutečnému půlnočnímu výpadku.

Čtyři kopírovatelné šablony

1) Shrnutí protokolu (maskováno):

Analyzujte níže uvedený příklad protokolu (citlivé hodnoty jsem maskoval pomocí <REDACTED>). Dejte mi: (1) vzorce opakujících se chyb, (2) koncentraci v průběhu času, (3) nejpravděpodobnější hlavní příčinu a (4) 3 metriky, které ověřím. Protokol: [LINES]

2) Generování pravidla poplachu:

Napište pravidlo poplachu pro Prometheus/Alertmanager: Vygenerujte poplach [VÝHODNOST], pokud [THRESHOLD] překročí [METRICKÁ][DURACE]. Pravidlo by mělo být zaměřeno na akci a mělo by obsahovat pole pro anotaci a odkaz na runbook. Vysvětlete PromQL a napište, proč je tato hranice přiměřená.

3) Psaní/deklarování dotazu PromQL:

Napište dotaz PromQL, který měří: [EX. 5xxprocento chybovosti za posledních 5 minut]. Vysvětlete dotaz krok za krokem. Pak mi řekněte, jaké by mělo být zdravé rozmezí pro tuto hodnotu.

4) Design palubní desky:

Navrhněte ovládací panel Grafana pro [SERVIS]: pomocí kterých panelů bych měl zobrazovat čtyři zlaté signály (latence, provoz, chyba, saturace)? Navrhněte metriku, typ vizualizace a přiměřený práh pro každý panel. Účel: zobrazit zdravotní stav stráže za 10 sekund.

Slabá výzva / Silná výzva

Slabý: "Co je v tom protokolu?" (následuje 5000 řádků surového protokolu, v něm žetony)

Výsledek: prozradíte tajemství a AI vám poskytne necílené, povrchní shrnutí.

Strong: "Najděte vzorce opakujících se chyb a časovou intenzitu v níže uvedeném příkladu 300řádkového maskovaného protokolu; řekněte mi nejpravděpodobnější hlavní příčinu a metriky, na které se podívám, abych je ověřil. Vytvořil jsem tokeny <REDACTED>."

Rozdíl: druhá výzva poskytuje maskovaný a zaměřený příklad, který požaduje jasný výstup analýzy; Je to bezpečné i užitečné.

Časté chyby

  • Vložení logu do AI bez maskování. Nejčastější únik tajných/osobních údajů.
  • Nastavení budíků pro všechno. Poplachová únava pohřbívá skutečný poplach.
  • Alarm bez akce. Je to varovný hluk, se kterým nikdo nic neudělá.
  • Přijetí prahu AI bez otázek. Práh by měl být nastaven podle historie vašeho systému.
  • Stačí se podívat na metriku. Bez logu a sledování nelze hlavní příčinu většinou najít.
  • Není nastaven čas budíku (pro). Chvilkové výkyvy vyvolávají falešné poplachy.

V souhrnu

Pozorovatelnost; Je to schopnost porozumět vnitřku systému zvenčí pomocí metrik, protokolů a tras. Čtyři zlaté signály (latence, provoz, chyba, saturace) shrnují stav většiny služeb. Umělá inteligence je velmi výkonná při psaní dotazů PromQL, pravidel alarmů a řídicích panelů a při sumarizaci velkých kusů protokolů a hledání anomálií. Je však vaší odpovědností ověřit prahové hodnoty alarmů s historií vašeho vlastního systému, udržovat alarmy orientované na akci a nikdy nesdílet protokoly bez jejich maskování.

Aplikační úkol

Pro službu (nebo ukázkovou službu): (1) Nechte si vygenerovat pravidlo alarmu pro četnost chyb pomocí šablony "Generování pravidla alarmu" a nastavte navrhovanou prahovou hodnotu na "kolikrát se v minulosti spustilo?" Otestujte to otázkou; (2) maskujte vzorek protokolu, který máte, a nechte jej analyzovat pomocí šablony „Shrnutí protokolu“; (3) poznamenejte si, na kterou metriku se podíváte, abyste potvrdili nejpravděpodobnější hlavní příčinu.

kontrolní seznam

  • [ ] Metriky ke sledování jsem zvolil na základě čtyř zlatých signálů.
  • [ ] Zamaskoval jsem všechny záznamy, které jsem dal AI, pokud jde o citlivé oblasti.
  • [ ] Ověřil jsem, že každý alarm byl zaměřen na akci a měl správnou naléhavost.
  • [ ] Testoval jsem prahové hodnoty alarmů proti historickým datům mého systému.
  • [ ] Okamžité výkyvy jsem filtroval přidáním hodnoty (trvání) k alarmům.
  • [ ] Použil jsem metriku + log + trace společně pro hlavní příčinu.