Përshëndetje të gjithëve. Më poshtë është përshkrimi .
â 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 dhe â projekte pĂ«r ruajtjen afatgjatĂ« tĂ« metrikave Prometheus.



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.

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.

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: dhe .
Për herë të parë informacioni rreth u shfaq në . Aty përshkruhet arkitektura dhe mënyra si funksionon.

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

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.

Thanos mbështet PromQL dhe .

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

Thanos është zhvilluar nga të njëjtit zhvillues si Prometheus.
Për . Ja , ku për herë të parë folëm për .

VictoriaMetrics merr të dhëna nga disa Prometheus përmes protokollit të mbështetur nga Prometheus.

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.

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

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

VictoriaMetrics, ndryshe nga Thanos, shkallëzohet si në mënyrë vertikale ashtu edhe horizontale. Ka , 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.

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

Në qershor 2019, ishte një version tërheqës 0.5.0, në të cilin 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ë.

Në të njëjtën qershor 2019 dërguan aplikimin numër në .

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

NĂ« janar 2018 filloi zhvillimi i VictoriaMetrics.

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

Në dhjetor 2018 publikuan versionin me një nyje.

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

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

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

Le të shqyrtojmë slidet më të rëndësishme që tregojnë arkitekturën e Thanos dhe 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 .
Kjo është skema e thjeshtë e Thanos.

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 , 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.

Le të krahasojmë kompleksitetin e instalimit të Thanos dhe 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.

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.

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.

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.

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".

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.

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 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.

Pasi të keni nisur një binar apo versionin e klasterit, ju mjafton të shtoni në konfigurimin e Prometheus , 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.

Të shqyrtojmë mbështetjes Thanos dhe 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.

Thanos compactors mund të ndalin së punuari për shkak të . 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 .

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.

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.

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 .

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.

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.

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.

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

Rreth çështjeve të fshehura në Thanos dhe 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.

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ë. .

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.

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ë.

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.

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.

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

Thanos ka një funktion, si downsampling: intervalet 5-minutë dhe orare, të cilat shpesh 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.

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.

Thanos ka një komponent alarmi, i cili ishte në diagramin e Thanos. Por ai .

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.

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.

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.

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.

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

Të shohim kostot e infrastrukturës.

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.

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.

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.

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ë.

Shembuj të implementimeve.

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ë , mund të shihni se ata vazhdimisht kanë ndonjë : 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.

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.
Pë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

Faleminderit.
Ju presim në kanal tonë .

Vetëm përdoruesit e regjistruar mund të marrin pjesë në anketë. , 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
