Jedinica 6 / 11

Praćenje i vidljivost: metrika, zapisnik, praćenje i pravila alarma

Dobici:

  • Sposobnost razumijevanja tri stupa uočljivosti (metrika, zapisnik, trag) i četiri zlatna signala te mogućnost da umjetna inteligencija generira PromQL upite, pravila alarma i nadzorne ploče
  • Sposobnost sprječavanja zamora alarma održavanjem alarma orijentiranim na akciju i u pravoj hitnosti te testiranjem pragova prema povijesnim podacima vašeg vlastitog sustava
  • Sposobnost sprječavanja privatnosti i curenja tajni maskiranjem osjetljivih područja prije davanja zapisa umjetnoj inteligenciji

Iako se može činiti da sustav radi, možda iznutra umire: memorija se polako puni, vrijeme odziva se povećava, stopa grešaka raste. Jedini način da to primijetite je stalni nadzor sustava. Napredniji koncept je uočljivost: sposobnost razumijevanja onoga što se događa unutar sustava promatranjem njegovih vanjskih znakova. Postoje tri stupa uočljivosti, a DevOps profesionalac koristi sva tri:

  • Metrički podaci: Brojčane vrijednosti izmjerene tijekom vremena — korištenje CPU-a, broj zahtjeva, vrijeme odgovora, stopa pogreške. "Koliko?" odgovara na pitanje.
  • Dnevnik: tekstualni zapisi događaja koje proizvodi sustav—"korisnik prijavljen", "prekinuta veza s bazom podataka". "Što se točno dogodilo?" odgovara na pitanje.
  • Praćenje: put koji zahtjev slijedi dok prolazi od usluge do usluge unutar sustava i trajanje svakog koraka. "Gdje je sporost?" odgovara na pitanje.

Najčešći alati: Prometheus za metriku, Grafana za vizualizaciju, Loki/ELK za log, Jaeger/OpenTelemetry za praćenje. AI je vrlo vješt u pisanju jezika za upite (osobito Prometheusov PromQL), pravila alarma i konfiguracije nadzorne ploče za ove alate. To je također mjesto gdje je umjetna inteligencija najjača: sažimanje velikih dijelova zapisa i mjernih podataka i označavanje anomalija.

Pojasnimo razliku između praćenja i promatranja u jednoj rečenici: nadgledanje je postavljanje pitanja koja već znate (“Je li CPU prešao 90%?”); uočljivost je mogućnost postavljanja pitanja koja već niste znali ("zašto se ova čudna sporost događa samo određenom kupcu u određeno vrijeme?"). Moderni sustavi su toliko složeni da ne možete predvidjeti sve načine kvara; Stoga sposobnost prikupljanja bogatih metrika, zapisa i tragova, a zatim ih dubinski ispituje - to jest, vidljivost - postaje kritična. Ovdje umjetna inteligencija stupa na scenu kada odgovara na "prethodno nepoznato pitanje": brzo skenira neobrađene podatke koje imate, predlaže uzorke i anomalije, a vi provjerom tih tragova dolazite do temeljnog uzroka.

Korak po korak: što i kako nadzirati?

  1. Odaberite pravu metriku. U industriji se kao osnova uzimaju "četiri zlatna signala": latencija, promet, pogreške, zasićenost — koliko je resurs pun. Oni sažimaju zdravlje većine usluga.
  2. Prikupite mjerne podatke. Neka aplikacija predstavi krajnju točku koju Prometheus može pročitati.
  3. Postavite nadzorne ploče. Vizualizirajte ove metrike u Grafani.
  4. Napišite pravila alarma. Tko će biti upozoren kada se prekorači prag i kako?
  5. Centralizirajte zapise. Omogućite pretraživanje svih servisnih zapisa na jednom mjestu.
  6. Smanjite buku. Previše alarma stvara "umor od upozorenja"; Važan alarm nestaje.
Savjet: dobar alarm ispunjava dvije stvari: djelotvoran je i ima odgovarajuću hitnost. Alarm koji nekoga probudi u 3 ujutro mora biti nešto što zapravo zahtijeva noćnu intervenciju. Nemojte nikoga probuditi zbog nečega što ne zahtijeva samo djelovanje, poput "CPU 70%"; prikazati na ploči.

Kako napisati pravilo alarma?

Upozorenje se sastoji od tri komponente: uvjet (koja metrika premašuje koji prag i koliko dugo), trajanje ("na 5 minuta" kako bi se izbjeglo pokretanje trenutnih fluktuacija) i važnost/radnja (kome, kroz koji kanal). AI majstorski uspostavlja ovo troje s pravim kontekstom. Na primjer, prevođenje pravila poput "kritičnog alarma ako stopa pogreške prijeđe 5% tijekom 5 minuta" u PromQL zadatak je djelića sekunde za AI - ali vi odlučujete je li prag ispravan za vaš sustav.

Oprez: Pragovi alarma koje predlaže AI su opće pretpostavke. Normalno opterećenje, tolerancija i radni utjecaj vašeg sustava su drugačiji. Prije nego što stavite prag izravno u prod, pogledate svoje povijesne podatke i pitate se "koliko je puta ovaj prag aktiviran u prošlosti, koliko su od toga bili stvarni problemi?" Odgovorite na pitanje.

Privatnost dnevnika: kritično upozorenje

Dnevnici su najčešće zanemaren izvor curenja. Redak dnevnika može slučajno sadržavati lozinku, broj kreditne kartice ili osobne podatke (prema KVKK/GDPR). Prilikom lijepljenja zapisa u AI za analizu:

  1. Zamaskirajte osjetljiva područja. Zamijenite vrijednosti kao što su token, lozinka, e-pošta, ID broj s <REDIGOVANO>.
  2. Navedite primjere, ne sve. Umjesto milijun redaka često je dovoljno nekoliko stotina reprezentativnih redaka.
  3. Odaberite vozilo koje je odobrila institucija. Posebno za proizvodne dnevnike, koristite alat čiji podaci ne idu na obuku.

Četiri zlatna signalna i alarmna stola

signal

mjereno prema

Primjer praga alarma

hitnost

latencija

vrijeme odziva

p95 > 800 ms, 5 min

visoka

prometa

Zahtjev/sek

Iznenadno povećanje/smanjenje od 300%.

srednji

Greška

Stopa neuspjelih zahtjeva

> 5%, 5 min

kritičan

Zasićenost

zauzetost resursa

Disk > 85%

visoka

tri mini kućišta

Slučaj 1 — 400 redaka dnevnika sažeto u 30 sekundi. Usluga je bila usporena. Inženjer je dao maskiranih 400 redaka dnevnika AI-u i rekao, "sažeti obrasce ponavljajućih grešaka i intenzitet vremena." AI je pokazao da određeni vanjski API poziv istekne svakih 30 sekundi. Glavni uzrok pronađen u 30 sekundi; Ručno skeniranje zapisa trajalo bi pola sata.

Slučaj 2 — zamor alarma riješen. Jedan tim je primao 200 alarma dnevno i sve ih je ignorirao - sve dok nije previđen i pravi alarm za prekid rada. Dajte umjetnoj inteligenciji sva pravila upozorenja i pitajte "koja se ne mogu poduzeti, a koja se mogu kombinirati?" pitali su. Broj alarma smanjio se na 12 dnevno; Svaki se alarm sada shvaćao ozbiljno.

Slučaj 3 — rano uočen pogrešan prag. YZ je predložio "Upozori kada je 95% puno" za disk. Inženjer je pogledao povijesne podatke: kad je disk dosegao 95%, bilo je malo vremena za intervenciju. Snizio je prag na 80% i dodao drugi alarm na temelju "stope rasta". Verifikacija je spriječila stvarni ponoćni prekid.

Četiri predloška za kopiranje

1) Sažetak dnevnika (maskiran):

Analizirajte primjer zapisnika u nastavku (maskirao sam osjetljive vrijednosti pomoću <REDIGIRANO>). Daj mi: (1) obrasce ponavljajućih pogrešaka, (2) koncentraciju tijekom vremena, (3) najvjerojatniji glavni uzrok i (4) 3 metrike koje ću pogledati da provjerim. Dnevnik: [LINES]

2) Generiranje pravila alarma:

Napišite pravilo alarma za Prometheus/Alertmanager: Generirajte [SEVERITY] alarm ako [THRESHOLD] premaši [METRIC][DURATION]. Pravilo bi trebalo biti orijentirano na akciju i uključivati ​​bilješku i polje veze runbook-a. Objasnite PromQL i napišite zašto je ovaj prag razuman.

3) Pisanje/deklariranje PromQL upita:

Napišite PromQL upit koji mjeri: [EX. 5xxpostotak stope pogreške u zadnjih 5 minuta]. Objasnite upit korak po korak. Onda mi reci koji bi trebao biti zdrav raspon za ovu vrijednost.

4) Dizajn nadzorne ploče:

Dizajnirajte nadzornu ploču Grafana za [USLUGU]: pomoću kojih ploča trebam prikazati četiri zlatna signala (latencija, promet, pogreška, zasićenost)? Predložite metriku, vrstu vizualizacije i razumni prag za svaku ploču. Svrha: vidjeti zdravstveno stanje čuvara u 10 sekundi.

Slab upit / Jak upit

Slab: "Što je u tom dnevniku?" (praćeno 5000 redaka neobrađenog dnevnika, tokeni u njemu)

Rezultat: odajete tajne, a AI daje neciljan, površan sažetak.

Snažno: "Pronađite obrasce ponavljajućih pogrešaka i intenzitet vremena u donjem primjeru maskiranog dnevnika od 300 redaka; recite mi najvjerojatniji osnovni uzrok i mjerne podatke koje ću pogledati kako bih provjerio. Napravio sam tokene <REDIGIRANO>."

Razlika: drugi prompt daje maskirani i fokusirani primjer, tražeći jasan rezultat analize; To je i sigurno i korisno.

Uobičajene greške

  • Lijepljenje dnevnika u AI bez maskiranja. Najčešće curenje tajnih/osobnih podataka.
  • Postavljanje alarma za sve. Umor od alarma skriva pravi alarm.
  • Alarm koji se ne može aktivirati. To je buka upozorenja kojoj nitko ništa ne može.
  • Prihvaćanje praga AI bez pitanja. Prag bi trebao biti postavljen prema povijesti vašeg sustava.
  • Samo gledam metriku. Bez zapisnika i praćenja, glavni uzrok se većinu vremena ne može pronaći.
  • Nije postavljeno vrijeme alarma (za). Trenutne fluktuacije proizvode lažne uzbune.

Ukratko

Uočljivost; To je sposobnost razumijevanja unutrašnjosti sustava izvana pomoću metrike, zapisa i tragova. Četiri zlatna signala (latencija, promet, pogreška, zasićenje) sažimaju zdravlje većine usluga. AI je vrlo moćan u pisanju PromQL upita, pravila alarma i nadzornih ploča te u sažimanju velikih dijelova zapisa i pronalaženju anomalija. Ali vaša je odgovornost da provjerite pragove alarma u odnosu na povijest vašeg vlastitog sustava, da alarmi budu orijentirani na akciju i nikada ne dijelite zapise bez maskiranja.

Zadatak aplikacije

Za uslugu (ili oglednu uslugu): (1) Generirajte pravilo alarma za stopu pogreške s predloškom "Generacija pravila alarma" i postavite predloženi prag na "koliko se puta aktivirao u prošlosti?" Testirajte to pitanjem; (2) maskirajte uzorak dnevnika koji imate i dajte ga analizirati s predloškom "Log summarization"; (3) zabilježite koju metriku ćete promatrati kako biste potvrdili najvjerojatniji osnovni uzrok.

popis za provjeru

  • [ ] Odabrao sam metriku za praćenje na temelju četiri zlatna signala.
  • [ ] Maskirao sam sve zapise koje sam dao AI u smislu osjetljivih područja.
  • [ ] Provjerio sam je li svaki alarm usmjeren na akciju i ispravne hitnosti.
  • [ ] Testirao sam pragove alarma u odnosu na povijesne podatke svog sustava.
  • [ ] Filtrirao sam trenutne fluktuacije dodavanjem vremena (trajanje) alarmima.
  • [ ] Koristio sam metriku + log + praćenje zajedno za glavni uzrok.