Röviden: A log, a metrika és a trace önmagában csak zaj. Az érték a korrelációban és a kardinalitás kordában tartásában van — különben csak drágán gyűjtesz adatot, amit sosem nézel.
Az observability három pilléréről — log, metrika, trace — mindenki tud beszélni, de a gyakorlatban sok csapatnál ez háromféle, egymással nem beszélő adathalmazt jelent, amit külön eszközökben, külön nézegetnek, és amikor baj van, mégsem áll össze a kép. A pillérek önmagukban ugyanis csak nyersanyag. Az érték abból születik, hogy össze tudod-e kapcsolni őket, és kordában tudod-e tartani a mennyiségüket.
Mit ad, és mit nem ad mindegyik?
Érdemes tisztán látni a három jel szerepét, mert gyakran rossz kérdést teszünk fel a rossz pillérnek.
- Metrika — a „mennyi és milyen trend” kérdésre válaszol. Olcsó, aggregált, riasztásra ideális. De nem mondja meg, miért.
- Log — a „pontosan mi történt egy eseménynél” kérdésre válaszol. Részletgazdag, de nagy mennyiségben drága és nehéz benne keresni.
- Trace — a „hol tölti az időt egy kérés a rendszeren át” kérdésre válaszol. Elosztott rendszerben ez mutatja meg a szűk keresztmetszetet.
A tipikus hibakeresési út
A jól működő rendszerben ez a három egymásra épül: a metrika riaszt, hogy valami romlik; a trace megmutatja, melyik szolgáltatásnál akad meg a kérés; a log pedig elárulja, pontosan mi történt ott. Ha ez a lánc nem áll össze, akkor három külön eszközben kutatsz, és időt vesztesz a legrosszabb pillanatban.
A kardinalitás csapdája
A legdrágább és leggyakoribb hiba a metrikáknál a kardinalitásrobbanás. Ha minden metrikára ráaggatsz egyedi címkéket — felhasználói azonosítót, kérésazonosítót, teljes URL-t —, akkor a metrikák száma robbanásszerűen nő, és vele a költség is. A metrika akkor jó, ha alacsony kardinalitású dimenziók mentén aggregál (szolgáltatás, régió, státuszkód). A magas kardinalitású részlet a logba és a trace-be való, nem a metrikába.
Retention és mintavételezés
Nem kell mindent, örökké, teljes részletességgel megőrizni. A használható stratégia rétegzett:
- Metrikát olcsó megtartani hosszú távon — ez adja a trendet.
- A logot rövidebb ideig teljes részletességgel, utána aggregálva vagy ritkítva.
- A trace-t mintavételezve — nem minden kérést, hanem reprezentatív hányadot, plusz a hibás kéréseket célzottan.
Ez a rétegzés a különbség a fenntartható és a kontrollálatlanul dráguló observability között.
A szabvány, ami szabadságot ad
A nyílt, szabványos instrumentálás (OpenTelemetry) előnye, hogy egyszer instrumentálod a kódot, és nem kötöd magad egyetlen szolgáltatóhoz. Cserébe a gyűjtő-réteg (collector) üzemeltetése és a mintavételezés beállítása a te feladatod lesz. Ez tudatos csere: vendor-függetlenséget kapsz némi üzemeltetési teherért.
A közös azonosító a gyakorlatban
A három pillér összekapcsolásának technikai kulcsa a korrelációs azonosító, de ennek bevezetése fegyelmet igényel. Minden belépő kérés kapjon egy egyedi azonosítót a rendszer határán, és ezt az azonosítót minden log, metrika és trace vigye tovább — a szinkron hívásokon és az aszinkron ugrásokon is. Ez utóbbi a nehéz rész: az üzenetsorokon átvitt azonosítót tudatosan kell propagálni, különben az aszinkron határon megszakad a nyom.
Ha ez a láncolat működik, egy incidensnél egyetlen azonosítóval össze tudod gyűjteni egy kérés teljes történetét minden pillérből — ez a különbség a percek és az órák között a hibakeresésben.
A riasztás minősége
A metrikák fő haszna a riasztás, de a rossz riasztás rontja a helyzetet. A túl sok, alacsony jelentőségű riasztás fáradtságot okoz, és a fontos jelzés elvész a zajban. A jó riasztás a felhasználói élményre vagy a valós szolgáltatási célra köt (nem egy technikai proxy-metrikára), és van hozzá tudott válaszlépés.
- Riassz a felhasználói hatásra (hibaarány, latencia), ne minden apró technikai ingadozásra.
- Minden riasztáshoz legyen tudott teendő — ha nincs, az nem riasztás, hanem zaj.
- Vizsgáld felül rendszeresen: mely riasztások zajolnak feleslegesen?
A megfigyelhetőség kultúrája
Az eszközök önmagukban nem adnak megfigyelhetőséget — a kultúra teszi teljessé. Ha a csapatban norma, hogy minden új szolgáltatás instrumentálva születik, hogy a strukturált log és a trace alapkövetelmény, akkor a rendszer láthatóvá válik. Ha a megfigyelhetőség utólagos ráaggatás, mindig hiányos marad. A cél, hogy a láthatóság a fejlesztés része legyen, ne egy incidens utáni kapkodás.
Mit jelent ez neked?
A három pillér csak akkor ér valamit, ha összekapcsolható és megfizethető. Vigyél közös azonosítót minden jelbe, hogy a metrika–trace–log lánc összeálljon egy incidens alatt. Tartsd alacsonyan a metrikák kardinalitását, a részletet tedd logba és trace-be, és rétegezd a megőrzést és a mintavételezést. A cél nem az, hogy mindent gyűjts, hanem hogy baj esetén gyorsan megtaláld az okot — anélkül, hogy a megfigyelés kerülne többe, mint maga a rendszer.