VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

VictoriaMetrics se yon DBMS rapid ak évolutive pou estoke ak trete done nan fòm lan nan yon seri tan (yon dosye konsiste de tan ak yon seri valè ki koresponn ak tan sa a, pou egzanp, jwenn nan sondaj peryodik nan estati detèktè oswa koleksyon mezi).


VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Non mwen se Kolobaev Pavel. DevOps, SRE, LeroyMerlin, tout bagay se tankou kòd - li nan tout sou nou: sou mwen ak sou lòt anplwaye LeroyMerlin.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

https://bit.ly/3jf1fIK

Gen yon nwaj ki baze sou OpenStack. Gen yon ti lyen nan rada teknik la.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Li bati sou pyès ki nan konpitè Kubernetes, osi byen ke sou tout sèvis ki gen rapò ak OpenStack ak antre.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Sa a se scheme nou te gen nan devlopman. Lè nou t ap devlope tout bagay sa yo, nou te gen yon operatè Prometheus ki te estoke done andedan gwoup K8s nan tèt li. Li otomatikman jwenn sa ki bezwen yo dwe fwote epi li mete l anba pye l ', apeprè pale.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Nou pral bezwen deplase tout done yo deyò gwoup Kubernetes la, paske si yon bagay rive, nou bezwen konprann ki sa ak ki kote.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Premye solisyon an se ke nou itilize federasyon lè nou gen yon twazyèm pati Prometheus, lè nou ale nan cluster Kubernetes atravè mekanis federasyon an.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Men, gen kèk ti pwoblèm isit la. Nan ka nou an, pwoblèm yo te kòmanse lè nou te gen 250 metrik, epi lè te gen 000 metrik, nou reyalize ke nou pa t 'kapab travay konsa. Nou ogmante scrape_timeout a 400 segonn.

Poukisa nou te oblije fè sa? Prometheus kòmanse konte timeout la depi nan konmansman an nan kloti a. Li pa enpòtan ke done yo toujou ap koule tankou dlo. Si pandan peryòd tan espesifye sa a done yo pa fizyone epi sesyon an pa fèmen atravè http, Lè sa a, sesyon an konsidere kòm echwe epi done yo pa antre nan Prometheus tèt li.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Tout moun abitye ak graf yo ke nou jwenn lè kèk nan done yo manke. Orè yo chire e nou pa kontan ak sa.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Opsyon kap vini an se sharding ki baze sou de diferan Prometheus atravè menm mekanis federasyon an.

Pou egzanp, jis pran yo ak shard yo pa non. Sa a ka itilize tou, men nou deside avanse.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Koulye a, nou pral oblije trete shards sa yo yon jan kanmenm. Ou ka pran promxy, ki ale nan zòn nan shard ak miltipliye done yo. Li travay ak de shards kòm yon sèl pwen antre. Sa a ka aplike atravè promxy, men li toujou twò difisil.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Premye opsyon se ke nou vle abandone mekanis federasyon an paske li trè dousman.

Devlopè Prometheus yo di klèman, "Mesye, sèvi ak yon TimescaleDB diferan paske nou p ap sipòte depo alontèm nan mezi." Sa a se pa travay yo. VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Nou ekri sou yon moso papye ke nou toujou bezwen dechaje deyò, pou yo pa estoke tout bagay nan yon sèl kote.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Dezyèm dezavantaj la se konsomasyon memwa. Wi, mwen konprann ke anpil moun pral di ke nan 2020 yon koup nan gigabyte nan memwa koute yon jounen travay, men yo toujou.

Koulye a, nou gen yon anviwònman dev ak prod. Nan dev li se apeprè 9 jigokte pou 350 metrik. Nan prod li se 000 jigokte ak yon ti kras plis pase 14 metrik. An menm tan an, tan retansyon nou an se sèlman 780 minit. Sa a se move. Epi kounye a mwen pral eksplike poukisa.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Nou fè yon kalkil, se sa ki, ak yon milyon ak yon mwatye metrik, epi nou deja pre yo, nan etap nan konsepsyon nou jwenn 35-37 jigokte nan memwa. Men, deja 4 milyon metrik mande apeprè 90 jigokte memwa. Sa vle di, li te kalkile lè l sèvi avèk fòmil la bay pa devlopè yo Prometheus. Nou gade korelasyon an epi reyalize ke nou pa t 'vle peye yon koup la milyon dola pou yon sèvè jis pou siveyans.

Nou pral non sèlman ogmante kantite machin yo, nou ap tou kontwole machin vityèl yo tèt yo. Se poutèt sa, machin yo plis vityèl, plis mezi yo nan divès kalite, elatriye Nou pral gen yon kwasans espesyal nan gwoup nou an an tèm de metrik.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Avèk espas disk, se pa tout bagay tèlman mal isit la, men mwen ta renmen amelyore li. Nou te resevwa yon total de 15 jigokte nan 120 jou, nan ki 100 se done konprese, 20 se done dekonprese, men nou toujou vle mwens.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

An konsekans, nou ekri yon lòt pwen - sa a se yon gwo konsomasyon resous, ke nou toujou vle sove, paske nou pa vle gwoup siveyans nou an konsome plis resous pase gwoup nou an, ki jere OpenStack.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Gen yon lòt dezavantaj nan Prometheus, ke nou te idantifye pou tèt nou, sa a se omwen yon kalite limit memwa. Avèk Prometheus, tout bagay se pi mal isit la, paske li pa gen Torsion sa yo ditou. Sèvi ak yon limit nan Docker se tou pa yon opsyon. Si toudenkou RAF ou a te tonbe epi gen 20-30 jigokte, Lè sa a, li pral pran yon tan trè long pou monte.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Sa a se yon lòt rezon ki fè Prometheus pa apwopriye pou nou, sa vle di nou pa ka limite konsomasyon memwa.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Li ta posib pou vini ak yon plan konsa. Nou bezwen plan sa a pou nou òganize yon gwoup HA. Nou vle mezi nou yo disponib toujou ak tout kote, menm si sèvè a ki estoke mezi sa yo aksidan. Se konsa, nou pral gen bati tankou yon konplo.

Konplo sa a di ke nou pral gen repetisyon nan shards, epi, kòmsadwa, duplication nan depans sa yo nan resous konsome. Li ka echèl prèske orizontal, men kanmenm konsomasyon resous la pral infernal.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Dezavantaj yo nan lòd nan fòm kote nou te ekri yo pou tèt nou:

  • Egzije pou telechaje mezi deyò.
  • Segondè konsomasyon resous.
  • Pa gen okenn fason pou limite konsomasyon memwa.
  • Konplèks ak resous entansif aplikasyon HA.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Pou tèt nou, nou te deside ke nou t ap deplase lwen Prometheus kòm yon etablisman depo.

Nou te idantifye kondisyon adisyonèl pou tèt nou ke nou bezwen. Sa a:

  • Sa a se sipò promql, paske gen anpil bagay ki deja ekri pou Prometheus: demann, alèt.
  • Lè sa a, nou gen Grafana, ki deja ekri nan egzakteman menm jan an pou Prometheus kòm yon backend. Mwen pa vle reekri tablodbò yo.
  • Nou vle bati yon achitekti HA nòmal.
  • Nou vle redwi konsomasyon nenpòt resous.
  • Gen yon lòt ti nuans. Nou pa ka sèvi ak divès kalite sistèm koleksyon mezi nwaj yo. Nou pa konnen ki sa ki pral tonbe nan mezi sa yo ankò. Epi depi nenpòt bagay ka vole la, nou dwe limite tèt nou nan plasman lokal yo.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Te gen ti chwa. Nou kolekte tout sa nou te gen eksperyans avèk yo. Nou te gade paj Prometheus la nan seksyon entegrasyon an, li yon pakèt atik, epi nou te wè sa ki te deyò. E pou tèt nou, nou te chwazi VictoriaMetrics kòm yon ranplasman pou Prometheus.

Poukisa? Paske:

  • Konnen promql.
  • Gen yon achitekti modilè.
  • Pa mande pou chanjman nan Grafana.
  • Ak sa ki pi enpòtan, nou pral pwobableman bay depo mezi yo nan konpayi nou an kòm yon sèvis, kidonk nou ap chèche davans nan direksyon pou restriksyon nan divès kalite pou itilizatè yo ka itilize tout resous gwoup la nan kèk fason limite, paske gen yon chans. ke li pral multilocation.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Ann fè premye konparezon an. Nou pran menm Prometheus andedan grap la, ekstèn Prometheus ale nan li. Ajoute via remoteWrite VictoriaMetrics.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Mwen pral imedyatman fè yon rezèvasyon ke isit la nou kenbe yon ti ogmantasyon nan konsomasyon CPU soti nan VictoriaMetrics. VictoriaMetrics wiki a di w ki paramèt ki pi bon. Nou tcheke yo. Yo te redwi konsomasyon CPU trè byen.

Nan ka nou an, konsomasyon memwa Prometheus, ki sitiye nan gwoup Kubernetes la, pa t ogmante anpil.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Nou konpare de sous done nan menm done yo. Nan Prometheus nou wè menm done ki manke yo. Tout bagay anfòm nan VictoriaMetrics.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Rezilta tès espas disk yo. Nou menm nan Prometheus te resevwa 120 gigabyte an total. Nan VictoriaMetrics nou deja resevwa 4 gigabyte pa jou. Gen yon mekanis yon ti kras diferan pase sa nou abitye wè nan Prometheus. Sa vle di, done yo deja konprese byen byen nan yon jounen, nan yon demi èdtan. Yo te deja rekòlte byen nan yon jou, nan yon demi èdtan, malgre lefèt ke done yo ap toujou pèdi pita. Kòm yon rezilta, nou sove sou espas ki gen kapasite.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Nou menm tou nou sove sou konsomasyon resous memwa. Nan moman tès la, nou te deplwaye Prometheus sou yon machin vityèl - 8 nwayo, 24 jigokte. Prometheus manje prèske tout bagay. Li tonbe sou OOM Killer. An menm tan an, sèlman 900 mezi aktif yo te vide nan li. Sa a se sou 000-25 metrik pou chak segonn.

Nou te kouri VictoriaMetrics sou yon machin vityèl doub-nwayo ak 8 gigabyte RAM. Nou te jere pou VictoriaMetrics travay byen nan jwe ak kèk bagay sou yon machin 8GB. Nan fen a, nou kenbe li nan 7 gigaocte. An menm tan an, vitès livrezon kontni, sa vle di mezi, te menm pi wo pase sa ki nan Prometheus.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

CPU a te vin pi bon konpare ak Prometheus. Isit la Prometheus konsome 2,5 nwayo, ak VictoriaMetrics sèlman konsome 0,25 nwayo. Nan kòmansman an - 0,5 am. Kòm li fizyone, li rive nan yon sèl nwayo, men sa a se trè, trè ra.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Nan ka nou an, chwa a te tonbe sou VictoriaMetrics pou rezon evidan; nou te vle ekonomize lajan e nou te fè.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Ann travèse de pwen touswit - telechaje mezi ak gwo konsomasyon resous yo. Epi nou jis bezwen deside de pwen ke nou toujou rete pou tèt nou.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Isit la mwen pral fè yon rezèvasyon touswit, nou konsidere VictoriaMetrics kòm yon depo nan metrik. Men, piske nou pral gen plis chans bay VictoriaMetrics kòm depo pou tout Leroy, nou bezwen limite moun ki pral sèvi ak gwoup sa a pou yo pa ba nou li.

Gen yon paramèt bèl bagay ki pèmèt ou limite pa tan, pa volim nan done ak pa tan ekzekisyon.

Genyen tou yon opsyon ekselan ki pèmèt nou limite konsomasyon memwa, kidonk nou ka jwenn balans lan trè ki pral pèmèt nou jwenn vitès nòmal opere ak konsomasyon resous adekwat.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Mwens yon lòt pwen, sa vle di travèse pwen an - ou pa ka limite konsomasyon memwa.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Nan premye iterasyon yo, nou teste VictoriaMetrics Single Node. Apre sa, nou ale nan vèsyon VictoriaMetrics Cluster.

Isit la nou gen yon men gratis pou separe diferan sèvis nan VictoriaMetrics depann sou sa yo pral kouri sou ak ki resous yo pral konsome. Sa a se yon solisyon trè fleksib ak pratik. Nou te itilize sa a sou tèt nou.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Konpozan prensipal yo nan vèsyon VictoriaMetrics Cluster yo se vmstsorage. Ka gen N kantite yo. Nan ka nou an gen 2 ladan yo jiskaprezan.

Epi gen vminsert. Sa a se yon sèvè proxy ki pèmèt nou: fè aranjman pou sharding ant tout depo ke nou te di li sou yo, epi li pèmèt tou yon kopi, sa vle di ou pral gen tou de sharding ak yon kopi.

Vminsert sipòte pwotokòl OpenTSDB, Graphite, InfluxDB ak remoteWrite soti nan Prometheus.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Genyen tou vmselect. Travay prensipal li se ale nan vmstorage, resevwa done nan men yo, deduplicate done sa yo epi bay kliyan an li.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Gen yon bèl bagay ki rele vmagent. Nou vrèman renmen li. Li pèmèt ou konfigirasyon egzakteman tankou Prometheus epi toujou fè tout bagay egzakteman tankou Prometheus. Sa vle di, li kolekte mezi nan diferan antite ak sèvis epi voye yo bay vminsert. Lè sa a, tout bagay depann sou ou.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Yon lòt gwo sèvis se vmalert, ki pèmèt ou sèvi ak VictoriaMetrics kòm yon backend, resevwa done trete soti nan vminsert epi voye li nan vmselect. Li trete alèt yo tèt yo, osi byen ke règ yo. Nan ka alèt, nou resevwa alèt la atravè alertmanager.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Gen yon eleman wmauth. Nou ka oswa nou ka pa (nou poko deside sou sa a) sèvi ak li kòm yon sistèm otorizasyon pou vèsyon an multi-lokatè nan grap. Li sipòte remoteWrite pou Prometheus epi li ka otorize ki baze sou url la, oswa pito dezyèm pati a nan li, kote ou ka oswa ou pa ka ekri.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Genyen tou vmbackup, vmrestore. Sa a se, nan sans, restorasyon an ak backup nan tout done. Ka fè S3, GCS, dosye.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Premye iterasyon gwoup nou an te fèt pandan karantèn. Nan epòk sa a, pa te gen okenn kopi, kidonk iterasyon nou an te konpoze de de gwoup diferan ak endepandan kote nou te resevwa done atravè remoteWrite.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Isit la mwen pral fè yon rezèvasyon ke lè nou chanje soti nan VictoriaMetrics Single Node nan vèsyon VictoriaMetrics Cluster, nou toujou rete ak menm resous yo konsome, sa vle di prensipal la se memwa. Sa a se apeprè ki jan done nou yo, sa vle di konsomasyon resous, yo te distribye.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Yon kopi deja te ajoute isit la. Nou konbine tout bagay sa yo nan yon sèl gwoup relativman gwo. Tout done nou yo tou de sharded ak replike.

Tout gwoup la gen N pwen antre, sa vle di Prometheus ka ajoute done atravè HAPROXY. Isit la nou gen pwen antre sa a. Ak nan pwen antre sa a ou ka konekte nan Grafana.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Nan ka nou an, HAPROXY se sèl pò ke proxys chwazi, insert ak lòt sèvis andedan gwoup sa a. Nan ka nou an, li te enposib pou fè yon sèl adrès; nou te oblije fè plizyè pwen antre, paske machin vityèl yo tèt yo sou ki gwoup VictoriaMetrics la kouri yo sitiye nan diferan zòn nan menm founisè nwaj la, sa vle di pa andedan nwaj nou an, men deyò. .

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Nou gen alèt. Nou itilize li. Nou itilize alertmanager ki soti nan Prometheus. Nou itilize Opsgenie ak Telegram kòm yon kanal livrezon alèt. Nan Telegram yo vide nan dev, petèt yon bagay soti nan prod, men sitou yon bagay estatistik, ki nesesè pa enjenyè. Ak Opsgenie se kritik. Sa yo se apèl, jesyon ensidan.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Kesyon p'ap janm fini an: "Ki moun ki kontwole siveyans la?" Nan ka nou an, siveyans monitè siveyans tèt li, paske nou itilize vmagent sou chak ne. Epi depi nœuds nou yo distribiye atravè diferan sant done nan menm founisè a, chak sant done gen pwòp kanal li yo, yo endepandan, e menm si yon sèvo fann rive, n ap toujou resevwa alèt. Wi, pral gen plis nan yo, men li pi bon pou resevwa plis alèt pase okenn.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Nou fini lis nou an ak yon aplikasyon HA.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Apre sa, mwen ta renmen sonje eksperyans nan kominike ak kominote VictoriaMetrics la. Li te tounen trè pozitif. Mesye yo reponn. Yo eseye fouye nan chak ka ki ofri.

Mwen te kòmanse pwoblèm sou GitHub. Yo te rezoud trè vit. Gen yon koup plis pwoblèm ki pa konplètman fèmen, men mwen ka deja wè nan kòd la ki travay nan direksyon sa a se sou pye.

Doulè prensipal la pou mwen pandan iterasyon te ke si mwen fèmen yon ne, Lè sa a, pou premye 30 segonn vminsert pa t 'kapab konprann ke pa te gen okenn backend. Sa a te kounye a te deside. Ak literalman nan yon dezyèm oswa de, done yo pran nan tout nœuds ki rete yo, epi demann lan sispann ap tann pou ne ki manke.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

Nan kèk pwen nou te vle VictoriaMetrics vin yon operatè VictoriaMetrics. Nou te tann li. Kounye a nou ap aktivman bati yon kad pou operatè VictoriaMetrics la pran tout règ pre-kalkile, elatriye Prometheus, paske nou byen aktivman itilize règ ki vini ak operatè Prometheus la.

Gen pwopozisyon pou amelyore aplikasyon gwoup la. Mwen dekri yo pi wo a.

Apre sa, mwen reyèlman vle desann echantiyon. Nan ka nou an, downsampling nesesè sèlman pou gade tandans. Apeprè pale, yon sèl metrik ase pou mwen pandan jounen an. Tandans sa yo bezwen pou yon ane, twa, senk, dis ane. Ak yon valè metrik se byen ase.
VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

  • Nou te konnen doulè, menm jan ak kèk nan kòlèg nou yo, lè w ap itilize Prometheus.
  • Nou te chwazi VictoriaMetrics pou tèt nou.
  • Li balanse byen tou de vètikal ak orizontal.
  • Nou ka distribye diferan konpozan nan diferan kantite nœuds nan gwoup la, limite yo pa memwa, ajoute memwa, elatriye.

Nou pral sèvi ak VictoriaMetrics lakay nou paske nou te vrèman renmen li. Sa a se sa ki te ak sa ki te vin.

VictoriaMetrics ak siveyans nwaj prive. Pavel Kolobaev

https://t.me/VictoriaMetrics_ru1

Yon koup QR kòd pou chat VictoriaMetrics, kontak mwen yo, rada teknik LeroyMerlin.

Sous: www.habr.com

Add nouvo kòmantè