Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Përshëndetje të gjithëve. Më poshtë është përshkrimi i referatit në Big Monitoring Meetup 4.

Prometheus – njĂ« sistem monitorimi pĂ«r sisteme dhe shĂ«rbime tĂ« ndryshme, me ndihmĂ«n e tĂ« cilit administratorĂ«t e sistemeve mund tĂ« mbledhin informacione mbi parametrat aktualĂ« tĂ« sistemeve dhe tĂ« konfigurojnĂ« njoftime pĂ«r tĂ« marrĂ« lajmĂ«rime nĂ« rast tĂ« shkallimeve nĂ« funksionimin e sistemeve.

NĂ« referat do tĂ« ketĂ« njĂ« krahasim Thanos dhe VictoriaMetrics – projekte pĂ«r ruajtjen afatgjatĂ« tĂ« metrikave Prometheus.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Luaj videon

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

NĂ« fillim do tĂ« flas pĂ«r Prometheus. Ky Ă«shtĂ« njĂ« sistem monitorimi qĂ« mbledh metrika nga target’ët e caktuar dhe i ruan ato nĂ« njĂ« ruajtje lokale. Prometheus mund tĂ« regjistrojĂ« metrikat nĂ« njĂ« ruajtje tĂ« largĂ«t, ka aftĂ«sinĂ« pĂ«r tĂ« gjeneruar njoftime dhe rregulla regjistrimi.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Kufizimet e Prometheus:

  • Nuk ka pamje globale tĂ« pyetjeve. Ky Ă«shtĂ« kur keni disa instanca tĂ« pavarura tĂ« Prometheus. Ato mbledhin metrika. Dhe dĂ«shironi tĂ« bĂ«ni pyetje sipĂ«r tĂ« gjitha kĂ«tyre metrikeve tĂ« mbledhura nga instanca tĂ« ndryshme tĂ« Prometheus. Prometheus nuk e lejon kĂ«tĂ«.
  • Performanca e Prometheus Ă«shtĂ« e kufizuar vetĂ«m nga njĂ« server. Prometheus nuk mund tĂ« shkallĂ«zohet automatikisht nĂ« disa serverĂ«. Ju vetĂ«m mund tĂ« ndaheni dorazi target’ët tuaj mes disa Prometheus’ave.
  • VĂ«llimi i metrikave nĂ« Prometheus Ă«shtĂ« i kufizuar vetĂ«m nga njĂ« server pĂ«r tĂ« njĂ«jtĂ«n arsye pĂ«r tĂ« cilĂ«n ai nuk mund tĂ« shkallĂ«zohet automatikisht nĂ« disa serverĂ«.
  • NĂ« Prometheus nuk Ă«shtĂ« aq e lehtĂ« tĂ« organizoni ruajtjen e tĂ« dhĂ«nave.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Zgjidhjet për këto probleme/të drejta?

Zgjidhjet janë:

Të gjitha këto zgjidhje 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 rreth Thanos u shfaq në kjo lidhje. Aty përshkruhet arkitektura Thanos dhe mënyra si funksionon.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

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

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Kështu Thanos siguron pamjen globale të pyetjeve. Mund të bëni pyetje për të dhënat e ruajtura në ruajtjen e objekteve nga disa instance të Prometheus.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Thanos mbështet PromQL dhe API-në e pyetjes Prometheus..

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

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

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Thanos është zhvilluar nga të njëjtit zhvillues si Prometheus.

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

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

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

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics siguron pamjen globale të pyetjeve, pasi disa instance të Prometheus mund të shkruajnë të dhëna në një VictoriaMetrics. Kështu, mund të bëni pyetje për të gjitha këto të dhëna.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics gjithashtu mbĂ«shtet, siç Ă«shtĂ« Thanos — PromQL dhe API-nĂ« e pyetjes Prometheus.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Ndryshe nga Thanos, kodi burimor i VictoriaMetrics është shkruar nga zero dhe është optimizuar për shpejtësi dhe burime të nevojshme.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics, ndryshe nga Thanos, shkallëzohet si në mënyrë vertikale ashtu edhe horizontale. Ka Versionin me një nyje, i cili shkallëzohet vertikalisht. Mund të filloni me një procesor dhe 1 GB memorie dhe të rriteni gradualisht deri në qindra procesorë dhe 1 TB memorie. VictoriaMetrics mund të përdorë të gjithë këto burime. Performanca e saj do të rritet rreth 100 herë në krahasim me sistemin me një nyje.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

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

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Në qershor 2019, ishte një version tërheqës 0.5.0, në të cilin u hoq gossip protokolli. E hoqën nga Thanos, sepse ai u tregua me rezultate të dobëta. Shumë herë klasteri i Thanos nuk funksiononte siç duhet, nyjet e tij nuk lidhej siç duhet për shkak të protokollit të gossip-it. Prandaj vendosën ta hiqnin atë. Unë besoj se kjo është një vendim i drejtë.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Në të njëjtën qershor 2019 dërguan aplikimin numër 256 në Cloud Native Computing Foundation.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Dhe pas disa muajsh Thanos u pranuar në Cloud Native Computing Foundation, ku përfshihet Prometheus, Kubernetes dhe projekte të tjera të njohura.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

NĂ« janar 2018 filloi zhvillimi i VictoriaMetrics.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

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

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Në dhjetor 2018 publikuan versionin me një nyje.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Në maj 2019 u publikuan kodet burimore si për versionin me një nyje ashtu edhe për versionin me klaster.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Në qershor 2019, po ashtu si Thanos, ne dorëzuam aplikimin në fondacionin CNCF me numër 255. Ne dorëzuam aplikimin një ditë më herët se sa Thanos.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Por, fatkeqësisht, ende nuk na pranuan aty. Kemi nevojë për ndihmën e komunitetit.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

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

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

TĂ« fillojmĂ« me Thanos. KomponentĂ«t e verdhĂ« janĂ« komponentĂ« tĂ« Prometheus. TĂ« gjitha tĂ« tjerat janĂ« komponentĂ« tĂ« Thanos. Le tĂ« fillojmĂ« me komponentin kryesor. Thanos Sidecar — Ă«shtĂ« komponenti qĂ« vendoset pranĂ« secilit Prometheus. Ai merret me ngarkimin e tĂ« dhĂ«nave tĂ« Prometheus nga ruajtja lokale nĂ« S3 ose nĂ« njĂ« Ruajtje tjetĂ«r objektesh.

Kaç komponenti ka Thanos Store Gateway, i cili di të lexojë këto të dhëna nga Object Storage kur merr kërkesa nga Thanos Query. Thanos Query implementon PromQL dhe Prometheus API. Pra, nga jashtë duket si Prometheus. Pranoni kërkesat PromQL, i dërgon ato në Thanos Store Gateway, Thanos Store Gateway merr të dhënat e nevojshme nga Object Storage dhe i kthen mbrapsht.

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

Si e kemi zgjidhur këtë problem? Thanos Query, përveç kërkesave në Thanos Store Gateway, dërgon gjithashtu kërkesa paralelisht në çdo Thanos Sidecar që ndodhet afër Prometheus.

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

Përveç këtyre komponentëve, ka edhe një komponent opsional, pa të cilin Thanos do të funksionojë keq. Ky është Thanos Compact, i cili merret me bashkimin e skedarëve të vegjël në Object Storage në skedarë më të mëdhenj, të cilët janë ngarkuar këtu nga Thanos Sidecar. Thanos Sidecar ngarkon skedarë me të dhënat për dy orë. Këta skedarë, nëse nuk bashkohen në skedarë më të mëdhenj, numri i tyre mund të rritet shumë. Sa më shumë të jenë këta skedarë, aq më shumë memorie nevojitet për Thanos Store Gateway, aq më shumë resurse nevojiten për transmetimin e të dhënave në rrjet, metadata. Puna e Thanos Store Gateway bëhet joefektive. Prandaj, është e domosdoshme të aktivizoni 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ë ulur overhead-in në Thanos Store Gateway.

Ka një komponent si Thanos Ruler. Ai realizon rregullat e alarmeve të Prometheus dhe mund të llogarisë rregullat e regjistrimit të Prometheus, për të regjistruar të dhënat përsëri në Object Storage. Por ky komponent nuk rekomandohet për t'u përdorur, pasi ai është i prirur të kthejë të dhëna të paplota..

Kjo është skema e thjeshtë e Thanos.

Zgjedhja e depozitës së 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 versionin klaster. Single-node punon nĂ« njĂ« kompjuter. NĂ« Single-node nuk ka kĂ«to komponentĂ«, vetĂ«m njĂ« binar. Ky binar nĂ« slide duket si ky katror. Çdo gjĂ« brenda katrorit Ă«shtĂ« pĂ«rmbajtja e skedarit binar pĂ«r versionin Single-node. Nuk Ă«shtĂ« e nevojshme tĂ« dini pĂ«r tĂ«. Thjesht e aktivizoni binarin dhe gjithçka funksionon.

Versioni i klasterit është më i komplikuar. Brenda tij ka tre komponentë të ndryshëm: vmselect, vminsert dhe vmstorage. Nga emrat e tyre duhet të jetë e qartë se çfarë bën secili nga ata. Komponenti i Insert pranonte të dhënat në forma 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 të storage të disponueshëm, ku të dhënat ruajnë. Komponenti Select, nga ana e tij, merr kërkesat PromQL. Ai implementon PromQL, si dhe Prometheus querying API, dhe mund të përdoret si zëvendësues i Prometheus në Grafana ose në klientë të tjerë të API-t të Prometheus. Select merr kërkesat promql, i parse, lexon të dhënat e nevojshme për kryerjen e kësaj kërkese nga nodet e storage, i proceson këto të dhëna dhe kthen një përgjigje.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

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

Zgjedhja e depozitës së 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, në mënyrë që Thanos Sidecar të mund të shkruajë të dhënat atje.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Pastaj, për çdo Prometheus, duhet të instaloni Thanos Sidecar. Para kësaj, mos harroni të çaktivizoni shkrimin e të dhënave në Prometheus. Shkrimi i të dhënave përfiqet periodikisht të dhënat në ruajtjen lokale të Prometheus për të reduktuar konsumin e burimeve.

Kur instaloni Thanos Sidecar në Prometheus tuaj, duhet të çaktivizoni këtë shkrim të të dhënave, sepse Thanos Sidecar nuk funksionon siç duhet kur shkrimi është aktiv. Kjo do të thotë se Prometheus juaj fillon të ruajë të dhënat në blloqe prej dy orësh dhe ndalon bashkimin e këtyre blloqeve në më të mëdhenj. Prandaj, nëse bëni kërkesa që kalojnë kohëzgjatjen e dy orëve të fundit, ato do të funksionojnë më pak efikas, krahasuar me mënyrën se si do të mund të funksiononin nëse ishte aktiv shkrimi i të dhënave.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Prandaj, Thanos rekomandon të zvogëloni kohëzgjatjen e ruajtjes së të dhënave në ruajtjen lokale në 6-8 orë, për të reduktuar këtë overhead të numrit të madh të blloqeve të vegjël.

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

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

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

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

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Ju duhet të konfiguroni një lidhje të besueshme dhe të sigurt nga Thanos Query me këto komponentë. Dhe nëse Prometheus-at tuaj ndodhen në qendra të ndryshme të të dhënave, ose në VPC të ndryshme, atëherë lidhjet e jashtme janë të ndaluara. Por për të punuar me Thanos Query, duhet të krijoni një mënyrë për të vendosur lidhjen atje.

Nëse keni shumë qendra të të dhënave, atëherë sigurisht që shrinket qëndrueshmëria e gjithë sistemit. Për shkak se Thanos Query duhet të mbajë vazhdimisht 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 ndërpritet, do të merrni ose një set të dhënash të paplotë, ose do të merrni një përgjigje "klasteri nuk funksionon".

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Në VictoriaMetrics për gjithçka është pak më e thjeshtë. Për versionin Single-node, mjafton të ekzekutoni një binar dhe gjithçka funksionon.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Në versionin me klaster, është mjaft të ekzekutoni të gjithë tre llojet e përmendura më sipër në çdo numër të nevojshëm, ose të përdorni helm chart për automatizimin e nisjes së komponentëve në Kubernetes. Ne gjithashtu planifikojmë të bëjmë një operator Kubernetes. Helm chart nuk mbulon disa raste dhe mund t'ju sjellë probleme. Për shembull, ai lejon të pakësohet numri i node-ve të ruajtjes, gjë që do të çojë në humbjen e të dhënave.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Pasi të keni nisur një binar apo versionin e klasterit, ju mjafton të shtoni në konfigurimin e Prometheus konfigurimin për remote write url, në mënyrë që ai të fillojë të shkruajë të dhënat në mënyrë paralele 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 Thanos. Ne nuk kemi nevojë të mbajmë një lidhje nga VictoriaMetrics me të gjitha Prometheus-at, sepse Prometheus-at vetë lidhen me VictoriaMetrics dhe transferojnë të dhënat.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Të shqyrtojmë mbështetjes Thanos dhe VictoriaMetrics.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Me Thanos, duhet të monitoroni Sidecar-t, që ata të mos ndalin ngarkimin e të dhënave në Object Storage. Ata mund ta ndalin këtë proces për shkak të problemeve me ngarkimin, për shembull, nëse ju ndalohet përkohësisht lidhja rrjet të Object Storage, ose Object Storage bëhet përkohësisht i papërshkueshëm. Thanos Sidecar në këtë moment do ta vërejë dhe do të raportojë për gabimin, mund të dështojë dhe më pas do të ndalojë të funksionojë. Nëse nuk e monitoroni, të dhënat do të ndalojnë së transferuari në Object Storage. Nëse kalon koha e ruajtjes (6-8 orë e rekomanduar), do të filloni të humbni të dhënat që nuk arritën në Object Storage.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Thanos compactors mund të ndalin së punuari për shkak të race-ve me Sidecar. Compactors marrin të dhëna nga Object Storage dhe i bashkojnë ato në blloqe më të mëdha të të dhënave. Duke qenë se compactors nuk janë të sinkronizuar me Sidecar-at, mund të ndodhë që: Sidecar nuk e ka përfunduar bllokun, dhe Compactor vendos se ky bllok është plotësisht i regjistruar. Compactor fillon ta lexojë atë. Ai e lexon bllokun jo në një formë të plotë dhe ndalon së punuari. Shihni detajet këtu.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Store Gateway mund të ofrojë të dhëna të pasaktë për shkak të race-ve midis Compactor-it dhe Sidecar-ave. Ky është një problem i ngjashëm, sepse Store Gateway nuk është aspak i sinkronizuar me Compactor-at dhe Sidecar-at. Për rrjedhojë, mund të ndodhin situata garuese, kur Store Gateway nuk sheh pjesën e të dhënave, ose sheh të dhëna të tepërta.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Komponenti Query në Thanos, në mënyrë të paracaktuar, jep rezultat të pjesshëm, nëse disa Sidecar apo Store Gateway nuk janë të aksesueshëm në atë moment. Do të merrni një pjesë të të dhënave, dhe madje nuk do të dini që nuk keni marrë të gjitha të dhënat. Kështu është e paracaktuar. Në situata të ngjashme, VictoriaMetrics kthen të dhënat e caktuara si të pjesshme.

Zgjedhja e depozitës së 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 te VictoriaMetrics ndërpritet, nuk ka problem, sepse Prometheus vazhdon të shkruajë të dhënat e reja që arrijnë në Write Ahead Log, e cila ka një madhësi prej 2 orësh. Nëse brenda dy orësh riktheni lidhjen me VictoriaMetrics, të dhënat nuk do të humbasin. Prometheus di të shtojë të dhënat pas rikthimit të lidhjes me VictoriaMetrics..

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Në kundërshtim me Thanos, i cili regjistron të dhënat në Object Storage vetëm pas dy orësh, Prometheus automatikisht riprodhon të dhënat përmes protokollit remote write në ruajtjen e largët, si VictoriaMetrics. Nuk keni për çfarë të shqetësoheni për humbjen e ruajtjes lokale në Prometheus. Nëse ndonjëherë humbni ruajtjen lokale, në rastin më të keq, do të humbni disa sekonda të fundit të të dhënave që nuk janë regjistruar në ruajtjen e largët.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Kubernetes menaxhon automatikisht klasterin në ndryshim nga Thanos. Të gjithë komponentët e Thanos-it është e vështirë t'i vendosni në një klaster Kubernetes, në krahasim me komponentët e klastrit të VictoriaMetrics.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics ka një proces shumë të thjeshtë për të përditësuar në versionin e ri. Thjesht e ndaloni VictoriaMetrics, përditësoni binarët dhe e aktivizoni sërish. Kur ndalohet përmes sinjalit SIGINT, të gjithë binarët e VictoriaMetrics bëjnë një mbyllje të butë. Ata ruajnë të dhënat e nevojshme në mënyrë të saktë dhe mbyllin lidhjet e ardhshme për të mos humbur asgjë. Prandaj, nuk do të humbni asgjë gjatë përditësimit.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics është shumë i lehtë për të zgjeruar kltrin. Thjesht shtoni komponentët e nevojshëm dhe vazhdoni punën.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Rreth çështjeve të fshehura në Thanos dhe VictoriaMetrics.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Thanos ka disa çështje të tilla. 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ë pasur kohë të shkruhen në Object Storage, si S3.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Komponenti Store Gateway dhe komponenti compactor mund të kërkojnë shumë memorie për të punuar me Object Storage të madh, nëse ka shumë skedarë të vegjël. Sa më shumë të jetë numri dhe volumi i skedarëve, aq më shumë memorie operative kërkojnë Store Gateway dhe compactor për të ruajtur metainformacionin. Thanos ka shumë probleme lidhur me këtë. Store Gateway dhe compactor ndodhin të bien me volume të mesme të të dhënave të shkruara..

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Thanos reklamohet se mund tĂ« shkallej pafundĂ«sisht nĂ« numrin e Prometheus-eve tuaj. NĂ« tĂ« vĂ«rtetĂ«, kjo nuk Ă«shtĂ« e vĂ«rtetĂ«. TĂ« gjitha kĂ«rkesat kalojnĂ« pĂ«rmes komponentit Query, i cili duhet tĂ« ekzekutojĂ« paralelisht tĂ« gjitha komponentĂ«t Store Gateway dhe tĂ« gjithĂ« komponentĂ«t Sidecar, tĂ« nxjerrĂ« tĂ« dhĂ«na nga aty dhe pastaj t'i pĂ«rpunojĂ« ato. ËshtĂ« e qartĂ« se shpejtĂ«sia e kĂ«rkesave Ă«shtĂ« e kufizuar nga elementi mĂ« i ngadalshĂ«m, komponenti mĂ« i ngadaltĂ« Store Gateway ose mĂ« i ngadaltĂ« Sidecar.

Këto komponentë mund të jenë të ngarkuar në mënyrë të paekuilibruar. Për shembull, keni një Prometheus që mbledh miliona metrike në sekondë. Dhe ndodhet një Prometheus tjetër që mbledh mijëra metrike në sekondë. Prometheus-i që mbledh miliona metrike në sekondë shkarkon shumë më tepër serverin ku punon. Prandaj, Sidecar atje punon më ngadalë. Dhe gjithçka punohet ngadalë atje. Komponenti Query do të nxjerrë të dhënat ngadalë prej aty. Prandaj, performanca e tërë kltrit tuaj do të jetë e kufizuar nga ky Sidecar i ngadalshëm.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Në mënyrë të parazgjedhur, Thanos jep të dhëna të pjesshme nëse disa Sidecar-e dhe/apo Store Gateway janë të papërfitueshme. Për shembull, nëse keni Sidecar të shpërndarë në të gjithë botën në qendra të ndryshme të të dhënave, atëherë mundësia për ndërprerje të lidhjeve dhe papërballueshmërie të komponentëve rritet shumë. Prandaj, në shumicën e rasteve, do të merrni të dhëna të pjesshme pa e ditur këtë.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

VictoriaMetrics gjithashtu ka çështje tĂ« fshehura. Çështja e parĂ« Ă«shtĂ« opsioni qĂ« kufizon volumet e memories operative tĂ« pĂ«rdorura pĂ«r cache tĂ« VictoriaMetrics. NĂ« mĂ«nyrĂ« tĂ« parazgjedhur, ai Ă«shtĂ« njĂ«soj me 60% tĂ« memories operative nĂ« makinĂ«n ku Ă«shtĂ« aktivizuar VictoriaMetrics ose 60% tĂ« RAM-it tĂ« pod-it tĂ« VictoriaMetrics nĂ« Kubernetes.

Nëse ky vlerë ndryshohet gabimisht, mund të dëmtojë 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. Kështu do t'i duhet të bëjë punë të tepërt dhe të ngarkojë procesorin dhe diskun. Nëse e vendosni këtë opsion shumë të lartë, atëherë kjo rrit, së pari, probabilitetin që VictoriaMetrics të dalë me një gabim out of memory, dhe së dyti, do të bëjë që sistemi operativ të ketë shumë pak kujtesë operative për cache-in e skedarëve. VictoriaMetrics mbështetet në cache-in e skedarëve për performancën. Nëse nuk ka mjaftueshëm, atëherë mund të rritet shumë ngarkesa në disk. Prandaj, këshilla: mos e ndryshoni këtë parameter pa nevojë të madhe.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Opsioni i dytĂ«. Ky Ă«shtĂ« retentionPeriod — periudha qĂ« nĂ« mĂ«nyrĂ« tĂ« parazgjedhur vendoset nĂ« 1 muaj. Ky Ă«shtĂ« gjithashtu koha gjatĂ« sĂ« cilĂ«s VictoriaMetrics ruan tĂ« dhĂ«nat. Pas kĂ«tij afati, VictoriaMetrics fshin tĂ« dhĂ«nat.

Shumë e aktivizojnë VictoriaMetrics pa këtë parameter, regjistruan të dhënat për një muaj. Dhe pastaj pyesin: pse të dhënat u humbën për muajin e kaluar? Sepse retentionPeriod është në mënyrë të parazgjedhur 1 muaj. Prandaj, duhet të dini dhe të vendosni retentionPeriod-in e duhur.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

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

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Thanos ka një funktion, si downsampling: intervalet 5-minutë dhe orare, të cilat shpesh punojnë gabimisht.Nëse kërkoni në Google dhe shikoni çështjet e tyre në github, ka shumë çështje lidhur me këtë downsampling, kur ai ndonjëherë punon gabimisht, ose punon ndryshe nga sa presin përdoruesit.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Thanos ka deduplifikimin e të dhënave për çiftet e Prometheus HA. Kur dy Prometheus mbledhin të njëjtat metrika nga të njëjtat target-e dhe Thanos i ruan ato në Object Storage. Thanos di ta deduplifikojë këto të dhëna siç duhet, ndryshe nga VictoriaMetrics.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Thanos ka një komponent alarmi, i cili ishte në diagramin e Thanos. Por ai nuk i rekomandohet të përdoret në production.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Thanos ka avantazhin që kodi i Thanos dhe i Prometheus është i njëjtë. Thanos dhe Prometheus janë zhvilluar nga të njëjtët programues. Kur përmirësohet Thanos, ose Prometheus fiton edhe pala tjetër.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Karakteristika kryesore e VictoriaMetrics është MetricsQL. Kjo është një zgjerim i VictoriaMetrics për PromQL, për të cilin kam folur në takimin e fundit të madhe për monitorimin.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

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

Zgjedhja e depozitës së 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ë zvogëlim të 2-5-fish të madhësisë së të dhënave në disk krahasuar me Prometheus dhe Thanos.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

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

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Të shohim kostot e infrastrukturës.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Një nga avantazhet e Thanos është se ai ruan të dhënat në ruajtje objektesh, e cila është relativisht e lirë.

Kur ruani të dhëna në ruajtjen e objekteve, duhet të paguani për operacionet e regjistrimit dhe leximit të të dhënave ($10 për milion operacione). Kur regjistroni të dhëna në ruajtjen e objekteve, paguani kostot e hostimit tuaj për ngarkimin e të dhënave në internet, nëse klasteri juaj nuk ndodhet në AWS - atje është falas. Kur lexoni të dhëna, paguani nga $10 deri në $230 për 1TB. Kjo mund të jetë e rëndësishme nëse kërkoni shpesh të dhëna historike nga klasteri Thanos.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Për klasterin Thanos, duhet të paguani për serverat për komponentët Compact, Store Gateway, Query, të cilët kërkojnë shumë memorie, CPU për sasi të mëdha të dhënash.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Shpenzimet për VictoriaMetrics janë të tilla. Nëse ruani të dhënat në disqet GCE HDD, atëherë del $40 për 1TB. Për VictoriaMetrics mjaftojnë disqet HDD të zakonshme, nuk ka nevojë për ndonjë SSD, që kushtojnë pesë herë më shumë. VictoriaMetrics është e optimizuar për HDD.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Për VictoriaMetrics nevojiten serverë për komponentët: ose një Single-node ose për komponentë klasteri, të cilët në dallim nga komponentët Thanos, kërkojnë shumë më pak CPU, RAM - për rezultatin do të jetë më e lirë.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Shembuj të implementimeve.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Një shembull implementimi për Thanos është Gitlab. Gitlab funksionon plotësisht mbi Thanos. Por atje nuk është gjithçka kaq e thjeshtë. Nëse e shqyrtoni atë issues, mund të shihni se ata vazhdimisht kanë ndonjë probleme operative me Thanos: nuk kanë mjaftueshëm memorie për komponentët Store Gateway ose Query. Ata vazhdimisht duhet të rrisin sasinë e memories.

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

Implementimi i dytë, i cili mund të jetë më i suksesshëm - është kompania Improbable, e cila filloi zhvillimin e Thanos. Ata publikuan kodet burimore të Thanos. Improbable - është një kompani që merret me zhvillimin e motorëve të lojërave.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Shembujt publikë të implementimit të VictoriaMetrics janë:

  • wix.com ndihmĂ«s krijimi i faqeve
  • Adidas po implementon VictoriaMetrics dhe madje bĂ«ri njĂ« prezantim nĂ« PromCon 2019 tĂ« fundit
  • TrafficStars - rrjeti i reklamave
  • Seznam.cz - motor i njohur kĂ«rkimi çek.

Dhe më tej erdhën kompani të panjohura që nuk mund t'i përmend tani. Ata nuk dhanë pëlqimin.

  • NjĂ« zhvillues i madh lojĂ«rash. MĂ« i madh se Improbable.
  • NjĂ« zhvillues i madh i programeve grafike.
  • NjĂ« bankĂ« e madhe ruse.
  • NjĂ« prodhues europian i turbinave me erĂ«, i cili testoi me sukses VictoriaMetrics. Ky prodhues implementon VictoriaMetrics pĂ«r monitorimin e tĂ« dhĂ«nave tĂ« marra nga turbinat me erĂ« me njĂ« pĂ«rshpejtim prej 50 kampionĂ«ve nĂ« sekondĂ« pĂ«r çdo sensor. NĂ« çdo turbinĂ« me erĂ« ka disa qindra sensorĂ«. Ata kanĂ« disa qindra turbina me erĂ«.
  • Linjat ajrore ruse qĂ« duan tĂ« implementojnĂ« VictoriaMetrics, por asnjĂ«herĂ« nuk mundin. Ne jemi nĂ« fazĂ«n e kontratĂ«s me ta.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetricsPërfundime.

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

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

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

Faleminderit.

Ju presim në kanal tonë telegram.

Zgjedhja e depozitës së të dhënave për Prometheus: Thanos vs VictoriaMetrics

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

Ç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 votuan. 16 përdorës u abstenuan.

Burimi: habr.com

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