VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Hej alla. Nedan Àr utskriften rapport frÄn Big Monitoring Meetup 4.

Prometheus – ett övervakningssystem för olika system och tjĂ€nster, med hjĂ€lp av vilket systemadministratörer kan samla in information om aktuella parametrar för system och sĂ€tta upp larm för att ta emot aviseringar om avvikelser i driften av systemen.

Rapporten kommer att innehĂ„lla en jĂ€mförelse Thanos Đž VictoriaMetrics — Projekt för lĂ„ngtidslagring av Prometheus-mĂ„tt.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Spela upp video

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Först ska jag berÀtta om Prometheus. Detta Àr ett övervakningssystem som samlar in mÀtvÀrden frÄn specificerade mÄl och sparar dem till lokal lagring. Prometheus kan spela in mÀtvÀrden till fjÀrrlagring och kan generera varningar och inspelningsregler.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Prometheus begrÀnsningar:

  • Den har ingen global frĂ„gevy. Det Ă€r nĂ€r du har flera oberoende instanser av prometheus. De samlar in mĂ„tt. Och du vill frĂ„ga utöver alla dessa mĂ€tvĂ€rden som samlats in frĂ„n olika prometheus-instanser. Prometheus tillĂ„ter inte detta.
  • Med prometheus Ă€r prestandan begrĂ€nsad till endast en server. Prometheus skalar inte automatiskt över flera servrar. Du kan bara manuellt dela upp dina mĂ„l mellan flera Prometheus.
  • Omfattningen av mĂ€tvĂ€rden i Prometheus Ă€r begrĂ€nsad till bara en server av samma anledning som den inte kan skalas automatiskt över flera servrar.
  • Det Ă€r inte sĂ„ lĂ€tt att organisera datasĂ€kerhet i Prometheus.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Lösningar pÄ dessa problem/utmaningar?

Lösningarna Àr:

Alla dessa lösningar Àr för fjÀrrlagring av data som samlats in av Prometheus. De löser problemet med fjÀrrlagring frÄn föregÄende bild pÄ olika sÀtt. I den hÀr presentationen kommer jag bara att prata om de tvÄ första lösningarna: Thanos О VictoriaMetrics.

För första gÄngen information om Thanos dök upp av denna lÀnk. Arkitekturen beskrivs dÀr Thanos och hur det fungerar.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Thanos tar data som Prometheus sparade till den lokala disken och kopierar den till S3, till GCS eller till en annan objektlagring.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Thanos tillhandahÄller alltsÄ en global frÄgevy. Du kan söka efter data som lagras i objektlagring frÄn flera Prometheus-instanser.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Thanos stöder PromQL och Prometheus querying API.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Thanos anvÀnder Prometheus-kod för att lagra data.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Thanos Àr utvecklad av samma utvecklare som Prometheus.

ĐŸŃ€ĐŸ VictoriaMetrics. hĂ€r lĂ€nk, dĂ€r vi först pratade om VictoriaMetrics.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics tar emot data frÄn flera prometheus fjÀrrskriv-API protokoll som stöds av Prometheus.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics tillhandahÄller en global frÄgevy, eftersom flera Prometheus-instanser kan skriva data till en VictoriaMetrics. Följaktligen kan du göra frÄgor om alla dessa data.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics stöder ocksÄ, som Thanos, PromQL och Prometheus querying API.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Till skillnad frÄn Thanos Àr VictoriaMetrics kÀllkod skriven frÄn grunden och Àr optimerad för hastighet och resursförbrukning.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics, till skillnad frĂ„n Thanos, skalar bĂ„de vertikalt och horisontellt. Äta Enkelnodsversion, som skalar vertikalt. Du kan börja med en processor och 1 GB minne och gradvis vĂ€xa till hundratals processorer och 1 TB minne. VictoriaMetrics kan anvĂ€nda alla dessa resurser. Dess prestanda kommer att öka med cirka 100 gĂ„nger jĂ€mfört med ett 1-kĂ€rnigt system.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Thanos historia började i november 2017, nÀr det första offentliga engagemanget dök upp. Innan detta utvecklades Thanos internt osannolikt.io.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

I juni 2019 fanns det en landmÀrkeversion 0.5.0, dÀr tog bort skvaller protokoll. Han togs bort frÄn Thanos eftersom han inte presterade bra. Ofta fungerade inte Thanos-klustret korrekt, noder kopplade till det felaktigt pÄ grund av skvallerprotokollet. DÀrför bestÀmde vi oss för att ta bort honom dÀrifrÄn. Jag tror att detta Àr rÀtt beslut.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Samma juni 2019 skickade de ansökningsnummer 256 ĐČ Cloud Native Computing Foundation.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Och efter ett par mÄnader antogs Thanos Cloud Native Computing Foundation, som inkluderar Prometheus, Kubernetes och andra populÀra projekt.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

I januari 2018 började utvecklingen av VictoriaMetrics.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

I september 2018 nÀmnde jag VictoriaMetrics offentligt för första gÄngen.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

I december 2018 publicerades en enkelnodsversion.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

I maj 2019 publicerades kÀllor för bÄde enkelnods- och klusterversioner.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

I juni 2019 skickade vi, precis som Thanos, in en ansökan till CNCF-stiftelsen under nummer 255. Vi ansökte en dag innan Thanos ansökte.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Men tyvÀrr har vi fortfarande inte blivit accepterade dÀr. SamhÀllshjÀlp behövs.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

LÄt oss titta pÄ de viktigaste bilderna som visar arkitekturen i Thanos och VictoriaMetrics.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

LÄt oss börja med Thanos. De gula komponenterna Àr Prometheus-komponenter. Allt annat Àr Thanos-komponenter. LÄt oss börja med den viktigaste komponenten. Thanos sidovagn Àr en komponent som installeras bredvid varje Prometheus. Den laddar Prometheus-data frÄn lokal lagring till S3 eller annan objektlagring.

Det finns ocksÄ en komponent som heter Thanos Store Gateway, som kan lÀsa denna data frÄn Object Storage vid inkommande förfrÄgningar frÄn Thanos Query. Thanos Query implementerar PromQL och Prometheus API. Det vill sÀga frÄn utsidan ser det ut som Prometheus. Tar emot PromQL-förfrÄgningar, skickar dem till Thanos Store Gateway, Thanos Store Gateway hÀmtar nödvÀndig data frÄn Object Storage, skickar tillbaka den.

Men vi lagrar data i Object Storage utan de senaste tvÄ timmarna pÄ grund av en funktion i Thanos Sidecar-implementeringen, som inte kan ladda upp de senaste tvÄ timmarna till Object Storage S3, eftersom Prometheus Ànnu inte har skapat filer för dessa tvÄ timmar i lokal lagring.

Hur bestÀmde du dig för att komma runt detta? Thanos Query, förutom förfrÄgningar till Thanos Store Gateway, skickar parallella förfrÄgningar till varje Thanos Sidecar, som ligger bredvid Prometheus.

Och Thanos Sidecar, i sin tur, fullmaktsförfrÄgningar vidare till Prometheus och hÀmtar data för de senaste tvÄ timmarna.

Utöver dessa komponenter finns det ocksÄ en valfri komponent utan vilken Thanos inte kommer att fungera bra. Det hÀr Àr Thanos Compact, som ansvarar för att slÄ samman smÄ filer pÄ Object Storage till större filer som laddades upp hÀr av Thanos Sidecars. Thanos Sidecar laddar upp datafiler dit pÄ tvÄ timmar. Dessa filer, om de inte slÄs samman till större filer, kan deras antal vÀxa mycket avsevÀrt. Ju fler sÄdana filer, desto mer minne behövs för Thanos Store Gateway, desto mer resurser behövs för att överföra data över nÀtverket och metadata. Thanos Store Gateway blir ineffektiv. DÀrför Àr det nödvÀndigt att köra Thanos Compact, som slÄr samman smÄ filer till större, sÄ att det finns fÀrre sÄdana filer och för att minska overhead pÄ Thanos Store Gateway.

Det finns ocksÄ en sÄdan komponent som Thanos Ruler. Den kör Prometheus varningsregler och kan utvÀrdera Prometheus inspelningsregler för att skriva tillbaka data till Object Storage. Men den hÀr komponenten rekommenderas inte att anvÀndas, eftersom... han tenderar att returnera ofullstÀndiga data.

Detta Àr Thanos enkla schema.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

LÄt oss nu jÀmföra det med VictoriaMetrics-schemat.

VictoriaMetrics har 2 versioner: Enkelnods- och klusterversion. Enkelnod körs pÄ en dator. Single-nod har inte dessa komponenter, bara en binÀr. Den hÀr binÀren pÄ bilden ser ut som den hÀr kvadraten. Allt som finns inuti kvadraten Àr innehÄllet i den binÀra filen för Single-nod-versionen. Du behöver inte veta om honom. Du kör bara binÀren och allt fungerar för oss.

Klusterversionen Àr mer komplicerad. Inuti den finns tre olika komponenter: vmselect, vminsert och vmstorage. Av deras namn borde det framgÄ vad var och en av dem gör. Insert-komponenten accepterar data i olika format: frÄn Prometheus fjÀrrskriv-API, Influx-linjeprotokollet, Graphite-protokollet och OpenTSDB-protokollet. Insert-komponenten accepterar dem, analyserar dem och distribuerar dem mellan befintliga lagringskomponenter, dÀr data redan Àr lagrad. Select-komponenten accepterar i sin tur PromQL-frÄgor. Han genomför PromQL, sÄvÀl som Prometheus förfrÄgnings-API, och det kan anvÀndas som en ersÀttning för Prometheus i Grafana eller andra Prometheus API-klienter. Select accepterar en promql-begÀran, analyserar den, lÀser nödvÀndig data för att exekvera denna begÀran frÄn lagringsnoder, bearbetar dessa data och returnerar ett svar.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

LÄt oss jÀmföra komplexiteten i att installera Thanos och VictoriaMetrics.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

LÄt oss börja med Thanos. Innan du börjar arbeta med Thanos mÄste du skapa en hink i Object Storage, till exempel S3 eller GCS, sÄ att Thanos Sidecar kan skriva data till den.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Sedan mÄste du installera Thanos sidovagn för varje Prometheus. Innan detta mÄste du komma ihÄg att inaktivera datakomprimering i Prometheus. Datakomprimering komprimerar regelbundet data i lokal Prometheus-lagring för att minska resursförbrukningen.

NÀr du installerar Thanos Sidecar pÄ din Prometheus mÄste du inaktivera denna datakomprimering, eftersom Thanos Sidecar inte fungerar korrekt med datakomprimering aktiverad. Detta innebÀr att din Prometheus börjar spara data i tvÄtimmarsblock och slutar slÄ samman dessa block till större. Följaktligen, om du gör frÄgor som överskrider lÀngden pÄ de senaste tvÄ timmarna, kommer de inte att fungera lika effektivt som de skulle kunna fungera om datakomprimering var aktiverad.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

DÀrför rekommenderar Thanos att minska lagringstiden för data i lokal lagring till 6-8 timmar för att minska omkostnaderna för ett stort antal smÄ block.

NÀr du har installerat Thanos Sidecar mÄste du installera tvÄ komponenter för varje objektlagringshink. Dessa Àr Thanos Compactor och Thanos Store Gateway.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Efter det mÄste du installera Thanos Query och konfigurera den sÄ att den kan ansluta till alla Thanos Store Gateways som du har, och Àven kan ansluta till alla Thanos Sidecars.

Det kan finnas ett litet problem hÀr.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Du mÄste konfigurera en pÄlitlig och sÀker anslutning frÄn Thanos Query till dessa komponenter. Och om din Prometheus Àr placerad i olika datacenter, eller i olika VPC:er, Àr anslutningar till dem utifrÄn förbjudna. Men för att Thanos Query ska fungera mÄste du pÄ nÄgot sÀtt konfigurera anslutningen dÀr, och du mÄste hitta ett sÀtt.

Om du har mÄnga sÄdana datacenter, minskar dÀrför tillförlitligheten för hela systemet. Eftersom Thanos Query stÀndigt mÄste upprÀtthÄlla anslutningar till alla Thanos Sidecars som finns i olika datacenter. För varje inkommande förfrÄgan kommer den att dirigera förfrÄgningar till alla Thanos sidovagnar. Om anslutningen avbryts kommer du antingen att fÄ en ofullstÀndig datauppsÀttning eller sÄ fÄr du ett "kluster Àr nere"-svar.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

I VictoriaMetrics Àr allt lite enklare. För Single-nod-versionen behöver du bara köra en binÀr och allt fungerar.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

I klusterversionen rÀcker det att köra alla ovanstÄende tre typer av komponenter i vilken mÀngd du behöver, eller anvÀnder rodret diagram för att automatisera lanseringen av komponenter i Kubernetes. Vi planerar ocksÄ att göra en Kubernetes-operatör. Helm-diagrammet tÀcker inte vissa fall och lÄter dig skjuta dig sjÀlv i foten. Till exempel lÄter det dig minska antalet lagringsnoder, vilket kommer att leda till dataförlust.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Efter att du har lanserat en binÀr eller en klustrad version behöver du bara lÀgga till Prometheus i konfigurationen instÀllning för fjÀrrskriv-urlsÄ att den börjar skriva data parallellt med lokal lagring och fjÀrrlagring. Som du kan se bör denna konfiguration fungera mycket mer tillförlitligt jÀmfört med Thanos-konfigurationen. Vi behöver inte upprÀtthÄlla en anslutning frÄn VictoriaMetrics till alla Prometheus, eftersom Prometheus sjÀlva ansluter till VictoriaMetrics och överför data.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

LÄt oss övervÀga stödet frÄn Thanos och VictoriaMetrics.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Thanos mÄste övervaka Sidecar för att se till att de inte slutar ladda data till Object Storage. De kan stoppa denna datanedladdning pÄ grund av nedladdningsfel, till exempel Àr din nÀtverksanslutning till Object Storage tillfÀlligt avbruten eller Object Storage Àr tillfÀlligt otillgÀnglig. Thanos Sidecar kommer att mÀrka detta just nu, rapportera ett fel, kan krascha och sedan sluta fungera. Om du inte övervakar det kommer du att sluta överföra data till Object Storage. Om lagringstiden gÄr över (6-8 timmar rekommenderas) sÄ kommer du att förlora data som inte hamnat i Object Storage.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Thanos komprimatorer kan sluta fungera pga race med Sidecar. Kompaktörer tar data frÄn Object Storage och slÄr samman dem till större databitar. Eftersom komprimatorer inte Àr synkroniserade med Sidecars kan följande hÀnda: Sidecar har Ànnu inte hunnit slutföra blocket, Compactor beslutar att detta block Àr helt skrivet. Compactor börjar lÀsa den. Den lÀser inte blocket i sin helhet och slutar fungera. Se detaljer hÀr.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Store Gateway kan returnera inkonsekventa data pÄ grund av tÀvlingar mellan Compactor och Sidecars. Samma sak hÀnder hÀr, eftersom Store Gateway inte Àr synkroniserad med Compactors och Sidecars pÄ nÄgot sÀtt. Följaktligen kan tÀvlingsförhÄllanden uppstÄ nÀr Store Gateway inte ser delar av data eller ser onödig data.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

FrÄgekomponenten i Thanos returnerar som standard ett delresultat om vissa sidovagnar eller butiksgateways inte Àr tillgÀngliga för tillfÀllet. Du kommer att fÄ en del av uppgifterna, och du kommer inte ens att veta att du inte har fÄtt alla uppgifter. SÄ hÀr fungerar det som standard. I en liknande situation returnerar VictoriaMetrics markerade data som partiella.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Till skillnad frĂ„n Thanos förlorar VictoriaMetrics sĂ€llan data. Även om anslutningen frĂ„n Prometheus till VictoriaMetrics avbryts Ă€r detta inget problem, eftersom Prometheus fortsĂ€tter att registrera inkommande ny data i Write Ahead Log, vars storlek Ă€r 2 timmar. Om du Ă„terstĂ€ller din anslutning till VictoriaMetrics inom tvĂ„ timmar kommer din data inte att gĂ„ förlorad. Prometheus kan lĂ€gga till data efter att ha Ă„terstĂ€llt anslutningen till VictoriaMetrics.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Till skillnad frÄn Thanos, som skriver data till objektlagring först efter tvÄ timmar, replikerar Prometheus automatiskt data med hjÀlp av fjÀrrskrivprotokollet till fjÀrrlagring, sÄsom VictoriaMetrics. Du Àr inte rÀdd för att förlora lokal lagring i Prometheus. Om han plötsligt förlorade lokal lagring, sÄ kommer du i vÀrsta fall att förlora de sista sekunderna av data som inte hann spelas in i fjÀrrlagring.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Kubernetes hanterar automatiskt klustret, till skillnad frÄn Thanos. Det Àr svÄrt att placera alla Thanos-komponenter i ett Kubernetes-kluster, till skillnad frÄn VictoriaMetrics-klusterkomponenter.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics har en mycket enkel uppdatering till den nya versionen. Stoppa bara VictoriaMetrics, uppdatera binÀrfilerna och starta den. NÀr de stoppas via en SIGINT-signal utför alla VictoriaMetrics-binÀrer en graciös avstÀngning. De sparar nödvÀndig data korrekt, stÀnger inkommande anslutningar korrekt för att inte förlora nÄgot. SÄ du kommer inte att förlora nÄgot nÀr du uppgraderar.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics gör det mycket enkelt att utöka ett kluster. LÀgg bara till de nödvÀndiga komponenterna och fortsÀtt arbeta.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Om fallgropar i Thanos och VictoriaMetrics.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Thanos har följande fallgropar. Prometheus mÄste lagra data för de senaste tvÄ timmarna. Om de gÄr vilse kommer du att förlora dem helt eftersom de Ànnu inte har skrivits till Object Storage som S3.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Store Gateway-komponenten och komprimeringskomponenten kan krÀva mycket minne för att fungera med en stor objektlagring om det finns mÄnga smÄ filer lagrade dÀr. Ju större antal och storlek pÄ filer, desto mer Store Gateway och komprimator-RAM krÀvs för att lagra metainformation. Thanos har mÄnga frÄgor om det Store Gateway och komprimator kraschar med genomsnittliga volymer inspelad data.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Thanos annonseras för att skala pÄ obestÀmd tid med mÀngden Prometheus du har. Detta Àr faktiskt inte sant. Eftersom alla förfrÄgningar gÄr igenom Query-komponenten, som samtidigt mÄste polla alla Store Gateway-komponenter och alla Sidecar-komponenter, hÀmtar du data dÀrifrÄn och förbearbetar den sedan. Uppenbarligen begrÀnsas förfrÄgningshastigheten av den lÄngsammaste svaga lÀnken, den lÄngsammaste Store Gatewayen eller den lÄngsammaste Sidecar.

Dessa komponenter kan vara ojÀmnt belastade. Till exempel har du Prometheus, som samlar in miljontals mÀtvÀrden per sekund. Och det finns Prometheus, som samlar in tusentals mÀtvÀrden per sekund. Prometheus, som samlar in miljontals mÀtvÀrden per sekund, lÀgger en mycket högre belastning pÄ servern den körs pÄ. Följaktligen fungerar Sidecar lÄngsammare dÀr. Och i allmÀnhet fungerar allt lÄngsamt dÀr. Och Query-komponenten kommer att hÀmta data dÀrifrÄn mycket lÄngsamt. Följaktligen kommer prestandan för hela ditt kluster att begrÀnsas av denna lÄngsamma sidovagn.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Som standard ger Thanos partiell data om vissa sidovagnar och antingen Store Gateway Àr otillgÀngliga. Till exempel, om dina Sidecars Àr utspridda runt om i vÀrlden i olika datacenter, ökar sannolikheten för ett anslutningsfel och otillgÀnglighet av komponenter avsevÀrt. Följaktligen kommer du i de flesta fall att fÄ delar av data utan att ens veta om det.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics har ocksÄ fallgropar. Den första fallgropen Àr alternativet som begrÀnsar mÀngden RAM som anvÀnds för VictoriaMetrics cache. Som standard Àr det lika med 60 % av RAM-minnet pÄ maskinen dÀr VictoriaMetrics körs eller 60 % av RAM-minnet för VictoriaMetrics-podden i Kubernetes.

Om du Àndrar detta vÀrde felaktigt kan du förstöra prestandan för VictoriaMetrics. Till exempel, om du stÀller in vÀrdet för lÄgt kanske data inte lÀngre fÄr plats i VictoriaMetrics cache. PÄ grund av detta kommer hon att behöva göra extra arbete och ladda processorn och disken. Om du gör det hÀr alternativet för stort ökar det för det första sannolikheten att VictoriaMetrics kraschar med ett minnesfel, och för det andra kommer det att leda till att det kommer att finnas vÀldigt lite RAM kvar i operativsystemets minne för filcache. Och VictoriaMetrics förlitar sig pÄ en filcache för prestanda. Om det inte rÀcker kan belastningen pÄ disken öka kraftigt. DÀrför rÄd: Àndra inte parametern om det inte Àr absolut nödvÀndigt.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Andra alternativet. Detta Àr retentionPeriod - en period som Àr instÀlld pÄ 1 mÄnad som standard. Detta Àr hur lÄng tid VictoriaMetrics lagrar data. Efter denna period raderar VictoriaMetrics data.

MÄnga kör VictoriaMetrics utan denna parameter och registrerar data under en mÄnad. Och dÄ frÄgar de: varför försvann uppgifterna för föregÄende mÄnad? Eftersom standardretentionsperioden Àr 1 mÄnad. DÀrför mÄste du kÀnna till och stÀlla in rÀtt retentionsperiod.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

LÄt oss ta en titt pÄ de unika funktionerna.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Thanos har en funktion som kallas nedsampling: 5-minuters- och timintervall, vilket ofta inte fungerar korrekt. Om du googlar och tittar pÄ deras problem pÄ github sÄ finns det mÄnga problem relaterade till denna nedsampling, att det ibland inte fungerar korrekt, eller inte fungerar som anvÀndarna förvÀntar sig.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Thanos har datadeduplicering för Prometheus HA-par. NÀr tvÄ Prometheus samlar in samma mÀtvÀrden frÄn samma mÄl och Thanos lagrar dem i Object Storage. Thanos kan korrekt deduplicera denna data, till skillnad frÄn VictoriaMetrics.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Thanos har en varningskomponent som fanns i Thanos-schemat. Men han rekommenderas inte för anvÀndning i produktionen.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Thanos har fördelen att Thanos och Prometheus delar samma kod. Thanos och Prometheus Àr utvecklade av samma utvecklare. Med förbÀttringar av Thanos eller Prometheus vinner den andra sidan.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics huvudfunktion Àr MetricsQL. Det hÀr Àr VictoriaMetrics-tillÀgg för PromQL, som jag pratade om vid den tidigare stora övervakningsmetupen.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics stöder dataladdning med mÄnga olika protokoll. VictoriaMetrics kan inte bara acceptera data frÄn Prometheus, utan Àven via protokollen Influx, OpenTSDB och Graphite.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics-data tar mycket mindre plats jÀmfört med Thanos och Prometheus.

Om du spelar in riktig data talar anvÀndarna om en 2-5 gÄngers minskning av storleken pÄ data pÄ disk jÀmfört med Prometheus och Thanos.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

En annan fördel med VictoriaMetrics Àr att den Àr optimerad för hastighet.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

LÄt oss titta pÄ kostnaderna för infrastruktur.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

En av fördelarna med Thanos Àr att den lagrar data i objektlagring, vilket Àr relativt billigt.

NÀr du lagrar data i objektlagring mÄste du betala för dataskriv- och lÀsoperationer ($10 per miljon operationer). NÀr du skriver data till objektlagring betalar du dina hostingkostnader för att ladda upp data till Internet; om ditt kluster inte finns i AWS Àr det gratis dÀr. NÀr du lÀser data betalar du mellan $10 och $230 per 1TB. Detta kan vara viktigt om du ofta frÄgar efter historiska data frÄn Thanos-klustret.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

För ett Thanos-kluster mÄste du betala för servrar för Compact, Store Gateway, Query-komponenter som krÀver mycket minne och CPU för stora datamÀngder.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics har följande utgifter. Om du lagrar data pÄ GCE HDD-enheter kommer det ut pÄ $40 för 1TB. För VictoriaMetrics rÀcker det med vanliga hÄrddiskar, inga SSD-enheter, som kostar fem gÄnger mer, behövs. VictoriaMetrics Àr optimerad för hÄrddisk.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics krÀver servrar för komponenter: antingen Single-nod eller klustrade komponenter, som, till skillnad frÄn Thanos-komponenter, krÀver mycket mindre CPU och RAM - och blir dÀrför billigare.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Exempel pÄ genomförande.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Thanos har ett implementeringsexempel i Gitlab. Gitlab körs helt pÄ Thanos. Men allt Àr inte sÄ smidigt dÀr. Om man tittar pÄ dem problem, dÄ kan du se att de hela tiden har nÄgra operativa problem med Thanos: Det finns inte tillrÀckligt med minne för Store Gateway- eller Query-komponenterna. De mÄste hela tiden öka mÀngden minne.

PÄ grund av detta ökar kostnaderna för att lösa dessa problem.

Den andra implementeringen, som kan vara mer framgÄngsrik, Àr företaget Improbable, som började utveckla Thanos. De publicerade Thanos kÀllkod. Improbable Àr ett företag som utvecklar spelmotorer.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics har exempel pÄ offentliga implementeringar:

  • wix.com webbplatsbyggare
  • Adidas implementerar VictoriaMetrics och gjorde till och med en presentation vid den senaste PromCon 2019
  • TrafficStars - annonsnĂ€tverk
  • Seznam.cz Ă€r en populĂ€r tjeckisk sökmotor.

Och sÄ fanns det företag utan namn som jag inte kan namnge nu. De samtyckte inte.

  • En stor spelutvecklare. Större Ă€n osannolikt.
  • Stor grafisk mjukvaruutvecklare.
  • Stor rysk bank.
  • Europeisk vindkraftstillverkare som framgĂ„ngsrikt har testat VictoriaMetrics. Denna tillverkare implementerar VictoriaMetrics för att övervaka data som samlas in frĂ„n vindkraftverk med en hastighet av 50 prover per sekund per sensor. Varje vindturbin har flera hundra sensorer. De har flera hundra vindkraftverk.
  • Ryska flygbolag som vill implementera VictoriaMetrics, men som fortfarande inte kan. Vi Ă€r pĂ„ kontraktsstadiet med dem.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetricsSlutsatser.

VictoriaMetrics och Thanos löser liknande problem, men pÄ olika sÀtt:

  • Global frĂ„gevy
  • horisontell skalning
  • godtycklig retention

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Tack.

Vi vÀntar pÄ dig hos oss telegram kanal.

VÀlja en datalagring för Prometheus: Thanos vs VictoriaMetrics

Endast registrerade anvÀndare kan delta i undersökningen. Logga in, SnÀlla du.

Vad anvÀnder du som lÄngtidsförvaring för Prometheus?

  • 35,3%Thanos6

  • 0,0%Cortex0

  • 0,0%M3DB0

  • 41,2%VictoriaMetrics7

  • 23,5%andra 4

17 anvÀndare röstade. 16 anvÀndare avstod frÄn att rösta.

KĂ€lla: will.com

Köp pĂ„litlig hosting för webbplatser med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster