Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Tere kÔigile. Allpool on esitatud aruanne Big Monitoring Meetup 4'st.

Prometheus – erinevate sĂŒsteemide ja teenuste jĂ€lgimise sĂŒsteem, mille abil sĂŒsteemiadministraatorid saavad koguda teavet sĂŒsteemide kaasnevate parameetrite kohta ja seadistada teavitused sĂŒsteemide toimimise kĂ”rvalekalletest.

Aruandes vĂ”rreldakse Thanos ja VictoriaMetrics — projekte Prometheus'e meetrikate pikaajaliseks salvestamiseks.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

MĂ€ngi videot

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Esmalt rÀÀgin Prometheus'est. See on jĂ€lgimissĂŒsteem, mis kogub metrikad mÀÀratud sihtidest ja salvestab need lokaalsetesse salvestusruumidesse. Prometheus suudab salvestada metrikad kaugsalvestusse, genereerida hĂ€ireid ja salvestusreegleid.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Prometheus'e piirangud:

  • Tal pole globaalset pĂ€ringu vaadet. See on siis, kui teil on mitu sĂ”ltumatut Prometheuse instantsi. Need koguvad metrikad. Ja te soovite teha pĂ€ringu kĂ”igi nende metrikate pealt, mis on kogutud erinevatest Prometheuse instantsidest. Prometheus ei luba seda.
  • Prometheus'e jĂ”udlus on piiratud vaid ĂŒhe serveriga. Prometheus ei saa automaatselt skaleeruda mitme serveri peale. Te saate ainult kĂ€sitsi jagada oma sihtid mitmete Prometheuste vahel.
  • Metrikate maht Prometheus'es on piiratud ĂŒhe serveriga sama pĂ”hjusel, miks ta ei saa automaatselt skaleeruda mitme serveriga.
  • Prometheus'es pole andmete sĂ€ilitamine sugugi lihtne.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Nende probleemide/lahenduste kĂŒsimus?

Lahendused on jÀrgmised:

KÔik need lahendused on mÔeldud Prometheus'e kogutud andmete kaugsalvestamiseks. Need lahendavad eelmisel slaidil kÀsitletud kaugsalvestuse probleemi erinevalt. KÀesolevas esitlusel rÀÀgin vaid kahest esimesest lahendusest: Thanos ja VictoriaMetrics.

Esmakordselt ilmus teave Thanos selle kohta sellel lingil. Seal on kirjeldatud arhitektuuri Thanos ja kuidas see töötab.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Thanos vÔtab andmed, mis Prometheus on lokaatdiskis salvestanud, ja kopeerib need S3-sse, GCS vÔi mÔnda teise objekti salvestusse.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Nii tagab Thanos globaalset pĂ€ringu vaadet. Te saate kĂŒsida andmeid, mis on salvestatud objekti salvestusse mitmest Prometheuse instantsist.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Thanos toetab PromQL-i ja Prometheuse pÀringu API-t..

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Thanos kasutab JSON-salvestamiseks Prometheuse koodi.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Thanos arendavad samad arendajad, kes arendasid Prometheuse.

KĂŒsimus VictoriaMetrics. Siin link, kus me esmakordselt rÀÀkisime VictoriaMetrics.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

VictoriaMetrics saadab andmed mitmest Prometheusest remote write API protokoll, mida toetab Prometheus.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

VictoriaMetrics vĂ”imaldab globaalse pĂ€ringute vaatamise, kuna mitu Prometheuse eksemplari saavad kirjutada andmeid ĂŒhte VictoriaMetrics'i. Seega saate pĂ€ringuid teha nende kĂ”ikide andmete pĂ”hjal.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

VictoriaMetrics toetab samuti, nagu ka Thanos — PromQL ja Prometheus pĂ€ringu API-d.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Erinevalt Thanosest on VictoriaMetrics'i lÀhtekood kirjutatud nullist ja optimeeritud kiirusel ja ressursikasutusele.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

VictoriaMetrics skaleerub, erinevalt Thanosest, nii vertikaalselt kui ka horisontaalselt. On olemas ĂŒksik-sĂ”lme versioon, mis skaleerub vertikaalselt. Saate alustada ĂŒhe protsessori ja 1 GB mĂ€luga ning jĂ€rk-jĂ€rgult kasvada saja protsessori ja 1 TB mĂ€luni. VictoriaMetrics suudab seda ressursse kasutada. Selle töökindlus tĂ”useb umbes 100 korda vĂ”rreldes ĂŒhe tuumaga sĂŒsteemiga.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Thanos'e ajalugu algas novembris 2017, kui ilmus esimene avalik commit. Enne seda arendati Thanos'e ettevÔttes improbable.io.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Juuni 2019. aastal toimus mĂ€rgiline vĂ€ljaanne 0.5.0, kus eemaldati gossip protokoll. See eemaldati Thanos'est, sest see ei nĂ€idanud end parimast kĂŒljest. Tihti toimis Thanos'e klaster valesti, sĂ”lmed ei ĂŒhendatud Ă”igesti gossip protokolli tĂ”ttu. SeetĂ”ttu otsustati see sealt eemaldada. Arvan, et see on Ă”ige otsus.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Samas juunis 2019 saatsid nad taotluse numbri 256 ja Cloud Native Computing Foundation.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Ja paar kuud hiljem vÔeti Thanos vastu Cloud Native Computing Foundation, kuhu kuuluvad Prometheus, Kubernetes ja teised populaarsed projektid.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Jaanuaris 2018 algas VictoriaMetrics'i arendus.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Septembris 2018 mainisin esmakordselt avalikult VictoriaMetrics'i.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Detsembris 2018 avaldasime ĂŒksik-sĂ”lme versiooni.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Mais 2019 avalikustati nii ĂŒksik-sĂ”lme kui ka klastriversioonide lĂ€htekood.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Juuni 2019, nagu Thanos, esitasime CNCF fondile taotluse numbri 255. Esitasime taotluse ĂŒhe pĂ€eva varem, kui Thanos.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Kahjuks ei ole meid siiani vastu vÔetud. Kommunikatsiooni abi on vajalik.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Vaadakem peamisi slaide, mis nÀitavad Thanos'e ja VictoriaMetrics'i arhitektuuri.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Alustame Thanosega. Kollased komponendid on Prometheuse komponendid. KÔik muu on Thanose komponendid. Alustame tÀhtsaimast komponendist. Thanos Sidecar on komponent, mis paigaldatakse iga Prometheuse kÔrvale. Ta tegeleb sellega, et laadib Prometheuse andmed kohalikust salvestusest S3-sse vÔi teise objektisalvestusse.

On veel selline komponent nagu Thanos Store Gateway, mis oskab neid andmeid Object Storage'ist lugeda Thanos Query'lt tulevate pÀringute korral. Thanos Query rakendab PromQL-i ja Prometheuse API-t. See tÀhendab, et sealtpoolt nÀeb ta vÀlja nagu Prometheus. Ta vÔtab vastu PromQL-pÀringud, saadab need Thanos Store Gateway-le, Thanos Store Gateway toob vajalikud andmed Object Storage'ist tagasi.

Kuid meie Object Storage's on andmed ilma viimase kahe tunni jooksul, kuna Thanos Sidecar'i rakendamise eripĂ€ra ei vĂ”imalda viimase kahe tunni andmeid S3 Object Storage'isse ĂŒles laadida, kuna nende kahe tunni jooksul ei olnud Prometheus veel faile lokaalses salvestuses loonud.

Kuidas me selle eeskuju ĂŒletame? Thanos Query lisaks pĂ€ringutele Thanos Store Gateway'sse saadab samaaegselt pĂ€ringud ka igasse Thanos Sidecar'i, mis asub Prometheus'e lĂ€hedal.

Ja Thanos Sidecar omakorda edastab pÀringud edasi Prometheus'esse, et tuua vÀlja andmeid viimase kahe tunni kohta.

Lisaks nendele komponentidele on olemas ka valikuline komponent, ilma milleta Thanos ei tunne end hĂ€sti. See on Thanos Compact, mis tegeleb vĂ€ikeste failide ĂŒhendamisega Object Storage'sse suuremateks failideks, mis on sinna ĂŒles laaditud Thanos Sidecar'ide poolt. Thanos Sidecar laadib sinna andmeid kahe tunni kohta. Kui neid faile ei liidetaks suuremateks failideks, vĂ”ib nende arv vĂ€ga palju suureneda. Mida rohkem on selliseid faile, seda rohkem on Thanos Store Gateway'le vajalikku mĂ€lu ja rohkem on ressursse andmete edastamiseks vĂ”rgus, metainformatsioonile. Thanos Store Gateway töö muutub ebatĂ”husaks. SeetĂ”ttu on oluline kĂ€ivitada Thanos Compact, mis ĂŒhendab vĂ€iksed failid suuremateks, et nende failide arv oleks vĂ€iksem ja et vĂ€hendada overhead'i Thanos Store Gateway's.

On veel selline komponent nagu Thanos Ruler. See tÀidab Prometheuse hÀirete reegleid ja suudab arvutada Prometheuse salvestusreegleid, et salvestada andmeid uuesti Object Storage'isse. Kuid selle komponenti kasutamist ei soovitata, kuna see on altid tagasi tooma puudulikke andmeid.

Selline lihtne skeem on Thanos'e puhul.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

NĂŒĂŒd vĂ”rreldame seda VictoriaMetrics skeemiga.

VictoriaMetrics'il on 2 versiooni: ĂŒhe sĂ”lme ja klasterversioon. Ühe sĂ”lme versioon töötab ĂŒhel arvutil. Ühe sĂ”lme versioonis ei ole neid komponente, lihtsalt ĂŒks binaarfail. See binaarfail nĂ€eb vĂ€lja nagu see ruut. KĂ”ik, mis ruudu sees on, on ĂŒhe sĂ”lme versiooni binaarfaili sisu. Te ei pea selle kohta palju teadma. Lihtsalt kĂ€ivitate binaarfaili — ja kĂ”ik töötab.

Klastri versioon on keerulisem. Selle sees on kolm erinevat komponenti: vmselect, vminsert ja vmstorage. Nende nimed annavad selgelt mĂ”ista, millega igaĂŒks tegeleb. Insert komponent vĂ”tab andmeid vastu erinevates formaatides: Prometheuse remote write API, Influx line protokoll, Graphite protokoll ja OpenTSDB protokoll. Insert komponent vĂ”tab need vastu, parsib ja jagab olemasolevatele salvestuskomponentidele, kus andmed salvestatakse. Select komponent, omakorda, vĂ”tab vastu PromQL pĂ€ringud. See rakendab PromQL, samuti Prometheuse pĂ€ringu API, ja seda saab kasutada asendajana Prometheusele Grafanas vĂ”i teiste Prometheuse API klientide seas. Select aktsepteerib promql pĂ€ringut, parsib selle, loeb vajalikud andmed selle pĂ€ringu tĂ€itmiseks salvestusnode'ist, töötleb neid andmeid ja tagastab vastuse.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

VÔrdleme Thanos'e ja VictoriaMetrics'i installimise keerukust.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Alustame Thanosega. Enne Thanosega töötamise alustamist tuleb luua bucket objektipÔhisest salvestusest, nagu S3 vÔi GCS, et Thanos Sidecar saaks sinna andmeid kirjutada.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

SeejÀrel peab iga Prometheuse jaoks installima Thanos Sidecari. Enne seda Àrge unustage keelata andmete tiheduse kokkusurutust Prometheuses. Andmete tiheduse kokkusurumine tihendab andmeid perioodiliselt Prometheuse kohalikus salvestuses, et vÀhendada ressursikasutust.

Kui installite Thanos Sidecari oma Prometheusesse, peate selle andmete tiheduse kokkusurutuse keelama, sest Thanos Sidecar ei oska normaalselt töötada, kui andmete tihedus on sisse lĂŒlitatud. See tĂ€hendab, et teie Prometheus hakkab salvestama andmeid plokkides kaheteistkĂŒmne tunni kaupa ja lĂ”petab nende plokkide liitmise suuremateks. Seega, kui teete pĂ€ringuid, mis ĂŒletavad kahte viimast tundi, töötavad need vĂ”rreldes sellega, kui andmete tiheduse kokkusurumine oleks sisse lĂŒlitatud, vĂ€hem efektiivselt.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

SeetĂ”ttu soovitab Thanos vĂ€hendada andmete sĂ€ilitamise aega kohalikus salvestuses 6-8 tunni peale, et vĂ€hendada paljude vĂ€ikeste plokkide ĂŒlemÀÀra.

PÀrast Thanos Sidecari installimist peate iga objektipÔhise salvestusbucket'i jaoks installima kaks komponenti. Need on Thanos Compactor ja Thanos Store Gateway.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

SeejĂ€rel tuleb installida Thanos Query ja seadistada see nii, et see oskaks ĂŒhenduda kĂ”ikide Thanos Store Gateway'dega, mis teil on, samuti oskaks see ĂŒhenduda kĂ”igi Thanos Sidecar'idega.

Siin vÔib olla vÀike probleem.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Te peate seadistama usaldusvÀÀrse ja turvalise ĂŒhenduse Thanos Query komponentidega. Ja kui teie Prometheused on erinevates andmekeskustes vĂ”i erinevates VPC-des, on neile vĂ€listest ĂŒhendustest juurdepÀÀs keelatud. Kuid Thanos Query tööks peate leidma muud viisi nende ĂŒhenduste seadistamiseks.

Kui teil on selliseid andmekeskusi palju, vĂ€heneb kogu sĂŒsteemi usaldusvÀÀrsus. Kuna Thanos Query peab pidevalt hoidma ĂŒhendusi kĂ”igi Thanos Sidecaridega, mis asuvad erinevates andmekeskustes. Iga sissetuleva pĂ€ringu korral saadab see pĂ€ringud kĂ”igile Thanos Sidecaridele. Kui ĂŒhendus katkeb, saate kas mittetĂ€ieliku andmestiku vĂ”i vastuse „kluster ei tööta”.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

VictoriaMetricsis on kĂ”ik veidi lihtsam. Ühikus toimiva versiooni jaoks piisab lihtsalt ĂŒhe binaari kĂ€ivitamisest ja kĂ”ik töötab.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Klastriversiooni jaoks peate kÀivitama kÔik eespool mainitud kolm komponenti soovitud arvudes vÔi kasutama helm charti komponentide automatiseeritud kÀivitamiseks Kuberneteses. Me plaanime ka Kubernetes operaatoreid luua. Helm chart ei kata mÔningaid juhtumeid ja vÔib pÔhjustada endale jalga tulistamist. NÀiteks vÔimaldab see vÀhendada salvestusnode'e arvu, mis toob kaasa andmete kadumise.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

PĂ€rast ĂŒhe binaari vĂ”i klastriversiooni kĂ€ivitamist piisab, kui lisada Prometheuse konfiguratsiooni remote write URL seadistus, et see hakkaks paralleelselt andmeid kirjutama nii kohalikku salvestusse kui ka kaugsalvestusse. Nagu te olete mĂ€rganud, peaks see konfiguratsioon olema palju usaldusvÀÀrsem vĂ”rreldes Thanos konfiguratsiooniga. Me ei pea hoidma ĂŒhendust VictoriaMetricsiga kĂ”igi Prometheustega, kuna Prometheused ĂŒhenduvad ise VictoriaMetricsiga ja edastavad andmeid.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Vaatame Thanos ja VictoriaMetrics hooldust.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Thanos peab jÀlgima Sidecar'i, et nad ei lÔpetaks andmete laadimist Object Storage'isse. Nad vÔivad lÔpetada selle andmete laadimise laadimisvigade tÔttu, nÀiteks kui teie vÔrk on ajutiselt katkenud Object Storage'iga vÔi kui Object Storage on ajutiselt kÀttesaamatu. Sellisel juhul mÀrkab Thanos Sidecar seda, teavitab veast, vÔib kokku kukkuda ja seejÀrel lÔpetada töötamise. Kui te ei jÀlgi seda, siis lÔpetate andmete edastamise Object Storage'isse. Kui retention periood (soovitatavalt 6-8 tundi) möödub, kaotate andmed, mis ei jÔudnud Object Storage'isse.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Thanos'e kompaktoreid vĂ”ivad peatada konkurentsitingimused Sidecar'iga. Kompaktoreid vĂ”etakse andmeid Object Storage'ist ja liidetakse need suurematesse andmeblokki. Kuna kompaktoreid ei ole sĂŒnkroniseeritud Sidecar'itega, vĂ”ib juhtuda jĂ€rgmine: Sidecar ei ole veel plokki lĂ”pule viinud, Kompaktor arvab, et see plokk on tĂ€ielikult salvestatud. Kompaktor hakkab seda lugema ja loeb ploki osaliselt ning lĂ”petab töötamise. Vaadake detaile. siit.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Store Gateway vĂ”ib edastada ebaĂŒhtlaseid andmeid konkurentsitingimustes kompaktori ja Sidecar'ite vahel. Siin on sama probleem, kuna Store Gateway ei ole kuidagi sĂŒnkroniseeritud kompaktori ja Sidecar'itega. SeetĂ”ttu vĂ”ivad tekkida vĂ”istluse olukorrad, kus Store Gateway ei nĂ€e osa andmeid vĂ”i nĂ€eb liigseid andmeid.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Thanos'e pÀringukomponent annab vaikimisi osalise tulemuse, kui mÔned Sidecar'id vÔi Store Gateway ei ole hetkel saadaval. Saate osa andmeid ja isegi ei tea, et te ei saanud kÔiki andmeid. See töötab nii vaikimisi. Sarnases olukorras VictoriaMetrics tagastab mÀrgistatud andmed osalistena.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Erinevalt Thanos'est, VictoriaMetrics harva kaotab andmeid. Isegi kui ĂŒhendus Prometheusega VictoriaMetrics'iga katkeb, ei ole see probleem, kuna Prometheus jĂ€tkab saabuvate uute andmete salvestamist Write Ahead Log'i, mille suurus on 2 tundi. Kui taastate ĂŒhenduse VictoriaMetrics'iga kahe tunni jooksul, ei kaota te andmeid. Prometheus suudab andmeid kirjutada pĂ€rast ĂŒhenduse taastamist VictoriaMetrics'iga..

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Erinevalt Thanosest, mis salvestab andmeid object storage'i alles kahe tunni pÀrast, replikeerib Prometheus automaatselt andmeid remote write protokolli kaudu remote storage'i, nagu VictoriaMetrics. Teil ei ole midagi karta, kui Promotions kaotab local storage'i. Kui see peaks kaotama local storage'i, kaotate te halvemal juhul vaid viimased sekundid andmeid, mis ei jÔudnud remote storage'i salvestada.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Kubernetes hallab klastrit automaatselt, erinevalt Thanosest. KĂ”iki Thanos komponentide on keeruline paigutada ĂŒhte Kubernetes klastrisse, erinevalt VictoriaMetrics klastrikomponentidest.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

VictoriaMetrics'i uuendamine uuele versioonile on vĂ€ga lihtne. Lihtsalt peatate VictoriaMetrics'i, uuendate binaarid ja kĂ€ivitate uuesti. SIGINT signaali kaudu peatamisel teevad kĂ”ik VictoriaMetrics'i binaarid gracefull shutdown'i. Nad salvestavad Ă”igesti vajalikud andmed ja sulgevad Ă”igesti sisenevad ĂŒhendused, et midagi ei kaoks. SeetĂ”ttu ei kaota te midagi uuendamise kĂ€igus.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

VictoriaMetrics'i klastrit on vÀga lihtne laiendada. Lihtsalt lisage vajalikud komponendid ja jÀtkake tööd.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Thanos ja VictoriaMetrics'i potentsiaalsete probleemide ĂŒlevaade.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Thanosel on jÀrgmised potentsiaalsed probleemid. Prometheus peab hoidma andmeid viimase kahe tunni jooksul. Kui need kaovad, kaotate need tÀielikult, kuna need ei ole veel jÔudnud Object Storage'i, nagu S3.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Store Gateway komponent ja compactor komponent vÔivad vajada palju mÀlu, et töötada suure Object Storage'iga, kui seal on palju vÀikeseid faile. Mida rohkem on faile ja nende suurust, seda rohkem vajavad Store Gateway ja compactor operatiivmÀlu metaandmete sÀilitamiseks. Thanosel on palju probleeme seoses sellega, et Store Gateway ja compactor kukuvad keskmise salvestatud andmemahtude korral kokku..

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Thanos reklaamib, et see suudab lĂ”putult skaleeruda teie Prometheuste arvu. Tegelikult ei ole see tĂ”si. KĂ”ik pĂ€ringud lĂ€hevad lĂ€bi Query komponendi, mis peab samaaegselt kĂŒsima kĂ”iki Store Gateway ja Sidecar komponente, et sealt andmeid vĂ€lja tĂ”mmata ja seejĂ€rel neid eelprotsessima. On ilmne, et pĂ€ringute kiirus on piiratud kĂ”ige aeglasema nĂ”rgima lĂŒli, aeglasima Store Gateway vĂ”i aeglasima Sidecar'i poolt.

Need components may be unevenly loaded. For example, you may have Prometheus collecting millions of metrics per second. And there is a Prometheus that collects thousands of metrics per second. The Prometheus collecting millions of metrics per second puts much more load on the server it runs on. Accordingly, the Sidecar operates slower there. In general, everything works slowly there. The Query component will pull data from there very slowly. Therefore, the performance of your entire cluster will be limited by this slow Sidecar.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

By default, Thanos delivers partial data if any Sidecars or the Store Gateway are unavailable. For instance, if you have Sidecars distributed around the world in different data centers, the likelihood of connection breaks and unavailability of components increases significantly. Consequently, in most cases, you will receive partial data without even knowing it.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

VictoriaMetrics also has its pitfalls. The first pitfall is an option that limits the amount of memory used for the VictoriaMetrics cache. By default, it is set to 60% of the RAM on the machine where VictoriaMetrics is running or 60% of the RAM of the VictoriaMetrics pod in Kubernetes.

If this value is incorrectly changed, it can compromise the performance of VictoriaMetrics. For example, if a value that is too low is set, the data may no longer fit into the VictoriaMetrics cache. Consequently, it will have to perform extra work and strain the processor with disk I/O. Setting this option too high increases, firstly, the likelihood of VictoriaMetrics crashing with an out of memory error, and secondly, it will leave very little memory available for the file cache in the operating system. VictoriaMetrics relies on file cache for performance. If it is insufficient, disk load may significantly increase. Therefore, the advice is not to change this parameter unless absolutely necessary.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

The second option is retentionPeriod — the period, which is by default set to 1 month. This is the time during which VictoriaMetrics stores data. After this period, VictoriaMetrics deletes the data.

Paljud kĂ€ivitavad VictoriaMetrics ilma selle parameetrita, salvestavad andmeid kuu aega. Ja siis kĂŒsivad: miks andmed kadusid eelmisel kuul? Sest retentionPeriod on vaikimisi 1 kuu. SeetĂ”ttu on oluline teada ja seada Ă”ige retentionPeriod.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Vaatame ĂŒle unikaalsed vĂ”imalused.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Thanosel on selline funktsioon nagu downsampling: 5-minutilised ja tunnised intervallid, mis sageli töötavad valesti. Kui googeldada ja vaadata nende issue teemasid githubis, on seal palju teemasid, mis on seotud selle downsamplinguga, et see töötab mÔnikord valesti vÔi ei toimi nii, nagu kasutajad ootavad.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Thanosel on andmete deduplikatsioon Prometheus HA paaride jaoks. Kui kaks Prometheust koguvad samu mÔÔdikuid samadelt sihtkohtadelt ja Thanos kogub need Object Storage'i. Thanos suudab neid andmeid Ôigesti deduplicaida, erinevalt VictoriaMetrics'ist.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Thanosel on alert komponent, mis oli Thanos'e skeemil. Kuid seda ei soovitata kasutada tootmises.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Thanosel on eelis, et Thanos'e ja Prometheuse kood on ĂŒhine. Thanos ja Prometheus on vĂ€lja töötatud samade arendajate poolt. Kui Thanos'e vĂ”i Prometheuse puhul tehakse tĂ€iustusi, kasu saavad mĂ”lemad.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

VictoriaMetrics'i peamine funktsioon on — MetricsQL. See on VictoriaMetrics'i laiendus PromQL-ile, millest ma rÀÀkisin eelmise suure jĂ€lgimise kohtumise ajal.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

VictoriaMetrics toetab andmete sisestamist mitmesuguste protokollide kaudu. VictoriaMetrics ei saa ainult andmeid Prometheuse kaudu, vaid ka protokollide Influx, OpenTSDB ja Graphite kaudu.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

VictoriaMetrics'i andmed vÔtavad tavaliselt palju vÀhem ruumi vÔrreldes Thanos'e ja Prometheusega.

Kui salvestada tegelikke andmeid, siis kasutajad rÀÀgivad 2-5 korda vÀiksemast andmete suurusest kettal vÔrreldes Prometheuse ja Thanos'ega.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Veel ĂŒks VictoriaMetrics'i eelis on see, et see on optimeeritud kiirusel.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Vaatame ĂŒle infrastruktuuri kulud.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Üks Thanos'e eelistest on see, et ta salvestab andmed objektide salvestusse, mis on suhteliselt odav.

Objektide salvestusse andmete salvestamisel peate tasuma andmete kirjutamise ja lugemise operatsioonide eest (10 dollarit miljoni operatsiooni kohta). Kui salvestate andmeid objektide salvestusse, maksate oma hostimise kulud andmete Internetti ĂŒles laadimise eest, kui teie klaster ei asu AWS-is — seal on see tasuta. Kui loote andmeid, maksate 10 kuni 230 dollarit 1TB eest. See vĂ”ib olla mĂ€rkimisvÀÀrne, kui kĂŒsitakse sageli ajaloolisi andmeid Thanos'e klastri kohta.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Thanos klastri jaoks on vaja tasuda Compact, Store Gateway, Query komponentide serverite eest, mis nÔuavad suurt mÀlu ja CPU-d suurte andmehulkade jaoks.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

VictoriaMetricsi kulud on sellised. Kui hoida andmeid GCE HDD kettadel, siis tuleb maksta 40 dollarit 1TB eest. VictoriaMetricsile piisab tavalistest HDD kettatest, SSD-d ei ole vajalikud, need maksavad viis korda rohkem. VictoriaMetrics on optimeeritud HDD-de jaoks.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

VictoriaMetrics vajab servereid komponentide jaoks: kas Single-node vĂ”i klastrikomponentide jaoks, mis erinevalt Thanos komponentidest nĂ”uavad palju vĂ€hem CPU-d ja RAM-i — seega on nad odavamad.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Rakendamise nÀited.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Thanos rakendamise nÀide on Gitlab. Gitlab töötleb tÀielikult Thanosel. Kuid kÔik ei ole seal liiga sujuv. Kui vaadata nende issues, siis vÔib nÀha, et neil tekivad pidevalt mingid operatiivprobleemid Thanos: Store Gateway vÔi Query komponentide jaoks vajatakse rohkem mÀlu. Neil tuleb pidevalt suurendada mÀlu mahtu.

Sellega seoses suurenevad kulud nende probleemide lahendamiseks.

Teine rakendus, mis vĂ”ib olla edukam — on ettevĂ”te Improbable, kes alustas Thanos arendamist. Nad avaldasid Thanos allikaid. Improbable on ettevĂ”te, mis tegeleb mĂ€ngumootorite arendamisega.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

VictoriaMetricsi avalikud rakendamise nÀited on:

  • wix.com veebilehtede koostaja
  • Adidas rakendab VictoriaMetricsi ja tegi isegi ettekande viimasel PromCon 2019
  • TrafficStars — reklaamivĂ”rgustik
  • Seznam.cz — populaarne TĆĄehhi otsingumootor.

Edasi on olnud nimetamata ettevÔtted, keda ma hetkel ei saa nimetada. Nad ei andnud nÔusolekut.

  • Üks suur mĂ€ngude arendaja. Suurem kui Improbable.
  • Suur graafika tarkvara arendaja.
  • Suur Vene pank.
  • Euroopa tuulegeneraatormootorite tootja, kes on edukalt testinud VictoriaMetricsi. See tootja rakendab VictoriaMetricsi andmete jĂ€lgimiseks, mis on saadud tuulegeneraatoritest, kiirusel 50 proovide sekundis iga sensori kohta. Igas tuulegeneraatormootoris on mitu sada sensori. Neil on mitu sada tuulegeneraatormootorit.
  • Venemaa lennufirmad, kes soovivad rakendada VictoriaMetricsit, aga ei saa kunagi hakkama. Meie oleme lepingueelsetes lĂ€birÀÀkimistes.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetricsJĂ€reldused.

VictoriaMetrics ja Thanos lahendavad sarnaseid probleeme, kuid erinevate meetoditega:

  • Globaalne pĂ€ringuvĂ€ljavaade
  • horisontaalne skaala
  • valikuline sĂ€ilitamine

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

AitÀh.

Ootame teid meie telegrami kanalis.

Valime andmesalvestust Prometheus'e jaoks: Thanos vs VictoriaMetrics

Ainult registreeritud kasutajad saavad kĂŒsitluses osaleda. Logige sisse, palun.

Mida te kasutate Prometheuse pikaajalise salvestamise jaoks?

  • 35,3%Thanos6

  • 0,0%Cortex0

  • 0,0%M3DB0

  • 41,2%VictoriaMetrics7

  • 23,5%muu4

HÀÀletas 17 kasutajat. JÀtkas 16 kasutajat.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster