Monitorovanie na základe protokolov vs. monitorovanie na základe metrík
Monitorovanie založené na protokoloch zachytáva podrobné záznamy udalostí na účely hĺbkového riešenia problémov, zatiaľ čo monitorovanie založené na metrikách sleduje číselné údaje v priebehu času, aby získalo prehľad o výkonnosti v reálnom čase. Oba prístupy slúžia v moderných systémoch pozorovateľnosti na odlišné účely a väčšina tímov má prospech z ich spoločného používania, namiesto toho, aby si vyberali jeden pred druhým.
Zvýraznenia
Záznamy uchovávajú kontext udalostí pre forenzné vyšetrovanie, zatiaľ čo metriky sumarizujú stav systému pre rýchle dotazy.
Metriky umožňujú takmer okamžité upozornenia na základe prahových hodnôt, zatiaľ čo upozornenia protokolov vyžadujú parsovanie a porovnávanie vzorov.
Náklady na ukladanie protokolov sa škálujú s objemom udalostí a ich podrobnosťou, zatiaľ čo ukladanie metrík zostáva kompaktné a predvídateľné.
Kombinácia oboch prístupov poskytuje úplný obraz pozorovateľnosti, ktorý moderné distribuované systémy vyžadujú.
Čo je Monitorovanie na základe protokolov?
Zaznamenáva jednotlivé udalosti s kontextovými detailmi, čo umožňuje forenznú analýzu a vyšetrovanie základných príčin v distribuovaných systémoch.
Záznamy sú štruktúrované alebo neštruktúrované záznamy udalostí s časovou pečiatkou generované aplikáciami, servermi a komponentmi infraštruktúry.
Každý záznam v protokole zvyčajne obsahuje časovú pečiatku, úroveň závažnosti, identifikátor zdroja a popisnú správu o tom, čo sa stalo.
Nástroje ako ELK Stack (Elasticsearch, Logstash, Kibana), Splunk a Loki sa bežne používajú na agregáciu a vyhľadávanie údajov v protokoloch.
Monitorovanie založené na protokoloch vyniká v odpovedi na otázku „prečo sa to stalo“, pretože zachováva celý kontext jednotlivých udalostí.
Náklady na ukladanie protokolov bývajú vyššie ako náklady na metriky, pretože každá udalosť môže obsahovať stovky bajtov podrobných informácií.
Čo je Monitorovanie založené na metrikách?
Zbiera číselné časové rady údajov na sledovanie stavu systému, trendov výkonu a využitia zdrojov v reálnom čase.
Metriky sú číselné merania vzorkované v pravidelných intervaloch, ako napríklad percento využitia CPU, latencia požiadaviek alebo spotreba pamäte.
Časovo-radové databázy ako Prometheus, InfluxDB a Graphite sú vytvorené na efektívne ukladanie a dotazovanie metrických údajov.
Monitorovanie založené na metrikách odpovedá na otázku „čo sa práve deje“ prostredníctvom dashboardov, upozornení a oznámení založených na prahových hodnotách.
Jeden metrický dátový bod je zvyčajne oveľa menší ako záznam v protokole, často obsahuje len názov, časovú pečiatku a hodnotu.
Medzi obľúbené vizualizačné nástroje patria Grafana, dashboardy Datadog a zobrazenia metrík CloudWatch.
Tabuľka porovnania
Funkcia
Monitorovanie na základe protokolov
Monitorovanie založené na metrikách
Typ údajov
Záznamy udalostí s bohatým kontextom
Číselné časové rady údajov
Primárny prípad použitia
Analýza a ladenie hlavných príčin
Upozornenia v reálnom čase a analýza trendov
Úložná stopa
Väčšie na vstup, vyššie náklady na skladovanie
Kompaktné dátové body, nižšie náklady na úložisko
Metóda dopytu
Vyhľadávanie a filtrovanie celého textu
Agregácia, matematické funkcie, dotazy v časových oknách
Čas odozvy
Pomalšie pre rozsiahle dotazy
Takmer okamžité pre dotazy na dashboarde
Najlepšie na zodpovedanie
Prečo došlo k tejto konkrétnej udalosti?
Aký je aktuálny stav systému?
Bežné nástroje
ELK Stack, Splunk, Loki, Fluentd
Prometheus, Grafana, Datadog, CloudWatch
Schopnosť upozorňovať
Obmedzené, často vyžaduje pravidlá analýzy protokolov
Natívne upozornenia založené na prahových hodnotách a anomáliách
Podrobné porovnanie
Granularita údajov a kontext
Monitorovanie založené na protokoloch zachytáva každú samostatnú udalosť s okolitým kontextom vrátane ID používateľov, údajov požiadaviek, stôp zásobníka chýb a premenných prostredia. Vďaka tomu sú protokoly neoceniteľné, keď potrebujete presne zrekonštruovať, čo sa stalo počas konkrétneho incidentu. Monitorovanie založené na metrikách naopak sumarizuje správanie systému do číselných hodnôt, pričom obetuje detaily jednotlivých udalostí v prospech kompaktného, dotazovateľného formátu, ktorý funguje dobre v dlhodobom horizonte.
Výkon a škálovateľnosť
Databázy metrík sú optimalizované pre vysokú priepustnosť zápisu a rýchlu agregáciu, a preto platformy ako Prometheus dokážu bez námahy scrapingovať tisíce cieľov každých pár sekúnd. Systémy protokolovania vyžadujú vyššiu výpočtovú réžiu, pretože indexujú voľný text a podporujú zložité vyhľadávacie dopyty. Keďže objemy protokolov rastú na terabajty za deň, tímy často musia investovať do viacúrovňového úložiska, stratégií vzorkovania alebo politík uchovávania údajov, aby udržali náklady na zvládnuteľnej úrovni.
Upozornenia a viditeľnosť v reálnom čase
Metriky vynikajú, pokiaľ ide o upozornenia v reálnom čase, pretože vyhodnotenie číselného prahu oproti časovému radu je výpočtovo triviálne. Môžete nastaviť upozornenia ako „CPU nad 90 % počas 5 minút“ s minimálnou réžiou. Upozornenia založené na protokoloch sú možné, ale zvyčajne vyžadujú pravidlá parsovania alebo nástroje na dotazovanie protokolov na detekciu vzorcov, čo zvyšuje latenciu a zložitosť. Pre okamžité upozornenia o stave systému sú metriky zvyčajne rýchlejšou cestou.
Ladenie a forenzná analýza
Keď sa niečo pokazí, inžinieri často ako prvé hľadajú protokoly, pretože si zachovávajú záznam o tom, čo sa stalo. Jeden záznam v protokole môže odhaliť presnú chybovú správu, dotknutého používateľa a kódovú cestu, ktorá spustila zlyhanie. Metriky vám môžu povedať, že miera chybovosti prudko vzrástla o 14:34, ale zriedkakedy vysvetľujú prečo. Preto zrelé inžinierske tímy považujú protokoly za svoj vyšetrovací nástroj a metriky za systém včasného varovania.
Úvahy o nákladoch a skladovaní
Ukladanie protokolov je vo všeobecnosti drahšie ako ukladanie metrík, pretože každý záznam obsahuje viac údajov a doby uchovávania sú často dlhšie z dôvodov súladu alebo auditu. Stredne veľká aplikácia môže denne generovať milióny riadkov protokolov, pričom produkuje iba niekoľko stoviek jedinečných sérií metrík. Mnoho organizácií implementuje vzorkovanie protokolov, filtrovanie pri zdroji alebo vrstvené ukladanie na kontrolu nákladov, zatiaľ čo uchovávanie metrík sa zvyčajne môže predĺžiť na mesiace alebo roky za nízku cenu.
Integrácia v modernej pozorovateľnosti
Tri piliere pozorovateľnosti sú protokoly, metriky a sledovania a väčšina produkčných systémov sa spolieha na všetky tri. Metriky poskytujú prehľad o stave na vysokej úrovni, protokoly ponúkajú podrobné diagnostické detaily a distribuované sledovania spájajú tieto dva prvky zobrazením tokov požiadaviek naprieč službami. Výber medzi monitorovaním založeným na protokoloch a metrikách je zriedkakedy rozhodnutie typu „buď alebo alebo“; namiesto toho sa tímy rozhodujú, ako vyvážiť investície do každého z nich na základe svojich prevádzkových potrieb a rozpočtu.
Výhody a nevýhody
Monitorovanie na základe protokolov
Výhody
+Bohaté kontextové detaily
+Vynikajúce na ladenie
+Podporuje fulltextové vyhľadávanie
+Zachytáva zriedkavé udalosti
Cons
−Vyššie náklady na skladovanie
−Pomalší výkon dotazov
−Komplexné nastavenie upozornení
−Vyžaduje pravidlá parsovania
Monitorovanie založené na metrikách
Výhody
+Rýchle upozornenia v reálnom čase
+Nízke režijné náklady na skladovanie
+Jednoduchý dashboard
+Efektívna agregácia
Cons
−Obmedzený kontext udalosti
−Prehliada zriedkavé anomálie
−Vyžaduje sa vopred definované metriky
−Menej forenzných detailov
Bežné mylné predstavy
Mýtus
Na prevádzkovanie spoľahlivého systému potrebujete iba jeden typ monitorovania.
Realita
Väčšina produkčných systémov profituje z oboch prístupov. Metriky odhalia problémy včas prostredníctvom upozornení, zatiaľ čo protokoly pomáhajú inžinierom pochopiť hlavnú príčinu po zistení problému. Spoliehanie sa len na jeden prístup necháva slepé miesta, ktoré môžu predĺžiť výpadky.
Mýtus
Dlhodobé skladovanie guľatiny je vždy príliš drahé.
Realita
Hoci ukladanie nespracovaných protokolov môže byť nákladné, stratégie viacúrovňového ukladania, kompresia a inteligentné vzorkovanie umožňujú dlhodobé uchovávanie. Mnohé rámce pre dodržiavanie predpisov v skutočnosti vyžadujú uchovávanie určitých protokolov mesiace alebo roky, takže riadenie nákladov je skôr o stratégii ako o predchádzaní im.
Mýtus
Metriky môžu nahradiť protokoly pri ladení.
Realita
Metriky vám hovoria, že sa niečo zmenilo, ale zriedkavo vysvetľujú prečo. Pri vyšetrovaní konkrétnej sťažnosti používateľa alebo zriedkavej chyby sú protokoly zvyčajne jediným spôsobom, ako nájsť skutočnú príčinu. Metriky a protokoly slúžia ako doplnkové funkcie pri reakcii na incidenty.
Mýtus
Viac údajov z protokolov vždy znamená lepšie monitorovanie.
Realita
Nadmerné protokolovanie vytvára šum, zvyšuje náklady a môže dokonca spomaliť riešenie problémov. Efektívne monitorovanie založené na protokoloch sa zameriava na zachytávanie zmysluplných udalostí pomocou štruktúrovaných polí, a nie na vyhadzovanie všetkých možných detailov do neštruktúrovaného textu.
Mýtus
Monitorovanie založené na metrikách automaticky zachytáva každú anomáliu.
Realita
Metriky zisťujú iba to, čo explicitne meriate. Ak sa objaví nový režim zlyhania, ktorý nikto nepomyslel na sledovanie, metriky ho úplne vynechajú. Protokoly naopak zaznamenávajú neočakávané udalosti, pokiaľ ich aplikácia zapisuje.
Často kladené otázky
Aký je hlavný rozdiel medzi monitorovaním založeným na protokoloch a monitorovaním založeným na metrikách?
Monitorovanie založené na protokoloch zaznamenáva jednotlivé udalosti s podrobným kontextom, vďaka čomu je ideálne na ladenie a forenznú analýzu. Monitorovanie založené na metrikách zhromažďuje číselné údaje v priebehu času, vďaka čomu je ideálne na upozorňovanie v reálnom čase a vizualizáciu trendov. Protokoly odpovedajú na otázku „prečo“, zatiaľ čo metriky odpovedajú na otázku „čo“ a „koľko“.
Čo je lacnejšie, monitorovanie protokolov alebo monitorovanie metrík?
Monitorovanie metrík je vo všeobecnosti lacnejšie, pretože každý dátový bod je malý a kompaktný. Monitorovanie protokolov je drahšie kvôli objemu a podrobnosti záznamov v protokoloch, najmä vo veľkom meradle. Náklady však vo veľkej miere závisia od politík uchovávania údajov, miery príjmu a konkrétneho cenového modelu dodávateľa.
Môžete vykonávať upozornenia pomocou monitorovania založeného na protokoloch?
Áno, ale je to zložitejšie ako upozornenia založené na metrikách. Nástroje ako Elasticsearch, Splunk a Loki podporujú pravidlá upozornení, ktoré sa spúšťajú pri výskyte špecifických vzorcov v protokoloch. Nevýhodou je vyššia latencia a väčšia réžia spracovania v porovnaní s vyhodnotením jednoduchého číselného prahu.
Ktoré nástroje sú najlepšie na monitorovanie založené na protokoloch?
Medzi obľúbené možnosti zhromažďovania údajov patrí ELK Stack (Elasticsearch, Logstash, Kibana), Splunk, Grafana Loki a Fluentd. Poskytovatelia cloudových služieb tiež ponúkajú spravované služby ako AWS CloudWatch Logs, Google Cloud Logging a Azure Monitor Logs pre tímy, ktoré nechcú prevádzkovať vlastnú infraštruktúru.
Ktoré nástroje sú najlepšie na monitorovanie založené na metrikách?
Prometheus je najpoužívanejšia open-source možnosť, často spárovaná s Grafanou na vizualizáciu. Komerčné platformy ako Datadog, New Relic a Dynatrace ponúkajú spravovaný zber metrík so vstavanými upozorneniami. Medzi cloudové možnosti patria AWS CloudWatch Metrics a Google Cloud Monitoring.
Mám na ladenie produkčného prostredia použiť protokoly alebo metriky?
Najprv použite metriky na zistenie, že niečo nie je v poriadku, a potom prejdite na protokoly na preskúmanie príčiny. Metriky zužujú časové okno a postihnuté systémy, zatiaľ čo protokoly poskytujú podrobný opis udalostí potrebný na identifikáciu hlavnej príčiny. Tento dvojkrokový prístup je štandardnou praxou v tímoch SRE a DevOps.
Ako fungujú protokoly a metriky spoločne v pozorovateľnosti?
Spolu s distribuovanými stopami tvoria dva z troch pilierov pozorovateľnosti. Metriky poskytujú prehľadný obraz o stave, protokoly poskytujú podrobné diagnostické detaily a stopy spájajú jednotlivé požiadavky naprieč službami. Väčšina moderných platforiem, ako sú Datadog, Honeycomb a Grafana, integruje všetky tri.
Ako dlho by som mal uchovávať protokoly v porovnaní s metrikami?
Bežnou praxou je uchovávať metriky 13 mesiacov alebo dlhšie, pretože ich uchovávanie je lacné a užitočné pre plánovanie kapacity. Záznamy sa často uchovávajú 30 až 90 dní v horúcom úložisku, pričom staršie záznamy sa archivujú v studenom úložisku alebo objektovom úložisku, ako je S3, na účely dodržiavania predpisov alebo príležitostného vyšetrovania.
Je štruktúrované logovanie lepšie ako neštruktúrované na monitorovanie?
Štruktúrované protokolovanie (zvyčajne vo formáte JSON) je výrazne lepšie na monitorovanie, pretože umožňuje spoľahlivé parsovanie, filtrovanie a agregáciu. Neštruktúrované protokoly vyžadujú regulárne výrazy alebo manuálnu kontrolu, čo spomaľuje upozornenia aj ladenie. Väčšina moderných aplikácií štandardne generuje štruktúrované protokoly.
Dokáže monitorovanie založené na metrikách odhaliť problémy, ktoré protokoly prehliadajú?
Áno, najmä pri postupnom znižovaní výkonu alebo nasýtení zdrojov. Pomalý únik pamäte nemusí nikdy viesť k záznamu v protokole, ale časom sa jasne prejaví v metrikách využitia pamäte. Metriky sú tiež lepšie na zachytenie agregovaných vzorcov naprieč tisíckami požiadaviek, kde by jednotlivé záznamy v protokole boli príliš hlučné na analýzu.
Rozsudok
Monitorovanie založené na protokoloch zvoľte, ak je vašou primárnou potrebou hĺbkové ladenie, auditné záznamy alebo pochopenie kontextu konkrétnych udalostí. Monitorovanie založené na metrikách zvoľte, ak potrebujete dashboardy v reálnom čase, rýchle upozornenia a dlhodobú analýzu trendov vo veľkom meradle. V praxi najsilnejšie stratégie pozorovateľnosti kombinujú oboje, pričom používajú metriky na včasnú detekciu a protokoly na dôkladné vyšetrovanie.