Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Hallo alle sammen. Nedenfor er transkripsjonen. rapport fra Big Monitoring Meetup 4.

Prometheus – et system for overvĂ„king av ulike systemer og tjenester, som systemadministratorer kan bruke til Ă„ samle inn informasjon om gjeldende systemparametere og sette opp varsler for Ă„ motta varsler om avvik i systemenes drift.

Rapporten vil inneholde en sammenligning Thanos Đž VictoriaMetrics — prosjekter for langtidslagring av Prometheus-mĂ„linger.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Spill av video

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

FÞrst skal jeg fortelle deg om Prometheus. Det er et overvÄkingssystem som samler inn mÄlinger fra spesifiserte mÄl og lagrer dem lokalt. Prometheus kan registrere mÄlinger til ekstern lagring, generere varsler og registrere regler.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Prometheus-begrensninger:

  • Den har ikke en global spĂžrrevisning. Dette er nĂ„r du har flere uavhengige Prometheus-instanser. De samler inn mĂ„linger. Og du vil spĂžrre over alle disse mĂ„lingene som er samlet inn fra forskjellige Prometheus-instanser. Prometheus tillater ikke det.
  • Prometheus er begrenset til Ă©n enkelt server. Prometheus kan ikke skaleres automatisk til flere servere. Du kan bare dele mĂ„lene dine manuelt mellom flere Prometheus-er.
  • MĂ„levolumet i Prometheus er begrenset til bare Ă©n server av samme grunn som det ikke kan skaleres automatisk pĂ„ tvers av flere servere.
  • Prometheus er ikke et enkelt sted Ă„ organisere datasikkerhet.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

LÞsninger pÄ disse problemene/oppgavene?

LĂžsningene er:

Alle disse lÞsningene er for fjernlagring av data samlet inn av Prometheus. De lÞser problemet med fjernlagring fra forrige lysbilde pÄ forskjellige mÄter. I denne presentasjonen vil jeg bare snakke om de to fÞrste lÞsningene: Thanos О VictoriaMetrics.

For fÞrste gang informasjon om Thanos dukket opp pÄ denne linkenArkitekturen er beskrevet der. Thanos og hvordan det fungerer.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Thanos tar dataene som Prometheus har lagret pÄ den lokale disken og kopierer dem til S3. GCS eller til et annet objektlager.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

PÄ denne mÄten tilbyr Thanos en global spÞrrevisning. Du kan spÞrre data lagret i objektlagring fra flere Prometheus-instanser.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Thanos stĂžtter PromQL og Prometheus Querying API.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Thanos bruker Prometheus-kode for Ă„ lagre data.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Thanos er utviklet av de samme utviklerne som Prometheus.

ĐŸŃ€ĐŸ VictoriaMetrics. Her link, hvor vi fĂžrst fortalte om VictoriaMetrics.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics mottar data fra flere Prometheus API for ekstern skriving protokoll stĂžttet av Prometheus.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics tilbyr en global spÞrrevisning, ettersom flere Prometheus-instanser kan skrive data til én VictoriaMetrics. FÞlgelig kan du spÞrre pÄ tvers av alle disse dataene.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics stÞtter ogsÄ, som Thanos, PromQL og Prometheus spÞrrings-API.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

I motsetning til Thanos er kildekoden til VictoriaMetrics skrevet fra bunnen av og optimalisert for hastighet og ressursforbruk.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics, i motsetning til Thanos, skalerer bÄde vertikalt og horisontalt. Det finnes Enkeltnodeversjon, som skaleres vertikalt. Du kan starte med én prosessor og 1 GB minne og gradvis vokse til hundrevis av prosessorer og 1 TB minne. VictoriaMetrics kan bruke alle disse ressursene. Ytelsen vil Þke med omtrent 100 ganger sammenlignet med et system med én kjerne.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Thanos' historie begynte i november 2017, da den fĂžrste offentlige commit-en dukket opp. FĂžr det ble Thanos utviklet internt. usannsynlig.io.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

I juni 2019 kom en milepÊlsutgivelse 0.5.0, som fjernet sladder protokoll. Den ble fjernet fra Thanos fordi den ikke viste seg fra sin beste side. Thanos-klyngen fungerte ofte ikke riktig, noder koblet seg ikke riktig til den pÄ grunn av sladderprotokollen. Derfor bestemte de seg for Ä fjerne den derfra. Jeg tror dette er den riktige avgjÞrelsen.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

I samme juni 2019 sendte de sĂžknadsnummer 256 ĐČ Cloud Native Computing Foundation.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Og etter et par mÄneder ble Thanos tatt opp i Cloud Native Computing Foundation, som inkluderer Prometheus, Kubernetes og andre populÊre prosjekter.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Utviklingen av VictoriaMetrics startet i januar 2018.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

I september 2018 nevnte jeg VictoriaMetrics offentlig for fĂžrste gang.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Enkelnodeversjonen ble publisert i desember 2018.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

I mai 2019 ble publisert kilder for bÄde versjoner med én node og klynger.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

I juni 2019 sendte vi, akkurat som Thanos, inn en sÞknad til CNCF-stiftelsen under nummer 255Vi sÞkte én dag fÞr Thanos sÞkte.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Men dessverre har vi fortsatt ikke blitt tatt opp der. Vi trenger lokalsamfunnets hjelp.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

La oss se pÄ de viktigste lysbildene som viser arkitekturen til Thanos og VictoriaMetrics.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

La oss starte med Thanos. De gule komponentene er Prometheus-komponenter. Alt annet er Thanos-komponenter. La oss starte med den viktigste komponenten. Thanos Sidecar er en komponent som installeres ved siden av hver Prometheus. Den gjĂžr jobben med Ă„ laste Prometheus-data fra lokal lagring til S3 eller annen objektlagring.

Det finnes ogsÄ en komponent kalt Thanos Store Gateway, som kan lese disse dataene fra Object Storage ved innkommende forespÞrsler fra Thanos Query. Thanos Query implementerer PromQL og Prometheus API. Det vil si at det utenfra ser ut som Prometheus. Den aksepterer PromQL-forespÞrsler, sender dem til Thanos Store Gateway, og Thanos Store Gateway henter de nÞdvendige dataene fra Object Storage og sender dem tilbake.

Men vi lagrer data i Object Storage uten de siste to timene pÄ grunn av implementeringsfunksjonen til Thanos Sidecar, som ikke kan laste opp de siste to timene til Object Storage S3, siden Prometheus ennÄ ikke har opprettet filer i den lokale lagringen for disse to timene.

Hvordan bestemte de seg for Ä omgÄ dette? Thanos Query sender parallelle spÞrringer til hver Thanos Sidecar som ligger ved siden av Prometheus, i tillegg til spÞrringer til Thanos Store Gateway.

Og Thanos Sidecar sender pÄ sin side forespÞrsler videre inn i Prometheus, og henter data for de siste to timene.

I tillegg til disse komponentene finnes det en annen valgfri komponent, som Thanos ikke vil fÞle seg bra uten. Dette er Thanos Compact, som slÄr sammen smÄ filer pÄ Object Storage til stÞrre filer som ble lastet opp hit av Thanos Sidecars. Thanos Sidecar laster opp datafiler dit pÄ to timer. Antallet av disse filene kan Þke betraktelig hvis de ikke slÄs sammen til stÞrre filer. Jo flere slike filer det er, desto mer minne trengs for Thanos Store Gateway, og desto flere ressurser trengs for Ä overfÞre data over nettverket, metadata. Arbeidet til Thanos Store Gateway blir ineffektivt. Derfor er det nÞdvendig Ä kjÞre Thanos Compact, som slÄr sammen smÄ filer til stÞrre, slik at det blir fÊrre slike filer og for Ä redusere overhead pÄ Thanos Store Gateway.

Det finnes ogsÄ en komponent som heter Thanos Ruler. Den kjÞrer Prometheus-varslingsregler og kan beregne Prometheus-opptaksregler for Ä skrive data tilbake til objektlagring. Men denne komponenten anbefales ikke Ä bruke, fordi den har en tendens til Ä returnere ufullstendige data.

Dette er en enkel ordning for Thanos.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

La oss nÄ sammenligne det med VictoriaMetrics-skjemaet.

VictoriaMetrics har to versjoner: Enkelnode- og klyngeversjon. Enkelnode-versjon fungerer pĂ„ Ă©n datamaskin. Enkelnode-versjon har ikke disse komponentene, bare Ă©n binĂŠrfil. Denne binĂŠrfilen ser ut som denne firkanten pĂ„ lysbildet. Alt inni firkanten er binĂŠrfilinnholdet for enkeltnode-versjonen. Du trenger ikke Ă„ vite om det. Bare kjĂžr binĂŠrfilen – sĂ„ fungerer alt for oss.

Klyngeversjonen er mer kompleks. Den inneholder tre forskjellige komponenter: vmselect, vminsert og vmstorage. Navnene deres skal gjÞre det klart hva hver av dem gjÞr. Insert-komponenten aksepterer data i forskjellige formater: fra Prometheus remote write API, Influx line-protokollen, Graphite-protokollen og fra OpenTSDB-protokollen. Insert-komponenten aksepterer dem, analyserer dem og distribuerer dem mellom de eksisterende lagringskomponentene, der dataene allerede er lagret. Select-komponenten aksepterer pÄ sin side PromQL-spÞrringer. Den implementerer PromQL, sÄ vel som Prometheus-spÞrrings-API-et, og det kan brukes som en erstatning for Prometheus i Grafana eller andre Prometheus API-klienter. Select tar en promql-spÞrring, analyserer den, leser dataene som trengs for Ä kjÞre denne spÞrringen fra lagringsnodene, behandler disse dataene og returnerer et svar.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

La oss sammenligne kompleksiteten ved Ă„ installere Thanos og VictoriaMetrics.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

La oss starte med Thanos. FÞr du kan begynne Ä jobbe med Thanos, mÄ du opprette en bÞtte i Object Storage, for eksempel S3 eller GCS, slik at Thanos Sidecar kan skrive data til den.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Deretter mÄ du installere Thanos Sidecar for hver Prometheus. FÞr du gjÞr dette, mÄ du huske Ä deaktivere datakomprimering i Prometheus. Datakomprimering komprimerer regelmessig data i den lokale Prometheus-lagringen for Ä redusere ressursforbruket.

NÄr du installerer Thanos Sidecar pÄ Prometheus, bÞr du deaktivere denne datakomprimeringen, fordi Thanos Sidecar ikke fungerer bra med datakomprimering aktivert. Dette betyr at Prometheus begynner Ä lagre data i totimers biter og slutter Ä slÄ sammen disse bitene til stÞrre. FÞlgelig, hvis du foretar spÞrringer som overstiger varigheten av de siste to timene, vil de ikke fungere like effektivt som de kunne ha fungert hvis datakomprimering var aktivert.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Derfor anbefaler Thanos Ă„ redusere datalagringstiden i lokal lagring til 6–8 timer for Ă„ redusere overhead for et stort antall smĂ„ blokker.

NÄr du har installert Thanos Sidecar, mÄ du installere to komponenter for hver Object Storage Bucket. Disse er Thanos Compactor og Thanos Store Gateway.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Etter det mÄ du installere Thanos Query og konfigurere den slik at den kan koble til alle Thanos Store Gateways du har, og ogsÄ kunne koble til alle Thanos Sidecars.

Det kan vĂŠre et lite problem her.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Du mÄ sette opp en pÄlitelig og sikker forbindelse fra Thanos Query til disse komponentene. Og hvis Prometheusene dine er i forskjellige datasentre eller i forskjellige VPC-er, er tilkoblinger utenfra forbudt. Men for at Thanos Query skal fungere, mÄ du pÄ en eller annen mÄte sette opp en forbindelse der, og du mÄ finne en mÄte.

Hvis du har mange slike datasentre, reduseres dermed pÄliteligheten til hele systemet. Siden Thanos Query kontinuerlig mÄ opprettholde forbindelser til alle Thanos Sidecars som ligger i forskjellige datasentre. Med hver innkommende forespÞrsel vil den sende forespÞrsler til alle Thanos Sidecars. Hvis forbindelsen avbrytes, vil du enten motta et ufullstendig datasett, eller fÄ svaret "klyngen fungerer ikke".

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

I VictoriaMetrics er alt litt enklere. For versjonen med én node er det nok Ä bare kjÞre én binÊrfil, sÄ fungerer alt.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

I klyngeversjonen er det nok Ă„ kjĂžre alle de ovennevnte tre komponenttypene i den mengden du trenger, eller bruker. roret diagram Ă„ automatisere lanseringen av komponenter i Kubernetes. Vi planlegger fortsatt Ă„ lage en Kubernetes-operator. Helm-diagrammet dekker ikke alle tilfeller, og lar deg skyte deg selv i foten. For eksempel lar det deg redusere antall lagringsnoder, noe som vil fĂžre til datatap.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

NÄr du har én binÊr- eller klyngeversjon oppe og gÄr, trenger du bare Ä legge til Prometheus i konfigurasjonen din. innstilling for ekstern skriving av URL, slik at den begynner Ä skrive data parallelt til lokal lagring og ekstern lagring. Som du har lagt merke til, bÞr en slik konfigurasjon fungere mye mer pÄlitelig sammenlignet med Thanos-konfigurasjonen. Vi trenger ikke Ä opprettholde en forbindelse fra VictoriaMetrics til alle Prometheuser, fordi Prometheuser selv kobler seg til VictoriaMetrics og overfÞrer data.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

La oss se pÄ stÞtten fra Thanos og VictoriaMetrics.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Med Thanos mĂ„ du overvĂ„ke Sidecar slik at de ikke stopper lasting av data til Object Storage. De kan stoppe lasting av data pĂ„ grunn av lastefeil, for eksempel hvis nettverksforbindelsen til Object Storage er midlertidig avbrutt, eller Object Storage er midlertidig utilgjengelig. Thanos Sidecar vil legge merke til dette pĂ„ dette tidspunktet, rapportere en feil, kan krasje og deretter slutte Ă„ virke. Hvis du ikke overvĂ„ker det, vil dataene dine stoppe overfĂžringen til Object Storage. Hvis oppbevaringstiden (6–8 timer anbefalt) gĂ„r, vil du miste data som ikke kom til Object Storage.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Thanos-komprimatorer kan slutte Ä virke pga. lÞp med sidevognKomprimatorer tar data fra objektlagring og slÄr dem sammen til stÞrre datamengder. Siden komprimatorer ikke er synkronisert med Sidecars, kan dette skje: Sidecar har ennÄ ikke klart Ä skrive en blokk, og Compactor bestemmer at denne blokken er fullstendig skrevet. Compactor begynner Ä lese den. Den leser blokken ufullstendig og slutter Ä virke. Se detaljer. her.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Store Gateway kan returnere inkonsistente data pÄ grunn av kapplÞp mellom Compactor og Sidecars. Det samme skjer her, fordi Store Gateway ikke er synkronisert med Compactors og Sidecars. FÞlgelig kan kapplÞpsforhold oppstÄ nÄr Store Gateway ikke ser deler av dataene, eller ser unÞdvendige data.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Query-komponenten i Thanos returnerer delvise resultater som standard hvis noen Sidecars eller Store Gateway ikke er tilgjengelige for Ăžyeblikket. Du vil motta en del av dataene, og den vil ikke engang vite at den ikke mottok alle dataene. Slik fungerer det som standard. I en lignende situasjon returnerer VictoriaMetrics merkede data som delvise.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

I motsetning til Thanos mister VictoriaMetrics sjelden data. Selv om forbindelsen fra Prometheus til VictoriaMetrics blir avbrutt, er det ikke et problem, siden Prometheus fortsetter Ä skrive innkommende nye data til Write Ahead-loggen, som er to timer lang. Hvis du gjenoppretter forbindelsen til VictoriaMetrics innen to timer, vil ikke dataene gÄ tapt. Prometheus kan legge til data etter Ä ha koblet til VictoriaMetrics pÄ nytt.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

I motsetning til Thanos, som skriver data til objektlagring fĂžrst etter to timer, replikerer Prometheus automatisk data via fjernskriveprotokollen til ekstern lagring, som for eksempel VictoriaMetrics. Du er ikke redd for Ă„ miste lokal lagring i Prometheus. Hvis den plutselig mister lokal lagring, vil du i verste fall miste de siste sekundene av data som ikke rakk Ă„ bli skrevet til ekstern lagring.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Kubernetes administrerer klyngen automatisk, i motsetning til Thanos. Det er vanskelig Ä plassere alle Thanos-komponentene i én Kubernetes-klynge, i motsetning til VictoriaMetrics-klyngekomponenter.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics har en veldig enkel oppdatering til en ny versjon. Bare stopp VictoriaMetrics, oppdater binÊrfilene og start. NÄr den stoppes via SIGINT-signal, foretar alle VictoriaMetrics-binÊrfiler en elegant avslutning. De lagrer nÞdvendige data pÄ riktig mÄte og lukker innkommende tilkoblinger pÄ riktig mÄte for ikke Ä miste noe. Derfor vil du ikke miste noe nÄr du oppdaterer.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics gjĂžr det veldig enkelt Ă„ utvide klyngen din. Bare legg til de nĂždvendige komponentene og fortsett Ă„ jobbe.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Om fallgruvene i Thanos og VictoriaMetrics.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Thanos har fÞlgende fallgruver. Prometheus mÄ lagre de siste to timene med data. Hvis de gÄr tapt, mister du dem fullstendig, siden de ennÄ ikke er skrevet til Object Storage slik som S3.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Store Gateway-komponenten og komprimeringskomponenten kan kreve mye minne for Ä fungere med store objektlagringsenheter hvis det er mange smÄ filer lagret der. Jo stÞrre antall og stÞrrelse pÄ filene er, desto mer RAM krever Store Gateway og komprimeringskomponenten for Ä lagre metadata. Thanos har mange problemer med det faktum at Store Gateway og komprimator krasjer ved middels store mengder skrevne data.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Thanos annonseres som Ä kunne skaleres uendelig til antallet Prometheus-komponenter. I virkeligheten stemmer ikke dette. Siden alle forespÞrsler gÄr gjennom Query-komponenten, som mÄ spÞrre alle Store Gateway-komponenter og alle Sidecar-komponenter parallelt, hente data derfra og deretter forhÄndsbehandle dem. SpÞrrehastigheten er Äpenbart begrenset av den tregeste svake lenken, den tregeste Store Gateway eller den tregeste Sidecar.

Disse komponentene kan vÊre ujevnt lastet. For eksempel har du Prometheus, som samler inn millioner av metrikker per sekund. Og du har Prometheus, som samler inn tusenvis av metrikker per sekund. Prometheus, som samler inn millioner av metrikker per sekund, belaster serveren den kjÞrer pÄ mye tyngre. FÞlgelig jobber Sidecar tregere der. Og alt jobber sakte der. Og Query-komponenten vil hente data derfra veldig sakte. FÞlgelig vil ytelsen til hele klyngen din bli begrenset av denne trege Sidecar.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Som standard returnerer Thanos delvise data hvis noen Sidecars og/eller Store Gateway ikke er tilgjengelige. Hvis du for eksempel har Sidecars spredt rundt om i verden i forskjellige datasentre, Ăžker sannsynligheten for tilkoblingsfeil og komponentutilgjengelighet betydelig. FĂžlgelig vil du i de fleste tilfeller motta delvise data uten Ă„ vite om det.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics har sine egne fallgruver. Den fÞrste fallgruven er alternativet som begrenser mengden RAM som brukes til VictoriaMetrics-hurtigbufferen. Som standard er den lik 60 % av RAM-en pÄ maskinen der VictoriaMetrics kjÞrer, eller 60 % av RAM-en til VictoriaMetrics-poden i Kubernetes.

Hvis du endrer denne verdien feil, kan du Þdelegge ytelsen til VictoriaMetrics. Hvis du for eksempel setter den for lavt, kan det hende at dataene ikke lenger fÄr plass i VictoriaMetrics' hurtigbuffer. PÄ grunn av dette mÄ den gjÞre ekstra arbeid og belaste prosessoren og disken. Hvis du gjÞr dette alternativet for stort, Þker det for det fÞrste sannsynligheten for at VictoriaMetrics krasjer med en feilmelding om lite minne, og for det andre vil det fÞre til at operativsystemet har svÊrt lite RAM til filbufferen. Og VictoriaMetrics er avhengig av filbufferen for ytelse. Hvis den ikke er nok, kan diskbelastningen Þke betydelig. Derfor rÄdet: ikke endre denne parameteren med mindre det er absolutt nÞdvendig.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Det andre alternativet er retentionPeriod – en periode som er satt til 1 mĂ„ned som standard. Dette er tiden VictoriaMetrics lagrer dataene i. Etter denne perioden sletter VictoriaMetrics dataene.

Mange starter VictoriaMetrics uten denne parameteren, registrerer data for en mÄned. Og spÞr sÄ: hvorfor forsvant dataene for forrige mÄned? Fordi retentionPeriod er 1 mÄned som standard. Derfor mÄ du vite og angi riktig retentionPeriod.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

La oss gÄ gjennom de unike funksjonene.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Thanos har en funksjon som kalles nedsampling: 5-minutters og timesintervaller, som ofte er de fungerer ikke ordentligHvis du googler og ser pÄ problemet deres pÄ GitHub, er det mange problemer knyttet til denne nedsamplingen, at den noen ganger ikke fungerer som den skal, eller ikke fungerer slik brukerne forventer.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Thanos har datadeduplisering for Prometheus HA-par. NÄr to Prometheuser samler inn de samme beregningene fra de samme mÄlene, og Thanos legger dem i objektlagring, kan Thanos deduplisere disse dataene riktig, i motsetning til VictoriaMetrics.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Thanos har en varslingskomponent som var pÄ Thanos-skjemaet. Men den ikke anbefalt for bruk i produksjon.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Thanos har fordelen at Thanos og Prometheus deler samme kode. Thanos og Prometheus er utviklet av de samme utviklerne. NÄr enten Thanos eller Prometheus forbedrer seg, vinner den andre siden.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics hovedfunksjon er MetricsQL. Dette er VictoriaMetrics-utvidelser for PromQL, som jeg snakket om pÄ det forrige store overvÄkingsmÞtet.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics stÞtter datainnsprÞytning via mange forskjellige protokoller. VictoriaMetrics kan ikke bare motta data fra Prometheus, men ogsÄ via Influx-, OpenTSDB- og Graphite-protokollene.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics-data tar vanligvis mye mindre plass enn Thanos og Prometheus.

NĂ„r brukere registrerer ekte data, rapporterer de en 2–5 ganger reduksjon i datastĂžrrelse pĂ„ disken sammenlignet med Prometheus og Thanos.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

En annen fordel med VictoriaMetrics er at den er optimalisert for hastighet.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

La oss se pÄ infrastrukturkostnadene.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

En av fordelene med Thanos er at den lagrer data i objektlagring, noe som er relativt billig.

NĂ„r du lagrer data i objektlagring, mĂ„ du betale for skrive- og leseoperasjoner for data ($10 per million operasjoner). NĂ„r du skriver data til objektlagring, betaler du hostingkostnadene dine for Ă„ laste opp data til Internett, med mindre klyngen din er i AWS – det er gratis der. NĂ„r du leser data, betaler du fra $10 til $230 per 1 TB. Dette kan vĂŠre betydelig hvis du ofte ber om historiske data fra Thanos-klyngen.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

For Thanos-klyngen mÄ du betale for servere for Compact, Store Gateway og Query-komponenter som krever mye minne og CPU for store mengder data.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics har fÞlgende utgifter. Hvis du lagrer data pÄ GCE HDD-disker, blir det $40 per 1 TB. For VictoriaMetrics er vanlige HDD-disker nok, ingen SSD-er er nÞdvendig, som er fem ganger dyrere. VictoriaMetrics er optimalisert for HDD.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics trenger servere for komponenter: enten enkeltnode eller for klyngekomponenter, som i motsetning til Thanos-komponenter krever mye mindre CPU og RAM – og derfor vil vére billigere.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Implementeringseksempler.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Thanos har et eksempel pÄ implementering - Gitlab. Gitlab kjÞrer utelukkende pÄ Thanos. Men ikke alt gÄr sÄ knirkefritt der. Hvis du ser pÄ deres saker, sÄ kan du se at de stadig vekk har en slags driftsproblemer med ThanosDet er ikke nok minne for Store Gateway- eller Query-komponentene. De mÄ stadig Þke mengden minne.

Dette Ăžker kostnadene ved Ă„ lĂžse disse problemene.

Den andre implementeringen, som kan vĂŠre mer vellykket, er Improbable, som startet utviklingen av Thanos. De publiserte kildekoden til Thanos. Improbable er et selskap som utvikler spillmotorer.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics offentlige eksempler pÄ implementering er:

  • wix.com nettstedbygger
  • Adidas ruller ut VictoriaMetrics og holdt til og med et foredrag pĂ„ PromCon 2019.
  • TrafficStars — annonsenettverk
  • Seznam.cz er en populĂŠr tsjekkisk sĂžkemotor.

Og sÄ kom de navnlÞse selskapene, som jeg ikke kan navngi nÄ. De ga ikke sitt samtykke.

  • Én stor spillutvikler. StĂžrre enn usannsynlig.
  • En stor utvikler av grafikkprogramvare.
  • En stor russisk bank.
  • En europeisk vindturbinprodusent som har testet VictoriaMetrics med suksess. Denne produsenten implementerer VictoriaMetrics for Ă„ overvĂ„ke data fra vindturbiner med en hastighet pĂ„ 50 prĂžver per sekund per sensor. Hver vindturbin har flere hundre sensorer. De har flere hundre vindturbiner.
  • Russiske flyselskaper som Ăžnsker Ă„ implementere VictoriaMetrics, men fortsatt ikke kan. Vi er pĂ„ avtalestadiet med dem.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetricsKonklusjoner.

VictoriaMetrics og Thanos lÞser lignende problemer, men pÄ forskjellige mÄter:

  • Global spĂžrrevisning
  • horisontal skalering
  • vilkĂ„rlig oppbevaring

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Takk.

Vi venter pÄ deg pÄ vÄr telegram kanal.

Velge en datalagring for Prometheus: Thanos vs VictoriaMetrics

Kun registrerte brukere kan delta i undersÞkelsen. Logg inn, vÊr sÄ snill.

Hva bruker du som langtidslagring for Prometheus?

  • 35,3%Thanos6

  • 0,0%Cortex0

  • 0,0%M3DB0

  • 41,2%VictoriaMetrics7

  • 23,5%annet 4

17 brukere stemte. 16 brukere avsto.

Kilde: www.habr.com

KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere đŸ”„ KjĂžp pĂ„litelig webhotell med DDoS-beskyttelse, VPS VDS-servere | ProHoster