Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Sveiki visiem. Zemāk ir stenogramma ziņojums no Big Monitoring Meetup 4.

Prometejs ā€“ dažādu sistēmu un pakalpojumu uzraudzÄ«bas sistēma, ar kuras palÄ«dzÄ«bu sistēmu administratori var apkopot informāciju par aktuālajiem sistēmu parametriem un iestatÄ«t brÄ«dinājumus, lai saņemtu paziņojumus par novirzēm sistēmu darbÄ«bā.

Ziņojumā bÅ«s iekļauts salÄ«dzinājums Thanos Šø VictoriaMetrics ā€” Prometheus metrikas ilgtermiņa glabāŔanas projekti.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Vispirms es jums pastāstÄ«Å”u par Prometeju. Å Ä« ir uzraudzÄ«bas sistēma, kas apkopo metriku no norādÄ«tajiem mērÄ·iem un saglabā tos vietējā krātuvē. Prometheus var ierakstÄ«t metriku attālajā krātuvē un var Ä£enerēt brÄ«dinājumus un ierakstÄ«Å”anas noteikumus.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Prometheus ierobežojumi:

  • Tam nav globāla vaicājuma skata. Tas ir tad, kad jums ir vairāki neatkarÄ«gi prometeja gadÄ«jumi. Viņi apkopo metriku. Un jÅ«s vēlaties veikt vaicājumu papildus visiem Å”iem rādÄ«tājiem, kas savākti no dažādiem Prometheus gadÄ«jumiem. Prometejs to nepieļauj.
  • Izmantojot Prometheus, veiktspēja ir ierobežota tikai vienam serverim. Prometheus netiek automātiski mērogots vairākos serveros. Varat tikai manuāli sadalÄ«t savus mērÄ·us starp vairākiem Prometheus.
  • Prometheus metrikas apjoms ir ierobežots lÄ«dz vienam serverim tā paÅ”a iemesla dēļ, ka to nevar automātiski mērogot vairākos serveros.
  • Prometheus nav tik vienkārÅ”i organizēt datu droŔību.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Šo problēmu/problēmu risinājumi?

Risinājumi ir:

Visi Å”ie risinājumi ir paredzēti Prometheus savākto datu attālinātai glabāŔanai. Tie dažādos veidos atrisina iepriekŔējā slaida attālās krātuves problēmu. Å ajā prezentācijā es runāŔu tikai par pirmajiem diviem risinājumiem: Thanos Šø VictoriaMetrics.

Pirmo reizi informācija par Thanos parādījās Ŕo saiti. Tur ir aprakstīta arhitektūra Thanos un kā tas darbojas.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Thanos ņem datus, ko Prometheus saglabāja vietējā diskā, un kopē tos uz S3 GCS vai uz citu objektu krātuvi.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Tādējādi Thanos nodroÅ”ina globālu vaicājumu skatu. Objektu krātuvē saglabātos datus var pieprasÄ«t no vairākiem Prometheus gadÄ«jumiem.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Thanos atbalsta PromQL un Prometheus vaicājumu API.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Thanos izmanto Prometheus kodu, lai saglabātu datus.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Thanos izstrādā tie paŔi izstrādātāji, kas Prometheus.

uz VictoriaMetrics. Šeit saite, kur mēs pirmo reizi runājām VictoriaMetrics.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

VictoriaMetrics saņem datus no vairākiem prometejiem attālās rakstÄ«Å”anas API Prometheus atbalstÄ«tais protokols.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

VictoriaMetrics nodroŔina globālu vaicājumu skatu, jo vairākas Prometheus instances var rakstīt datus vienā VictoriaMetrics. Attiecīgi jūs varat veikt vaicājumus par visiem Ŕiem datiem.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

VictoriaMetrics atbalsta arī, piemēram, Thanos, PromQL un Prometheus vaicājumu API.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

AtŔķirÄ«bā no Thanos, VictoriaMetrics pirmkods ir rakstÄ«ts no nulles un ir optimizēts ātrumam un resursu patēriņam.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

VictoriaMetrics, atŔķirÄ«bā no Thanos, mērogojas gan vertikāli, gan horizontāli. Ēst Viena mezgla versija, kas mērogojas vertikāli. Varat sākt ar vienu procesoru un 1 GB atmiņu un pakāpeniski palielināties lÄ«dz simtiem procesoru un 1 TB atmiņas. VictoriaMetrics var izmantot visus Å”os resursus. Tā veiktspēja palielināsies aptuveni 100 reizes, salÄ«dzinot ar 1 kodola sistēmu.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Thanos vēsture sākās 2017. gada novembrÄ«, kad parādÄ«jās pirmā publiskā apņemÅ”anās. Pirms tam Thanos tika izstrādāts iekŔēji maz ticams.io.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

2019. gada jÅ«nijā tika izdota ievērojama versija 0.5.0, kurā noņemts tenkas protokols. ViņŔ tika noņemts no Thanos, jo viņŔ nedarbojās labi. Bieži vien Thanos klasteris nedarbojās pareizi, mezgli tam nepareizi pieslēdzās tenku protokola dēļ. Tāpēc mēs nolēmām viņu izņemt no turienes. Manuprāt, tas ir pareizs lēmums.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Tajā paŔā 2019. gada jÅ«nijā viņi nosÅ«tÄ«ja pieteikuma numuru 256 Š² Mākoņu vietējās skaitļoÅ”anas fonds.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Un pēc pāris mēneÅ”iem Tanoss tika uzņemts Mākoņu vietējās skaitļoÅ”anas fonds, kas ietver Prometheus, Kubernetes un citus populārus projektus.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

2018. gada janvārī sākās VictoriaMetrics izstrāde.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

2018. gada septembrÄ« es pirmo reizi publiski pieminēju VictoriaMetrics.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

2018. gada decembrÄ« tika publicēta viena mezgla versija.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Maijā 2019 tika publicēti gan viena mezgla, gan klastera versiju avoti.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

2019. gada jÅ«nijā, tāpat kā Thanos, mēs iesniedzām pieteikumu CNCF fondam ar numuru 255. Mēs pieteicāmies vienu dienu pirms Thanos pieteikÅ”anās.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Bet diemžēl mēs joprojām neesam tur uzņemti. NepiecieÅ”ama sabiedrÄ«bas palÄ«dzÄ«ba.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Apskatīsim svarīgākos slaidus, kas parāda Thanos un VictoriaMetrics arhitektūru.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Sāksim ar Thanos. Dzeltenās sastāvdaļas ir Prometheus sastāvdaļas. Viss pārējais ir Thanos komponenti. Sāksim ar vissvarīgāko komponentu. Thanos Sidecar ir komponents, kas tiek uzstādīts blakus katram Prometheus. Tas ielādē Prometheus datus no vietējās krātuves S3 vai citā objektu krātuvē.

Ir arÄ« komponents ar nosaukumu Thanos Store Gateway, kas var nolasÄ«t Å”os datus no objektu krātuves pēc ienākoÅ”ajiem pieprasÄ«jumiem no Thanos Query. Thanos Query ievieÅ” PromQL un Prometheus API. Tas ir, no ārpuses tas izskatās kā Prometejs. Saņem PromQL vaicājumus, nosÅ«ta tos uz Thanos Store Gateway, Thanos Store Gateway izgÅ«st nepiecieÅ”amos datus no Object Storage, nosÅ«ta tos atpakaļ.

Taču mēs glabājam datus objektu krātuvē bez pēdējām divām stundām Thanos Sidecar ievieÅ”anas iezÄ«mes dēļ, kas nevar augÅ”upielādēt pēdējās divas stundas objektā Object Storage S3, jo Prometheus vēl nav izveidojis failus Ŕīm divām stundām vietējā krātuvē.

Kā jūs nolēmāt to apiet? Thanos Query papildus pieprasījumiem Thanos Store Gateway nosūta paralēlus pieprasījumus uz katru Thanos blakusvāģi, kas atrodas blakus Prometheus.

Savukārt Thanos Sidecar nosūta pieprasījumus tālāk uz Prometheus un izgūst datus par pēdējām divām stundām.

Papildus Å”iem komponentiem ir arÄ« papildu komponents, bez kura Thanos nedarbosies labi. Tas ir Thanos Compact, kas ir atbildÄ«gs par nelielu objektu krātuves failu sapludināŔanu lielākos failos, kurus Å”eit augÅ”upielādēja Thanos Sidecars. Thanos Sidecar augÅ”upielādē datu failus tur divu stundu laikā. Å ie faili, ja tie nav sapludināti lielākos failos, tad to skaits var pieaugt ļoti bÅ«tiski. Jo vairāk Ŕādu failu, jo vairāk atmiņas ir nepiecieÅ”ams Thanos Store Gateway, jo vairāk resursu ir nepiecieÅ”ams, lai pārsÅ«tÄ«tu datus tÄ«klā un metadatus. Thanos Store Gateway kļūst neefektÄ«va. Tāpēc ir nepiecieÅ”ams palaist Thanos Compact, kas apvieno mazus failus lielākos, lai Ŕādu failu bÅ«tu mazāk un lai samazinātu Thanos Store Gateway pieskaitāmās izmaksas.

Ir arÄ« tāds komponents kā Thanos Ruler. Tas izpilda Prometheus brÄ«dinājuma noteikumus un var novērtēt Prometheus ierakstÄ«Å”anas noteikumus, lai rakstÄ«tu datus atpakaļ uz objektu krātuvi. Bet Å”o komponentu nav ieteicams lietot, jo... ViņŔ mēdz atgriezt nepilnÄ«gus datus.

Å Ä« ir vienkārŔā Thanos shēma.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Tagad salīdzināsim to ar VictoriaMetrics shēmu.

VictoriaMetrics ir 2 versijas: viena mezgla un klastera versija. Viens mezgls darbojas vienā datorā. Vienam mezglam nav Å”o komponentu, tikai viens binārs. Å is binārs slaidā izskatās kā Å”is kvadrāts. Viss, kas atrodas kvadrātā, ir viena mezgla versijas binārā faila saturs. Jums par viņu nav jāzina. JÅ«s vienkārÅ”i palaižat bināro failu, un viss darbojas mÅ«su labā.

Klastera versija ir sarežģītāka. Tajā ir trÄ«s dažādi komponenti: vmselect, vminsert un vmstorage. No viņu vārda bÅ«tu skaidrs, ko katrs no viņiem dara. Komponents Insert pieņem datus dažādos formātos: no Prometheus attālās rakstÄ«Å”anas API, Influx lÄ«nijas protokola, Graphite protokola un OpenTSDB protokola. Komponents Insert tos pieņem, parsē un izplata starp esoÅ”ajiem krātuves komponentiem, kur dati jau ir glabāti. Komponents Select, savukārt, pieņem PromQL vaicājumus. ViņŔ Ä«steno PromQL, kā arÄ« Prometheus vaicājumu API, un to var izmantot kā Prometheus aizstājēju programmā Grafana vai citos Prometheus API klientiem. Select pieņem promql pieprasÄ«jumu, parsē to, nolasa Ŕī pieprasÄ«juma izpildei nepiecieÅ”amos datus no krātuves mezgliem, apstrādā Å”os datus un atgriež atbildi.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

SalÄ«dzināsim Thanos un VictoriaMetrics instalÄ“Å”anas sarežģītÄ«bu.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Sāksim ar Thanos. Pirms sākat strādāt ar Thanos, objektā Object Storage ir jāizveido segments, piemēram, S3 vai GCS, lai Thanos Sidecar varētu tajā ierakstīt datus.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Pēc tam katram Prometheus ir jāinstalē Thanos Sidecar. Pirms tam jums jāatceras Prometheus atspējot datu blÄ«vÄ“Å”anu. Datu blÄ«vÄ“Å”ana periodiski saspiež datus vietējā Prometheus krātuvē, lai samazinātu resursu patēriņu.

Instalējot Thanos Sidecar savā Prometheus, Ŕī datu blÄ«vÄ“Å”ana ir jāatspējo, jo Thanos Sidecar nedarbojas pareizi, ja ir iespējota datu blÄ«vÄ“Å”ana. Tas nozÄ«mē, ka jÅ«su Prometheus sāk saglabāt datus divu stundu blokos un pārtrauc Å”o bloku sapludināŔanu lielākos blokos. AttiecÄ«gi, ja veicat vaicājumus, kas pārsniedz pēdējo divu stundu ilgumu, tie nedarbosies tik efektÄ«vi, kā varētu darboties, ja bÅ«tu iespējota datu blÄ«vÄ“Å”ana.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Tāpēc Thanos iesaka samazināt datu saglabāŔanas laiku vietējā krātuvē lÄ«dz 6-8 stundām, lai samazinātu liela skaita mazu bloku pieskaitāmās izmaksas.

Kad esat instalējis Thanos Sidecar, jums ir jāinstalē divi komponenti katram objektu krātuves kausam. Tie ir Thanos Compactor un Thanos Store Gateway.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Pēc tam jums ir jāinstalē Thanos Query un jākonfigurē tas, lai tas varētu izveidot savienojumu ar visiem jums esoÅ”ajiem Thanos Store Gateways, kā arÄ« var izveidot savienojumu ar visiem Thanos blakusvāģiem.

Šeit var būt neliela problēma.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Jums ir jākonfigurē uzticams un droÅ”s savienojums no Thanos Query ar Å”iem komponentiem. Un, ja jÅ«su Prometheus atrodas dažādos datu centros vai dažādos VPC, tad savienojumi ar tiem no ārpuses ir aizliegti. Bet, lai Thanos Query darbotos, jums kaut kā jākonfigurē savienojums, un jums ir jāizdomā veids.

Ja jums ir daudz Ŕādu datu centru, tad attiecÄ«gi samazinās visas sistēmas uzticamÄ«ba. Tā kā Thanos Query pastāvÄ«gi jāuztur savienojumi ar visiem Thanos blakusvāģiem, kas atrodas dažādos datu centros. Katram ienākoÅ”ajam pieprasÄ«jumam tas novirzÄ«s pieprasÄ«jumus uz visiem Thanos blakusvāģiem. Ja savienojums tiek pārtraukts, jÅ«s vai nu saņemsit nepilnÄ«gu datu kopu, vai arÄ« saņemsit atbildi ā€œkopa nedarbojasā€.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

VictoriaMetrics viss ir nedaudz vienkārŔāk. Viena mezgla versijai jums vienkārŔi jāpalaiž viens binārs, un viss darbojas.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Klastera versijā ir pietiekami palaist visus trÄ«s iepriekÅ” minētos komponentu veidus jebkurā jums nepiecieÅ”amajā vai izmantotajā daudzumā stÅ«res diagramma lai automatizētu komponentu palaiÅ”anu programmā Kubernetes. Plānojam uztaisÄ«t arÄ« Kubernetes operatoru. StÅ«res diagramma neaptver dažus gadÄ«jumus un ļauj ieÅ”aut sev kājā. Piemēram, tas ļauj samazināt krātuves mezglu skaitu, kas novedÄ«s pie datu zuduma.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Kad esat palaidis vienu bināro vai kopu versiju, jums vienkārÅ”i jāpievieno Prometheus konfigurācijai attālās rakstÄ«Å”anas URL iestatÄ«jumslai tas sāktu rakstÄ«t datus paralēli vietējai krātuvei un attālajai krātuvei. Kā redzat, Å”ai konfigurācijai vajadzētu darboties daudz uzticamāk, salÄ«dzinot ar Thanos konfigurāciju. Mums nav jāuztur savienojums no VictoriaMetrics ar visiem Prometheus, jo Prometheus paÅ”i savienojas ar VictoriaMetrics un pārsÅ«ta datus.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Apsvērsim Thanos un VictoriaMetrics atbalstu.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Thanos ir jāuzrauga Sidecar, lai pārliecinātos, ka tie nepārtrauc datu ielādi objektu krātuvē. Viņi var apturēt Å”o datu lejupielādi lejupielādes kļūdu dēļ, piemēram, jÅ«su tÄ«kla savienojums ar objektu krātuvi ir Ä«slaicÄ«gi pārtraukts vai objektu krātuve Ä«slaicÄ«gi nav pieejama. Thanos Sidecar to pamanÄ«s Å”obrÄ«d, ziņos par kļūdu, var avarēt un pēc tam pārstāt darboties. Ja jÅ«s to neuzraugāt, jÅ«s pārtrauksit datu pārsÅ«tÄ«Å”anu uz objektu krātuvi. Ja saglabāŔanas laiks paiet (ieteicams 6ā€“8 stundas), jÅ«s zaudēsiet datus, kas nenonāca objektu krātuvē.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Thanos blÄ«vētāji var pārstāt darboties, jo sacÄ«kstes ar blakusvāģi. BlÄ«vētāji ņem datus no objektu krātuves un apvieno tos lielākos datu gabalos. Tā kā blÄ«vētāji nav sinhronizēti ar Sidecars, var notikt sekojoÅ”ais: Sidecar vēl nav paspējis pabeigt bloku, Compactor nolemj, ka Å”is bloks ir pilnÄ«bā uzrakstÄ«ts. BlÄ«vētājs sāk to lasÄ«t. Tas neizlasa bloku pilnÄ«bā un pārstāj darboties. SkatÄ«t sÄ«kāku informāciju Å”eit.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Veikala vārteja var atgriezt nekonsekventus datus, jo notiek sacÄ«kstes starp blÄ«vētāju un blakusvāģiem. Tas pats notiek Å”eit, jo Store Gateway nekādā veidā nav sinhronizēts ar blÄ«vētājiem un blakusvāģiem. AttiecÄ«gi sacensÄ«bu apstākļi var rasties, ja veikala vārteja neredz daļu datu vai redz nevajadzÄ«gus datus.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Vaicājuma komponents Thanos pēc noklusējuma atgriež daļēju rezultātu, ja daži blakusvāģi vai veikala vārtejas paÅ”laik nav pieejami. JÅ«s saņemsiet daļu datu, un jÅ«s pat nezināsit, ka nesaņēmāt visus datus. Šādi tas darbojas pēc noklusējuma. LÄ«dzÄ«gā situācijā VictoriaMetrics atgriež atzÄ«mētos datus kā daļējus.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

AtŔķirÄ«bā no Thanos, VictoriaMetrics reti zaudē datus. Pat ja savienojums no Prometheus uz VictoriaMetrics tiek pārtraukts, tā nav problēma, jo Prometheus turpina ierakstÄ«t ienākoÅ”os jaunus datus žurnālā Write Ahead, kura lielums ir 2 stundas. Ja divu stundu laikā atjaunosit savienojumu ar VictoriaMetrics, jÅ«su dati netiks zaudēti. Prometejs var pievienot datus pēc savienojuma atjaunoÅ”anas ar VictoriaMetrics.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

AtŔķirÄ«bā no Thanos, kas ieraksta datus objekta krātuvē tikai pēc divām stundām, Prometheus automātiski replicē datus, izmantojot attālās rakstÄ«Å”anas protokolu, attālajā krātuvē, piemēram, VictoriaMetrics. JÅ«s nebaidāties zaudēt vietējo krātuvi pakalpojumā Prometheus. Ja viņŔ pēkŔņi zaudēja vietējo krātuvi, tad sliktākajā gadÄ«jumā jÅ«s zaudēsit pēdējās datu sekundes, kuras nebija laika ierakstÄ«t attālajā krātuvē.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

AtŔķirībā no Thanos, Kubernetes automātiski pārvalda kopu. AtŔķirībā no VictoriaMetrics klastera komponentiem ir grūti ievietot visus Thanos komponentus vienā Kubernetes klasterī.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

VictoriaMetrics ir ļoti vienkārÅ”s jaunās versijas atjauninājums. VienkārÅ”i apturiet VictoriaMetrics, atjauniniet bināros failus un palaidiet to. Apturot, izmantojot SIGINT signālu, visi VictoriaMetrics binārie faili veic graciozu izslēgÅ”anu. Viņi pareizi saglabā nepiecieÅ”amos datus, pareizi aizver ienākoÅ”os savienojumus, lai neko nezaudētu. Tātad jaunināŔanas laikā jÅ«s neko nezaudēsit.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

VictoriaMetrics ļauj ļoti viegli paplaŔināt klasteru. VienkārŔi pievienojiet nepiecieŔamās sastāvdaļas un turpiniet strādāt.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Par Thanos un VictoriaMetrics kļūmēm.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Thanosam ir Ŕādas nepilnÄ«bas. Prometejam ir jāsaglabā dati par pēdējām divām stundām. Ja tie pazudÄ«s, jÅ«s tos pilnÄ«bā pazaudēsit, jo viņiem vēl nav bijis laika rakstÄ«t uz objektu krātuvi, piemēram, S3.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Komponentam Store Gateway un kompaktoram var bÅ«t nepiecieÅ”ams daudz atmiņas, lai strādātu ar lielu objektu krātuvi, ja tajā ir glabāti daudz mazu failu. Jo lielāks failu skaits un lielums, jo vairāk Store Gateway un kompaktora RAM ir nepiecieÅ”ams metainformācijas glabāŔanai. Thanosam ir daudz problēmu saistÄ«bā ar to Veikala vārteja un blÄ«vētāja avārija ar vidējo ierakstÄ«to datu apjomu.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Thanos tiek reklamēts uz nenoteiktu laiku, ņemot vērā jÅ«su rÄ«cÄ«bā esoÅ”o Prometeja daudzumu. Tā patiesÄ«bā nav taisnÄ«ba. Tā kā visi pieprasÄ«jumi tiek nosÅ«tÄ«ti caur vaicājuma komponentu, kuram vienlaikus jāaptauj visi veikala vārtejas komponenti un visi blakusvāģa komponenti, izvelciet datus no turienes un pēc tam tos iepriekÅ” apstrādājiet. AcÄ«mredzot pieprasÄ«juma ātrumu ierobežo lēnākā vājā saite, lēnākā veikala vārteja vai lēnākā blakusvāģis.

Å Ä«s sastāvdaļas var bÅ«t nevienmērÄ«gi noslogotas. Piemēram, jums ir Prometheus, kas apkopo miljoniem metrikas sekundē. Un ir Prometheus, kas savāc tÅ«kstoÅ”iem metriku sekundē. Prometheus, kas savāc miljoniem metrikas sekundē, uzliek daudz lielāku slodzi serverim, kurā tas darbojas. AttiecÄ«gi Sidecar tur darbojas lēnāk. Un vispār tur viss darbojas lēni. Un vaicājuma komponents ļoti lēni iegÅ«s datus no turienes. AttiecÄ«gi visa jÅ«su klastera veiktspēju ierobežos Å”is lēnais blakusvāģis.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Pēc noklusējuma Thanos sniedz daļējus datus, ja daži blakusvāģi un veikala vārteja nav pieejami. Piemēram, ja jūsu blakusvāģi ir izkaisīti pa visu pasauli dažādos datu centros, tad savienojuma kļūmes un komponentu nepieejamības iespējamība ievērojami palielinās. Attiecīgi vairumā gadījumu jūs saņemsiet daļējus datus, pat to nezinot.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

VictoriaMetrics ir arÄ« nepilnÄ«bas. Pirmā kļūme ir opcija, kas ierobežo VictoriaMetrics keÅ”atmiņai izmantotās RAM apjomu. Pēc noklusējuma tas ir vienāds ar 60% RAM tajā iekārtā, kurā darbojas VictoriaMetrics, vai 60% no VictoriaMetrics pod RAM Kubernetes.

Ja mainÄ«sit Å”o vērtÄ«bu nepareizi, varat sabojāt VictoriaMetrics veiktspēju. Piemēram, ja iestatāt pārāk zemu vērtÄ«bu, dati var vairs neietilpst VictoriaMetrics keÅ”atmiņā. Å Ä« iemesla dēļ viņai bÅ«s jāveic papildu darbs un jāielādē procesors un disks. Ja Å”o opciju padarÄ«sit pārāk lielu, tas, pirmkārt, palielina iespējamÄ«bu, ka VictoriaMetrics avarēs kļūdas dēļ, ka trÅ«kst atmiņas, un, otrkārt, tas novedÄ«s pie tā, ka operētājsistēmas atmiņā paliks ļoti maz RAM. failu keÅ”atmiņa. Un VictoriaMetrics veiktspējai paļaujas uz failu keÅ”atmiņu. Ja ar to nepietiek, diska slodze var ievērojami palielināties. Tāpēc padoms: nemainiet parametru, ja vien tas nav absolÅ«ti nepiecieÅ”ams.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Otrais variants. Å is ir retentionPeriod ā€” periods, kas pēc noklusējuma ir iestatÄ«ts uz 1 mēnesi. Å is ir laiks, kurā VictoriaMetrics saglabā datus. Pēc Ŕī perioda VictoriaMetrics dzÄ“Å” datus.

Daudzi cilvēki izmanto VictoriaMetrics bez Ŕī parametra un ieraksta datus par mēnesi. Un tad viņi jautā: kāpēc pazuda dati par iepriekŔējo mēnesi? Tā kā noklusējuma saglabāŔanas periods ir 1 mēnesis. Tāpēc jums jāzina un jāiestata pareizais retentionPeriod.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Apskatīsim unikālās funkcijas.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Thanos ir funkcija, ko sauc par samazināŔanu: 5 minÅ«Å”u un stundu intervāli, kas bieži nedarbojas pareizi. Ja meklējat Google un aplÅ«kojat viņu problēmu vietnē github, ir daudz problēmu, kas saistÄ«tas ar Å”o iztverÅ”anu, ka dažreiz tā nedarbojas pareizi vai nedarbojas tā, kā lietotāji gaida.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Thanos ir datu dedublikācija Prometheus HA pāriem. Kad divi Prometheus apkopo vienu un to paÅ”u metriku no vieniem un tiem paÅ”iem mērÄ·iem un Thanos tos saglabā objektu krātuvē. AtŔķirÄ«bā no VictoriaMetrics, Thanos var pareizi dedublēt Å”os datus.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Thanos ir brÄ«dinājuma komponents, kas bija Thanos shēmā. Bet viņŔ nav ieteicams izmantot ražoÅ”anā.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Thanos priekŔrocība ir tā, ka Thanos un Prometheus izmanto vienu un to paŔu kodu. Thanos un Prometheus izstrādā tie paŔi izstrādātāji. Ar Thanos vai Prometheus uzlabojumiem uzvar otra puse.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

VictoriaMetrics galvenā funkcija ir MetricsQL. Tie ir VictoriaMetrics paplaÅ”inājumi PromQL, par kuriem es runāju iepriekŔējā lielajā uzraudzÄ«bas metu.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

VictoriaMetrics atbalsta datu ielādi, izmantojot daudzus dažādus protokolus. VictoriaMetrics var ne tikai pieņemt datus no Prometheus, bet arī izmantojot Influx, OpenTSDB un Graphite protokolus.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

VictoriaMetrics dati aizņem daudz mazāk vietas salīdzinājumā ar Thanos un Prometheus.

Ja ierakstāt reālus datus, lietotāji runā par diskā esoÅ”o datu apjoma samazinājumu 2ā€“5 reizes, salÄ«dzinot ar Prometheus un Thanos.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Vēl viena VictoriaMetrics priekÅ”rocÄ«ba ir tā, ka tā ir optimizēta ātrumam.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Apskatīsim infrastruktūras izmaksas.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Viena no Thanos priekÅ”rocÄ«bām ir tā, ka tā glabā datus objektu krātuvē, kas ir salÄ«dzinoÅ”i lēta.

Uzglabājot datus objektu krātuvē, jums ir jāmaksā par datu rakstÄ«Å”anas un lasÄ«Å”anas operācijām (10 USD par miljonu operāciju). Ierakstot datus objektu krātuvē, jÅ«s maksājat mitināŔanas izmaksas par datu augÅ”upielādi internetā; ja jÅ«su klasteris nav AWS, tas ir bez maksas. Lasot datus, jÅ«s maksājat no 10 lÄ«dz 230 USD par 1 TB. Tas var bÅ«t nozÄ«mÄ«gi, ja bieži pieprasāt vēsturiskos datus no Thanos klastera.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Thanos klasterim jums ir jāmaksā par serveriem Compact, Store Gateway, Query komponentiem, kuriem nepiecieÅ”ams daudz atmiņas, un CPU lielam datu apjomam.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

VictoriaMetrics ir Ŕādi izdevumi. Ja datus glabājat GCE HDD diskdziņos, tas maksā 40 USD par 1 TB. VictoriaMetrics ir pietiekami ar parastajiem HDD diskdziņiem, nav nepiecieÅ”ami SSD, kas maksā piecas reizes vairāk. VictoriaMetrics ir optimizēta HDD.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

VictoriaMetrics komponentiem ir nepiecieÅ”ami serveri: viena mezgla vai kopu komponenti, kuriem atŔķirÄ«bā no Thanos komponentiem ir nepiecieÅ”ams daudz mazāk CPU un RAM, un attiecÄ«gi tie bÅ«s lētāki.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

ÄŖstenoÅ”anas piemēri.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Thanos ir ievieÅ”anas piemērs Gitlab. Gitlab pilnÄ«bā darbojas uz Thanos. Bet ne viss tur ir tik gludi. Ja paskatās uz tiem jautājumi, tad jÅ«s varat redzēt, ka viņiem pastāvÄ«gi ir daži darbÄ«bas problēmas ar Thanos: nepietiek atmiņas veikala vārtejas vai vaicājuma komponentiem. Viņiem pastāvÄ«gi jāpalielina atmiņas apjoms.

Sakarā ar to palielinās Å”o problēmu risināŔanas izmaksas.

Otrā ievieÅ”ana, kas varētu bÅ«t veiksmÄ«gāka, ir uzņēmums Improbable, kas sāka attÄ«stÄ«t Thanos. Viņi publicēja Thanos pirmkodu. Improbable ir uzņēmums, kas izstrādā spēļu dzinējus.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

VictoriaMetrics ir publiski ievieÅ”anas piemēri:

  • wix.com vietņu veidotājs
  • Adidas ievieÅ” VictoriaMetrics un pat uzstājās ar prezentāciju pēdējā PromCon 2019. gadā
  • TrafficStars - reklāmu tÄ«kls
  • Seznam.cz ir populāra Čehijas meklētājprogramma.

Un tad bija uzņēmumi bez nosaukuma, kurus es tagad nevaru nosaukt. Viņi nepiekrita.

  • Viens no galvenajiem spēļu izstrādātājiem. Lielāks nekā im Neticami.
  • Lielākais grafikas programmatÅ«ras izstrādātājs.
  • Lielā Krievijas banka.
  • Eiropas vēja turbÄ«nu ražotājs, kas ir veiksmÄ«gi testējis VictoriaMetrics. Å is ražotājs ievieÅ” VictoriaMetrics, lai uzraudzÄ«tu datus, kas savākti no vēja turbÄ«nām ar ātrumu 50 paraugi sekundē uz vienu sensoru. Katrai vēja turbÄ«nai ir vairāki simti sensoru. Viņiem ir vairāki simti vēja turbÄ«nu.
  • Krievijas aviosabiedrÄ«bas, kas vēlas ieviest VictoriaMetrics, bet joprojām nevar. Mēs ar viņiem esam lÄ«guma stadijā.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetricsSecinājumi.

VictoriaMetrics un Thanos atrisina līdzīgas problēmas, bet dažādos veidos:

  • Globālais vaicājuma skats
  • horizontālā mērogoÅ”ana
  • patvaļīga saglabāŔana

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Paldies.

Gaidām Jūs pie mums telegrammas kanāls.

Prometheus datu krātuves izvēle: Thanos vs VictoriaMetrics

Aptaujā var piedalīties tikai reģistrēti lietotāji. Ielogoties, lūdzu.

Ko jÅ«s izmantojat kā Prometheus ilgtermiņa uzglabāŔanu?

  • 35,3%Thanos6

  • 0,0%Kortekss0

  • 0,0%M3DB0

  • 41,2%VictoriaMetrics7

  • 23,5%cits4

Nobalsoja 17 lietotāji. 16 lietotāji atturējās.

Avots: www.habr.com

Pievieno komentāru