Enhed 6 / 11

Overvågning og observerbarhed: Metriske, log-, sporings- og alarmregler

Gevinster:

  • Evne til at forstå de tre søjler af observerbarhed (metrisk, log, spor) og de fire gyldne signaler og have kunstig intelligens til at generere PromQL-forespørgsler, alarmregler og dashboards
  • Evne til at forhindre alarmtræthed ved at holde alarmer handlingsorienterede og på den rigtige hast og teste tærskler i forhold til dit eget systems historiske data
  • Evne til at forhindre privatliv og hemmelig lækage ved at maskere følsomme områder, før logfilerne gives til kunstig intelligens

Selvom et system ser ud til at virke, kan det være ved at dø indeni: Hukommelsen fyldes langsomt op, responstiden stiger, fejlfrekvensen kryber op. Den eneste måde at bemærke dette på er konstant at overvåge systemet. Et mere avanceret koncept er observerbarhed: evnen til at forstå, hvad der foregår inde i systemet ved at se på dets ydre tegn. Der er tre søjler af observerbarhed, og DevOps-professionelle bruger alle tre:

  • Metrisk: Numeriske værdier målt over tid — CPU-brug, antal anmodninger, responstid, fejlrate. "Hvor meget?" besvarer spørgsmålet.
  • Log: Teksthændelsesposter produceret af systemet — "bruger logget på", "databaseforbindelse mistet". "Hvad præcist skete der?" besvarer spørgsmålet.
  • Trace: Stien en anmodning følger, mens den går fra service til service i systemet og varigheden af ​​hvert trin. "Hvor er langsommeligheden?" besvarer spørgsmålet.

Mest almindelige værktøjer: Prometheus til metrik, Grafana til visualisering, Loki/ELK til log, Jaeger/OpenTelemetry til sporing. AI er meget dygtig til at skrive forespørgselssprogene (især Prometheus' PromQL), alarmregler og dashboard-konfigurationer for disse værktøjer. Det er også her AI er stærkest: opsummerer store bidder af logfiler og målinger og markerer uregelmæssigheder.

Lad os præcisere forskellen mellem overvågning og observerbarhed i én sætning: overvågning er at stille spørgsmål, du allerede kender ("Er CPU'en forbi 90%?"); observerbarhed er at kunne stille spørgsmål, du ikke allerede vidste ("hvorfor sker denne underlige langsomhed kun for en bestemt kunde på et bestemt tidspunkt?"). Moderne systemer er så komplekse, at du ikke kan forudsige alle former for fejl; Derfor bliver evnen til at indsamle rige metrikker, logfiler og spor og derefter forespørge dem i dybden - det vil sige observerbarhed - kritisk. Det er her AI kommer i spil, når du besvarer det "tidligere ukendte spørgsmål": det scanner hurtigt de rådata, du har, foreslår mønstre og anomalier, og du kommer til den grundlæggende årsag ved at verificere disse spor.

Trin for trin: hvad og hvordan skal man overvåge?

  1. Vælg de rigtige metrics. I industrien tages "fire gyldne signaler" som grundlag: latency, trafik, fejl, mætning - hvor fuld ressourcen er. Disse opsummerer sundheden for de fleste tjenester.
  2. Indsaml metrics. Lad applikationen præsentere et slutpunkt, som Prometheus kan læse.
  3. Opsæt dashboards. Visualiser disse målinger i Grafana.
  4. Skriv alarmregler. Hvem vil blive advaret, når en tærskel overskrides, og hvordan?
  5. Centraliser logfiler. Gør alle servicelogfiler søgbare på ét sted.
  6. Reducer støj. For meget alarm skaber "alarmtræthed"; Den vigtige alarm forsvinder.
Tip: En god alarm opfylder to ting: den kan handles og har den rigtige hast. En alarm, der vækker nogen kl. 03.00, må være noget, der faktisk kræver natlig indgriben. Væk ikke nogen for noget, der ikke kræver handling i sig selv, som "CPU 70%"; vise det på tavlen.

Hvordan skriver man en alarmregel?

En advarsel består af tre komponenter: betingelse (hvilken metrik overskrider hvilken tærskel og hvor længe), varighed ("i 5 minutter" for at undgå at udløse momentane udsving) og vigtighed/handling (til hvem, gennem hvilken kanal). AI etablerer mesterligt disse tre med den rigtige kontekst. For eksempel er oversættelse af en regel som "kritisk alarm, hvis fejlprocenten overstiger 5% i 5 minutter" til PromQL en opgave på et splitsekund for AI - men du bestemmer, om tærsklen er den rigtige for dit system.

Forsigtig: Alarmtærsklerne foreslået af AI er generelle antagelser. Dit systems normale belastning, tolerance og arbejdspåvirkning er forskellige. Før du sætter en tærskel direkte i prod, ser du på dine historiske data og spørger "hvor mange gange er denne tærskel blevet udløst tidligere, hvor mange af disse var reelle problemer?" Besvar spørgsmålet.

Log privatliv: kritisk advarsel

Logfiler er den hyppigst oversete kilde til lækager. En loglinje kan ved et uheld indeholde en adgangskode, et kreditkortnummer eller personlige data (under KVKK/GDPR). Når du indsætter logs i en AI til analyse:

  1. Masker følsomme områder. Erstat værdier som token, adgangskode, e-mail, ID-nummer med <REDACTED>.
  2. Giv eksempler, ikke alle. I stedet for en million linjer er et par hundrede repræsentative linjer ofte nok.
  3. Vælg et institutionsgodkendt køretøj. Især til produktionslogfiler skal du bruge et værktøj, hvis data ikke går til træning.

Fire gyldne signaler og alarmborde

signal

målt efter

Eksempel på alarmgrænse

haster

latenstid

responstid

p95 > 800 ms, 5 min

høj

trafik

Forespørgsel/sek

Pludselig 300% stigning/fald

medium

Fejl

Mislykket anmodningsrate

> 5 %, 5 min

kritisk

Mætning

ressourcebelægning

Disk > 85 %

høj

tre minisager

Tilfælde 1 — 400 linjer log opsummeret på 30 sekunder. En tjeneste var sat ned. Ingeniøren gav de maskerede 400 linjer log til AI og sagde, "opsummer de tilbagevendende fejlmønstre og tidsintensitet." AI viste, at et bestemt eksternt API-kald timeout hvert 30. sekund. Grundårsagen fundet på 30 sekunder; At scanne logs manuelt ville tage en halv time.

Tilfælde 2 — alarmtræthed løst. Et hold modtog 200 alarmer om dagen og ignorerede dem alle - indtil en rigtig udfaldsalarm også blev overset. Giv AI'en alle advarselsreglerne og spørg "hvilke kan ikke handles, og hvilke kan kombineres?" spurgte de. Antallet af alarmer faldt til 12 pr. dag; Hver alarm blev nu taget alvorligt.

Tilfælde 3 — forkert tærskel fanget tidligt. YZ foreslog "Advar når 95% fuld" for disken. Ingeniøren så på historiske data: Når disken nåede 95 %, var der lidt tid til at gribe ind. Det sænkede tærsklen til 80 % og tilføjede en anden alarm baseret på "væksthastighed". Bekræftelse forhindrede en faktisk midnatsafbrydelse.

Fire kopierbare skabeloner

1) Logopsummering (maskeret):

Analyser logeksemplet nedenfor (jeg maskerede følsomme værdier med <REDACTED>). Giv mig: (1) tilbagevendende fejlmønstre, (2) koncentration over tid, (3) mest sandsynlige grundårsag og (4) 3 målinger, jeg vil se på for at verificere. Log: [LINES]

2) Generering af alarmregel:

Skriv en alarmregel for Prometheus/Alertmanager: Generer alarmen [SEVERITY] hvis [THRESHOLD] overskrider [METRIC][DURATION]. Reglen skal være handlingsorienteret og indeholde et annoterings- og runbook-linkfelt. Forklar PromQL og skriv, hvorfor denne tærskel er rimelig.

3) Skrivning/erklæring af PromQL-forespørgsel:

Skriv en PromQL-forespørgsel, der måler: [EX. 5xx fejlprocent i de sidste 5 minutter]. Forklar forespørgslen trin for trin. Fortæl mig så, hvad det sunde område for denne værdi skal være.

4) Dashboard design:

Design et Grafana-dashboard til [SERVICE]: med hvilke paneler skal jeg vise de fire gyldne signaler (latency, trafik, fejl, mætning)? Foreslå metrik, visualiseringstype og rimelig tærskelværdi for hvert panel. Formål: at se sundhedsstatus for en vagt på 10 sekunder.

Svag prompt / Stærk prompt

Svag: "Hvad står der i den log?" (efterfulgt af 5000 linjer rå log, tokens i den)

Resultat: du lækker hemmeligheder, og AI'en giver en umålrettet, overfladisk oversigt.

Stærkt: "Find tilbagevendende fejlmønstre og tidsintensitet i eksemplet med 300-linjers maskeret log nedenfor; fortæl mig den mest sandsynlige grundårsag og de metrics, jeg vil se på for at verificere. Jeg lavede tokens <REDACTED>."

Forskel: den anden prompt giver et maskeret og fokuseret eksempel, der beder om et klart analyseoutput; Det er både sikkert og nyttigt.

Almindelige fejl

  • Indsætte loggen i AI uden at maskere den. Det mest almindelige hemmelige/personlige datalæk.
  • Indstilling af alarmer til alt. Alarmtræthed begraver den rigtige alarm.
  • Alarm, der ikke kan handles. Det er advarselsstøj, som ingen kan gøre noget ved.
  • Accepter tærsklen for AI uden spørgsmål. Tærsklen skal indstilles i henhold til dit systems historie.
  • Ser bare på metrikken. Uden log og spor kan hovedårsagen ikke findes det meste af tiden.
  • Ikke indstille et alarmtidspunkt (for). Kortvarige udsving giver falske alarmer.

Sammenfattende

observerbarhed; Det er evnen til at forstå systemets inderside udefra med metrikker, logfiler og spor. De fire gyldne signaler (latency, trafik, fejl, mætning) opsummerer sundheden for de fleste tjenester. AI er meget kraftfuld til at skrive PromQL-forespørgsler, alarmregler og dashboards og til at opsummere store bidder af logfiler og finde anomalier. Men det er dit ansvar at verificere alarmtærskler i forhold til dit eget systems historie, holde alarmer handlingsorienterede og aldrig dele logfiler uden at maskere dem.

Ansøgningsopgave

For en tjeneste (eller en prøvetjeneste): (1) Få en alarmregel genereret for fejlfrekvensen med skabelonen "Alarmregelgenerering", og indstil den foreslåede tærskel til "hvor mange gange er den tidligere blevet udløst?" Test det med spørgsmålet; (2) masker en logprøve, du har, og få den analyseret med skabelonen "Log summarization"; (3) bemærk, hvilken metrik du vil se på for at bekræfte den mest sandsynlige grundårsag.

tjekliste

  • [ ] Jeg valgte de metrics at spore baseret på fire gyldne signaler.
  • [ ] Jeg maskerede alle de logfiler, jeg gav til AI, hvad angår følsomme områder.
  • [ ] Jeg bekræftede, at hver alarm var handlingsorienteret og af den korrekte hast.
  • [ ] Jeg testede alarmtærsklerne i forhold til mit systems historiske data.
  • [ ] Jeg filtrerede øjeblikkelige udsving ved at tilføje for (varighed) til alarmerne.
  • [ ] Jeg brugte metrisk + log + spor sammen til grundårsag.