Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Pozdravljeni vsi skupaj. Spodaj je prepis poročilo z Big Monitoring Meetup 4.

Prometej – sistem za spremljanje različnih sistemov in storitev, s pomočjo katerega lahko sistemski skrbniki zbirajo informacije o trenutnih parametrih sistemov in nastavijo opozorila za prejemanje obvestil o odstopanjih v delovanju sistemov.

Poročilo bo vsebovalo primerjavo Thanos и VictoriaMetrics — projekti za dolgoročno hrambo metrike Prometheus.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Predvajaj video

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Najprej vam bom povedal o Prometeju. To je nadzorni sistem, ki zbira metrike iz določenih ciljev in jih shrani v lokalno shrambo. Prometheus lahko beleži meritve v oddaljeno shrambo in lahko ustvarja opozorila in pravila za snemanje.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Omejitve Prometheusa:

  • Nima pogleda globalne poizvedbe. To je, ko imate več neodvisnih primerkov prometheusa. Zbirajo meritve. In želite poizvedovati na vrhu vseh teh meritev, zbranih iz različnih primerkov prometheusa. Prometej tega ne dovoli.
  • Pri prometheusu je zmogljivost omejena na samo en strežnik. Prometheus se ne prilagaja samodejno na več strežnikih. Svoje cilje lahko samo ročno razdelite med več Prometheusov.
  • Obseg metrik v Prometheusu je omejen na samo en strežnik iz istega razloga, ker se ne more samodejno prilagoditi več strežnikov.
  • V Prometheusu ni tako enostavno organizirati varnosti podatkov.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Rešitve za te težave/izzive?

Rešitve so:

Vse te rešitve so namenjene oddaljenemu shranjevanju podatkov, ki jih zbira Prometheus. Težavo oddaljenega shranjevanja iz prejšnjega diapozitiva rešujejo na različne načine. V tej predstavitvi bom govoril samo o prvih dveh rešitvah: Thanos и VictoriaMetrics.

Prvič podatek o Thanos pojavil s strani ta povezava. Tam je opisana arhitektura Thanos in kako deluje.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Thanos vzame podatke, ki jih je Prometheus shranil na lokalni disk, in jih kopira v S3, na GCS ali v drugo shrambo predmeta.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Tako Thanos ponuja pogled globalne poizvedbe. Podatke, shranjene v objektni shrambi, lahko poizvedujete iz več primerkov Prometheus.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Thanos podpira PromQL in API za poizvedovanje Prometheus.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Thanos uporablja kodo Prometheus za shranjevanje podatkov.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Thanos razvijajo isti razvijalci kot Prometheus.

na VictoriaMetrics. Tukaj povezava, kjer smo prvič govorili o VictoriaMetrics.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

VictoriaMetrics prejema podatke od več prometejev API za oddaljeno pisanje protokol, ki ga podpira Prometheus.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

VictoriaMetrics ponuja pogled globalne poizvedbe, saj lahko več primerkov Prometheus zapiše podatke v en VictoriaMetrics. V skladu s tem lahko izvajate poizvedbe po vseh teh podatkih.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

VictoriaMetrics podpira tudi, kot je Thanos, PromQL in API za poizvedovanje Prometheus.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Za razliko od Thanosa je izvorna koda VictoriaMetrics napisana iz nič in je optimizirana za hitrost in porabo virov.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

VictoriaMetrics za razliko od Thanosa skalira navpično in vodoravno. Jejte Različica z enim vozliščem, ki se spreminja navpično. Začnete lahko z enim procesorjem in 1 GB pomnilnika ter postopoma povečate na stotine procesorjev in 1 TB pomnilnika. VictoriaMetrics lahko uporablja vse te vire. Njegova zmogljivost se bo povečala za približno 100-krat v primerjavi z 1-jedrnim sistemom.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Zgodovina Thanosa se je začela novembra 2017, ko se je pojavila prva javna zaveza. Pred tem je bil Thanos razvit interno neverjetno.io.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Junija 2019 je izšla prelomna izdaja 0.5.0, v kateri odstranili gossip protokol. Odstranjen je bil iz Thanosa, ker se ni dobro izkazal. Groča Thanos pogosto ni delovala pravilno, vozlišča so bila z njo napačno povezana zaradi protokola ogovarjanja. Zato smo se odločili, da ga odstranimo od tam. Mislim, da je to prava odločitev.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Istega junija 2019 so poslali številko prijave 256 в Cloud Native Computing Foundation.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

In po nekaj mesecih je bil Thanos sprejet Cloud Native Computing Foundation, ki vključuje Prometheus, Kubernetes in druge popularne projekte.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Januarja 2018 se je začel razvoj VictoriaMetrics.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Septembra 2018 sem prvič javno omenil VictoriaMetrics.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Decembra 2018 je bila objavljena različica z enim vozliščem.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Maja 2019 so bili objavljeni viri različic z enim vozliščem in gruče.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Junija 2019 smo tako kot Thanos oddali prijavo na fundacijo CNCF pod št 255. Prijavili smo se en dan pred prijavo Thanosa.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

A na žalost tam še vedno nismo sprejeti. Potrebna pomoč skupnosti.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Oglejmo si najpomembnejše diapozitive, ki prikazujejo arhitekturo Thanosa in VictoriaMetrics.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Začnimo s Thanosom. Rumene komponente so komponente Prometheus. Vse ostalo so komponente Thanosa. Začnimo z najpomembnejšo komponento. Thanos Sidecar je komponenta, ki je nameščena poleg vsakega Prometheusa. Podatke Prometheus naloži iz lokalnega pomnilnika v S3 ali drugo Object Storage.

Obstaja tudi komponenta, imenovana Thanos Store Gateway, ki lahko prebere te podatke iz Object Storage na dohodne zahteve Thanos Query. Thanos Query implementira PromQL in Prometheus API. To pomeni, da je od zunaj videti kot Prometej. Prejme poizvedbe PromQL, jih pošlje v Thanos Store Gateway, Thanos Store Gateway pridobi potrebne podatke iz Object Storage in jih pošlje nazaj.

Toda podatke v Object Storage shranjujemo brez zadnjih dveh ur zaradi funkcije implementacije Thanos Sidecar, ki ne more naložiti zadnjih dveh ur v Object Storage S3, ker Prometheus še ni ustvaril datotek za ti dve uri v lokalni shrambi.

Kako ste se odločili, da se temu izognete? Thanos Query poleg zahtev Thanos Store Gateway pošilja vzporedne zahteve vsakemu Thanos Sidecar, ki se nahaja poleg Prometheusa.

Thanos Sidecar pa posreduje zahteve naprej Prometheusu in pridobi podatke za zadnji dve uri.

Poleg teh komponent obstaja tudi izbirna komponenta, brez katere Thanos ne bo deloval dobro. To je Thanos Compact, ki je odgovoren za združevanje majhnih datotek na Object Storage v večje datoteke, ki jih je sem naložil Thanos Sidecars. Thanos Sidecar tja naloži podatkovne datoteke v dveh urah. Te datoteke, če niso združene v večje datoteke, lahko njihovo število zelo močno naraste. Več kot je takšnih datotek, več pomnilnika potrebuje Thanos Store Gateway, več virov je potrebnih za prenos podatkov po omrežju, metapodatkov. Thanos Store Gateway postane neučinkovit. Zato je treba pognati Thanos Compact, ki združuje majhne datoteke v večje, da je takih datotek manj in da se zmanjšajo stroški na Thanos Store Gateway.

Obstaja tudi taka komponenta, kot je Thanos Ruler. Izvaja opozorilna pravila Prometheus in lahko ovrednoti pravila snemanja Prometheus, da zapiše podatke nazaj v Object Storage. Toda ta komponenta ni priporočljiva, ker... On vrne nepopolne podatke.

To je preprosta shema Thanosa.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Zdaj pa jo primerjajmo s shemo VictoriaMetrics.

VictoriaMetrics ima 2 različici: različico z enim vozliščem in različico v gruči. Eno vozlišče deluje na enem računalniku. Eno vozlišče nima teh komponent, samo eno binarno. Ta dvojiška datoteka na diapozitivu je videti kot ta kvadrat. Vse, kar je znotraj kvadrata, je vsebina binarne datoteke za različico z enim vozliščem. Ni ti treba vedeti zanj. Samo zaženete dvojiško datoteko in vse deluje za nas.

Različica grozda je bolj zapletena. V njem so tri različne komponente: vmselect, vminsert in vmstorage. Iz njihovega imena bi moralo biti razvidno, kaj počne vsak od njih. Komponenta Insert sprejema podatke v različnih formatih: od API-ja za oddaljeno pisanje Prometheus, protokola Influx line, protokola Graphite in protokola OpenTSDB. Komponenta Insert jih sprejme, razčleni in razdeli med obstoječe pomnilniške komponente, kjer so podatki že shranjeni. Komponenta Select pa sprejema poizvedbe PromQL. Izvaja PromQL, kot tudi API za poizvedovanje Prometheus in se lahko uporablja kot zamenjava za Prometheus v Grafani ali drugih odjemalcih API Prometheus. Select sprejme zahtevo promql, jo razčleni, prebere potrebne podatke za izvedbo te zahteve iz vozlišč za shranjevanje, obdela te podatke in vrne odgovor.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Primerjajmo kompleksnost namestitve Thanosa in VictoriaMetrics.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Začnimo s Thanosom. Preden začnete delati s Thanosom, morate v Object Storage ustvariti vedro, kot je S3 ali GCS, da lahko Thanos Sidecar vanj zapisuje podatke.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Potem morate za vsakega Prometheusa namestiti Thanos Sidecar. Pred tem se morate spomniti, da onemogočite stiskanje podatkov v Prometheusu. Zgoščevanje podatkov občasno stisne podatke v lokalni shrambi Prometheus, da zmanjša porabo virov.

Ko namestite Thanos Sidecar na vaš Prometheus, morate onemogočiti to stiskanje podatkov, ker Thanos Sidecar ne deluje pravilno z omogočenim zgoščanjem podatkov. To pomeni, da vaš Prometheus začne shranjevati podatke v dvournih blokih in preneha z združevanjem teh blokov v večje. V skladu s tem, če naredite poizvedbe, ki presegajo trajanje zadnjih dveh ur, potem ne bodo delovale tako učinkovito, kot bi lahko delovale, če bi bilo zgoščevanje podatkov omogočeno.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Zato Thanos priporoča zmanjšanje časa hrambe podatkov v lokalni shrambi na 6-8 ur, da bi zmanjšali režijske stroške velikega števila majhnih blokov.

Ko namestite Thanos Sidecar, morate namestiti dve komponenti za vsako Object Storage Bucket. To sta Thanos Compactor in Thanos Store Gateway.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Po tem morate namestiti Thanos Query in ga konfigurirati tako, da se lahko poveže z vsemi Thanos Store Gateways, ki jih imate, in se lahko poveže tudi z vsemi Thanos Sidecars.

Tukaj lahko pride do manjše težave.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Konfigurirati morate zanesljivo in varno povezavo Thanos Query s temi komponentami. In če se vaš Prometheus nahaja v različnih podatkovnih centrih ali v različnih VPC-jih, so povezave z njimi od zunaj prepovedane. Da pa Thanos Query deluje, morate tam nekako konfigurirati povezavo in ugotoviti morate način.

Če imate veliko takšnih podatkovnih centrov, potem se ustrezno zmanjša zanesljivost celotnega sistema. Ker mora Thanos Query nenehno vzdrževati povezave z vsemi Thanos Sidecars, ki se nahajajo v različnih podatkovnih centrih. Za vsako dohodno zahtevo bo preusmeril zahteve na vse Thanos Sidecars. Če je povezava prekinjena, boste prejeli nepopoln nabor podatkov ali pa boste prejeli odgovor »gruča ne deluje«.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

V VictoriaMetrics je vse nekoliko preprostejše. Za različico z enim vozliščem morate samo zagnati eno binarno datoteko in vse deluje.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

V različici grozda je dovolj, da zaženete vse zgornje tri vrste komponent v poljubni količini ali uporabite krmilna karta za avtomatizacijo zagona komponent v Kubernetesu. Načrtujemo tudi izdelavo operaterja Kubernetes. Tabela Helm ne zajema nekaterih primerov in vam omogoča, da se ustrelite v nogo. Na primer, omogoča zmanjšanje števila vozlišč za shranjevanje, kar bo povzročilo izgubo podatkov.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Ko zaženete eno binarno različico ali različico v gručah, morate samo dodati Prometheus v konfiguracijo nastavitev za URL za oddaljeno pisanjetako da začne zapisovati podatke vzporedno v lokalno shrambo in oddaljeno shrambo. Kot lahko vidite, bi morala ta konfiguracija delovati veliko bolj zanesljivo v primerjavi s konfiguracijo Thanosa. Ni nam treba vzdrževati povezave od VictoriaMetrics do vseh Prometheusov, ker se Prometheusi sami povezujejo z VictoriaMetrics in prenašajo podatke.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Razmislimo o podpori Thanosa in VictoriaMetrics.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Thanos mora spremljati Sidecar, da se prepriča, da ne preneha nalagati podatkov v Object Storage. Prenos teh podatkov lahko ustavijo zaradi napak pri prenosu, na primer vaša omrežna povezava z Object Storage je začasno prekinjena ali pa Object Storage začasno ni na voljo. Thanos Sidecar bo to opazil v tem trenutku, prijavil napako, se lahko zruši in preneha delovati. Če tega ne spremljate, boste prenehali prenašati podatke v Object Storage. Če čas hrambe mine (priporočeno 6-8 ur), boste izgubili podatke, ki niso končali v Object Storage.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Kompaktorji Thanos lahko prenehajo delovati zaradi dirka s prikolico. Kompaktorji vzamejo podatke iz Object Storage in jih združijo v večje dele podatkov. Ker kompaktorji niso sinhronizirani s Sidecars, se lahko zgodi naslednje: Sidecar še ni imel časa dokončati bloka, Compactor se odloči, da je bil ta blok v celoti napisan. Compactor ga začne brati. Ne prebere bloka v celoti in preneha delovati. Glej podrobnosti tukaj.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Store Gateway lahko vrne nedosledne podatke zaradi tekmovanj med Compactor in Sidecars. Enako se zgodi tukaj, ker Store Gateway ni na noben način sinhroniziran s Compactors in Sidecars. V skladu s tem se lahko pojavijo pogoji tekmovanja, ko Store Gateway ne vidi dela podatkov ali vidi nepotrebne podatke.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Komponenta poizvedbe v Thanosu privzeto vrne delni rezultat, če nekateri Sidecars ali Store Gateways trenutno niso na voljo. Prejeli boste del podatkov in sploh ne boste vedeli, da niste prejeli vseh podatkov. Tako deluje privzeto. V podobni situaciji VictoriaMetrics vrne označene podatke kot delne.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Za razliko od Thanosa VictoriaMetrics redko izgubi podatke. Tudi če je povezava od Prometheusa do VictoriaMetrics prekinjena, to ni problem, saj Prometheus še naprej beleži dohodne nove podatke v Write Ahead Log, katerega velikost je 2 uri. Če obnovite povezavo z VictoriaMetrics v dveh urah, vaši podatki ne bodo izgubljeni. Prometej lahko dodate podatke po obnovitvi povezave z VictoriaMetrics.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Za razliko od Thanosa, ki zapiše podatke v shrambo objektov šele po dveh urah, Prometheus samodejno replicira podatke z uporabo protokola za oddaljeno pisanje v oddaljeno shrambo, kot je VictoriaMetrics. Ne bojite se izgube lokalnega prostora za shranjevanje v Prometheusu. Če je nenadoma izgubil lokalni pomnilnik, potem boste v najslabšem primeru izgubili zadnje sekunde podatkov, ki niso imeli časa za snemanje v oddaljenem pomnilniku.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Kubernetes samodejno upravlja gručo, za razliko od Thanosa. Za razliko od komponent gruče VictoriaMetrics je težko postaviti vse komponente Thanosa v eno gručo Kubernetes.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

VictoriaMetrics ima zelo preprosto posodobitev na novo različico. Samo zaustavite VictoriaMetrics, posodobite binarne datoteke in ga zaženite. Ko se zaustavijo prek signala SIGINT, vse binarne datoteke VictoriaMetrics izvedejo natančno zaustavitev. Pravilno shranijo potrebne podatke, pravilno zaprejo dohodne povezave, da ne izgubijo ničesar. Tako pri nadgradnji ne boste izgubili ničesar.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

VictoriaMetrics omogoča zelo enostavno razširitev gruče. Samo dodajte potrebne komponente in nadaljujte z delom.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

O pasteh v Thanosu in VictoriaMetrics.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Thanos ima naslednje pasti. Prometheus mora shraniti podatke za zadnji dve uri. Če se izgubijo, jih boste popolnoma izgubili, saj še niso imeli časa za pisanje v Object Storage, kot je S3.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Komponenta Store Gateway in komponenta kompaktorja lahko zahtevata veliko pomnilnika za delo z velikim Object Storageom, če je tam shranjenih veliko majhnih datotek. Večje kot je število in velikost datotek, več prehoda za shranjevanje in kompaktnega RAM-a je potrebnih za shranjevanje metainformacij. Thanos ima veliko težav glede tega Store Gateway in kompaktor se zrušita s povprečno količino posnetih podatkov.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Thanos se oglašuje v neskončnem obsegu s količino Prometheusa, ki ga imate. To dejansko ni res. Ker gredo vse zahteve skozi komponento Query, ki mora hkrati anketirati vse komponente Store Gateway in vse komponente Sidecar, potegniti podatke od tam in jih nato predhodno obdelati. Očitno je hitrost zahteve omejena z najpočasnejšo šibko povezavo, najpočasnejšim prehodom trgovine ali najpočasnejšim Sidecarjem.

Te komponente so lahko neenakomerno obremenjene. Na primer, imate Prometheus, ki zbira milijone meritev na sekundo. In tu je Prometheus, ki zbira na tisoče metrik na sekundo. Prometheus, ki zbira na milijone metrik na sekundo, veliko bolj obremeni strežnik, na katerem teče. V skladu s tem Sidecar tam deluje počasneje. In na splošno tam vse deluje počasi. In komponenta poizvedbe bo zelo počasi črpala podatke od tam. Skladno s tem bo delovanje vaše celotne gruče omejeno s tem počasnim Sidecarjem.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Thanos privzeto daje delne podatke, če nekateri Sidecars in bodisi Store Gateway niso na voljo. Na primer, če so vaši Sidecars razpršeni po vsem svetu v različnih podatkovnih centrih, se verjetnost prekinitve povezave in nerazpoložljivosti komponent močno poveča. V skladu s tem boste v večini primerov prejeli delne podatke, ne da bi se tega sploh zavedali.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

VictoriaMetrics ima tudi pasti. Prva past je možnost, ki omejuje količino RAM-a, uporabljenega za predpomnilnik VictoriaMetrics. Privzeto je enako 60 % RAM-a na računalniku, kjer se izvaja VictoriaMetrics, ali 60 % RAM-a sklopa VictoriaMetrics v Kubernetesu.

Če to vrednost spremenite nepravilno, lahko uničite delovanje VictoriaMetrics. Če na primer nastavite prenizko vrednost, se podatki morda ne bodo več prilegali v predpomnilnik VictoriaMetrics. Zaradi tega bo morala dodatno delati in obremenjevati procesor in disk. Če naredite to možnost preveliko, se poveča, prvič, verjetnost, da se bo VictoriaMetrics zrušil zaradi napake zmanjkanja pomnilnika, in drugič, to bo vodilo do dejstva, da bo v pomnilniku operacijskega sistema ostalo zelo malo RAM-a za predpomnilnik datotek. In VictoriaMetrics se za delovanje zanaša na predpomnilnik datotek. Če je premalo, se lahko obremenitev diska močno poveča. Zato nasvet: ne spreminjajte parametra, razen če je to nujno potrebno.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Druga možnost. To je retentionPeriod – obdobje, ki je privzeto nastavljeno na 1 mesec. To je čas, v katerem VictoriaMetrics shranjuje podatke. Po tem obdobju VictoriaMetrics izbriše podatke.

Veliko ljudi izvaja VictoriaMetrics brez tega parametra in beleži podatke en mesec. In potem vprašajo: zakaj so izginili podatki za prejšnji mesec? Ker je privzeto obdobje hrambe 1 mesec. Zato morate poznati in nastaviti pravilno RetentionPeriod.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Oglejmo si edinstvene lastnosti.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Thanos ima funkcijo, imenovano znižanje vzorčenja: 5-minutne in urne intervale, ki pogosto ne deluje pravilno. Če poguglate in pogledate njihovo težavo na githubu, je veliko težav povezanih s tem zmanjševanjem vzorčenja, da včasih ne deluje pravilno ali ne deluje, kot pričakujejo uporabniki.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Thanos ima deduplikacijo podatkov za pare Prometheus HA. Ko dva Prometheja zbereta iste metrike iz istih ciljev in jih Thanos shrani v Object Storage. Thanos lahko pravilno odstrani podvojitve teh podatkov, za razliko od VictoriaMetrics.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Thanos ima opozorilno komponento, ki je bila v shemi Thanosa. Ampak njega ni priporočljivo za uporabo v proizvodnji.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Thanos ima to prednost, da imata Thanos in Prometheus isto kodo. Thanosa in Prometheusa razvijajo isti razvijalci. Z izboljšavami Thanosa ali Prometheusa zmaga druga stran.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Glavna značilnost VictoriaMetrics je MetricsQL. To so razširitve VictoriaMetrics za PromQL, o katerih sem govoril na prejšnjem velikem spremljanju.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

VictoriaMetrics podpira nalaganje podatkov z uporabo številnih različnih protokolov. VictoriaMetrics ne more sprejemati samo podatkov iz Prometheusa, temveč tudi prek protokolov Influx, OpenTSDB in Graphite.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Podatki VictoriaMetrics zavzamejo veliko manj prostora v primerjavi s Thanosom in Prometheusom.

Če snemate resnične podatke, uporabniki govorijo o 2-5-kratnem zmanjšanju velikosti podatkov na disku v primerjavi s Prometheusom in Thanosom.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Druga prednost VictoriaMetrics je, da je optimiziran za hitrost.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Poglejmo stroške infrastrukture.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Ena od prednosti Thanosa je, da podatke shranjuje v objektno shrambo, kar je relativno poceni.

Pri shranjevanju podatkov v shrambo objektov morate plačati za operacije zapisovanja in branja podatkov (10 USD na milijon operacij). Ko zapisujete podatke v shrambo objektov, plačate svoje stroške gostovanja za nalaganje podatkov v internet; če vaša gruča ni v AWS, je tam brezplačno. Ko berete podatke, plačate med 10 in 230 USD na 1 TB. To je lahko pomembno, če pogosto poizvedujete po zgodovinskih podatkih iz gruče Thanos.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Za gručo Thanos morate plačati strežnike za komponente Compact, Store Gateway, Query, ki zahtevajo veliko pomnilnika, in CPE za velike količine podatkov.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

VictoriaMetrics ima naslednje stroške. Če shranjujete podatke na diske GCE HDD, potem znaša 40 USD za 1 TB. Za VictoriaMetrics zadostujejo navadni trdi diski, ne potrebujejo se SSD diski, ki stanejo petkrat dražje. VictoriaMetrics je optimiziran za HDD.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

VictoriaMetrics zahteva strežnike za komponente: bodisi komponente z enim vozliščem bodisi komponente v gruči, ki za razliko od komponent Thanos zahtevajo veliko manj CPU in RAM-a – in bodo temu primerno cenejše.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Primeri izvedbe.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Thanos ima primer implementacije v Gitlabu. Gitlab v celoti deluje na Thanosu. A tam ni vse tako gladko. Če jih pogledate Vprašanja, potem lahko vidite, da imajo nenehno nekaj operativne težave s Thanosom: Ni dovolj pomnilnika za komponente Store Gateway ali Query. Nenehno morajo povečevati količino pomnilnika.

Zaradi tega se povečajo stroški reševanja teh problemov.

Druga izvedba, ki bo morda uspešnejša, je podjetje Improbable, ki je začelo razvijati Thanosa. Objavili so izvorno kodo Thanosa. Improbable je podjetje, ki razvija motorje za igre.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

VictoriaMetrics ima primere javne implementacije:

  • graditelj spletnega mesta wix.com
  • Adidas uvaja VictoriaMetrics in se je celo predstavil na zadnjem PromConu 2019
  • TrafficStars - oglasno omrežje
  • Seznam.cz je priljubljen češki iskalnik.

In potem so bila podjetja brez imena, ki jih zdaj ne morem poimenovati. Niso privolili.

  • Eden glavnih razvijalcev iger. Večje kot im Neverjetno.
  • Glavni razvijalec grafične programske opreme.
  • Velika ruska banka.
  • Evropski proizvajalec vetrnih turbin, ki je uspešno testiral VictoriaMetrics. Ta proizvajalec uvaja VictoriaMetrics za spremljanje podatkov, zbranih iz vetrnih turbin, s hitrostjo 50 vzorcev na sekundo na senzor. Vsaka vetrna turbina ima več sto senzorjev. Imajo več sto vetrnih turbin.
  • Ruske letalske družbe, ki želijo implementirati VictoriaMetrics, a še vedno ne morejo. Z njimi smo v fazi pogodbe.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetricsSklepi.

VictoriaMetrics in Thanos rešujeta podobne težave, vendar na različne načine:

  • Pogled globalne poizvedbe
  • horizontalno skaliranje
  • samovoljno zadrževanje

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

Hvala.

Čakamo vas pri nas telegram kanal.

Izbira shranjevanja podatkov za Prometheus: Thanos proti VictoriaMetrics

V anketi lahko sodelujejo samo registrirani uporabniki. Prijaviti se, prosim.

Kaj uporabljate kot dolgoročno shrambo za Prometheus?

  • 35,3%Thanos6

  • 0,0%Cortex0

  • 0,0%M3DB0

  • 41,2%VictoriaMetrics7

  • 23,5%drugo4

Glasovalo je 17 uporabnikov. 16 uporabnikov se je vzdržalo.

Vir: www.habr.com

Kupite zanesljivo gostovanje za strani z DDoS zaščito, VPS VDS strežniki 🔥 Kupite zanesljivo spletno gostovanje z zaščito DDoS, VPS VDS strežniki | ProHoster