
VictoriaMetrics bụ DBMS ngwa ngwa na scalable maka ịchekwa na nhazi data n'ụdị usoro oge (ndekọ nwere oge na ụkpụrụ nke dabara na oge a, dịka ọmụmaatụ, enwetara site na ntuli aka oge nke ọnọdụ nke sensọ ma ọ bụ nchịkọta nke metrik).


Aha m bụ Kolobaev Pavel. DevOps, SRE, LeroyMerlin, ihe niile dị ka koodu - ọ bụ ihe niile gbasara anyị: gbasara mụ na ndị ọrụ LeroyMerlin ndị ọzọ.

Enwere igwe ojii dabere na OpenStack. Enwere obere njikọ na radar teknụzụ.

Ewubere ya na ngwaike Kubernetes, yana na ọrụ niile metụtara maka OpenStack na ịde osisi.

Nke a bụ atụmatụ anyị nwere na mmepe. Mgbe anyị na-etolite ihe ndị a niile, anyị nwere onye ọrụ Prometheus na-echekwa data n'ime ụyọkọ K8 n'onwe ya. Ọ na-achọpụta ngwa ngwa ihe a ga-ehichapụ ma tinye ya n'okpuru ụkwụ ya, na-ekwu okwu ike.

Anyị ga-achọ ịkwaga data niile n'èzí ụyọkọ Kubernetes, n'ihi na ọ bụrụ na ihe emee, anyị kwesịrị ịghọta ihe na ebe.

Ngwọta mbụ bụ na anyị na-eji federation mgbe anyị nwere Prometheus nke atọ, mgbe anyị na-aga na ụyọkọ Kubernetes site na usoro nhazi.

Ma enwere obere nsogbu ebe a. N'ọnọdụ anyị, nsogbu ahụ malitere mgbe anyị nwere metrics 250, na mgbe enwere 000 metrics, anyị ghọtara na anyị enweghị ike ịrụ ọrụ dị otú ahụ. Anyị mụbara scrape_timeout ruo 400 sekọnd.
Gịnị mere anyị ji mee nke a? Prometheus na-amalite ịgụta oge site na mmalite nke ngere ahụ. Ọ baghị uru na data ahụ ka na-aga. Ọ bụrụ na n'ime oge a kapịrị ọnụ data adịghị ejikọta na nnọkọ ahụ anaghị emechi site na http, mgbe ahụ, a na-ewere nnọkọ ahụ ka ọ dara ma data ahụ adịghị abanye na Prometheus n'onwe ya.

Onye ọ bụla maara eserese ndị anyị na-enweta mgbe ụfọdụ data na-efu. Usoro adọwara adọwa ma anyị enweghị obi ụtọ na nke a.

Nhọrọ ọzọ bụ sharding dabere na Prometheus abụọ dị iche iche site na otu usoro gọọmentị.
Dịka ọmụmaatụ, were naanị ha ma kewaa ha n'aha. Nke a nwekwara ike iji, ma anyị kpebiri ịga n'ihu.

Ugbu a anyị ga-edozi shards ndị a n'ụzọ ụfọdụ. Ị nwere ike iwere promxy, nke na-aga na mpaghara shard na-amụba data. Ọ na-arụ ọrụ na shards abụọ dị ka otu ntinye ntinye. Enwere ike ime nke a site na promxy, mana ọ ka siri ike.

Nhọrọ nke mbụ bụ na anyị chọrọ ịhapụ usoro gọọmentị etiti n'ihi na ọ dị ngwa ngwa.
Ndị mmepe Prometheus na-ekwu n'ụzọ doro anya, "Ụmụ okorobịa, jiri TimecaleDB dị iche iche n'ihi na anyị agaghị akwado nchekwa ogologo oge nke metrics." Nke a abụghị ọrụ ha. 
Anyị na-ede n'otu mpempe akwụkwọ anyị ka kwesịrị ibupụ n'èzí, ka anyị ghara ịchekwa ihe niile n'otu ebe.

Ihe ndọghachi azụ nke abụọ bụ oriri ebe nchekwa. Ee, aghọtara m na ọtụtụ ga-ekwu na na 2020 gigabytes abụọ nke ebe nchekwa na-efu otu penny, mana ka.
Ugbu a, anyị nwere dev na prod gburugburu ebe obibi. Na dev ọ bụ ihe dịka 9 gigabytes maka metrik 350. Na prod ọ bụ 000 gigabytes na ntakịrị ihe karịrị 14 metrik. N'otu oge ahụ, oge njide anyị bụ naanị nkeji iri atọ. Nke a dị njọ. Ma ugbu a, m ga-akọwa ihe kpatara ya.

Anyị na-eme ngụkọta, ya bụ, na otu nde na ọkara metrics, na anyị adịlarị nso ha, na nhazi nhazi anyị na-enweta 35-37 gigabytes nke ebe nchekwa. Mana ugbua metric nde anọ chọrọ ihe dịka gigabytes 4 nke ebe nchekwa. Ya bụ, a gbakọọ ya site na iji usoro nke ndị mmepe Prometheus nyere. Anyị lere anya na njikọ ahụ wee chọpụta na anyị achọghị ịkwụ ụgwọ nde abụọ maka ihe nkesa naanị maka nlekota.
Ọ bụghị naanị na anyị ga-abawanye ọnụ ọgụgụ igwe, anyị na-enyochakwa igwe mebere n'onwe ha. Ya mere, ka igwe mebere, ka metrics nke ụdị dị iche iche, wdg. Anyị ga-enwe uto pụrụ iche nke ụyọkọ anyị n'ihe gbasara metrics.

Site na ohere diski, ọ bụghị ihe niile dị njọ ebe a, mana ọ ga-amasị m imeziwanye ya. Anyị natara ngụkọta nke 15 gigabytes na 120 ụbọchị, nke 100 bụ abịakọrọ data, 20 bụ uncompressed data, ma anyị na-achọ mgbe niile obere.

N'ihi ya, anyị na-edetu otu isi ihe ọzọ - nke a bụ nnukwu oriri nke akụrụngwa, nke anyị ka chọrọ ịchekwa, n'ihi na anyị achọghị ka ụyọkọ nlekota anyị na-eri ọtụtụ ihe karịa ụyọkọ anyị, nke na-achịkwa OpenStack.

Enwere otu ihe ndọghachi azụ nke Prometheus, nke anyị achọpụtala maka onwe anyị, nke a bụ ma ọ dịkarịa ala ụdị njedebe ebe nchekwa. Site na Prometheus, ihe niile dị njọ ebe a, n'ihi na ọ nweghị ntụgharị dị otú ahụ ma ọlị. Iji oke na docker abụghịkwa nhọrọ. Ọ bụrụ na RAF gị dara na mberede ma enwere 20-30 gigabytes, mgbe ahụ ọ ga-ewe ogologo oge iji bilie.

Nke a bụ ihe ọzọ mere Prometheus adịghị adabara anyị, ya bụ, anyị enweghị ike igbochi oriri ebe nchekwa.

Ọ ga-ekwe omume ịmepụta atụmatụ dị otú ahụ. Anyị chọrọ atụmatụ a iji hazie ụyọkọ HA. Anyị chọrọ ka metrik anyị dị mgbe niile na ebe niile, ọ bụrụgodị na ihe nkesa na-echekwa metrik ndị a daa. Ya mere, anyị ga-ewu atụmatụ dị otú ahụ.
Atụmatụ a na-ekwu na anyị ga-enwe mbiputegharị nke shards, na, ya mere, mkpirisi nke ego nke ihe eji eme ihe. Enwere ike tụọ ya ihe fọrọ nke nta ka ọ bụrụ kwụ ọtọ, mana ka o sina dị, oriri akụrụngwa ga-abụ ọkụ.

Ọdịmma n'usoro n'ụdị nke anyị dere ha n'onwe anyị:
- Ọ chọrọ ibugo metrik na mpụga.
- Nri akụ dị elu.
- Enweghị ụzọ iji gbochie oriri ebe nchekwa.
- Mgbagwoju anya na mmejuputa akụrụngwa nke HA.

Maka onwe anyị, anyị kpebiri na anyị na-apụ na Prometheus dịka ebe nchekwa.
Anyị achọpụtala ihe ndị ọzọ anyị chọrọ maka onwe anyị. Nke a:
- Nke a bụ nkwado promql, n'ihi na edeelarị ọtụtụ ihe maka Prometheus: ajụjụ, ọkwa.
- Ma mgbe ahụ, anyị nwere Grafana, nke ederelarị n'otu ụzọ ahụ maka Prometheus dịka azụ azụ. Achọghị m idegharị dashboards.
- Anyị chọrọ iwu ụlọ ụkpụrụ HA.
- Anyị chọrọ ibelata oriri nke akụrụngwa ọ bụla.
- Enwere obere nuance ọzọ. Anyị enweghị ike iji ụdị usoro nchịkọta igwe ojii dị iche iche. Anyị amaghị ihe ga-adaba na metrik ndị a. Ma ebe ọ bụ na ihe ọ bụla nwere ike fega ebe ahụ, anyị ga-ejedebe onwe anyị na ntinye mpaghara.

Enwere obere nhọrọ. Anyị chịkọtara ihe niile anyị nwere ahụmahụ. Anyị lere anya na ibe Prometheus na ngalaba ntinye, gụọ ụyọkọ akụkọ, wee hụ ihe dị n'ebe ahụ. Maka onwe anyị, anyị họọrọ VictoriaMetrics ka ọ bụrụ nnọchi Prometheus.
Gịnị kpatara? N'ihi na:
- maara promql.
- Enwere ihe owuwu modular.
- Achọghị mgbanwe na Grafana.
- Ma nke kachasị mkpa, anyị nwere ike ịnye nchekwa metrics n'ime ụlọ ọrụ anyị dị ka ọrụ, yabụ anyị na-ele anya n'ihu maka mgbochi nke ụdị dị iche iche ka ndị ọrụ wee nwee ike iji ihe niile nke ụyọkọ ahụ mee ihe n'ụzọ ụfọdụ, n'ihi na enwere ohere. na ọ ga-aba ụba.

Ka anyị mee ntụnyere nke mbụ. Anyị na-ewere otu Prometheus n'ime ụyọkọ ahụ, Prometheus dị n'èzí na-aga na ya. Tinye site na ime obodo Dee VictoriaMetrics.

Aga m edobe ozugbo na ebe a anyị nwetara ntakịrị mmụba na oriri CPU site na VictoriaMetrics. VictoriaMetrics wiki na-agwa gị nke kacha mma. Anyị nyochara ha. Ha belatara oriri CPU nke ọma.
N'ọnọdụ anyị, oriri ebe nchekwa nke Prometheus, nke dị na ụyọkọ Kubernetes, abawanyeghị nke ukwuu.

Anyị na-atụnyere isi mmalite data abụọ nke otu data. Na Prometheus anyị na-ahụ otu data efu. Ihe niile dị mma na VictoriaMetrics.

Nsonaazụ ule oghere diski. Anyị na Prometheus nwetara 120 gigabytes na mkpokọta. Na VictoriaMetrics anyị na-anata 4 gigabytes kwa ụbọchị. Enwere usoro dịtụ iche karịa nke anyị ji ahụ na Prometheus. Nke ahụ bụ, achịkọtalarị data ahụ nke ọma n'otu ụbọchị, n'ime ọkara elekere. E nwetaworị ha nke ọma n'otu ụbọchị, n'ime ọkara elekere, n'agbanyeghị na data ahụ ka ga-efunahụ ma emechaa. N'ihi ya, anyị echekwara na ohere diski.

Anyị na-echekwa na oriri akụrụngwa ebe nchekwa. N'oge ule, anyị etinyela Prometheus na igwe mebere - 8 cores, 24 gigabytes. Prometheus na-eri ihe niile. Ọ dabara na OOM Killer. N'otu oge ahụ, naanị 900 metrik na-arụ ọrụ ka a wụsara n'ime ya. Nke a bụ ihe dịka metrik 000-25 kwa nkeji.
Anyị na-agba ọsọ VictoriaMetrics na igwe mebere nke nwere 8 gigabytes nke RAM. Anyị jisiri ike nweta VictoriaMetrics ka ọ rụọ ọrụ nke ọma site na iji ihe ole na ole na-agbagharị na igwe 8GB. N'ikpeazụ, anyị debere ya na 7 gigabytes. N'otu oge ahụ, ọsọ nke nnyefe ọdịnaya, ya bụ metrics, dị elu karịa nke Prometheus.

CPU abụrụla nke ọma ma e jiri ya tụnyere Prometheus. N'ebe a Prometheus na-eri cores 2,5, na VictoriaMetrics na-eri naanị 0,25 cores. Na mbido - 0,5 cores. Ka ọ na-ejikọta, ọ na-eru otu isi, mana nke a dị oke oke, dị oke ụkọ.

N'ọnọdụ anyị, nhọrọ ahụ dabara na VictoriaMetrics maka ihe doro anya anyị chọrọ ịchekwa ego ma anyị mere.

Ka anyị gafee isi ihe abụọ ozugbo - ibugo nke metrik na oke oriri nke ihe onwunwe. Naanị ihe anyị ga-eme bụ ikpebi isi ihe abụọ anyị ka hapụụrụ onwe anyị.

N'ebe a, m ga-eme ndoputa ozugbo, anyị na-atụle VictoriaMetrics dị ka nchekwa nke metrik. Mana ebe ọ bụ na anyị ga-enye VictoriaMetrics ka ọ bụrụ nchekwa maka Leroy niile, anyị kwesịrị ịmachi ndị ga-eji ụyọkọ a ka ha ghara inye anyị ya.
Enwere oke njiri mara mma nke na-enye gị ohere ịmachi ya site na oge, site na oke data na site na oge igbu.
Enwekwara nhọrọ magburu onwe ya nke na-enye anyị ohere ịmachi oriri ebe nchekwa, si otú ahụ anyị nwere ike ịchọta nguzozi nke ga-enye anyị ohere ịnweta ọsọ ọsọ na-arụ ọrụ na nri akụrụngwa zuru oke.

E wepụrụ otu isi ihe, ya bụ gafere isi ihe - ị nweghị ike ịgbachita oriri ebe nchekwa.

N'ime mmegharị nke mbụ, anyị nwalere VictoriaMetrics Single Node. Ọzọ anyị ga-aga na VictoriaMetrics Cluster Version.
N'ebe a, anyị nwere aka efu iji kewaa ọrụ dị iche iche na VictoriaMetrics dabere n'ihe ha ga-agba ọsọ na ihe akụrụngwa ha ga-eri. Nke a bụ ihe ngwọta dị mfe ma dị mma. Anyị ji nke a n'onwe anyị.

Isi ihe dị na ụdị VictoriaMetrics Cluster Version bụ vmstsorage. Enwere ike inwe nọmba N n'ime ha. N'ọnọdụ anyị, e nwere 2 n'ime ha ka ọ dị ugbu a.
Ma enwere vminsert. Nke a bụ ihe nkesa proxy na-enye anyị ohere: hazie sharding n'etiti ebe nchekwa niile anyị gwara ya, ọ na-enyekwa ohere oyiri, ya bụ, ị ga-enwe ma sharding na oyiri.
Vminsert na-akwado OpenTSDB, Graphite, InfluxDB na n'ime ime protocols si Prometheus.

Enwekwara vmselect. Isi ọrụ ya bụ ịga vmstorage, nata data n'aka ha, wepụ data a ma nye ya onye ahịa.

O nwere ihe magburu onwe ya a na-akpọ vmagent. Anyị nwere mmasị na ya. Ọ na-enye gị ohere ịhazi kpọmkwem dịka Prometheus ma ka na-eme ihe niile dịka Prometheus. Ya bụ, ọ na-anakọta metrik site na ụlọ ọrụ na ọrụ dị iche iche wee ziga ha na vminsert. Mgbe ahụ ihe niile dabere na gị.

Ọrụ ọzọ dị ukwuu bụ vmalert, nke na-enye gị ohere iji VictoriaMetrics dị ka azụ azụ, nata data edoziziri site na vminsert wee ziga ya na vmselect. Ọ na-ahazi ihe ngosi ahụ n'onwe ha, yana iwu. N'ihe gbasara ọkwa, anyị na-enweta njikere site na alertmanager.

Enwere akụrụngwa wmauth. Anyị nwere ike ma ọ bụ ghara (anyị ekpebibeghị na nke a) jiri ya dị ka usoro ikike maka ụdị ụyọkọ ọtụtụ. Ọ na-akwado remoteWrite maka Prometheus ma nwee ike inye ikike dabere na url, ma ọ bụ akụkụ nke abụọ ya, ebe ị nwere ike ide ma ọ bụ enweghị ike ide.

Enwekwara vmbackup, vmrestore. Nke a bụ, n'ezie, mweghachi na ndabere nke data niile. Nwere ike ime S3, GCS, faịlụ.

Emere usoro izizi nke ụyọkọ anyị n'oge iche iche. N'oge ahụ, enweghị oyiri, yabụ nrụgharị anyị nwere ụyọkọ abụọ dị iche iche na nke nọọrọ onwe ha nke anyị nwetara data site na remoteWrite.

N'ebe a, m ga-edebe ndoputa na mgbe anyị si na VictoriaMetrics Single Node gaa na VictoriaMetrics Cluster Version, anyị ka nọgidere na otu ihe eji eme ihe, ya bụ isi bụ ebe nchekwa. Nke a bụ etu esi kesaa data anyị, ya bụ oriri akụrụngwa.

E tinyelarị oyiri ebe a. Anyị jikọtara ihe a niile ka ọ bụrụ otu nnukwu ụyọkọ. A na-echekwa data anyị niile ma megharịa ya.
Ụyọkọ ahụ dum nwere ntinye ntinye N, nke pụtara na Prometheus nwere ike tinye data site na HAPROXY. N'ebe a, anyị nwere ebe ntinye a. Ma site na ntinye ntinye a ị nwere ike isi na Grafana banye.

N'ọnọdụ anyị, HAPROXY bụ naanị ọdụ ụgbọ mmiri nke proxies họrọ, fanye na ọrụ ndị ọzọ n'ime ụyọkọ a. N'ọnọdụ anyị, ọ gaghị ekwe omume ịme otu adreesị, anyị aghaghị ime ọtụtụ ntinye ntinye, n'ihi na igwe mebere onwe ya nke ụyọkọ VictoriaMetrics na-agba ọsọ dị na mpaghara dị iche iche nke otu igwe ojii, ya bụ, ọ bụghị n'ime ígwé ojii anyị, ma n'èzí. .

Anyị nwere alerting. Anyị na-eji ya. Anyị na-eji alertmanager sitere na Prometheus. Anyị na-eji Opsgenie na Telegram dị ka ọwa nnyefe njikere. Na Telegram ha na-abata site na dev, ikekwe ihe sitere na prod, mana ọtụtụ ihe ndekọ ọnụ ọgụgụ, nke ndị injinia chọrọ. Na Opsgenie dị oke egwu. Ndị a bụ oku, njikwa ihe omume.

Ajụjụ ebighi ebi: "Ònye na-enyocha nlekota?" N'ọnọdụ anyị, nlekota nlekota nlekota onwe ya, n'ihi na anyị na-eji vmagent na ọnụ ọ bụla. Na ebe ọ bụ na a na-ekesa ọnụ anyị n'ofe data dị iche iche nke otu onye na-eweta ya, ebe data ọ bụla nwere ọwa nke ya, ha na-adabere na ya, ọ bụrụgodị na ụbụrụ gbawara agbawa rutere, anyị ka ga-enweta ọkwa. Ee, a ga-enwe ọtụtụ n'ime ha, mana ọ ka mma ịnata ọkwa karịa nke ọ bụla.

Anyị na-ejedebe ndepụta anyị na mmejuputa HA.

Ma n'ihu, ọ ga-amasị m ịhụ ahụmahụ nke iso ndị obodo VictoriaMetrics na-ekwurịta okwu. Ọ tụgharịrị dị mma. Ụmụ okorobịa na-anabata. Ha na-anwa inyocha okwu ọ bụla a na-enye.
Amalitere m okwu na GitHub. E meziri ha ngwa ngwa. Enwere okwu di na nwunye ọzọ na-adịghị emechi emechi, mana enwere m ike ịhụ site na koodu na-arụ ọrụ na ntụziaka a.
Isi ihe mgbu maka m n'oge iterations bụ na ọ bụrụ na m mechie ọnụ ọnụ, mgbe ahụ maka 30 sekọnd mbụ vminsert enweghị ike ịghọta na ọ dịghị backend. Nke a ekpebiela ugbu a. Na n'ụzọ nkịtị n'ime otu abụọ ma ọ bụ abụọ, a na-ewepụ data ahụ site na ọnụ ọgụgụ niile fọdụrụnụ, arịrịọ ahụ na-akwụsịkwa ichere oghere ahụ na-efu.

N'oge ụfọdụ anyị chọrọ VictoriaMetrics ka ọ bụrụ onye ọrụ VictoriaMetrics. Anyị chere ya. Anyị na-arụsi ọrụ ike ugbu a maka onye ọrụ VictoriaMetrics ka ọ were iwu ịgbakọ niile, wdg.
Enwere atụmatụ iji kwalite mmejuputa ụyọkọ ahụ. Edepụtara m ha n'elu.
Ma achọrọ m iweda ihe atụ. N'ọnọdụ anyị, ọ dị mkpa ka a na-agbadata naanị maka ikiri usoro. N'ikwu okwu n'ike, otu metrik ezuola m n'ụbọchị. Usoro ndị a dị mkpa maka otu afọ, atọ, ise, afọ iri. Na otu metric uru zuru oke.

- Anyị maara ihe mgbu, dị ka ụfọdụ n'ime ndị ọrụ ibe anyị, mgbe ị na-eji Prometheus.
- Anyị họọrọ VictoriaMetrics maka onwe anyị.
- Ọ dabara nke ọma ma kwụ ọtọ ma kwụ ọtọ.
- Anyị nwere ike kesaa akụkụ dị iche iche na ọnụọgụ ọnụ dị iche iche na ụyọkọ, kpachie ha site na ebe nchekwa, tinye ebe nchekwa, wdg.
Anyị ga-eji VictoriaMetrics n'ụlọ n'ihi na ọ masịrị anyị nke ukwuu. Nke a bụ ihe bụ na ihe ghọrọ.

Koodu QR di na nwunye maka nkata VictoriaMetrics, kọntaktị m, radar teknụzụ LeroyMerlin.
isi: www.habr.com
