Õige jälgitavusstrateegia valimine eeldab andmete kogumise ja töötlemise mõistmist. Kui aegridade jälgimine jälgib numbrilisi süsteemi mõõdikuid regulaarsete intervallidega, et paljastada pikaajalisi tervisetrende, siis sündmustepõhine jälgimine jäädvustab koheselt diskreetseid oleku muutusi, et käivitada kohesed programmilised vastused, muutes nende arhitektuurilised kujundused põhimõtteliselt erinevaks.
Esiletused
Ajaseeriad tuginevad prognoositavale intervallküsitlusele, samas kui sündmuste jälgimine toimib puhtalt nõudmisel.
Sündmuste telemeetria säilitab sügava kasuliku teabe konteksti, mille traditsioonilised numbrilised mõõdikud kõrvale jätavad.
Ajaseeriate salvestusnõuded jäävad stabiilseks, samas kui sündmuste salvestus jälgib süsteemi aktiivsuse järske tõuse.
Sündmuspõhised seadistused võimaldavad kohest automatiseeritud enesetervendamist, mitte retrospektiivset analüüsi.
Mis on Ajaseeriate jälgimine?
Mõõdikutele keskenduv lähenemisviis, mis kogub numbrilisi andmepunkte järjepidevate kronoloogiliste intervallide kaupa süsteemitrendide analüüsimiseks.
Tugineb suuresti regulaarsetele küsitlusintervallidele, näiteks andmete kraapimisele iga viieteistkümne sekundi järel.
Salvestab andmeid struktureeritud numbriliste väärtustena, mis on seotud kindlate ajatemplite ja dimensioonimärgistega.
Optimeeritud suure jõudlusega koondpäringute jaoks, näiteks keskmise protsessori kasutuse arvutamiseks kuu jooksul.
Tavaliselt kasutab see pull-based arhitektuuri, kus keskserver taotleb andmeid sihtotstarbelistest lõpp-punktidest.
Säilitab prognoositava salvestusruumi kasvu, kuna andmete sisestamise määr püsib süsteemi koormusest olenemata stabiilsena.
Mis on Sündmustepõhine jälgimine?
Reaktiivne süsteem, mis jäädvustab ja töötleb rikkalikke kontekstuaalseid andmepakette hetkel, kui toimub konkreetne oleku muutus.
Töötab asünkroonselt, käivitades toiminguid ainult siis, kui määratletud tingimus või süsteemiintsident käivitab häire.
Jäädvustab iga paketi sügavaid kontekstuaalseid metaandmeid, sealhulgas täielikud kasuliku koormuse üksikasjad ja kasutajatunnused.
Kasutab tõukepõhist arhitektuuri, kus üksikud rakendused voogesitavad sündmusi kohe sündmuste siinile.
Salvestusruumi nõuded skaleeruvad dünaamiliselt koos süsteemi aktiivsusega, suurenedes ootamatute liikluse tõusude ajal järsult.
Integreerub otse automatiseerimistööriistadega, et infrastruktuuri koheselt ise parandada ilma inimese sekkumiseta.
Võrdlustabel
Funktsioon
Ajaseeriate jälgimine
Sündmustepõhine jälgimine
Andmete kogumise käivitaja
Regulaarsed, eelnevalt kindlaksmääratud ajavahemikud
Oleku muutuse kohene toimumine
Esmane andmevorming
Numbrilised võtme-väärtuse paarid ajatemplitega
Rikkalikud JSON- või struktureeritud tekstipõhised kasulikud koormused
Arhitektuuriline muster
Peamiselt tõmbepõhine kraapimine
Tõukepõhine voogedastus sõnumivahendajate kaudu
Salvestusruumi kasv
Väga etteaimatav ja lineaarne
Muutuv ja otseselt seotud süsteemi aktiivsusega
Ideaalne kasutusjuhtum
Võimsuse planeerimine ja pikaajaline trendianalüüs
Kohene reageerimine intsidentidele ja automatiseeritud enesetervendamine
Päringu fookus
Matemaatilised agregatsioonid ajaakende kaupa
Üksikute sündmuste teede ja struktuurimutatsioonide jälgimine
Süsteemi üldkulud
Madal ja pidev ressursijälg
Muutuv ressursitarbimine sündmuste mahu põhjal
Üksikasjalik võrdlus
Andmete sisestamise mehaanika
Ajaseeriate jälgimine toimib nagu ühtlane südamerütm, pärides süsteemidele kindlate intervallidega päringuid, et koguda jõudluse hetktõmmiseid. See lähenemisviis tagab pideva numbriliste andmete voo, mis võimaldab mootoritel ajaloolisi trajektoore hõlpsalt joonistada. Teisest küljest toimib sündmustepõhine jälgimine vaikselt, kuni midagi konkreetset keskkonda muudab, edastades koheselt tervikliku andmepaketi. See tähendab, et sündmustepõhine mudel jääb vaiksetel perioodidel uinunud olekus, kuid hakkab rikke ilmnemisel äärmise detailsusega tegutsema millisekundi jooksul.
Detailsus ja kontekst
Sügavate diagnostiliste ülesannete puhul muutuvad andmete sügavuse erinevused ilmseks. Ajaseeria struktuurid eemaldavad teksti ja konteksti, et keskenduda rangelt numbritele, mis hoiab asjad lihtsana, kuid jätab välja krahhi taga peituva loo. Sündmuspõhised logid hoiavad kogu kontekstuaalse tausta puutumata, näidates täpselt, milline kasutaja või funktsioon põhjustas täitmistee katkemise. Kui ajaseeria graafik näitab teie andmebaasiühenduste äkilist halvenemist, siis sündmuste voog näitab teile täpset päringut, mis probleemi algatas.
Skaleeritavus ja salvestusdünaamika
Nende platvormide finants- ja salvestusjalajälje haldamine nõuab kahte täiesti erinevat mõtteviisi. Ajaseeria seadistused pakuvad lohutavat prognoositavust, sest skaleerimine tähendab tavaliselt vaid säilituspoliitikate kohandamist või küsitlusintervallide pikendamist. Sündmuspõhised süsteemid on palju volatiilsemad, nõudes salvestusarhitektuuri, mis suudab toime tulla ootamatute ja massiivsete andmeuputustega, kui vead mikroteenuste kaudu levivad. Kui teie rakendus muutub viiruslikuks või kannatab DDoS-rünnaku all, suurenevad sündmuste salvestusnõuded sissetuleva liiklusega koos järsult.
Tegutsemisvõime ja häirekiirus
Teie operatiivmeeskonna reageerimiskiirus sõltub täielikult sellest, kuidas teie telemeetria edastatakse. Ajaseeriahoiatused kannatavad loomulikult väikese viivituse all, kuna süsteem peab ootama järgmist kraapimistsüklit ja hindama mitut andmepunkti, et trendi kinnitada. Sündmuspõhised arhitektuurid on siin suurepärased, kuna nad eemaldavad vahendajad, suunavad kriitilised tõrked otse teavitusplatvormidele või skaleerivad skripte automaatselt kohe, kui need juhtuvad. See kohese teavitamise võimalus muudab sündmuspõhise lähenemisviisi hädavajalikuks missioonikriitilise infrastruktuuri jaoks, mis vajab viivitamatut parandamist.
Plussid ja miinused
Ajaseeriate jälgimine
Eelised
+Väga prognoositavad ladustamiskulud
+Suurepärane pikaajaline trendianalüüs
+Madal ressursikulu
+Lihtsustatud matemaatiline liitmine
Kinnitatud
−Puudub detailne tekstikontekst
−Tutvustab loomupäraseid küsitlusviivitusi
−Jätab lühikesed vahelduvad piigid vahele
−Võitlused lühiajalise infrastruktuuriga
Sündmustepõhine jälgimine
Eelised
+Hetkeline reaalajas teavitamine
+Rikkalik olukorra metaandmete säilitamine
+Ideaalne lahtisidunud süsteemide jaoks
+Käivitab otseseid automatiseeritud töövooge
Kinnitatud
−Ettearvamatu salvestusruumi tarbimine
−Suur arhitektuurilise konfiguratsiooni keerukus
−Makrotrendide analüüsimine on keeruline
−Võimalik telemeetria tormi pea kohal
Tavalised eksiarvamused
Müüt
Ajaseeriate jälgimine suudab jäädvustada iga üksiku mikrokõikumise süsteemi käitumises.
Tõelisus
Kuna aegridade jälgimine tugineb intervallipõhisele küsitlusele, on iga kahe kraapimistsükli vahel tekkiv ja täielikult lahenev jõudluse tõus teie armatuurlaudadele täiesti nähtamatu.
Müüt
Sündmustepõhine telemeetria on taskukohane asendus traditsioonilisele logide koondamise meetodile.
Tõelisus
Iga üksiku süsteemisündmuse salvestamine koos täielike kontekstuaalsete metaandmetega võib kiiresti muutuda ülemäära kalliks, makstes tippkoormuse ajal sageli palju rohkem kui optimeeritud aegridade mõõdikute mootor.
Müüt
Peate valima ühe metoodika ja juurutama selle ainult oma infrastruktuuris.
Tõelisus
Kaasaegsed ettevõtte jälgitavuse seadistused ühendavad peaaegu alati mõlemad süsteemid, kasutades aegridade andmeid kõrgetasemeliste tervisekontrolli armatuurlaudade jaoks ja sündmustepõhiseid signaale konkreetsete tehinguvigade jälgimiseks.
Müüt
Sündmuspõhised jälgimistööriistad arvutavad teie süsteemi käideldavuse protsendid automaatselt.
Tõelisus
Sündmuste vood teavad ainult seda, millal asjad toimuvad, mis tähendab, et neil puudub püsiv rütm, mis on vajalik tööaja hõlpsaks arvutamiseks. Kättesaadavuse mõõdikute genereerimine nõuab tavaliselt nende diskreetsete sündmuste teisendamist pidevaks aegridade vorminguks.
Sageli küsitud küsimused
Kas ma saan Prometheust kasutada sündmuspõhiste jälgimisülesannete jaoks?
Mitte efektiivselt, kuna Prometheus ehitati algusest peale teadlikult pull-põhise aegridade mõõdikute mootorina. Selle sundimine üksikute oleku sündmuste käsitlemiseks koormab üle selle sisemist salvestusmudelit, mis on loodud float64 numbrite, mitte rikkalike ja tekstirohkete sündmuste jaoks.
Miks sündmustepõhine jälgimine muudab võimsuse planeerimise keeruliseks?
Läbilaskevõime planeerimine nõuab ressursside kasutamise pidevat ajaloolist ülevaadet, et märgata käimasolevaid kasutusmustreid ja prognoosida tulevasi taristuvajadusi. Sündmuste andmed on hajutatud ja ebaregulaarsed, mistõttu on pikaajaliseks prognoosimiseks vajalike sujuvate baasjoonte arvutamine matemaatiliselt tüütu.
Mis juhtub sündmuspõhiste monitoridega, kui süsteem täielikult kokku jookseb?
Kui terve server või võrguühendus katkeb, võib sündmustepõhine süsteem sündmuste saatmise täielikult lõpetada, mis võib ekslikult jätta mulje täiesti terve süsteemina. See vaikus on põhjus, miks meeskonnad mässivad sündmuste arhitektuuri lihtsate aegridade talitlushäiretega, et tagada alusplatvormi toimimine.
Milline jälgimisstiil sobib paremini serverita funktsioonide, näiteks AWS Lambda jaoks?
Sündmustepõhine jälgimine sobib suurepäraselt serverita keskkondadesse, kuna funktsioonid on lühiajalised ja aeguvad kiiresti. Traditsioonilised aegridade kaabitsad jätavad need ajutised teostuse sageli täielikult märkamata, samas kui push-põhised sündmused jäädvustavad kogu käitusaja elutsükli hetkel, mil funktsioon käivitub.
Kuidas erinevad silumistöövood nende kahe telemeetriameetodi vahel?
Kui insener veaotsingut aegridade andmetega teeb, vaatab ta laiaulatuslikke regressioone, näiteks tuvastab ajavahemiku, kus veaprotsent tõusis. Sündmuspõhiste andmete puhul kontrollib insener otse unikaalset tehingujälge, et näha täpselt, milline API-kõne katkestas operatsioonilise järjestuse.
Kas sündmustepõhine telemeetria mõjutab rakenduse jõudlust?
See võib juhtuda, kui see on halvasti konfigureeritud, kuna suurte koormusstruktuuride sünkroonne edastamine teie peamise rakenduse teelt põhjustab töötlemisviivitust. Selle riski maandamiseks annavad arendajad tavaliselt sündmuste logimise taustadeemonitele või asünkroonsete sõnumijärjekordadele, et hoida kasutajatele suunatud read kiired.
Kuidas on kõige parem käsitleda kõrge kardinaalsusega andmeid, näiteks kasutajatunnuseid?
Suure kardinaalsusega andmed lõhuvad traditsioonilisi aegridade andmebaase, sest iga unikaalne siltide kombinatsioon loob täiesti uue jälgimisfaili, mis tarbib tohutul hulgal mälu. Sündmuspõhistel struktuuridel seda piirangut pole, käsitledes miljoneid unikaalseid kasutajatunnuseid hõlpsalt, kuna iga sündmust käsitletakse eraldi logikirjena.
Kuidas erinevad häirekünnised mõõdikute ja sündmuste vahel?
Mõõdikute märguanded tuginevad matemaatilistele trendidele, näiteks käivituvad siis, kui teie keskmine veamäär püsib kümme minutit järjest üle viie protsendi. Sündmuste märguanded on binaarsed ja selgesõnalised ning käivituvad kohe, kui andmevoos ilmnes teatud tüüpi kriitiline tõrge.
Otsus
Valige aegridade jälgimine, kui teie peamised eesmärgid on armatuurlaua visualiseerimine, mahutavuse prognoosimine ja üldise infrastruktuuri tervise jälgimine pika aja jooksul. Kasutage sündmuspõhist jälgimist lahtisidunud mikroteenuste, reaalajas auditeerimistorustike või automatiseeritud isetervendavate süsteemide loomisel, mis peavad koheselt reageerima konkreetsetele tarkvaraanomaaliatele.