Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Zdravo svima. Ispod je transkript izvještaj sa Big Monitoring Meetup-a 4.

Prometej – sistem za praćenje različitih sistema i servisa, uz pomoć kojeg administratori sistema mogu prikupljati informacije o trenutnim parametrima sistema i podesiti upozorenja za primanje obaveštenja o odstupanjima u radu sistema.

Izvještaj će uključivati ​​poređenje Thanos и VictoriaMetrics — projekti za dugotrajno skladištenje Prometheus metrike.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Reprodukujte video

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Prvo ću vam reći o Prometeju. Ovo je sistem za nadzor koji prikuplja metriku od određenih ciljeva i sprema ih u lokalnu pohranu. Prometheus može snimati metriku u udaljenu pohranu i može generirati upozorenja i pravila snimanja.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Prometheus ograničenja:

  • Nema globalni prikaz upita. Ovo je kada imate više nezavisnih instanci prometeja. Oni prikupljaju metriku. I želite da postavljate upite povrh svih ovih metrika prikupljenih iz različitih prometheusovih instanci. Prometej to ne dozvoljava.
  • Sa prometheusom, performanse su ograničene na samo jedan server. Prometheus se ne prilagođava automatski na više servera. Možete samo ručno podijeliti svoje mete između više Prometeja.
  • Opseg metrike u Prometheusu ograničen je na samo jedan server iz istog razloga zbog kojeg se ne može automatski skalirati na više servera.
  • Nije tako lako organizirati sigurnost podataka u Prometheusu.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Rješenja za ove probleme/izazove?

Rješenja su:

Sva ova rješenja su za udaljeno skladištenje podataka koje prikuplja Prometheus. Oni rješavaju problem udaljene pohrane s prethodnog slajda na različite načine. U ovoj prezentaciji govoriću samo o prva dva rješenja: Thanos и VictoriaMetrics.

Prvi put informacije o Thanos pojavio od ovaj link. Tamo je opisana arhitektura Thanos i kako to funkcionira.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Thanos uzima podatke koje je Prometheus snimio na lokalni disk i kopira ih na S3 GCS ili u skladište drugog objekta.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Tako Thanos pruža globalni pogled na upit. Možete tražiti podatke pohranjene u skladištu objekata iz više Prometheus instanci.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Thanos podržava PromQL i Prometheusov API za upite.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Thanos koristi Prometheusov kod za pohranjivanje podataka.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Thanos su razvili isti programeri kao i Prometheus.

na VictoriaMetrics. Evo link, gdje smo prvi put razgovarali VictoriaMetrics.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics prima podatke od nekoliko prometeja API za daljinsko pisanje protokol koji podržava Prometheus.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics pruža globalni prikaz upita, budući da više Prometheus instanci može zapisati podatke u jedan VictoriaMetrics. U skladu s tim, možete postavljati upite za sve ove podatke.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics takođe podržava, kao što su Thanos, PromQL i Prometheus API za upite.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Za razliku od Thanosa, VictoriaMetrics izvorni kod je napisan od nule i optimiziran je za brzinu i potrošnju resursa.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics, za razliku od Thanosa, skalira i vertikalno i horizontalno. Jedi Verzija sa jednim čvorom, koji se povećava okomito. Možete početi s jednim procesorom i 1 GB memorije i postepeno narasti na stotine procesora i 1 TB memorije. VictoriaMetrics može koristiti sve ove resurse. Njegove performanse će se povećati za oko 100 puta u poređenju sa 1-jezgrenim sistemom.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Istorija Thanosa počela je u novembru 2017. godine, kada se pojavila prva javna objava. Prije toga, Thanos je razvijen interno neverovatno.io.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

U junu 2019. izašlo je značajno izdanje 0.5.0, u kojem uklonjeno trač protokol. Uklonjen je iz Thanosa jer nije dobro igrao. Često Thanos klaster nije radio kako treba, čvorovi su bili pogrešno povezani s njim zbog trač protokola. Stoga smo odlučili da ga odatle uklonimo. Mislim da je ovo ispravna odluka.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Istog juna 2019. godine poslali su broj prijave 256 в Cloud Native Computing Foundation.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

I nakon nekoliko mjeseci Thanos je primljen Cloud Native Computing Foundation, koji uključuje Prometheus, Kubernetes i druge popularne projekte.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

U januaru 2018. započeo je razvoj VictoriaMetrics-a.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

U septembru 2018. prvi put sam javno pomenuo VictoriaMetrics.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

U decembru 2018. objavljena je verzija sa jednim čvorom.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

U maju 2019 su objavljeni izvori verzija sa jednim čvorom i klastera.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

U junu 2019., kao i Thanos, podnijeli smo prijavu CNCF fondaciji pod brojem 255. Prijavili smo se dan prije nego što se Thanos prijavio.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Ali, nažalost, tamo još uvijek nismo primljeni. Potrebna pomoć zajednice.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Pogledajmo najvažnije slajdove koji prikazuju arhitekturu Thanosa i VictoriaMetrics.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Počnimo sa Tanosom. Žute komponente su komponente Prometeja. Sve ostalo su Thanos komponente. Počnimo s najvažnijom komponentom. Thanos Sidecar je komponenta koja se instalira pored svakog Prometheusa. Učitava Prometheus podatke iz lokalne memorije u S3 ili neku drugu pohranu objekata.

Postoji i komponenta koja se zove Thanos Store Gateway, koja može čitati ove podatke iz Object Storagea po dolaznim zahtjevima iz Thanos Queryja. Thanos Query implementira PromQL i Prometheus API. Odnosno, spolja izgleda kao Prometej. Prima PromQL upite, šalje ih na Thanos Store Gateway, Thanos Store Gateway preuzima potrebne podatke iz Object Storage-a, šalje ih nazad.

Ali mi pohranjujemo podatke u Object Storage bez posljednja dva sata zbog značajke Thanos Sidecar implementacije, koja ne može prenijeti zadnja dva sata u Object Storage S3, budući da Prometheus još nije kreirao datoteke za ova dva sata u lokalnoj pohrani.

Kako ste odlučili ovo zaobići? Thanos Query, pored zahtjeva prema Thanos Store Gateway-u, šalje paralelne zahtjeve svakom Thanos Sidecar-u, koji se nalazi pored Prometheusa.

A Thanos Sidecar, zauzvrat, prosljeđuje zahtjeve dalje Prometeju i preuzima podatke za posljednja dva sata.

Pored ovih komponenti, postoji i opciona komponenta bez koje Thanos neće raditi dobro. Ovo je Thanos Compact, koji je odgovoran za spajanje malih fajlova na Object Storage-u u veće fajlove koje je ovde postavio Thanos Sidecars. Thanos Sidecar tamo otprema datoteke sa podacima za dva sata. Ove datoteke, ako se ne spoje u veće datoteke, onda njihov broj može značajno porasti. Što je više takvih datoteka, to je više memorije potrebno za Thanos Store Gateway, više resursa je potrebno za prijenos podataka preko mreže i metapodataka. Thanos Store Gateway postaje neefikasan. Stoga je potrebno pokrenuti Thanos Compact, koji spaja male datoteke u veće, kako bi bilo manje takvih datoteka i kako bi se smanjili troškovi na Thanos Store Gateway-u.

Postoji i takva komponenta kao što je Thanos Ruler. On izvršava Prometheusova pravila upozorenja i može procijeniti Prometheusova pravila snimanja kako bi upisivala podatke nazad u Object Storage. Ali ovu komponentu nije preporučljivo koristiti, jer... On ima tendenciju da vrati nepotpune podatke.

Ovo je jednostavna Thanosova šema.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Sada uporedimo to sa VictoriaMetrics šemom.

VictoriaMetrics ima 2 verzije: verziju sa jednim čvorom i verziju klastera. Jedan čvor radi na jednom računaru. Single-node nema ove komponente, samo jednu binarnu. Ova binarna datoteka na slajdu izgleda kao ovaj kvadrat. Sve što je unutar kvadrata je sadržaj binarne datoteke za verziju sa jednim čvorom. Ne morate znati za njega. Samo pokrenite binarni program i sve radi za nas.

Klaster verzija je složenija. Unutar njega postoje tri različite komponente: vmselect, vminsert i vmstorage. Iz njihovog imena bi trebalo da bude jasno šta svako od njih radi. Komponenta Insert prihvata podatke u različitim formatima: od Prometheus API-ja za daljinsko pisanje, Influx linijskog protokola, Graphite protokola i OpenTSDB protokola. Komponenta Insert ih prihvata, analizira i distribuira između postojećih skladišnih komponenti, gdje su podaci već pohranjeni. Komponenta Select, zauzvrat, prihvata PromQL upite. On implementira PromQL, kao i Prometheus API za upite, a može se koristiti kao zamjena za Prometheus u Grafani ili drugim Prometheus API klijentima. Select prihvaća promql zahtjev, analizira ga, čita potrebne podatke za izvršavanje ovog zahtjeva sa čvorova za skladištenje, obrađuje ove podatke i vraća odgovor.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Hajde da uporedimo složenost instaliranja Thanosa i VictoriaMetrics.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Počnimo sa Tanosom. Pre nego što počnete da radite sa Thanosom, morate da kreirate kantu u Object Storage-u, kao što je S3 ili GCS, tako da Thanos Sidecar može da upisuje podatke u njega.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Zatim za svaki Prometheus morate instalirati Thanos Sidecar. Prije toga, morate zapamtiti da onemogućite sažimanje podataka u Prometheusu. Sažimanje podataka povremeno komprimira podatke u lokalnoj Prometheus memoriji kako bi se smanjila potrošnja resursa.

Kada instalirate Thanos Sidecar na svoj Prometheus, morate onemogućiti ovo sažimanje podataka, jer Thanos Sidecar ne radi ispravno kada je omogućeno zbijanje podataka. To znači da vaš Prometheus počinje spremati podatke u dvosatnim blokovima i prestaje spajati te blokove u veće. Shodno tome, ako napravite upite koji premašuju trajanje posljednja dva sata, oni neće raditi tako efikasno kao što bi mogli da rade da je omogućeno sažimanje podataka.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Stoga Thanos preporučuje smanjenje vremena zadržavanja podataka u lokalnoj memoriji na 6-8 sati kako bi se smanjili troškovi velikog broja malih blokova.

Nakon što instalirate Thanos Sidecar, morate instalirati dvije komponente za svaki Object Storage Bucket. To su Thanos Compactor i Thanos Store Gateway.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Nakon toga, morate instalirati Thanos Query i konfigurirati ga tako da se može povezati sa svim Thanos Store Gateway-ima koje imate, a također se može povezati sa svim Thanos Sidecarima.

Ovdje može postojati mali problem.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Morate konfigurirati pouzdanu i sigurnu vezu između Thanos Queryja i ovih komponenti. A ako se vaš Prometheus nalazi u različitim podatkovnim centrima, ili u različitim VPC-ovima, veze s njima izvana su zabranjene. Ali da bi Thanos Query funkcionirao, morate nekako konfigurirati tu vezu i morate pronaći način.

Ako imate mnogo takvih centara podataka, onda se, shodno tome, smanjuje pouzdanost cijelog sistema. Budući da Thanos Query mora stalno održavati veze sa svim Thanos bočnim kolima koji se nalaze u različitim podatkovnim centrima. Za svaki dolazni zahtjev, usmjerit će zahtjeve na sve Thanos bočne automobile. Ako je veza prekinuta, ili ćete dobiti nekompletan skup podataka, ili ćete dobiti odgovor "klaster je u kvaru".

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

U VictoriaMetrics je sve malo jednostavnije. Za verziju sa jednim čvorom, trebate samo pokrenuti jednu binarnu datoteku i sve radi.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

U klaster verziji dovoljno je pokrenuti sve gore navedene tri vrste komponenti u bilo kojoj količini koja vam je potrebna ili koristiti helm chart za automatizaciju pokretanja komponenti u Kubernetesu. Takođe planiramo napraviti Kubernetes operatera. Helm tabela ne pokriva neke slučajeve i omogućava vam da pucate sebi u nogu. Na primjer, omogućava vam da smanjite broj čvorova za pohranu, što će dovesti do gubitka podataka.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Nakon što pokrenete jednu binarnu ili klasteriranu verziju, samo trebate dodati Prometheus u konfiguraciju postavka za udaljeno upisivanje URL-atako da počne pisati podatke paralelno s lokalnom pohranom i udaljenom pohranom. Kao što vidite, ova konfiguracija bi trebala raditi mnogo pouzdanije u odnosu na Thanos konfiguraciju. Ne moramo održavati vezu od VictoriaMetrics do svih Prometheus, jer se Prometheus sami povezuju na VictoriaMetrics i prenose podatke.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Razmotrimo podršku Thanosa i VictoriaMetrics-a.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Thanos treba da nadgleda Sidecar kako bi se uvjerio da ne prestaju učitavati podatke u Object Storage. Oni mogu zaustaviti ovo preuzimanje podataka zbog grešaka pri preuzimanju, na primjer, vaša mrežna veza sa pohranom objekata je privremeno prekinuta ili je Object Storage privremeno nedostupan. Thanos Sidecar će to primijetiti u ovom trenutku, prijaviti grešku, može se srušiti i onda prestati raditi. Ako ga ne nadzirete, tada ćete prestati sa prijenosom podataka u Object Storage. Ako vrijeme zadržavanja prođe (preporučeno 6-8 sati), izgubit ćete podatke koji nisu završili u Object Storageu.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Thanos kompaktori mogu prestati raditi zbog trka je sa prikolicom. Kompaktori uzimaju podatke iz skladišta objekata i spajaju ih u veće dijelove podataka. Budući da kompaktori nisu sinkronizirani sa bočnim kolima, može se dogoditi sljedeće: Sidecar još nije imao vremena da završi blok, kompaktor odlučuje da je ovaj blok u potpunosti napisan. Compactor počinje čitati. Ne čita blok u potpunosti i prestaje da radi. Pogledajte detalje ovdje.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Store Gateway može vratiti nedosljedne podatke zbog utrka između Compactor-a i Sidecara. Ista stvar se događa i ovdje, jer Store Gateway ni na koji način nije sinkroniziran sa kompaktorima i bočnim kolima. Shodno tome, uslovi trke mogu nastati kada Store Gateway ne vidi dio podataka ili vidi nepotrebne podatke.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Komponenta upita u Thanosu prema zadanim postavkama vraća djelomični rezultat ako neki bočni automobili ili Store Gateway-i trenutno nisu dostupni. Dobićete dio podataka, a nećete ni znati da niste primili sve podatke. Ovako to radi po defaultu. U sličnoj situaciji, VictoriaMetrics vraća označene podatke kao djelimične.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Za razliku od Thanosa, VictoriaMetrics rijetko gubi podatke. Čak i ako je veza između Prometheusa i VictoriaMetrics-a prekinuta, to nije problem, jer Prometheus nastavlja da bilježi dolazne nove podatke u zapisnik Write Ahead, čija je veličina 2 sata. Ako vratite svoju vezu na VictoriaMetrics u roku od dva sata, vaši podaci neće biti izgubljeni. Prometej može dodati podatke nakon vraćanja veze na VictoriaMetrics.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Za razliku od Thanosa, koji zapisuje podatke u objektnu pohranu tek nakon dva sata, Prometheus automatski replicira podatke koristeći protokol za daljinsko upisivanje u udaljenu pohranu, kao što je VictoriaMetrics. Ne plašite se gubitka lokalnog skladišta u Prometheusu. Ako je iznenada izgubio lokalnu pohranu, tada ćete u najgorem slučaju izgubiti posljednje sekunde podataka koji nisu imali vremena za snimanje u udaljenu pohranu.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Kubernetes automatski upravlja klasterom, za razliku od Thanosa. Teško je smjestiti sve Thanos komponente u jedan Kubernetes klaster, za razliku od VictoriaMetrics komponenti klastera.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics ima vrlo jednostavno ažuriranje na novu verziju. Samo zaustavite VictoriaMetrics, ažurirajte binarne datoteke i pokrenite ga. Kada se zaustave putem SIGINT signala, sve VictoriaMetrics binarne datoteke izvode graciozno isključivanje. Ispravno spremaju potrebne podatke, ispravno zatvaraju dolazne veze kako ništa ne bi izgubili. Tako da nećete ništa izgubiti prilikom nadogradnje.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics olakšava proširenje klastera. Samo dodajte potrebne komponente i nastavite s radom.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

O zamkama u Thanosu i VictoriaMetrics.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Thanos ima sljedeće zamke. Prometheus mora pohraniti podatke za posljednja dva sata. Ako se izgube, izgubit ćete ih potpuno jer još nisu upisani u Skladište objekata kao što je S3.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Komponenta Store Gateway-a i komponenta kompaktora mogu zahtijevati puno memorije za rad s velikim objektom za pohranu ako je tamo pohranjeno mnogo malih datoteka. Što je veći broj i veličina datoteka, to je potrebno više Store Gateway-a i kompaktnog RAM-a za pohranjivanje metainformacija. Thanos ima mnogo problema u vezi sa tim Store Gateway i kompaktor se ruše s prosječnom količinom snimljenih podataka.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Thanos se reklamira da se neograničeno povećava s količinom Prometheusa koju imate. Ovo zapravo nije istina. Budući da svi zahtjevi prolaze kroz komponentu Query, koja mora istovremeno provjeravati sve komponente Store Gateway-a i sve komponente Sidecar-a, izvući podatke odatle i zatim ih prethodno obraditi. Očigledno, brzina zahtjeva je ograničena najsporijom slabom vezom, najsporijim Store Gateway-om ili najsporijim Sidecarom.

Ove komponente mogu biti neravnomjerno opterećene. Na primjer, imate Prometheus, koji prikuplja milione metrika u sekundi. A tu je i Prometheus, koji prikuplja hiljade metrika u sekundi. Prometheus, koji prikuplja milione metrika u sekundi, stavlja mnogo veće opterećenje na server na kojem radi. Shodno tome, Sidecar tamo radi sporije. I općenito tamo sve radi polako. A komponenta Query će povući podatke odatle vrlo sporo. U skladu s tim, performanse vašeg cijelog klastera će biti ograničene ovim sporim Sidecarom.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Prema zadanim postavkama, Thanos daje djelimične podatke ako su neki bočni automobili ili Store Gateway nedostupni. Na primjer, ako su vaše prikolice razbacane po cijelom svijetu u različitim podatkovnim centrima, tada se uvelike povećava vjerovatnoća kvara veze i nedostupnosti komponenti. U skladu s tim, u većini slučajeva ćete dobiti djelimične podatke, a da to niste ni znali.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics takođe ima zamke. Prva zamka je opcija koja ograničava količinu RAM-a koja se koristi za VictoriaMetrics keš memoriju. Podrazumevano je jednako 60% RAM-a na mašini na kojoj je pokrenut VictoriaMetrics ili 60% RAM-a VictoriaMetrics pod-a u Kubernetesu.

Ako pogrešno promijenite ovu vrijednost, možete upropastiti performanse VictoriaMetrics-a. Na primjer, ako postavite prenisku vrijednost, podaci se možda više neće uklapati u VictoriaMetrics keš memoriju. Zbog toga će morati dodatno da radi i učitava procesor i disk. Ako ovu opciju učinite prevelikom, povećava se, prvo, vjerovatnoća da će se VictoriaMetrics srušiti zbog greške u pomanjkanju memorije, a drugo, to će dovesti do činjenice da će u memoriji operativnog sistema ostati vrlo malo RAM-a za keš datoteka. A VictoriaMetrics se za performanse oslanja na predmemoriju datoteka. Ako to nije dovoljno, opterećenje na disku može se znatno povećati. Stoga savjet: ne mijenjajte parametar osim ako je apsolutno neophodno.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Druga opcija. Ovo je period zadržavanja - period koji je po defaultu postavljen na 1 mjesec. Ovo je dužina vremena u kojem VictoriaMetrics pohranjuje podatke. Nakon ovog perioda, VictoriaMetrics briše podatke.

Mnogi ljudi pokreću VictoriaMetrics bez ovog parametra i snimaju podatke mjesec dana. A onda pitaju: zašto su nestali podaci za prethodni mjesec? Zato što je zadani period zadržavanja 1 mjesec. Stoga morate znati i postaviti ispravan period zadržavanja.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Pogledajmo jedinstvene karakteristike.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Thanos ima funkciju zvanu downsampling: intervali od 5 minuta i svaki sat, koji često ne radi kako treba. Ako proguglate i pogledate njihov problem na githubu, postoji mnogo problema vezanih za ovo smanjenje uzorkovanja, da ponekad ne radi ispravno, ili ne radi kako korisnici očekuju.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Thanos ima deduplikaciju podataka za Prometheus HA parove. Kada dva Prometheusa prikupe iste metrike sa istih meta i Thanos ih pohrani u Skladište objekata. Thanos može ispravno deduplicirati ove podatke, za razliku od VictoriaMetrics-a.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Thanos ima komponentu upozorenja koja je bila u Thanos šemi. Ali on ne preporučuje se upotreba u proizvodnji.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Tanos ima prednost što Tanos i Prometej dijele isti kod. Thanos i Prometheus razvijaju isti programeri. Uz poboljšanja Tanosa ili Prometeja, druga strana pobjeđuje.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Glavna karakteristika VictoriaMetrics-a je MetricsQL. Ovo su VictoriaMetrics ekstenzije za PromQL, o kojima sam govorio na prethodnom velikom sastanku za praćenje.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics podržava učitavanje podataka koristeći mnogo različitih protokola. VictoriaMetrics ne može prihvatiti samo podatke iz Prometheusa, već i putem Influx, OpenTSDB i Graphite protokola.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics podaci zauzimaju mnogo manje prostora u odnosu na Thanos i Prometheus.

Ako snimate stvarne podatke, korisnici govore o smanjenju veličine podataka na disku 2-5 puta u odnosu na Prometheus i Thanos.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Još jedna prednost VictoriaMetrics-a je da je optimizovan za brzinu.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Pogledajmo cijenu infrastrukture.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Jedna od prednosti Thanosa je da pohranjuje podatke u objektnu pohranu, što je relativno jeftino.

Kada pohranjujete podatke u objektnu pohranu, morate platiti operacije pisanja i čitanja podataka (10 USD za milion operacija). Kada upisujete podatke u skladište objekata, plaćate svoje troškove hostinga za otpremanje podataka na Internet; ako vaš klaster nije u AWS-u, tamo je besplatan. Kada čitate podatke, plaćate između 10 i 230 USD po 1TB. Ovo može biti značajno ako često tražite istorijske podatke iz Thanos klastera.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Za Thanos klaster, morate platiti za servere za Compact, Store Gateway, Query komponente koje zahtijevaju puno memorije i CPU za velike količine podataka.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics ima sljedeće troškove. Ako pohranjujete podatke na GCE HDD diskove, onda košta 40 USD za 1TB. Za VictoriaMetrics su dovoljni obični HDD diskovi; nisu potrebni SSD-ovi, koji koštaju pet puta skuplji. VictoriaMetrics je optimizovan za HDD.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics zahtijeva servere za komponente: ili jednostruke ili grupisane komponente, koje, za razliku od Thanos komponenti, zahtijevaju mnogo manje CPU-a i RAM-a - i prema tome će biti jeftinije.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Primjeri implementacije.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Thanos ima primjer implementacije u Gitlabu. Gitlab u potpunosti radi na Thanosu. Ali tamo nije sve tako glatko. Ako ih pogledate pitanja, onda možete vidjeti da ih stalno imaju operativni problemi sa Thanosom: Nema dovoljno memorije za Store Gateway ili Query komponente. Oni stalno moraju povećavati količinu memorije.

Zbog toga se povećavaju troškovi rješavanja ovih problema.

Druga implementacija, koja bi mogla biti uspješnija, je kompanija Improbable, koja je započela razvoj Thanosa. Oni su objavili izvorni kod Thanos. Improbable je kompanija koja razvija igrice.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics ima primjere javne implementacije:

  • wix.com graditelj web stranica
  • Adidas implementira VictoriaMetrics i čak je napravio prezentaciju na posljednjem PromCon-u 2019
  • TrafficStars - oglasna mreža
  • Seznam.cz je popularan češki pretraživač.

I tada su postojale kompanije bez imena koje sada ne mogu imenovati. Oni nisu pristali.

  • Jedan veliki programer igara. Veće od im Nevjerovatno.
  • Glavni programer grafičkog softvera.
  • Velika ruska banka.
  • Evropski proizvođač vjetroturbina koji je uspješno testirao VictoriaMetrics. Ovaj proizvođač implementira VictoriaMetrics za praćenje podataka prikupljenih od vjetroturbina brzinom od 50 uzoraka u sekundi po senzoru. Svaka vjetroturbina ima nekoliko stotina senzora. Imaju nekoliko stotina vjetroturbina.
  • Ruske aviokompanije koje žele implementirati VictoriaMetrics, ali još uvijek ne mogu. S njima smo u fazi ugovora.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetricsZaključci.

VictoriaMetrics i Thanos rješavaju slične probleme, ali na različite načine:

  • Globalni prikaz upita
  • horizontalno skaliranje
  • proizvoljno zadržavanje

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Spasibo.

Čekamo vas kod nas telegram kanal.

Odabir skladišta podataka za Prometheus: Thanos vs VictoriaMetrics

Samo registrovani korisnici mogu učestvovati u anketi. Prijavite semolim.

Šta koristite kao dugotrajno skladištenje za Prometheus?

  • 35,3%Thanos6

  • 0,0%Cortex0

  • 0,0%M3DB0

  • 41,2%VictoriaMetrics7

  • 23,5%ostalo4

Glasalo je 17 korisnika. Uzdržano je bilo 16 korisnika.

izvor: www.habr.com

Kupite pouzdan hosting za sajtove sa DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan web hosting sa DDoS zaštitom, VPS VDS servere | ProHoster