In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Hoi allegearre. Hjirûnder is it transkripsje rapport fan Big Monitoring Meetup 4.

Prometheus - in tafersjochsysteem foar ferskate systemen en tsjinsten, mei help wêrfan systeembehearders ynformaasje kinne sammelje oer de hjoeddeistige parameters fan systemen en warskôgings ynstelle om notifikaasjes te ûntfangen oer ôfwikingen yn 'e wurking fan systemen.

It rapport sil in ferliking befetsje Thanos и VictoriaMetrics - projekten foar lange termyn opslach fan Prometheus metriken.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Spielje fideo

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Earst sil ik jo fertelle oer Prometheus. Dit is in tafersjochsysteem dat metriken sammelet fan spesifisearre doelen en opslacht yn lokale opslach. Prometheus kin metriken opnimme nei opslach op ôfstân en kin warskôgings en opnameregels generearje.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Prometheus beheiningen:

  • It hat gjin globale query werjefte. Dit is as jo meardere ûnôfhinklike eksimplaren fan prometheus hawwe. Se sammelje metriken. En jo wolle freegje boppe op al dizze metriken sammele út ferskate prometheus-eksimplaren. Prometheus lit dit net ta.
  • Mei prometheus is prestaasjes beheind ta mar ien server. Prometheus skaalt net automatysk oer meardere servers. Jo kinne jo doelen allinich manuell splitse tusken meardere Prometheus.
  • De omfang fan metriken yn Prometheus is beheind ta mar ien server om deselde reden dat it net automatysk oer meardere servers kin skaalje.
  • It is net sa maklik om gegevensfeiligens yn Prometheus te organisearjen.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Oplossingen foar dizze problemen / útdagings?

De oplossings binne:

Al dizze oplossingen binne foar opslach op ôfstân fan gegevens sammele troch Prometheus. Se oplosse it probleem op ôfstân opslach fan 'e foarige slide op ferskate manieren. Yn dizze presintaasje sil ik allinich prate oer de earste twa oplossingen: Thanos и VictoriaMetrics.

Foar de earste kear ynformaasje oer Thanos ferskynde troch dizze keppeling. De arsjitektuer wurdt dêr beskreaun Thanos en hoe't it wurket.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Thanos nimt de gegevens dy't Prometheus bewarre nei de lokale skiif en kopiearret it nei S3, nei GCS of nei in oar objekt opslach.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Sa leveret Thanos in globale querywerjefte. Jo kinne query gegevens opslein yn objekt opslach út meardere Prometheus eksimplaren.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Thanos stipet PromQL en Prometheus querying API.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Thanos brûkt Prometheus-koade om gegevens op te slaan.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Thanos is ûntwikkele troch deselde ûntwikkelders as Prometheus.

op VictoriaMetrics. Hjir link, dêr't wy earst oer praten VictoriaMetrics.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics ûntfangt gegevens fan ferskate prometheus remote skriuwe API protokol stipe troch Prometheus.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics jout in globale query werjefte, sûnt meardere Prometheus eksimplaren kinne skriuwe gegevens nei ien VictoriaMetrics. Dêrtroch kinne jo fragen stelle oer al dizze gegevens.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics stipet ek, lykas Thanos, PromQL en Prometheus querying API.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Oars as Thanos is de VictoriaMetrics-boarnekoade fanôf it begjin skreaun en is optimalisearre foar snelheid en boarneferbrûk.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics, yn tsjinstelling ta Thanos, skalen sawol fertikaal as horizontaal. Ite Single-node ferzje, dy't fertikaal skalen. Jo kinne begjinne mei ien prosessor en 1 GB ûnthâld en stadichoan groeie ta hûnderten prosessoren en 1 TB ûnthâld. VictoriaMetrics kin al dizze boarnen brûke. De prestaasjes dêrfan sille sawat 100 kear ferheegje yn ferliking mei in 1-kearnsysteem.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

De skiednis fan Thanos begon yn novimber 2017, doe't de earste iepenbiere commit ferskynde. Dêrfoar waard Thanos yntern ûntwikkele ûnwierskynlik.io.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Yn juny 2019 wie d'r in landmark release 0.5.0, wêryn fuorthelle berabje protokol. Hy waard fuorthelle út Thanos omdat hy net goed prestearre. Faak wurke it Thanos-kluster net goed, knooppunten ferbûn dêr ferkeard troch it roddelprotokol. Dêrom hawwe wy besletten om him dêr fuort te heljen. Ik tink dat dit it goede beslút is.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Yn deselde juny 2019 stjoerden se oanfraachnûmer 256 в Stichting Cloud Native Computing.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

En nei in pear moannen waard Thanos akseptearre yn Stichting Cloud Native Computing, dy't Prometheus, Kubernetes en oare populêre projekten omfettet.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Yn jannewaris 2018 begon de ûntwikkeling fan VictoriaMetrics.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Yn septimber 2018 neamde ik VictoriaMetrics foar it earst iepenbier.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Yn desimber 2018 waard in Single-node ferzje publisearre.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Yn maaie 2019 waarden publisearre boarnen fan sawol Single-node en cluster ferzjes.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Yn juny 2019 hawwe wy, krekt lykas Thanos, in oanfraach yntsjinne by de CNCF-stifting ûnder nûmer 255. Wy hawwe ien dei oanfrege foardat Thanos oanfrege.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Mar spitigernôch binne wy ​​dêr noch net akseptearre. Mienskipshelp nedich.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Litte wy nei de wichtichste dia's sjen dy't de arsjitektuer fan Thanos en VictoriaMetrics sjen litte.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Litte wy begjinne mei Thanos. De giele komponinten binne Prometheus-komponinten. Al it oare is Thanos-komponinten. Litte wy begjinne mei de wichtichste komponint. Thanos Sidecar is in komponint dat is ynstalleare neist elke Prometheus. It laadt Prometheus-gegevens fan lokale opslach yn S3 as in oare Object Storage.

D'r is ek in komponint neamd Thanos Store Gateway, dy't dizze gegevens kin lêze fan Object Storage by ynkommende oanfragen fan Thanos Query. Thanos Query ymplementearret PromQL en Prometheus API. Dat is, fan bûten liket it op Prometheus. Untfangt PromQL-fragen, stjoert se nei Thanos Store Gateway, Thanos Store Gateway hellet de nedige gegevens fan Object Storage, stjoert it werom.

Mar wy bewarje gegevens yn Object Storage sûnder de lêste twa oeren fanwegen in funksje fan 'e Thanos Sidecar-ymplemintaasje, dy't de lêste twa oeren net kin uploade nei Object Storage S3, om't Prometheus noch gjin bestannen foar dizze twa oeren makke hat yn lokale opslach.

Hoe hawwe jo besletten om dit te kommen? Thanos Query, neist oanfragen nei de Thanos Store Gateway, stjoert parallelle oanfragen nei elke Thanos Sidecar, dy't neist Prometheus leit.

En Thanos Sidecar, op syn beurt, proxies fersiken fierder nei Prometheus, en heljen gegevens foar de lêste twa oeren.

Neist dizze komponinten is d'r ek in opsjonele komponint sûnder hokker Thanos net goed prestearje sil. Dit is Thanos Compact, dy't ferantwurdlik is foar it gearfoegjen fan lytse bestannen op Object Storage yn gruttere bestannen dy't hjir binne uploaded troch Thanos Sidecars. Thanos Sidecar uploadt gegevensbestannen dêr yn twa oeren. Dizze bestannen, as se net wurde gearfoege yn gruttere bestannen, dan kin har oantal heul signifikant groeie. Hoe mear sokke bestannen, hoe mear ûnthâld is nedich foar Thanos Store Gateway, hoe mear boarnen binne nedich om gegevens oer it netwurk oer te dragen, metadata. Thanos Store Gateway wurdt net effektyf. Dêrom is it nedich om Thanos Compact út te fieren, dy't lytse bestannen fusearret yn gruttere, sadat d'r minder sokke bestannen binne en om overhead op 'e Thanos Store Gateway te ferminderjen.

D'r is ek sa'n komponint as Thanos Ruler. It fiert Prometheus-alarmregels út en kin Prometheus-opnameregels evaluearje om gegevens werom te skriuwen nei Object Storage. Mar dit komponint is net oan te rieden om te brûken, om't ... Hy hat de neiging om ûnfolsleine gegevens werom te jaan.

Dit is it ienfâldige skema fan Thanos.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Litte wy it no fergelykje mei it VictoriaMetrics-skema.

VictoriaMetrics hat 2 ferzjes: Single-node en cluster ferzje. Single-node rint op ien kompjûter. Single-node hat dizze komponinten net, mar ien binêr. Dit binêr op 'e slide liket dit fjouwerkant. Alles wat binnen it plein is, is de ynhâld fan it binêre bestân foar de Single-node ferzje. Jo hoege net oer him te witten. Jo rinne gewoan de binêre en alles wurket foar ús.

De klusterferzje is komplisearre. Binnen it binne d'r trije ferskillende komponinten: vmselect, vminsert en vmstorage. Ut har namme moat dúdlik wêze wat elk fan har docht. De komponint ynfoegje akseptearret gegevens yn ferskate formaten: fan 'e Prometheus remote write API, it Influx line protokol, it Graphite protokol en it OpenTSDB protokol. De komponint ynfoegje akseptearret se, parseart se en ferspriedt se tusken besteande opslachkomponinten, wêr't de gegevens al binne opslein. De komponint Selektearje, op syn beurt, akseptearret PromQL-fragen. Hy útfiert PromQL, lykas de Prometheus querying API, en it kin brûkt wurde as ferfanging foar Prometheus yn Grafana of oare Prometheus API kliïnten. Selektearje akseptearret in promql-fersyk, parseart it, lêst de nedige gegevens foar it útfieren fan dit fersyk fan opslachknooppunten, ferwurket dizze gegevens en jout in antwurd werom.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Litte wy de kompleksiteit fan it ynstallearjen fan Thanos en VictoriaMetrics fergelykje.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Litte wy begjinne mei Thanos. Foardat jo begjinne te wurkjen mei Thanos, moatte jo in bak meitsje yn Object Storage, lykas S3 of GCS, sadat Thanos Sidecar der gegevens nei kin skriuwe.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Dan moatte jo foar elke Prometheus Thanos Sidecar ynstallearje. Foardat dit, jo moatte ûnthâlde te skeakeljen gegevens kompaktering yn Prometheus. Gegevenskompaksje komprimearret periodyk gegevens yn lokale Prometheus-opslach om boarneferbrûk te ferminderjen.

As jo ​​Thanos Sidecar ynstalleare op jo Prometheus, moatte jo dizze gegevenskompaksje útskeakelje, om't Thanos Sidecar net goed wurket mei gegevenskompaksje ynskeakele. Dit betsjut dat jo Prometheus gegevens begjint te bewarjen yn blokken fan twa oeren en stopet mei it gearfoegjen fan dizze blokken yn gruttere. As jo ​​​​daliks fragen meitsje dy't de doer fan 'e lêste twa oeren oerskriuwe, dan sille se net sa effisjint wurkje as se soene hawwe wurke as gegevenskompaksje ynskeakele wie.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Dêrom advisearret Thanos it ferminderjen fan de gegevensbehâldtiid yn lokale opslach nei 6-8 oeren om de overhead fan in grut oantal lytse blokken te ferminderjen.

Sadree't jo hawwe ynstallearre Thanos Sidecar, Jo moatte ynstallearje twa komponinten foar eltse Object Storage Bucket. Dit binne Thanos Compactor en Thanos Store Gateway.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Dêrnei moatte jo Thanos Query ynstallearje en it sa ynstelle dat it kin ferbine mei alle Thanos Store Gateways dy't jo hawwe, en kin ek ferbine mei alle Thanos Sidecars.

D'r kin hjir in lyts probleem wêze.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Jo moatte in betroubere en feilige ferbining konfigurearje fan Thanos Query nei dizze komponinten. En as jo Prometheus yn ferskate datasintra leit, of yn ferskate VPC's, dan binne ferbiningen mei har fan bûten ferbean. Mar foar Thanos Query om te wurkjen, moatte jo op ien of oare manier de ferbining dêr konfigurearje, en jo moatte in manier útfine.

As jo ​​in protte fan sokke gegevenssintra hawwe, dan nimt de betrouberens fan it hiele systeem dus ôf. Sûnt Thanos Query moat konstant ferbinings behâlde mei alle Thanos Sidecars dy't yn ferskate datasintra lizze. Foar elke ynkommende oanfraach sil it oanfragen route nei alle Thanos Sidecars. As de ferbining wurdt ûnderbrutsen, krije jo of in ûnfolsleine set gegevens, of jo krije in antwurd "cluster is del".

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Yn VictoriaMetrics is alles wat ienfâldiger. Foar de Single-node ferzje moatte jo gewoan ien binêr útfiere en alles wurket.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Yn 'e klusterferzje is it genôch om alle boppesteande trije soarten komponinten út te fieren yn elke kwantiteit dy't jo nedich binne, of brûke roer diagram om de lansearring fan komponinten yn Kubernetes te automatisearjen. Wy binne ek fan plan om in Kubernetes-operator te meitsjen. De Helm-kaart beslacht guon gefallen net en lit jo josels yn 'e foet sjitte. Bygelyks, it lit jo it oantal opslachknooppunten ferminderje, wat sil liede ta gegevensferlies.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Neidat jo ien binêre of in klustere ferzje hawwe lansearre, moatte jo Prometheus gewoan tafoegje oan 'e konfiguraasje ynstelling foar skriuw-url op ôfstânsadat it begjint te skriuwen gegevens parallel oan lokale opslach en opslach op ôfstân. Sa't jo sjen kinne, moat dizze konfiguraasje folle betrouberer prestearje yn ferliking mei de Thanos-konfiguraasje. Wy hoege gjin ferbining te hâlden fan VictoriaMetrics nei alle Prometheus, om't Prometheus sels ferbine mei VictoriaMetrics en gegevens oerjaan.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Litte wy de stipe fan Thanos en VictoriaMetrics beskôgje.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Thanos moat Sidecar kontrolearje om te soargjen dat se net stopje mei it laden fan gegevens yn Object Storage. Se kinne dizze gegevensdownload stopje fanwege downloadflaters, bygelyks jo netwurkferbining mei Object Storage is tydlik ûnderbrutsen, of Object Storage is tydlik net beskikber. Thanos Sidecar sil dit op dit stuit fernimme, in flater melde, kin crashe en dan ophâlde mei wurkjen. As jo ​​​​it net kontrolearje, stopje jo it oerdragen fan gegevens nei Object Storage. As de retinsjetiid foarby giet (6-8 oeren oanrikkemandearre), dan sille jo gegevens ferlieze dy't net yn Object Storage binne bedarre.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Thanos compactors meie stopje mei wurkjen fanwegen race's mei Sidecar. Compactors nimme gegevens fan Object Storage en fusearje it yn gruttere stikken gegevens. Sûnt compactors wurde net syngronisearre mei Sidecars, it folgjende kin barre: Sidecar hat noch gjin tiid om te foltôgjen it blok, Compactor beslút dat dit blok is folslein skreaun. Compactor begjint it te lêzen. It lêst it blok net folslein en hâldt op mei wurkjen. Sjoch details hjir.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Store Gateway kin inkonsistente gegevens weromjaan fanwege races tusken Compactor en Sidecars. Itselde bart hjir, om't de Store Gateway op gjin inkelde manier is syngronisearre mei Compactors en Sidecars. Dêrnjonken kinne racebetingsten foarkomme as de Store Gateway gjin diel fan 'e gegevens sjocht of ûnnedige gegevens sjocht.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

De Query-komponint yn Thanos jout standert in dielresultaat werom as guon Sidecars of Store Gateways op it stuit net beskikber binne. Jo krije in part fan de gegevens, en do silst net iens witte dat jo net ûntfange alle gegevens. Dit is hoe't it standert wurket. Yn in ferlykbere situaasje jout VictoriaMetrics markearre gegevens as foar in part werom.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Oars as Thanos ferliest VictoriaMetrics komselden gegevens. Sels as de ferbining fan Prometheus nei VictoriaMetrics wurdt ûnderbrutsen, is dit gjin probleem, om't Prometheus trochgiet ynkommende nije gegevens op te nimmen yn it Write Ahead Log, wêrfan de grutte 2 oeren is. As jo ​​​​jo ferbining mei VictoriaMetrics binnen twa oeren weromsette, sille jo gegevens net ferlern gean. Prometheus kin tafoegje gegevens nei it weromsette fan de ferbining mei VictoriaMetrics.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Oars as Thanos, dy't pas nei twa oeren gegevens skriuwt nei objektopslach, replikearret Prometheus automatysk gegevens mei it skriuwprotokol op ôfstân nei opslach op ôfstân, lykas VictoriaMetrics. Jo binne net bang foar ferliezen lokale opslach yn Prometheus. As hy ynienen ferlear lokale opslach, dan ferlieze jo yn it slimste gefal de lêste sekonden fan gegevens dy't gjin tiid hawwe om op te nimmen yn opslach op ôfstân.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Kubernetes beheart automatysk it kluster, yn tsjinstelling ta Thanos. It is lestich om alle Thanos-komponinten yn ien Kubernetes-kluster te pleatsen, yn tsjinstelling ta VictoriaMetrics-klusterkomponinten.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics hat in heul ienfâldige update nei de nije ferzje. Stopje gewoan VictoriaMetrics, bywurkje de binaries en lansearje it. As stoppe fia in SIGINT-sinjaal, fiere alle VictoriaMetrics-binaries in sierlike ôfsluting út. Se bewarje de nedige gegevens korrekt, slute ynkommende ferbiningen goed om neat te ferliezen. Dat jo sille neat ferlieze by it opwurdearjen.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics makket it heul maklik om in kluster út te wreidzjen. Foegje gewoan de nedige komponinten ta en trochgean mei wurkjen.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Oer pitfalls yn Thanos en VictoriaMetrics.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Thanos hat de folgjende pitfalls. Prometheus moat gegevens foar de lêste twa oeren opslaan. As se ferlern gean, sille jo se folslein kwytreitsje, om't se noch net binne skreaun nei Object Storage lykas S3.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

De komponint Store Gateway en kompaktor komponint kin fereaskje in soad ûnthâld te wurkjen mei in grutte Object Storage as der in protte lytse triemmen opslein dêr. Hoe grutter it oantal en grutte fan bestannen, hoe mear Store Gateway en kompaktor RAM is nedich om meta-ynformaasje op te slaan. Thanos hat in protte problemen oangeande it feit dat Store Gateway en compactor crash mei gemiddelde folumes fan opnommen gegevens.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Thanos wurdt advertearre foar ûnbepaalde skaal mei it bedrach fan Prometheus dat jo hawwe. Dit is eins net wier. Om't alle oanfragen troch de Query-komponint gean, dy't tagelyk alle Store Gateway-komponinten en alle Sidecar-komponinten moatte ûndersochte, lûke gegevens dêrwei en ferwurkje it dan. Fansels wurdt de fersyksnelheid beheind troch de stadichste swakke keppeling, de stadichste Store Gateway of de stadichste Sidecar.

Dizze komponinten kinne ûngelyk laden wurde. Jo hawwe bygelyks Prometheus, dy't miljoenen metriken per sekonde sammelet. En d'r is Prometheus, dy't tûzenen metriken per sekonde sammelet. Prometheus, dy't miljoenen metriken per sekonde sammelet, set in folle hegere lading op 'e server wêrop't it rint. Dêrtroch wurket Sidecar dêr stadiger. En yn it algemien wurket alles dêr stadich. En de Query-komponint sil gegevens dêrwei hiel stadich lûke. Dêrtroch sil de prestaasjes fan jo heule kluster wurde beheind troch dizze trage Sidecar.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Standert jout Thanos dielgegevens as guon Sidecars en of de Store Gateway net beskikber binne. Bygelyks, as jo Sidecars oer de wrâld ferspraat binne yn ferskate datasintra, dan nimt de kâns op in ferbiningsfout en komponint ûnbeskikberens gâns ta. Dêrtroch krije jo yn 'e measte gefallen dielgegevens sûnder it sels te witten.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics hat ek pitfalls. De earste pitfall is de opsje dy't de hoemannichte RAM beheint dy't brûkt wurdt foar de VictoriaMetrics-cache. Standert is it gelyk oan 60% fan 'e RAM op' e masine wêr't VictoriaMetrics rint of 60% fan 'e RAM fan 'e VictoriaMetrics-pod yn Kubernetes.

As jo ​​​​dizze wearde ferkeard feroarje, kinne jo de prestaasjes fan VictoriaMetrics ferneatigje. As jo ​​bygelyks de wearde te leech ynstelle, passe de gegevens miskien net mear yn 'e VictoriaMetrics-cache. Hjirtroch sil se ekstra wurk moatte dwaan en de prosessor en skiif lade. As jo ​​​​dizze opsje te grut meitsje, fergruttet it, as earste, de kâns dat VictoriaMetrics sil crashe mei in flater sûnder ûnthâld, en, twadde, sil it liede ta it feit dat d'r heul min RAM oerbliuwt yn it ûnthâld fan it bestjoeringssysteem foar triem cache. En VictoriaMetrics fertrout op in triemcache foar prestaasjes. As it net genôch is, kin de lading op 'e skiif sterk tanimme. Dêrom, advys: feroarje de parameter net as it perfoarst nedich is.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Twadde opsje. Dit is retentionPeriod - in perioade dy't standert is ynsteld op 1 moanne. Dit is de lingte fan tiid VictoriaMetrics bewarret gegevens. Nei dizze perioade wisket VictoriaMetrics de gegevens.

In protte minsken rinne VictoriaMetrics sûnder dizze parameter en registrearje gegevens foar in moanne. En dan freegje se: wêrom ferdwûnen de gegevens foar de foarige moanne? Om't de standert retentionPeriod 1 moanne is. Dêrom moatte jo de juste retensionPeriod witte en ynstelle.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Litte wy nei de unike funksjes sjen.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Thanos hat in funksje neamd downsampling: 5-minuten en oere yntervallen, dy't faak wurket net goed. As jo ​​googleje en har probleem op github besjen, binne d'r in protte problemen relatearre oan dizze downsampling, dat it soms net goed wurket, of net wurket lykas brûkers ferwachtsje.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Thanos hat gegevensdeduplikaasje foar Prometheus HA-pearen. As twa Prometheus deselde metriken sammelje fan deselde doelen en Thanos se opslaan yn Object Storage. Thanos kin dizze gegevens goed deduplicate, yn tsjinstelling ta VictoriaMetrics.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Thanos hat in warskôgingskomponint dat wie yn 'e Thanos-skema. Mar hy net oan te rieden foar gebrûk yn produksje.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Thanos hat it foardiel dat Thanos en Prometheus deselde koade diele. Thanos en Prometheus wurde ûntwikkele troch deselde ûntwikkelders. Mei ferbetteringen oan Thanos of Prometheus wint de oare kant.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

De haadfunksje fan VictoriaMetrics is MetricsQL. Dit binne VictoriaMetrics-útwreidingen foar PromQL, dêr't ik oer praat by de foarige grutte tafersjochmetup.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics stipet it laden fan gegevens mei in protte ferskillende protokollen. VictoriaMetrics kin net allinich gegevens fan Prometheus akseptearje, mar ek fia de Influx, OpenTSDB en Graphite protokollen.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics-gegevens nimme folle minder romte yn yn ferliking mei Thanos en Prometheus.

As jo ​​​​echte gegevens opnimme, prate brûkers oer in 2-5 kear reduksje yn 'e grutte fan gegevens op skiif yn ferliking mei Prometheus en Thanos.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

In oar foardiel fan VictoriaMetrics is dat it is optimalisearre foar snelheid.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Litte wy nei de kosten fan ynfrastruktuer sjen.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Ien fan 'e foardielen fan Thanos is dat it gegevens bewarret yn objektopslach, wat relatyf goedkeap is.

By it opslaan fan gegevens yn objekt opslach, moatte jo betelje foar gegevens skriuwen en lêzen operaasjes ($ 10 per miljoen operaasjes). As jo ​​gegevens skriuwe nei objektopslach, betelje jo jo hostingkosten foar it uploaden fan gegevens nei it ynternet as jo kluster net yn AWS is, is it dêr fergees. As jo ​​gegevens lêze, betelje jo tusken $10 en $230 per 1TB. Dit kin wichtich wêze as jo faak opfreegje histoaryske gegevens fan it Thanos-kluster.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Foar in Thanos-kluster moatte jo betelje foar servers foar Compact, Store Gateway, Query-komponinten dy't in protte ûnthâld fereaskje, en CPU foar grutte hoemannichten gegevens.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics hat de folgjende útjeften. As jo ​​​​gegevens opslaan op GCE HDD-skiven, dan komt it út op $ 40 foar 1TB. Foar VictoriaMetrics binne gewoane HDD-skiven genôch gjin SSD's, dy't fiif kear mear kostje, binne nedich. VictoriaMetrics is optimalisearre foar HDD.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics fereasket tsjinners foar komponinten: óf Single-nod as klustere komponinten, dy't, yn tsjinstelling ta Thanos-komponinten, folle minder CPU en RAM fereaskje - en sille dus goedkeaper wêze.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Foarbylden fan ymplemintaasje.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Thanos hat in ymplemintaasjefoarbyld yn Gitlab. Gitlab rint folslein op Thanos. Mar net alles is dêr sa glêd. As jo ​​sjogge nei harren saken, dan kinne jo sjen dat se hieltyd wat hawwe operasjonele problemen mei Thanos: Der is net genôch ûnthâld foar de Store Gateway of Query komponinten. Se moatte hieltyd fergrutsje it bedrach fan ûnthâld.

Hjirtroch ferheegje de kosten foar it oplossen fan dizze problemen.

De twadde ymplemintaasje, dy't súksesfol kin wêze, is it bedriuw Improbable, dat begon Thanos te ûntwikkeljen. Se publisearren de Thanos-boarnekoade. Unprobable is in bedriuw dat ûntwikkelet spultsje motors.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics hat foarbylden fan iepenbiere ymplemintaasje:

  • wix.com webside bouwer
  • Adidas implementeart VictoriaMetrics en makke sels in presintaasje by de lêste PromCon 2019
  • TrafficStars - ad netwurk
  • Seznam.cz is in populêre Tsjechyske sykmasine.

En dan wiene der gjin bedriuwen dy't ik no net neame kin. Se hawwe net ynstimd.

  • Ien grutte spultsje-ûntwikkelder. Grutter dan ûnwierskynlik.
  • Grutte grafyske softwareûntwikkelder.
  • Grutte Russyske bank.
  • Jeropeeske wynturbinefabrikant dy't VictoriaMetrics mei súkses hat hifke. Dizze fabrikant implementeart VictoriaMetrics om gegevens sammele fan wynturbines te kontrolearjen mei in taryf fan 50 samples per sekonde per sensor. Elke wynturbine hat ferskate hûnderten sensoren. Se hawwe inkele hûnderten wynturbines.
  • Russyske loftfeartmaatskippijen dy't wolle ymplemintearje VictoriaMetrics, mar kin noch net. Wy binne yn it kontrakt stadium mei harren.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetricsKonklúzjes.

VictoriaMetrics en Thanos losse ferlykbere problemen op, mar op ferskate manieren:

  • Global query werjefte
  • horizontale skaalfergrutting
  • willekeurige behâld

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Спасибо.

Wy wachtsje op jo by ús telegram kanaal.

In gegevensopslach kieze foar Prometheus: Thanos vs VictoriaMetrics

Allinnich registrearre brûkers kinne meidwaan oan 'e enkête. Ynlogge, asjebleaft.

Wat brûke jo as lange termyn opslach foar Prometheus?

  • 35,3%Thanos 6

  • 0,0%Cortex0

  • 0,0%M3DB0

  • 41,2%VictoriaMetrics7

  • 23,5%oar4

17 brûkers stimden. 16 brûkers ûntholden har.

Boarne: www.habr.com

Keapje betroubere hosting foar siden mei DDoS-beskerming, VPS VDS-tsjinners 🔥 Keapje betroubere websidehosting mei DDoS-beskerming, VPS VDS-tsjinners | ProHoster