Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Përshëndetje të gjithëve. Më poshtë është një përmbledhje e raportit nga Big Monitoring Meetup 4.

Prometheus – njĂ« sistem monitorimi pĂ«r sisteme dhe shĂ«rbime tĂ« ndryshme, pĂ«rmes tĂ« cilit administratorĂ«t e sistemeve mund tĂ« mbledhin informacion mbi parametrat aktualĂ« tĂ« sistemeve dhe tĂ« konfigurojnĂ« njoftime pĂ«r tĂ« marrĂ« alarme nĂ« rast devijimesh nĂ« punĂ«n e sistemeve.

NĂ« raport do tĂ« ketĂ« krahasime Thanos dhe VictoriaMetrics – projekte pĂ«r ruajtjen afatgjatĂ« tĂ« metrikave Prometheus.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Luaj videon

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Së pari do të flas për Prometheus. Ky është një sistem monitorimi, i cili mbledh metrika nga target'ët e caktuar dhe i ruan ato në një ruajtje lokale. Prometheus di të regjistrojë metrika në një ruajtje të largët, di të gjenerojë alarme dhe rregulla regjistrimi.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Kufizimet e Prometheus:

  • Ai nuk ka pamje globale tĂ« kĂ«rkimit. Ky Ă«shtĂ« rasti kur keni disa instance tĂ« pavarura tĂ« Prometheus. Ato mbledhin metrika. Dhe ju dĂ«shironi tĂ« bĂ«ni njĂ« kĂ«rkesĂ« mbi tĂ« gjitha kĂ«to metrika, tĂ« mbledhura nga instance tĂ« ndryshme tĂ« Prometheus. Prometheus nuk e lejon kĂ«tĂ«.
  • Performanca e Prometheus Ă«shtĂ« e kufizuar vetĂ«m nĂ« njĂ« server. Prometheus automatikisht nuk mund tĂ« shkallĂ«zohet nĂ« disa servera. Ju vetĂ«m mund tĂ« ndani manualisht target'Ă«t tuaj midis disa Prometheus'ave.
  • VĂ«llimi i metrikave nĂ« Prometheus Ă«shtĂ« i kufizuar vetĂ«m nĂ« njĂ« server pĂ«r tĂ« njĂ«jtĂ«n arsye, pĂ«r tĂ« cilĂ«n ai automatikisht nuk mund tĂ« shkallĂ«zohet nĂ« disa servera.
  • NĂ« Prometheus nuk Ă«shtĂ« aq e lehtĂ« tĂ« organizoni ruajtjen e tĂ« dhĂ«nave.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Zgjidhjet për këto probleme/çështje?

Zgjidhjet janë:

Të gjitha këto zgjidhje janë për ruajtjen e të dhënave të largëta, të mbledhura nga Prometheus. Ato zgjidhin problemin e ruajtjes së largët nga slide-i i mëparshëm në mënyra të ndryshme. Në këtë prezantim do të flas vetëm për dy zgjidhjet e para: Thanos dhe VictoriaMetrics.

Për herë të parë informacioni mbi Thanos u shfaq në këtë lidhje. Aty përshkruhet arkitektura Thanos dhe si funksionon.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Thanos merr të dhënat, të cilat Prometheus i ka ruajtur në diskun lokal, dhe i kopjon ato në S3, në GCS ose në një ruajtje tjetër objekti.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Kështu, Thanos siguron pamjen globale të kërkimit. Ju mund të kërkoni të dhëna, të ruajtura në ruajtjen e objektit me disa instance të Prometheus.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Thanos mbështet PromQL dhe API-në e kërkimit të Prometheus.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Thanos përdor kodin e Prometheus për ruajtjen e të dhënave.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Thanos zhvillohet nga të njëjtët zhvillues, që zhvillojnë edhe Prometheus.

Për VictoriaMetrics. Ja link, ku folëm për herë të parë për VictoriaMetrics.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics merr të dhënat nga disa Prometheus përmes API-së së shkrimit të largët, protokollit, të mbështetur nga Prometheus.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics ofron global query view, pasi disa instanca të Prometheus mund të shkruajnë të dhëna në një VictoriaMetrics. Prandaj, mund të bëni kërkesa mbi këto të dhëna.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics gjithashtu mbĂ«shtet, ashtu si Thanos — PromQL dhe Prometheus querying API.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Në ndryshim nga Thanos, kodi burimor i VictoriaMetrics është shkruar nga e para dhe është optimizuar për shpejtësi dhe burime të konsumit.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics, ndryshe nga Thanos, shkallëzohet si verticalisht ashtu edhe horizontalisht. Ka versionin Single-node, i cili shkallëzohet verticalisht. Mund të filloni me një procesor dhe 1 GB memorie dhe gradualisht të rriteni deri në qindra procesorë dhe 1TB memorie. VictoriaMetrics di të përdorë të gjitha këto burime. Performanca e saj do të rritet rreth 100 herë në krahasim me një sistem me 1 bërthamë.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Historia e Thanos filloi në nëntor 2017, kur u bë komiti i parë publik. Para kësaj, Thanos u zhvillua brenda kompanisë improbable.io.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Në qershor 2019, pati një publikim të rëndësishëm 0.5.0, në të cilin u hoq protokolli gossip. E hoqëm atë nga Thanos, sepse tregoi se nuk funksiononte mirë. Shpesh, klasteri i Thanos nuk punonte siç duhej, node-t lidheshin gabim për shkak të protokollit gossip. Prandaj u vendos të hiqet nga aty. Mendoj se kjo është një vendim i drejtë.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Në të njëjtin qershor 2019, ata paraqitën aplikimin e numrit 256 në Cloud Native Computing Foundation.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Dhe pas disa muajsh Thanos u pranua në Cloud Native Computing Foundation, e cila përfshin Prometheus, Kubernetes dhe projekte të tjera të njohura.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

NĂ« janar 2018, filloi zhvillimi i VictoriaMetrics.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Në shtator 2018 për herë të parë e përmenda publikisht VictoriaMetrics.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

NĂ« dhjetor 2018, u publikua versioni Single-node.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Në maj 2019 u botuan kode burimore si për versionin Single-node ashtu edhe për versionin klaster.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Në qershor 2019, ashtu si Thanos, ne dërguam një aplikim në CNCF foundation me numrin 255. Ne e dërguam aplikimin një ditë përpara se Thanos ta dërgonte atë.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Por, fatkeqësisht, ende nuk na kanë pranuar atje. Ne kemi nevojë për ndihmën e komunitetit.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Le të shqyrtojmë slidet më të rëndësishme, të cilat tregojnë arkitekturën e Thanos dhe VictoriaMetrics.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Le tĂ« fillojmĂ« me Thanos. KomponentĂ«t e verdhĂ« janĂ« komponentĂ«t e Prometheus. Gjithçka tjetĂ«r Ă«shtĂ« komponentĂ« tĂ« Thanos. Le tĂ« fillojmĂ« me komponentin mĂ« tĂ« rĂ«ndĂ«sishĂ«m. Thanos Sidecar — Ă«shtĂ« komponent qĂ« instalon pĂ«rkrah çdo Prometheus. Ai merret me ngarkimin e tĂ« dhĂ«nave tĂ« Prometheus nga storage lokal nĂ« S3 ose nĂ« njĂ« Object Storage tjetĂ«r.

Kaftë edhe një komponent, si Thanos Store Gateway, i cili di të lexojë këto të dhëna nga Object Storage në kërkesat e ardhshme nga Thanos Query. Thanos Query implementon PromQL dhe Prometheus API. Pra, nga jashtë ai duket si Prometheus. Prisni kërkesat PromQL, i dërgon ato në Thanos Store Gateway, Thanos Store Gateway nxjerr të dhënat e nevojshme nga Object Storage dhe i dërgon ato prapa.

Por ne në Object Storage ruajmë të dhëna pa dy orët e fundit për shkak të veçorive të implementimit të Thanos Sidecar, i cili nuk mund të ngarkojë dy orët e fundit në Object Storage S3, pasi për këto dy orë Prometheus ende nuk ka krijuar skedarët në ruajtjen lokale.

Si e zgjidhëm këtë? Thanos Query, përveç se dërgon kërkesa në Thanos Store Gateway, dërgon paralelisht kërkesa në çdo Thanos Sidecar, i cili ndodhet afër Prometheus.

Dhe Thanos Sidecar, nga ana e tij, proksionon kërkesat më tej në Prometheus dhe shkarkon të dhënat për dy orët e fundit.

Përveç këtyre komponentëve, ka gjithashtu një komponent opsional, pa të cilin Thanos do të ndjehet keq. Ky është Thanos Compact, i cili merret me bashkimin e skedave të vegjël në Object Storage në skeda më të mëdha, të cilat janë ngarkuar këtu nga Thanos Sidecar. Thanos Sidecar ngarkon aty skedarët me të dhëna për dy orë. Këto skedarë, nëse nuk bashkohen në skedarë më të mëdhenj, mund të rriten shumë në numër. Sa më shumë të tillë skedarë, aq më shumë memorie nevojitet për Thanos Store Gateway, aq më shumë burime janë të nevojshme për transferimin e të dhënave përmes rrjetit, të metadantave. Funksionimi i Thanos Store Gateway bëhet i papërshtatshëm. Prandaj, është e domosdoshme të aktivizohet Thanos Compact, i cili bashkon skedarët e vegjël në më të mëdhenj, për të reduktuar numrin e skedarëve dhe për të zvogëluar overhead-in në Thanos Store Gateway.

Ka gjithashtu njĂ« komponent si Thanos Ruler. Ai realizon rregullat e alertimit tĂ« Prometheus dhe mund tĂ« llogarisĂ« rregullat e regjistrimit tĂ« Prometheus, pĂ«r tĂ« regjistruar pĂ«rsĂ«ri tĂ« dhĂ«nat nĂ« Object Storage. Por ky komponent nuk rekomandohet pĂ«r t'u pĂ«rdorur, pasi ai Ă«shtĂ« сĐșĐ»ĐŸĐœĐ”Đœ Ўа ĐČръща ĐœĐ”ĐżŃŠĐ»ĐœĐž ĐŽĐ°ĐœĐœĐž.

Kjo është një skemë e thjeshtë e Thanos.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Tani, le të krahasojmë me skemën e VictoriaMetrics.

VictoriaMetrics ka 2 versione: Single-node dhe versione klustĂ«r. Single-node funksionon nĂ« njĂ« kompjuter. NĂ« Single-node nuk ka kĂ«to komponentĂ«, thjesht njĂ« binar. Ky binar nĂ« slajd duket si ky katror. TĂ« gjitha ato qĂ« ndodhen brenda katrorit janĂ« pĂ«rmbajtja e skedarit binar tĂ« versionit Single-node. Nuk Ă«shtĂ« e nevojshme tĂ« dini pĂ«r tĂ«. Thjesht e aktivizoni binarin — dhe gjithçka funksionon.

Versioni e klasterëve është më e komplikuar. Brenda saj ndodhen tre komponentë të ndryshëm: vmselect, vminsert dhe vmstorage. Nga emrat e tyre duhet të bëhet e qartë se çfarë bën secili prej tyre. Komponenti Insert pranon të dhëna në formate të ndryshme: nga Prometheus remote write API, protokolli Influx line, protokolli Graphite dhe nga protokolli OpenTSDB. Komponenti Insert i pranon, i parse dhe i shpërndan mes komponentëve storage të disponueshëm, ku të dhënat ruhet tashmë. Komponenti Select, nga ana tjetër, pranon kërkesat PromQL. Ai realizon PromQL, si dhe API-në e kërkimeve të Prometheus, dhe ai mund të përdoret si një zëvendësim i Prometheus në Grafana ose në klientët e tjerë të API-së së Prometheus. Select pranon një kërkesë promql, e parse atë, lexon të dhënat e nevojshme për ekzekutimin e kësaj kërkese nga nodet storage, i proceson këto të dhëna dhe kthen përgjigjen.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Le të krahasojmë kompleksitetin e instalimit të Thanos dhe VictoriaMetrics.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Të fillojmë me Thanos. Para se të filloni të punoni me Thanos, duhet të krijoni një bucket në Object Storage, si S3 ose GCS, që Thanos Sidecar të mund të shkruajë të dhëna atje.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Pas kësaj, për çdo Prometheus duhet të instaloni Thanos Sidecar. Para kësaj, mos harroni të çaktivizoni kompresimin e të dhënave në Prometheus. Kompresimi i të dhënave përkohësisht kompreson të dhënat në magazinën lokale të Prometheus për të zvogëluar konsumimin e burimeve.

Kur instaloni Thanos Sidecar në Prometheusing tuaj, duhet të çaktivizoni këtë kompresim të të dhënave, sepse Thanos Sidecar nuk mund të funksionojë siç duhet kur kompresimi i të dhënave është i aktivizuar. Kjo do të thotë se Prometheus-i juaj fillon të ruajë të dhënat në blloqe nga dy orë dhe ndalon bashkimin e këtyre blloqeve në më të mëdha. Prandaj, nëse bëni kërkesa që tejkalojnë kohëzgjatjen e dy orëve të fundit, ato do të funksionojnë më pak efikas, krahasuar me si do të funksiononin nëse do të ishte aktivizuar kompresimi i të dhënave.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Prandaj, Thanos rekomandon të zvogëloni kohëzgjatjen e ruajtjes së të dhënave në magazinën lokale në 6-8 orë, për të reduktuar këtë overhead të shumë blloqeve të vogla.

Pas instalimit të Thanos Sidecar, për çdo Object Storage Bucket duhet të instaloni dy komponentë. Këta janë Thanos Compactor dhe Thanos Store Gateway.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Pas kësaj, duhet të instaloni Thanos Query dhe ta konfiguroni atë që të mund të lidhet me të gjitha Thanos Store Gateway që keni, si dhe të mund të lidhet me të gjithë Thanos Sidecar.

Këtu mund të ketë një problem të vogël.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Ju duhet të konfiguroni një lidhje të besueshme dhe të sigurt nga Thanos Query në këto componente. Dhe nëse keni Prometheus në qendra të ndryshme të të dhënave, ose në VPC të ndryshme, atëherë lidhjet nga jashtë janë të ndaluara. Por për të punuar me Thanos Query, ju nevojitet ndonjë mënyrë për të konfiguruar lidhjen atje, dhe duhet të gjeni një zgjidhje.

Nëse keni shumë nga këto qendra të të dhënash, atëherë, natyrisht, besueshmëria e gjithë sistemit zvogëlohet. Sepse Thanos Query duhet të mbajë lidhjet me të gjitha Thanos Sidecar, të vendosura në qendra të ndryshme të të dhënave. Me çdo kërkesë që hyn, ai do të drejtojë kërkesat në të gjitha Thanos Sidecar. Nëse lidhja pritet, do të merrni ose një grup të papërfunduar të të dhënave, ose një përgjigje "klastri nuk funksionon".

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Në VictoriaMetrics, gjithçka është pak më e thjeshtë. Për versionin me një nyjë, mjafton të nisni një binar dhe gjithçka funksionon.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Në versionin me klaster, mjafton të nisni tri llojet e përmendura më lart të komponenteve në çdo numër të nevojshëm, ose të përdorni helm chart për automatikën e nisjes së komponenteve në Kubernetes. Ne kemi planifikuar gjithashtu të krijojmë një operator Kubernetes. Helm chart nuk mbulon disa raste dhe ju lejon të qëlloni veten në këmbë. Për shembull, ai lejon të zvogëloni numrin e nyjeve të ruajtjes, çka do të çojë në humbjen e të dhënave.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Pas nisjes së një binari ose versionit me klaster, mjafton të shtoni në konfigurimin e Prometheus konfigurimin për URL-në remote write, në mënyrë që ai të fillojë të regjistrojë të dhënat paralelisht në ruajtjen lokale dhe në ruajtjen e largët. Siç e keni vënë re, një konfigurim i tillë duhet të funksionojë shumë më me besueshmëri krahasuar me konfigurimin e Thanos. Ne nuk duhet të mbajmë lidhjen nga VictoriaMetrics me të gjitha Prometheus, sepse Prometheus vetë lidhen me VictoriaMetrics dhe transferojnë të dhënat.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Le të shqyrtojmë mbështetje për Thanos dhe VictoriaMetrics.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Thanos duhet të monitorojë Sidecar-in, që ata të mos ndalojnë ngarkimin e të dhënave në Object Storage. Ata mund ta ndalin këtë ngarkim të dhënash për shkak të gabimeve të ngarkimit, për shembull nëse keni një ndërprerje të përkohshme të lidhjes rrjetore me Object Storage, ose Object Storage është përkohësisht i papërshtatshëm. Thanos Sidecar në atë moment do ta vërejë këtë, do ta njoftojë për gabimin, mund të bie dhe pas kësaj do të ndalojë së funksionuari. Nëse nuk e monitoroni atë, të dhënat do të ndalojnë së kaluar në Object Storage. Nëse kalon koha e retention (6-8 orë e rekomanduar), ju do të humbni të dhënat që nuk arritën në Object Storage.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Thanos compactorët mund të ndalojnë së funksionuari për shkak të konflikteve me Sidecar-in. Compactorët marrin të dhënat nga Object Storage dhe i bashkojnë ato në copa më të mëdha të të dhënave. Duke qenë se compactorët nuk janë sinqagzuar me Sidecar-at, mund të ndodhin këto: Sidecar nuk ka përfunduar akoma të shkruajë bllokun, Compactor-i vendos se ky bllok është plotësisht i shkruar. Compactor-i fillon ta lexojë atë. Ai e lexon bllokun jo në një formë të plotë dhe ndalon së funksionuari. Shih detajet këtu.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Store Gateway mund të japë të dhëna jo konsistente për shkak të konflikteve mes Compactor-it dhe Sidecar-ave. Këtu ndodh e njëjta gjë, sepse Store Gateway nuk është sinqagzuar me Compactor-ët dhe Sidecar-ët. Për rrjedhojë, mund të ndodhin gjendje konflikti, ku Store Gateway nuk sheh një pjesë të të dhënave, ose sheh të dhëna shtesë.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Komponenti Query në Thanos në mënyrë të paracaktuar jep rezultate parciale, nëse disa Sidecar-ë ose Store Gateway nuk janë të disponueshme në atë moment. Ju do të merrni një pjesë të dhënash, dhe madje nuk do ta dini që nuk keni marrë të gjitha të dhënat. Kështu funksionon ai me përparësi. Në një situatë të ngjashme, VictoriaMetrics kthen të dhënat e shenuara si parciale.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Në kundërshtim me Thanos, VictoriaMetrics rrallë humb të dhëna. Edhe nëse lidhja nga Prometheus në VictoriaMetrics është ndalur, nuk është problem, sepse Prometheus vazhdon të regjistrojë të dhënat e reja që vijnë në Write Ahead Log, i cili ka një madhësi prej 2 orësh. Nëse brenda dy orëve riktheni lidhjen me VictoriaMetrics, të dhënat nuk do të humbasin. Prometheus mund të shkruajë të dhëna pas rikthimit të lidhjes me VictoriaMetrics.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Ndryshe nga Thanos, i cili regjistron të dhënat në object storage vetëm pas dy orësh, Prometheus automatikisht riplikon të dhënat përmes protokollit remote write në remote storage, siç është VictoriaMetrics. Nuk keni frikë nga humbja e local storage në Prometheus. Nëse ndodhin të humbasë local storage, në rastin më të keq do të humbni vetëm të dhënat e fundit të sekondave, që nuk arritën të regjistroheshin në remote storage.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Kubernetes automatikisht menaxhon klorin e saj, ndryshe nga Thanos. Të gjitha komponentët e Thanos janë të komplikuar për t'u vendosur në një Kubernetes cluster, ndryshe nga komponentët e klastrit VictoriaMetrics.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics ka një përditësim shumë të thjeshtë në versionin e ri. Thjesht ndalni VictoriaMetrics, përditësoni binaret dhe rifilloni. Kur ndaloni përmes sinjalit SIGINT, të gjitha binaret e VictoriaMetrics bëjnë një gracefull shutdown. Ato ruajnë saktësisht të dhënat e nevojshme, mbyllin saktësisht lidhjet hyrëse për të mos humbur asgjë. Prandaj, nuk do të humbni asgjë gjatë përditësimit.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Me VictoriaMetrics është shumë e thjeshtë të zgjerohet klori. Thjesht shtoni komponentët e nevojshëm dhe vazhdoni të punoni.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Për pengesat në Thanos dhe VictoriaMetrics.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Thanos ka këto pengesa. Prometheus duhet të ruajë të dhënat për dy orët e fundit. Nëse ato humbasin, do t'i humbni plotësisht, pasi ato nuk kanë arritur ende të regjistrohen në Object Storage, si S3.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Komponenti Store Gateway dhe komponenti compactori mund të kërkojnë shumë memorie për të punuar me një Object Storage të madh, nëse atje ruhet shumë skedarë të vegjël. Sa më shumë të jenë numri dhe volumi i skedarëve, aq më shumë kërkohet memorie operative nga Store Gateway dhe compactori për të ruajtur metainformacionin. Thanos ka shumë probleme në lidhje me këtë. Store Gateway dhe compactori bien kur ka sasi mesatare të të dhënave të regjistruara..

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Thanos reklamohet se mund të skalohet pafundësisht me numrin e Prometheus tuaj. Në të vërtetë, kjo nuk është e vërtetë. Sepse të gjitha kërkesat kalojnë përmes komponenti Query, i cili duhet të pyet në mënyrë paralele të gjithë komponentët e Store Gateway dhe të gjithë komponentët e Sidecar, të nxjerrë të dhënat atje dhe pastaj t'i përpunojë ato. Sidomos, shpejtësia e kërkesave është e kufizuar nga pika më e dobët, Store Gateway më i ngadalshëm ose Sidecar më i ngadalshëm.

Këto komponentë mund të jenë të ngarkuara në mënyrë uniforme. Për shembull, keni një Prometheus që mbledh miliona metrika në sekondë. Dhe ka një Prometheus, në të cilin mblidhen mijëra metrika në sekondë. Prometheus që mbledh miliona metrika në sekondë ngarkon shumë më tepër serverin, mbi të cilin funksionon. Për rrjedhojë, Sidecar atje funksionon më ngadalë. Dhe në përgjithësi, gjithçka aty punon ngadalë. Komponenti Query do të nxjerrë të dhëna shumë ngadalë nga aty. Për rrjedhojë, performanca e tërë klasterit tuaj do të jetë e kufizuar nga ky Sidecar i ngadaltë.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Në parazgjedhje, Thanos ofron të dhëna të pjesshme nëse disa Sidecar dhe ose Store Gateway nuk janë në dispozicion. Për shembull, nëse keni Sidecar të shpërndara në të gjithë botën në qendra të ndryshme të të dhënave, probabiliteti i lidhjeve të prishura dhe i papasqyrimeve të komponenteve rritet ndjeshëm. Si rrjedhojë, në shumicën e rasteve do të merrni të dhëna të pjesshme, pa e ditur këtë.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics gjithashtu ka kapërcime të fshehura. Kapërcimi i parë është opsioni që kufizon sasinë e memories operative të përdorur nga cache VictoriaMetrics. Në parazgjedhje, ai është 60% e memories operative në pajisjen ku është e instaluar VictoriaMetrics ose 60% e RAM-it të pods-ve të VictoriaMetrics në Kubernetes.

Nëse ndërroni këtë vlerë në mënyrë të gabuar, mund të dëmtoni performancën e VictoriaMetrics. Për shembull, nëse vendosni një vlerë shumë të ulët, të dhënat mund të mos kenë hapësirë në cache-in e VictoriaMetrics. Kjo do ta bëjë atë të kryejë punë të tepërt dhe të ngarkojë procesorin me skedarin. Nëse e vendosni këtë opsion shumë të lartë, kjo rrit, së pari, probabilitetin që VictoriaMetrics të dështojë me gabimin e out of memory, dhe së dyti, do të sjellë nënkuptimin që sistemi operativ do të ketë shumë pak memorie operative për cache-in e skedarëve. Dhe VictoriaMetrics mbështetet në cache-in e skedarëve për performancën. Nëse është e pamjaftueshme, ngarkesa mbi disk mund të rritet ndjeshëm. Pra, këshilla është: mos e ndryshoni parametrin pa nevojë të madhe.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Opsioni i dytĂ«. Ky Ă«shtĂ« retentionPeriod — periudha qĂ« nĂ« parazgjedhje Ă«shtĂ« e vendosur nĂ« 1 muaj. Ky Ă«shtĂ« koha gjatĂ« sĂ« cilĂ«s VictoriaMetrics ruan tĂ« dhĂ«nat. Pas pĂ«rfundimit tĂ« kĂ«saj periudhe, VictoriaMetrics i fshin tĂ« dhĂ«nat.

Shumë përdorues e fillojnë VictoriaMetrics pa këtë parametr, regjistrojnë të dhëna për një muaj. Pastaj pyesin: pse të dhënat humbën për muajin e kaluar? Sepse retentionPeriod në mënyrë të paracaktuar është 1 muaj. Prandaj, duhet të dini dhe të përcaktoni një retentionPeriod të saktë.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Le të kalojmë në mundësitë unike.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Thanos ka një veçori, siç është downsampling: intervale 5-minutëshe dhe njëorëshe, të cilat shpesh nuk funksionojnë siç duhet. Nëse e kërkoni në Google dhe shikoni çështjet e tyre në GitHub, ka shumë probleme që lidhen me këtë downsampling, se ai ndonjëherë nuk funksionon siç pritet, ose nuk funksionon ashtu siç e presin përdoruesit.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Thanos ofron deduplikimin e të dhënave për çiftet HA të Prometheus. Kur dy Prometheus regjistrojnë të njëjtat metrika nga të njëjtat target-e dhe Thanos i bashkon ato në Object Storage. Thanos di të deduplikojë saktësisht këto të dhëna, në ndryshim nga VictoriaMetrics.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Thanos ka komponentin e alarmit, i cili ishte në skemën Thanos. Por nuk rekomandohet të përdoret në production..

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Avantazhi i Thanos është se kodi i Thanos dhe Prometheus është i përbashkët. Thanos dhe Prometheus janë zhvilluar nga e njëjta ekip zhvilluesish. Kur përmirësohet Thanos, ose Prometheus fiton edhe pala tjetër.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Veçoria kryesore e VictoriaMetrics është MetricsQL. Kjo është një zgjerim i VictoriaMetrics për PromQL, për të cilat folëm në takimin e mëparshëm të madhe për monitorim.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics mbështet ngarkimin e të dhënave përmes shumë protokollesh të ndryshme. VictoriaMetrics jo vetëm që mund të pranojë të dhëna nga Prometheus, por gjithashtu përmes protokolleve Influx, OpenTSDB dhe Graphite.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Të dhënat e VictoriaMetrics zakonisht zënë shumë më pak hapësirë krahasuar me Thanos dhe Prometheus.

Nëse regjistrohen të dhëna reale, përdoruesit flasin për një reduktim të madhësisë së të dhënave në disk nga 2-5 herë krahasuar me Prometheus dhe Thanos.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Një avantazh tjetër i VictoriaMetrics është se ajo është e optimizuar për shpejtësi.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Le të kalojmë në kostot e infrastrukturës.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Një nga avantazhet e Thanos është se ai ruan të dhënat në object storage, i cili është relativisht i lirë.

Kur ruani tĂ« dhĂ«na nĂ« object storage, ju duhet tĂ« paguani pĂ«r operacionet e regjistrimit dhe leximin e tĂ« dhĂ«nave ($10 pĂ«r milion operacione). Kur regjistroni tĂ« dhĂ«na nĂ« object storage, ju paguani pĂ«r shpenzimet e hostit tuaj pĂ«r ngarkimin e tĂ« dhĂ«nave nĂ« internet, nĂ«se klusteri juaj nuk ndodhet nĂ« AWS — atje Ă«shtĂ« falas. Kur lexoni tĂ« dhĂ«na, ju paguani nga $10 deri nĂ« $230 pĂ«r 1TB. Kjo mund tĂ« jetĂ« e rĂ«ndĂ«sishme, nĂ«se shpesh kĂ«rkoni tĂ« dhĂ«na historike nga klusteri Thanos.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Për klasterin Thanos, nevojiten serverë për komponentët Compact, Store Gateway, dhe Query, të cilët kërkojnë shumë memorje dhe CPU për volume të mëdha të dhënash.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Shpenzimet për VictoriaMetrics janë kështu. Nëse ruani të dhënat në diskët GCE HDD, del $40 për 1TB. Për VictoriaMetrics mjaftojnë diskët e zakonshëm HDD, nuk nevojiten SSD që kushtojnë pesë herë më shumë. VictoriaMetrics është optimizuar për HDD.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

PĂ«r VictoriaMetrics nevojiten serverĂ« pĂ«r komponentĂ«t: ose Single-node ose pĂ«r komponentĂ«t e klasterit, tĂ« cilĂ«t, ndryshe nga komponentĂ«t Thanos, kĂ«rkojnĂ« shumĂ« mĂ« pak CPU dhe RAM — prandaj do tĂ« jetĂ« mĂ« e lirĂ«.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Shembuj të zbatimit.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Një shembull zbatimi për Thanos është Gitlab. Gitlab funksionon plotësisht mbi Thanos. Por, nuk është gjithçka aq e lehtë. Nëse shikoni në issues, do të shihni se ata përballen vazhdimisht me ndonjë probleme operative me Thanos: u mungon memorja për komponentët Store Gateway ose Query. Ata duhet të rrisin vazhdimisht kapacitetin e memorjes.

Për këtë arsye, shpenzimet për zgjidhjen e këtyre problemeve rriten.

Zbatimi i dytĂ«, i cili mund tĂ« jetĂ« mĂ« i suksesshĂ«m — Ă«shtĂ« kompania Improbable, e cila filloi zhvillimin e Thanos. Ata publikuan kodin burimor tĂ« Thanos. Improbable — njĂ« kompani qĂ« merret me zhvillimin e motorĂ«ve tĂ« lojĂ«rave.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Shembuj publik të zbatimit të VictoriaMetrics janë:

  • wix.com ndihmĂ«s pĂ«r ndĂ«rtimin e faqeve
  • Adidas po pĂ«rdor VictoriaMetrics dhe madje bĂ«ri njĂ« prezantim nĂ« PromCon 2019 tĂ« fundit
  • TrafficStars — rrjet reklamash
  • Seznam.cz — njĂ« motor kĂ«rkimi popullor çek.

Më pas, ka kompani pa emër që nuk mund t'i përmend tani. Ata nuk e dhanë lejen.

  • NjĂ« zhvillues i madh lojĂ«rash. MĂ« i madh se ata tĂ« Improbable.
  • NjĂ« zhvillues i madh i softuerit grafik.
  • NjĂ« bankĂ« e madhe ruse.
  • NjĂ« prodhues evropian i turbinave me erĂ«, i cili testoi me sukses VictoriaMetrics. Ky prodhues e zbaton VictoriaMetrics pĂ«r monitorimin e tĂ« dhĂ«nave tĂ« marra nga turbinat me erĂ« me njĂ« shpejtĂ«si prej 50 mostrash nĂ« sekondĂ« pĂ«r secilĂ«n sensor. NĂ« secilĂ«n turbinĂ« ka disa qindra sensorĂ«. Ata kanĂ« disa qindra turbina me erĂ«.
  • Kompania ajrore ruse, e cila dĂ«shiron tĂ« zbatojĂ« VictoriaMetrics, por ende nuk po ia del. Ne jemi nĂ« fazĂ«n e kontratĂ«s me ta.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetricsPërfundime.

VictoriaMetrics dhe Thanos zgjidhin probleme të ngjashme, por me mënyra të ndryshme:

  • Pamja globale e pyetjeve
  • shkallĂ«zimi horizontal
  • ruajtje e rastĂ«sishme

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Faleminderit.

Ju presim në telegram.

Zgjedhim magazinën e të dhënave për Prometheus: Thanos vs VictoriaMetrics

Vetëm përdoruesit e regjistruar mund të marrin pjesë në anketë. Hyni, ju lutem.

ÇfarĂ« pĂ«rdorni si ruajtje afatgjatĂ« pĂ«r Prometheus?

  • 35,3%Thanos6

  • 0,0%Cortex0

  • 0,0%M3DB0

  • 41,2%VictoriaMetrics7

  • 23,5%tjetĂ«r4

17 përdorues kanë votuar. 16 përdorues janë abstenuar.

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster