VictoriaMetrics waa DBMS degdeg ah oo la miisaami karo si loo kaydiyo loona habeeyo xogta qaab taxane ah (diiwaanku waxa uu ka kooban yahay wakhti iyo qiimeyo la xidhiidha wakhtigan, tusaale ahaan, lagu helay codbixin xilliyeedka xaaladda dareemayaasha ama ururinta mitirka).
Magacaygu waa Kolobaev Pavel. DevOps, SRE, LeroyMerlin, wax walbaa waa sida koodka - wax walba waa nagu saabsan: aniga iyo wax ku saabsan shaqaalaha kale ee LeroyMerlin.
Waxaa jira daruur ku salaysan OpenStack. Waxaa jira xiriir yar oo raadaarka farsamada ah.
Waxa lagu dhisay qalabka Kubernetes, iyo sidoo kale dhammaan adeegyada la xidhiidha OpenStack iyo gadista.
Tani waa qorshaha aan ku leenahay horumarka. Markii aan waxaas oo dhan horumarinaynay, waxa aanu haysanay hawlwadeen Prometheus ah oo kaydiya xogta gudaha kooxda K8s lafteeda. Wuxuu si toos ah u helayaa waxa loo baahan yahay in la xoqo oo wuxuu dhigaa cagihiisa hoostooda, isagoo si qiyaas ah u hadlaya.
Waxaan u baahan doonaa inaan ka guurno dhammaan xogta meel ka baxsan kooxda Kubernetes, sababtoo ah haddii ay wax dhacaan, waxaan u baahanahay inaan fahamno waxa iyo meesha.
Xalka ugu horreeya waa in aan isticmaalno federaalka marka aan haysano Prometheus dhinac saddexaad, marka aan u gudubno Kubernetes cluster iyada oo loo marayo habka federaalka.
Laakiin waxaa jira dhibaatooyin yar yar halkan. Xaaladeena, dhibaatooyinku waxay bilowdeen markii aan helnay 250 metrik, iyo markii ay jireen 000 metrik, waxaan ogaanay inaanan sidaas u shaqeyn karin. Waxaan kordhinay scrape_timeout ilaa 400 sekan
Maxaa nagu kalifay inaan tan samayno? Prometheus wuxuu bilaabaa tirinta wakhtiga laga bilaabo bilawga xayndaabka. Dhib ma laha in xogtu ay wali socoto. Haddii inta lagu jiro muddadan la cayimay xogta aan la isku darin oo fadhiga aan la xirin http, markaa fadhiga waxaa loo tixgeliyaa inuu fashilmay oo xogta ma gasho Prometheus lafteeda.
Qof kastaa wuu yaqaan garaafyada aan helno marka xogta qaar la waayo. Jadwalka ayaa jeexjeexay mana ku faraxsanayn tan.
Xulashada soo socota waa sharding ku salaysan laba Prometheus oo kala duwan iyada oo loo marayo habka federaalka.
Tusaale ahaan, kaliya qaado oo ku jeex magac ahaan. Tani sidoo kale waa la isticmaali karaa, laakiin waxaan go'aansanay inaan sii wadno.
Hadda waxaan ku qasbanaan doonaa inaan si uun u habaynno jeexjeexyadan. Waxaad qaadan kartaa promxy, kaas oo taga aagga jeexjeexa oo badiya xogta. Waxay ku shaqeysaa laba jeex oo hal meel laga soo galo. Tan waxaa lagu fulin karaa iyada oo loo marayo wakiil, laakiin weli aad bay u adag tahay.
Doorashada koowaad waa in aan rabno in aan ka tagno habka federaalka sababtoo ah aad ayuu u gaabiyaa.
Horumarinta Prometheus waxay si cad u leeyihiin, "Guys, isticmaal TimecaleDB ka duwan sababtoo ah ma taageeri doono kaydinta muddada dheer ee cabbirada." Tani maaha hawshooda.
Waxaan ku qornaa warqad aan weli u baahanahay inaan dibadda ka soo dejino, si aan wax walba hal meel ugu keydin.
Ciladda labaad waa isticmaalka xusuusta. Haa, waan fahamsanahay in qaar badan ay dhihi doonaan 2020 dhowr gigabytes oo xusuusta ah ayaa ku kacaya dinaar, laakiin wali.
Hadda waxaan leenahay deegaan dev iyo prod ah. Dev waxay ku saabsan tahay 9 gigabytes 350 mitir. In ka badan 000 gigabytes iyo in ka yar 14 mitir. Isla mar ahaantaana, wakhtiga hayntayadu waa 780 daqiiqo oo kaliya. Tani waa xun. Oo hadda waxaan sharxi doonaa sababta.
Waxaan samaynaa xisaabin, taas oo ah, hal milyan iyo badh mitir, waxaanan horeyba ugu dhownahay iyaga, marxaladda naqshadeynta waxaan heleynaa 35-37 gigabytes oo xusuusta ah. Laakiin horeba 4 milyan metrik waxay u baahan yihiin ilaa 90 gigabytes oo xusuusta ah. Taasi waa, waxaa la xisaabiyay iyadoo la isticmaalayo qaacidada ay bixiyeen horumariyayaasha Prometheus. Waxaan eegnay isku xirnaanta waxaana ogaanay in aanan dooneyn in aan bixinno dhowr milyan oo server ah oo kaliya kormeerka.
Ma kordhin doonno oo keliya tirada mashiinnada, waxaan sidoo kale la soconnaa mashiinnada farsamada laftooda. Sidaa darteed, inta badan mashiinnada farsamada gacanta, cabbirro badan oo noocyo kala duwan ah, iwm. Waxaan yeelan doonnaa korriin gaar ah oo kooxdeenna ah marka loo eego cabbirrada.
Meesha diskooga, wax walba maaha kuwo aad u xun halkan, laakiin waxaan jeclaan lahaa inaan hagaajiyo. Waxaan helnay wadar ahaan 15 gigabytes 120 maalmood gudahood, kuwaas oo 100 ka mid ah ay yihiin xog la cufan, 20 waa xog aan la isku dhejin, laakiin mar walba waxaan rabnaa wax ka yar.
Sidaa darteed, waxaan qoreynaa hal dhibic oo kale - tani waa isticmaalka ballaaran ee kheyraadka, kaas oo aan wali rabno inaan badbaadino, sababtoo ah ma dooneyno in kooxdayada kormeerka ay isticmaalaan kheyraad ka badan kooxdeena, oo maamusha OpenStack.
Waxaa jira hal dib u dhac kale oo Prometheus ah, kaas oo aan u aqoonsanay nafteena, tani waa ugu yaraan nooc ka mid ah xaddidnaanta xusuusta. Iyadoo Prometheus, wax walbaa aad bay uga sii xun yihiin halkan, sababtoo ah ma laha qalloocyadaas oo kale. Isticmaalka xadka ee docker sidoo kale ma aha ikhtiyaar. Haddii si lama filaan ah RAF-gaagu u dhaco oo ay jiraan 20-30 gigabytes, markaa waxay qaadan doontaa wakhti aad u dheer si aad u kiciso.
Tani waa sabab kale oo uu Prometheus aanu noogu habboonayn, i.e. ma xaddidi karno isticmaalka xusuusta.
Waxa suurtagal noqon lahayd in la yimaado qorshe noocaas ah. Waxaan u baahanahay nidaamkan si aan u habaynno kooxda HA. Waxaan rabnaa in cabirkayaga uu ahaado mid la heli karo had iyo jeer iyo meel kasta, xitaa haddii serfarka kaydiya cabbiradan uu shil galo. Sidaas awgeed waa in aan dhisno qorshahan.
Qorshahani waxa uu sheegayaa in aanu yeelan doono isku dhufashada jeexjeexyada, iyo, si waafaqsan, nuqul ka mid ah kharashyada kheyraadka la isticmaalo. Waxaa loo miisaami karaa ku dhawaad si siman, laakiin si kastaba ha ahaatee isticmaalka kheyraadku wuxuu noqon doonaa cadaab.
Khasaaraha sida ay u kala horreeyaan qaabka aan ugu qornay nafteena:
- Waxay u baahan tahay raritaanka cabbirada dibadda.
- Isticmaalka kheyraadka sare.
- Ma jirto si loo xaddido isticmaalka xusuusta.
- Dhaqangelinta qalafsan iyo kheyraadka degdega ah ee HA.
Nafteena, waxaan go'aansanay inaan ka guureyno Prometheus sidii meel kaydinta.
Waxaan aqoonsannay shuruudo dheeraad ah oo nafteena ah oo aan u baahanahay. Tani:
- Tani waa taageerada promql, sababtoo ah waxyaabo badan ayaa horey loogu qoray Prometheus: weydiimo, digniino.
- Kadibna waxaan haynaa Grafana, kaas oo horeyba loogu qoray si la mid ah Prometheus oo ah dhabarka. Ma rabo inaan dib u qoro dashboards
- Waxaan rabnaa inaan dhisno qaab-dhismeedka HA caadi ah.
- Waxaan rabnaa inaan dhimno isticmaalka kheyraad kasta.
- Waxaa jira nuance kale oo yar. Ma isticmaali karno noocyada kala duwan ee hababka ururinta mitirka daruuraha. Ma garanayno waxa ku dhici doona cabbiradan weli. Oo maadaama ay wax kasta u duuli karaan, waa inaan nafteena ku koobno meelaynta maxalliga ah.
Waxaa jiray doorasho yar. Waxaan soo ururinay wax kasta oo aan khibrad u lahayn. Waxaan eegnay bogga Prometheus ee qaybta isdhexgalka, akhrinay farabadan oo maqaallo ah, oo aan aragnay waxa halkaas ka jira. Nafteenana, waxaan u dooranay VictoriaMetrics bedelka Prometheus.
Waa maxay sababtu? Sababtoo ah:
- Wuxuu yaqaan promql.
- Waxaa jira qaab dhismeed modular ah.
- Uma baahna isbedel Grafana.
- Iyo tan ugu muhiimsan, waxaan u badan tahay inaan u bixin doono kaydinta mitirka ee shirkadeena adeeg ahaan, markaa waxaan horay u sii eegaynaa xayiraadaha noocyada kala duwan si dadka isticmaala ay u isticmaalaan dhammaan agabyada kooxda qaab xaddidan, sababtoo ah waxaa jirta fursad in ay badin doonto.
Aynu samayno isbarbardhigga ugu horreeya. Waxaan ku qaadaneynaa isla Prometheus gudaha kooxda, Prometheus dibadda ah ayaa u socda. Kudar iyada oo fog ku qor VictoriaMetrics.
Isla markiiba waxaan samayn doonaa boos celin ah in halkan aan ku qabanay koror yar oo isticmaalka CPU ee VictoriaMetrics. VictoriaMetrics wiki waxay kuu sheegaysaa cabbirada ugu fiican. Waanu hubinay. Waxay aad u yareeyeen isticmaalka CPU.
Xaaladeena, isticmaalka xusuusta ee Prometheus, oo ku yaala kooxda Kubernetes, si weyn uma kordhin.
Waxaan is barbar dhignaa laba xog oo xog isku mid ah. Gudaha Prometheus waxaan ku aragnaa isla xogta maqan. Wax walba waa ku fiican yihiin VictoriaMetrics.
Natiijooyinka baaritaanka booska diskka. Anaga oo ah Prometheus waxa aanu helnay 120 gigabytes wadar ahaan. FiktooriyaMetrics waxaan horeyba uga helnay 4 gigabytes maalintii. Waxaa jira hannaan wax yar ka duwan waxa aan u isticmaalnay in aan ku aragno Prometheus. Taasi waa, xogta si fiican ayaa loo cadaadiyaa maalin gudaheed, nus saac gudaheed. Horeyba si fiican ayaa loo goostay maalin gudaheed, nus saac gudaheed, inkastoo xaqiiqda ah in xogta ay wali waayi doonto hadhow. Natiijo ahaan, waxaan ku badbaadinay booska diskka.
Waxaan sidoo kale ku badbaadinaa isticmaalka kheyraadka xusuusta. Waqtigii tijaabada, waxaan haysanay Prometheus oo la galiyay mashiinka farsamada - 8 cores, 24 gigabytes. Prometheus wax walba wuu cunaa. Wuxuu ku dhacay OOM Killer. Isla mar ahaantaana, kaliya 900 metrik firfircoon ayaa lagu shubay. Tani waa qiyaastii 000-25 mitir ilbiriqsikii.
Waxaan ku wadnay VictoriaMetrics mishiin farsamaysan oo dual-core ah oo leh 8 gigabytes oo RAM ah. Waxaan ku guuleysanay inaan ka helno VictoriaMetrics inay si fiican u shaqeyso annagoo ku wareejinayna waxyaabo yar oo mashiinka 8GB ah. Dhammaadkii, waxaanu ku haynay 7 gigabytes. Isla mar ahaantaana, xawaaraha gudbinta nuxurka, i.. metrics, ayaa xitaa ka sarreeyay kan Prometheus.
CPU-gu aad ayuu uga fiicnaa marka la barbar dhigo Prometheus. Halkan Prometheus waxay isticmaashaa 2,5 cores, VictoriaMetrics-na waxay isticmaashaa 0,25 oo kaliya. Bilawga - 0,5 nooc. Marka ay isku biirto, waxay gaartaa hal xudun, laakiin tani aad iyo aad ayay dhif u tahay.
Xaaladeena, doorashadu waxay ku dhacday VictoriaMetrics sababo muuqda dartood; waxaan rabnay inaan lacag badbaadino waana sameynay.
Aynu isla markiiba ka gudubno laba dhibcood - soo dejinta cabbirada iyo isticmaalka sare ee kheyraadka. Waana in aan go’aansanno laba qodob oo aan weli nafteena u hadhsanno.
Halkan waxaan ku samayn doonaa boos celin isla markaaba, waxaanu u aragnaa VictoriaMetrics kaydinta mitirka. Laakiin maadaama aan u badan tahay inaan bixino VictoriaMetrics kayd ahaan dhammaan Leroy, waxaan u baahanahay inaan xaddidno kuwa isticmaali doona kooxdan si ayan noo siin.
Waxa jira halbeeg cajiib ah oo kuu ogolaanaya inaad xaddiddo wakhtiga, mugga xogta iyo wakhtiga fulinta.
Waxa kale oo jira doorasho aad u fiican oo noo ogolaanaysa in aan xaddidno isticmaalka xusuusta, taas oo aan ku heli karno dheelitirnaanta taas oo noo oggolaan doonta inaan helno xawaaraha hawlgalka caadiga ah iyo isticmaalka kheyraadka ku filan.
Laga jaro hal dhibic oo kale, tusaale ahaan ka gudub barta - ma xaddidi kartid isticmaalka xusuusta.
Ku celcelintii ugu horeysay, waxaan tijaabinay VictoriaMetrics Single Node. Marka xigta waxaan u gudubnaa nooca kooxda VictoriaMetrics.
Halkan waxaan ku haynaa gacan bilaash ah si aan u kala saarno adeegyada kala duwan ee VictoriaMetrics iyadoo ku xidhan waxa ay ku shaqayn doonaan iyo agabka ay isticmaali doonaan. Tani waa xal aad u dabacsan oo ku habboon. Waxaan u isticmaalnay tan nafteena.
Qaybaha ugu muhiimsan ee VictoriaMetrics Cluster Version waa vmstsorage. Waxaa jiri kara tiro N ka mid ah. Xaaladeena waxaa jira 2 ka mid ah ilaa hadda.
Oo waxaa jira vminsert. Kani waa server-ka wakiil ka ah oo noo ogolaanaya in aan: isku dubbaridno shaandheynta inta u dhaxaysa dhammaan kaydinta aan u sheegnay, sidoo kale waxay ogolaataa nuqul, i.e. waxaad yeelan doontaa labadaba shaandheyn iyo nuqul.
Vminsert waxay taageertaa OpenTSDB, Graphite, InfluxDB iyo borotokoolka fog-qorka ee Prometheus.
Waxa kale oo jira vmselect Shaqadeeda ugu weyn waa in ay aado vmstorage, ka hesho xogta iyaga, ka soo saar xogtan oo aad siiso macmiilka.
Waxaa jira shay cajiib ah oo la yiraahdo vmagent. Runtii waan jecelnahay iyada. Waxay kuu ogolaaneysaa inaad si sax ah u habeyso sida Prometheus oo aad wali wax walba u sameyso sida Prometheus. Taasi waa, waxay ka ururinaysaa cabbirada hay'ado iyo adeegyo kala duwan waxayna u dirtaa vminsert. Markaa wax walba adiga ayay kugu xidhan yihiin.
Adeeg kale oo aad u fiican waa vmalert, kaas oo kuu ogolaanaya inaad isticmaasho VictoriaMetrics sida dhabarka, ka hesho xogta la farsameeyey vminsert oo u dir vmselect. Waxay habaysaa digniinaha laftooda, iyo sidoo kale xeerarka. Marka laga hadlayo digniinaha, waxa aanu ka helnaa digniinta iyada oo loo marayo maareeyaha digniinta.
Waxa jira qayb wmauth ah. Waxaa laga yaabaa inaan ama maya (aannaan go'aansan tan wali) u isticmaalno nidaam ogolaansho nooca badan ee kooxaha. Waxay taageertaa remoteWrite ee Prometheus waxayna ku oggolaan kartaa iyada oo ku saleysan url, ama halkii qaybteeda labaad, halkaas oo aad wax ku qori karto ama aadan qori karin.
Waxa kale oo jira vmbackup, vmrestore. Tani waa, nuxur ahaan, soo celinta iyo kaydinta dhammaan xogta. Waxa uu samayn karaa S3, GCS, file.
Soo celinta ugu horraysa ee kooxdeenna waxa la sameeyay intii lagu jiray karantiil. Waqtigaas, ma jirin nuqul ka mid ah, sidaa darteed soo-celintayadu waxay ka koobnayd laba kooxood oo kala duwan oo madax-bannaan kuwaas oo aan ka helnay xogta iyada oo loo marayo remoteWrite.
Halkan waxaan ku samayn doonaa boos celin ah markii aan ka soo wareegnay VictoriaMetrics Single Node una gudubnay nooca VictoriaMetrics Cluster Version, waxaan wali ku sii hadhsanay isla agabkii la isticmaalay, ie. tan ugu weyn waa xusuusta. Tani waa qiyaastii sida xogtayada, i.e. isticmaalka kheyraadka, loo qaybiyay.
nuqul ayaa mar hore lagu daray halkan Waxaas oo dhan waxaan isugu geynay hal koox oo aad u weyn. Dhammaan xogtayadu waa la jeexjeexay oo la soo koobay.
Kooxda oo dhan waxay leedahay dhibco N, taasoo la micno ah Prometheus inuu ku dari karo xogta HAPROXY. Halkan waxaan ku haynaa bartan gelitaanka. Iyo bartan laga soo galo waxaad ka soo gali kartaa Grafana.
Xaaladeena, HAPROXY waa dekedda kaliya ee wakiiladu ay doortaan, geliyaan iyo adeegyada kale ee kutladan. Xaaladeena, suurtagal ma ahayn in la sameeyo hal ciwaan; waa inaan samayno dhowr dhibcood oo laga soo galo, sababtoo ah mashiinnada farsamada laftooda ay ku shaqeeyaan kooxda VictoriaMetrics waxay ku yaalaan aagag kala duwan oo isku mid ah bixiyaha daruuraha, ie. maaha gudaha daruurteena, laakiin dibadda .
Waxaan leenahay feejignaan. Waxaan isticmaalnaa. Waxaan isticmaalnaa maareeyaha digniinta ee Prometheus. Waxaan u isticmaalnaa Opsgenie iyo Telegram sidii kanaalka gaarsiinta digniinta. Telegram-ka waxay ka soo shubaan dev, laga yaabee wax ka soo baxa prod, laakiin inta badan wax tirakoob ah, oo ay u baahan yihiin injineerada. Oo Opsgenie waa muhiim. Kuwani waa wicitaano, maaraynta dhacdada.
Su'aasha weligeed ah: "Yaa la socda kormeerka?" Xaaladeena, la socodka waxay kormeertaa lafteeda, sababtoo ah waxaan isticmaalnaa vmagent noode kasta. Oo maadaama noodhadhkayaga lagu qaybiyey xarumaha xogta kala duwan ee isla bixiyaha, xarun kasta oo xogeed waxay leedahay kanaal u gaar ah, way madaxbannaan yihiin, xitaa haddii maskaxdu timaaddo, weli waxaan heli doonnaa digniino. Haa, waxaa jiri doona qaar badan oo iyaga ka mid ah, laakiin waxaa fiican in la helo digniino ka badan midna.
Waxaan liiskayaga ku soo afjarnay hirgelinta HA.
Oo weliba waxaan jeclaan lahaa inaan xuso waayo-aragnimada la xidhiidhka bulshada VictoriaMetrics. Waxay noqotay mid aad u wanaagsan. Nimanku waa ka jawaabaan. Waxay isku dayaan inay u dhuuxaan kiis kasta oo la soo bandhigo.
Waxaan arrimaha ka bilaabay GitHub. Si degdeg ah ayaa loo xaliyay. Waxaa jira dhowr arrimood oo kale oo aan si buuxda u xirneyn, laakiin waxaan horeyba u arki karaa koodhka ka shaqeeya jihada uu socdo.
Xanuunka ugu weyn ee ii inta lagu guda jiro soo noqnoqda ahaa in haddii aan xidho noode ah, ka dibna 30 ee ugu horreeya ee ilbiriqsi vminsert ma fahmi karo in ay jirto backend jirin. Tani hadda waa la go'aamiyay. Oo macno ahaan hal ilbiriqsi ama laba, xogta waxaa laga soo qaadaa dhammaan qanjidhada soo hadhay, codsiguna wuxuu joogsadaa sugitaanka noodhka maqan.
Mar waxa aanu rabnay in VictoriaMetrics ay noqoto hawl wadeen VictoriaMetrics. Waanu sugaynay. Waxaan hadda si firfircoon u dhisaynaa qaab hawlwadeenka VictoriaMetrics si uu u qaato dhammaan shuruucdii xisaabinta hore, iwm.
Waxaa jira soo jeedinno lagu hagaajinayo fulinta kooxda. Kor ayaan ku tilmaamay.
Oo runtii waxaan rabaa inaan hoos u dhigo. Xaaladeena, hoos u dhigista ayaa si gaar ah loogu baahan yahay daawashada isbeddellada. Qiyaas ahaan, hal mitir ayaa igu filan inta lagu jiro maalinta. Isbeddelladan ayaa loo baahan yahay sannad, saddex, shan, toban sano. Hal mitir oo qiimaheeduna waa ku filan yahay.
- Waxaan ognahay xanuunka, sida ay qabaan qaar ka mid ah asxaabteena, marka la isticmaalayo Prometheus.
- Waxaan u dooranay VictoriaMetrics nafteena.
- Si fiican ayuu u miisaamaa si toos ah iyo si toos ah labadaba.
- Waxaan u qaybin karnaa qaybo kala duwan tirooyinka kala duwan ee qanjidhada ee kutlada, ku xaddidno xusuusta, ku darno xusuusta, iwm.
Waxaan ku isticmaali doonaa VictoriaMetrics guriga sababtoo ah runtii waan jecleysanay. Tani waa wixii jiray iyo waxa noqday.
Dhawr kood oo QR ah oo loogu talagalay wada sheekaysiga VictoriaMetrics, xidhiidhadayda, radar farsamo LeroyMerlin.
Source: www.habr.com