Spremljanje časovnih vrst v primerjavi z spremljanjem, ki ga poganjajo dogodki
Izbira prave strategije opazovanja zahteva razumevanje, kako se podatki zbirajo in obdelujejo. Medtem ko spremljanje časovnih vrst v rednih intervalih sledi numeričnim metrikam sistema, da bi odkrilo dolgoročne trende zdravja, spremljanje, ki ga poganjajo dogodki, takoj zajame diskretne spremembe stanja in sproži takojšnje programske odzive, zaradi česar se njihove arhitekturne zasnove bistveno razlikujejo.
Poudarki
Časovne vrste se zanašajo na predvidljivo intervalno anketiranje, medtem ko spremljanje dogodkov deluje zgolj na zahtevo.
Telemetrija dogodkov ohranja globok kontekst koristnega tovora, ki ga tradicionalne numerične metrike zavržejo.
Zahteve glede shranjevanja časovnih vrst ostajajo stabilne, medtem ko shranjevanje dogodkov spremlja porast aktivnosti sistema.
Nastavitve, ki jih poganjajo dogodki, omogočajo takojšnje avtomatizirano samozdravljenje namesto retrospektivne analize.
Kaj je Spremljanje časovnih vrst?
Pristop, osredotočen na metrike, ki zbira numerične podatkovne točke v doslednih, kronoloških intervalih za analizo sistemskih trendov.
V veliki meri se zanaša na redne intervale anketiranja, kot je strganje podatkov vsakih petnajst sekund.
Shranjuje podatke kot strukturirane, numerične vrednosti, vezane na določene časovne žige in dimenzijske oznake.
Optimizirano za visokozmogljive agregatne poizvedbe, kot je izračun povprečne izkoriščenosti CPE-ja v enem mesecu.
Običajno uporablja arhitekturo, ki temelji na pull-u, kjer centralni strežnik zahteva podatke od ciljnih končnih točk.
Ohranja predvidljivo rast shrambe, ker stopnje vnosa podatkov ostajajo stabilne ne glede na obremenitev sistema.
Kaj je Spremljanje, ki ga poganjajo dogodki?
Reaktivni sistem, ki zajame in obdela bogate kontekstualne podatkovne pakete v trenutku, ko pride do spremembe določenega stanja.
Deluje asinhrono in izvaja dejanja le, ko določen pogoj ali sistemski incident sproži opozorilo.
Zajame poglobljene kontekstualne metapodatke znotraj vsakega paketa, vključno s popolnimi podrobnostmi o koristnem tovoru in uporabniškimi ID-ji.
Uporablja arhitekturo, ki temelji na potiskanju, kjer posamezne aplikacije takoj prenašajo dogodke v vodilo dogodkov.
Zahteve glede shranjevanja se dinamično prilagajajo aktivnosti sistema in eksplodirajo med nepričakovanimi porasti prometa.
Neposredno se integrira z orodji za avtomatizacijo za takojšnjo samoobnovo infrastrukture brez človeškega posredovanja.
Primerjalna tabela
Funkcija
Spremljanje časovnih vrst
Spremljanje, ki ga poganjajo dogodki
Sprožilec zbiranja podatkov
Redni, vnaprej določeni časovni intervali
Takojšnja sprememba stanja
Primarni format podatkov
Številski pari ključ-vrednost s časovnimi žigi
Obogateni JSON ali strukturirani besedilni koristni tovori
Arhitekturni vzorec
Predvsem strganje na osnovi vlečenja
Pretočno pošiljanje prek posrednikov sporočil
Rast shranjevanja
Zelo predvidljivo in linearno
Spremenljivo in neposredno povezano z aktivnostjo sistema
Idealen primer uporabe
Načrtovanje zmogljivosti in analiza dolgoročnih trendov
Takojšen odziv na incidente in avtomatizirano samozdravljenje
Fokus poizvedbe
Matematične agregacije v časovnih oknih
Sledenje posameznim potem dogodkov in strukturnim mutacijam
Sistemski stroški
Nizek in stalen odtis virov
Spremenljiva poraba virov glede na količino dogodkov
Podrobna primerjava
Mehanika vnosa podatkov
Spremljanje časovnih vrst deluje kot enakomeren srčni utrip, ki v fiksnih intervalih poizveduje po sistemih, da zbere posnetke delovanja. Ta pristop zagotavlja neprekinjen tok numeričnih podatkov, kar omogoča motorjem, da enostavno narišejo zgodovinske poti. Po drugi strani pa spremljanje, ki ga poganjajo dogodki, tiho deluje, dokler nekaj specifičnega ne spremeni okolja, in takoj pošlje obsežen paket podatkov naprej. To pomeni, da model, ki ga poganjajo dogodki, v mirnih obdobjih miruje, vendar se aktivira z izjemnimi podrobnostmi v milisekundi, ko pride do napake.
Granularnost in kontekst
Pri delu z nalogami globlje diagnostike postanejo razlike v globini podatkov očitne. Časovne vrste odstranijo besedilo in kontekst ter se osredotočijo izključno na številke, kar ohranja preglednost, vendar izpušča zgodbo o zrušitvi. Dnevniki, ki jih poganjajo dogodki, ohranijo celotno kontekstualno ozadje nedotaknjeno in vam natančno povedo, kateri uporabnik ali funkcija je povzročila prekinitev izvajalne poti. Medtem ko graf časovnih vrst prikazuje porast povezav z bazo podatkov, vam tok dogodkov prikaže natančno poizvedbo, ki je sprožila težavo.
Skalabilnost in dinamika shranjevanja
Upravljanje finančnih in shranjevalnih odtisov teh platform zahteva dva popolnoma različna načina razmišljanja. Nastavitve časovnih vrst ponujajo pomirjujočo predvidljivost, saj povečanje obsega običajno pomeni le prilagajanje politik hrambe ali razširitev intervalov anketiranja. Sistemi, ki jih poganjajo dogodki, so veliko bolj nestanovitni in zahtevajo arhitekturo shranjevanja, ki lahko obvladuje nenadne, ogromne poplave podatkov, ko se napake širijo skozi mikroservise. Če vaša aplikacija postane virusna ali doživi napad DDoS, se bodo zahteve glede shranjevanja dogodkov močno povečale skupaj z dohodnim prometom.
Učinkovitost in hitrost opozarjanja
Hitrost, s katero se lahko vaša operativna ekipa odzove, je v celoti odvisna od tega, kako je dostavljena vaša telemetrija. Opozorila v časovnih vrstah seveda trpijo zaradi manjše zamude, saj mora sistem počakati na naslednji cikel strganja in oceniti več podatkovnih točk, da potrdi trend. Arhitekture, ki jih poganjajo dogodki, se tukaj odlično odrežejo, saj izločajo posrednika, kritične napake usmerjajo neposredno na platforme za obveščanje ali samodejno prilagajajo skripte v trenutku, ko se zgodijo. Zaradi te zmožnosti takojšnjega obveščanja je pristop, ki ga poganjajo dogodki, nepogrešljiv za kritično infrastrukturo, ki zahteva takojšnjo sanacijo.
Prednosti in slabosti
Spremljanje časovnih vrst
Prednosti
+Zelo predvidljivi stroški skladiščenja
+Odlična dolgoročna analiza trendov
+Nizki stroški virov
+Poenostavljena matematična agregacija
Vse
−Primanjkuje podrobnega besedilnega konteksta
−Uvaja inherentne zamude pri glasovanju
−Zgreši kratke občasne konice
−Težave z minljivo infrastrukturo
Spremljanje, ki ga poganjajo dogodki
Prednosti
+Takojšnje opozarjanje v realnem času
+Bogato ohranjanje situacijskih metapodatkov
+Idealno za ločene sisteme
+Sproži neposredne avtomatizirane delovne procese
Vse
−Nepredvidljiva poraba prostora za shranjevanje
−Visoka kompleksnost arhitekturne konfiguracije
−Težko je razčleniti makro trende
−Potencialna telemetrična nevihta nad glavo
Pogoste zablode
Mit
Spremljanje časovnih vrst lahko zajame vsak posamezen mikro skok v obnašanju sistema.
Resničnost
Ker spremljanje časovnih vrst temelji na intervalnem anketiranju, bo vsak porast zmogljivosti, ki se pojavi in v celoti odpravi med dvema cikloma strganja, na vaših nadzornih ploščah popolnoma neviden.
Mit
Telemetrija, ki jo poganjajo dogodki, je cenovno ugodna zamenjava za tradicionalno združevanje dnevnikov.
Resničnost
Shranjevanje vsakega posameznega sistemskega dogodka s polnimi kontekstualnimi metapodatki lahko hitro postane pretirano drago, pogosto pa stane veliko več kot optimiziran metrični mehanizem časovnih vrst med največjimi operativnimi obremenitvami.
Mit
Izbrati morate eno metodologijo in jo uvesti izključno v svojo infrastrukturo.
Resničnost
Sodobne nastavitve opazovanja v podjetjih skoraj vedno združujejo oba sistema, pri čemer uporabljajo časovne vrste podatkov za nadzorne plošče stanja na visoki ravni in signale, ki jih poganjajo dogodki, za sledenje določenim napakam v transakcijah.
Mit
Orodja za spremljanje, ki temeljijo na dogodkih, samodejno izračunajo odstotke razpoložljivosti vašega sistema.
Resničnost
Tokovi dogodkov vedo le, kdaj se stvari zgodijo, kar pomeni, da nimajo stalne kadence, ki je potrebna za enostaven izračun časa delovanja. Ustvarjanje metrik razpoložljivosti običajno zahteva pretvorbo teh diskretnih dogodkov v obliko neprekinjenega časovnega zaporedja.
Pogosto zastavljena vprašanja
Ali lahko Prometheus uporabljam za naloge spremljanja, ki jih vodijo dogodki?
Ne učinkovito, saj je bil Prometej namensko zgrajen od začetka kot mehanizem za meritve časovnih vrst, ki temelji na pull-ovanju. Če ga prisilimo k obravnavi posameznih stanj dogodkov, bomo preobremenili njegov notranji model shranjevanja, ki je zasnovan za števila s float64 in ne za bogate, besedilno težke koristne podatke o dogodkih.
Zakaj spremljanje, ki ga vodijo dogodki, otežuje načrtovanje zmogljivosti?
Načrtovanje zmogljivosti zahteva stalen, zgodovinski pregled izrabe virov, da se odkrijejo tekoči vzorci uporabe in napovejo prihodnje potrebe po infrastrukturi. Podatki o dogodkih so razpršeni in neenakomerni, zaradi česar je matematično zamudno izračunati gladke izhodiščne vrednosti, potrebne za dolgoročno napovedovanje.
Kaj se zgodi z monitorji, ki jih poganjajo dogodki, ko se sistem popolnoma sesuje?
Če celoten strežnik ali omrežna povezava odpove, lahko sistem, ki ga poganjajo dogodki, preneha pošiljati dogodke, kar lahko zavajajoče izgleda kot popolnoma zdrav sistem. Zaradi te tišine ekipe arhitekture dogodkov ovijajo s preprostimi časovnimi vrstami srčnih utripov, da zagotovijo, da osnovna platforma še vedno diha.
Kateri slog spremljanja je bolj primeren za funkcije brez strežnika, kot je AWS Lambda?
Spremljanje, ki ga poganjajo dogodki, se odlično prilega okoljem brez strežnikov, saj so funkcije kratkotrajne in se hitro ustavijo. Tradicionalni strgalniki časovnih vrst pogosto v celoti spregledajo te prehodne izvedbe, medtem ko dogodki, ki temeljijo na potiskanju, zajamejo celoten življenjski cikel izvajanja v trenutku, ko se funkcija sproži.
Kakšna je razlika med potekom dela pri odpravljanju napak med tema dvema telemetričnima metodama?
Ko inženir odpravlja napake s časovnimi vrstami podatkov, preučuje široke regresije, kot je na primer prepoznavanje časovnega okna, v katerem so se odstotki napak povečali. Pri podatkih, ki jih poganjajo dogodki, inženir neposredno pregleda edinstveno sled transakcije, da natančno ugotovi, kateri klic API-ja je prekinil operativno zaporedje.
Ali telemetrija, ki jo poganjajo dogodki, vpliva na delovanje aplikacije?
Lahko, če je slabo konfiguriran, saj sinhrono potiskanje težkih struktur koristnega tovora iz glavne poti aplikacije povzroči zakasnitev obdelave. Da bi ublažili to tveganje, razvijalci običajno beleženje dogodkov prenesejo na demone v ozadju ali asinhrone čakalne vrste sporočil, da ohranijo hitrost linij, ki so obrnjene k uporabniku.
Kateri je najboljši način za obravnavo podatkov z visoko kardinalnostjo, kot so uporabniški ID-ji?
Podatki z visoko kardinalnostjo kršijo tradicionalne časovne vrste podatkovnih baz, ker vsaka edinstvena kombinacija oznak ustvari povsem novo datoteko za sledenje, kar porabi ogromne količine pomnilnika. Strukture, ki jih poganjajo dogodki, nimajo te omejitve in zlahka obravnavajo milijone edinstvenih uporabniških ID-jev, saj se vsak dogodek obravnava kot izoliran vnos v dnevnik.
Kakšna je razlika med pragovi opozoril med metrikami in dogodki?
Opozorila o metrikah se zanašajo na matematične trende, na primer sprožijo se, ko povprečna stopnja napak ostane nad petimi odstotki deset minut zapored. Opozorila o dogodkih so binarna in eksplicitna ter se sprožijo takoj, ko se je v podatkovnem toku pojavil določen tip kritičnega dogodka napake.
Ocena
Če so vaši glavni cilji vizualizacija nadzorne plošče, napovedovanje zmogljivosti in sledenje splošnega zdravja infrastrukture v daljših obdobjih, izberite spremljanje, ki ga poganjajo dogodki. Pri gradnji ločenih mikroservisov, cevovodov za nadzor v realnem času ali avtomatiziranih sistemov za samozdravljenje, ki se morajo takoj odzvati na specifične programske anomalije, se obrnite na spremljanje, ki ga poganjajo dogodki.