Yabụ ị na-anakọta metrik. Dị ka anyị bụ. Anyị na-anakọtakwa metrik. N'ezie, ọ dị mkpa maka azụmahịa. Taa, anyị ga-ekwu maka njikọ mbụ nke sistemụ nleba anya anyị - ihe nkesa mkpokọta statsd dakọtara.
Site na edemede anyị gara aga (
Mkpesa 1. Github, onye nrụpụta ọrụ ahụ, kwụsịrị ịkwado ya: ibipụta patches na ndozi, ịnakwere nke anyị yana (ọ bụghị naanị nke anyị) PR. N'ime ọnwa ole na ole gara aga (ebe site na February-March 2018), ọrụ amaliteghachila, ma tupu nke ahụ, ọ fọrọ nke nta ka ọ bụrụ afọ 2 nke udo zuru oke. Tụkwasị na nke ahụ, a na-emepụta ọrụ ahụ
Mkpesa 2. izi ezi nke ngụkọta oge. Brubeck na-anakọta ngụkọta nke ụkpụrụ 65536 maka mkpokọta. N'ọnọdụ anyị, maka ụfọdụ metrics, n'oge oge nchịkọta (30 sekọnd), ọtụtụ ụkpụrụ nwere ike ịbịarute (1 na elu). N'ihi nke a sample, kacha na kacha nta ụkpụrụ na-apụta na-abaghị uru. Dịka ọmụmaatụ, dịka nke a:
Dị ka ọ dị
Ka ọ kwesịrị ịdị
Maka otu ihe kpatara ya, a na-agbakọ ego n'ụzọ na-ezighi ezi. Tinye ebe a ahụhụ nwere oke mmiri na-ese n'elu 32-bit, nke na-ezigakarị ihe nkesa na segfault mgbe ị na-enweta metric yiri ka ọ dị ọcha, na ihe niile na-adị mma. Edobebeghị ahụhụ ahụ, n'agbanyeghị.
Ndien, ke akpatre, Mkpesa X. N'oge ederede, anyị dị njikere iweta ya na 14 niile ma ọ bụ obere arụ ọrụ statsd nke anyị nwere ike ịchọta. Ka anyị were ya na ụfọdụ akụrụngwa na-eto eto nke ukwuu nke na ịnakwere nde MPS 4 ezuola. Ma ọ bụ ọbụlagodi ma ọ bụrụ na ọ tobeghị, ma metrics adịlarị gị mkpa na ọbụna mkpụmkpụ, 2-3 nkeji ntinye na chaatị ahụ nwere ike ịghọrịrị ihe dị egwu ma mee ka ịda mbà n'obi na-enweghị ike ime n'etiti ndị njikwa. Ebe ọ bụ na ịgwọ ịda mbà n'obi bụ ọrụ na-enweghị ekele, a chọrọ ngwọta nkà na ụzụ.
Nke mbụ, nnabata mmejọ, nke mere na nsogbu mberede na ihe nkesa adịghị eme ka psychiatric zombie apocalypse na ụlọ ọrụ. Nke abuo, scaling na-enwe ike ịnakwere ihe karịrị 4 nde MPS, na-enweghị igwu miri emi n'ime Linux netwọk tojupụtara na nwayọọ na-eto eto "na mbara" ka achọrọ size.
Ebe ọ bụ na anyị nwere ohere maka ịkpụcha ihe, anyị kpebiri ibido site na nnabata mmejọ. "BỤRỤ! Nkwenye mmejọ! Ọ dị mfe, anyị nwere ike ime ya, "anyị chere ma malite sava 2, na-ebuli otu brubeck na nke ọ bụla. Iji mee nke a, anyị ga-eji metrics depụta okporo ụzọ na sava abụọ na ọbụna dee maka nke a
Ọ bụrụ na ị na-eche ntakịrị banyere nsogbu ahụ ma n'otu oge ahụ gwuo snow na shọvelụ, mgbe ahụ echiche doro anya na-esonụ nwere ike ịbata n'uche: ị chọrọ statsd nke nwere ike ịrụ ọrụ na ọnọdụ nkesa. Ya bụ, nke na-emekọrịta mmekọrịta n'etiti ọnụ ọnụ na oge na metrik. "N'ezie, ngwọta dị otú ahụ nwere ike ịdị adị," ka anyị kwuru wee gaa Google .... Ma ha ahụghị ihe ọ bụla. Mgbe ịgafe akwụkwọ maka statsd dị iche iche (
Ma mgbe ahụ, anyị chetara banyere statsd "ihe egwuregwu ụmụaka" - bioyino, nke edere na Just for Fun hackathon (aha nke ọrụ ahụ sitere na edemede ahụ tupu mmalite nke hackathon) wee chọpụta na anyị chọrọ statsd nke anyị ngwa ngwa. Maka gịnị?
- n'ihi na enwere statsd clones pere mpe n'ụwa,
- n'ihi na ọ ga-ekwe omume ịnye ihe achọrọ ma ọ bụ nso nsoro ntachi obi na scalability (gụnyere ịmekọrịta metrics gbakọtara n'etiti sava na idozi nsogbu nke izipu esemokwu),
- n'ihi na ọ ga-ekwe omume ịgbakọ metrik nke ọma karịa brubeck,
- n'ihi na ị nwere ike ịnakọta ọnụ ọgụgụ zuru ezu n'onwe gị, nke brubeck anaghị enye anyị,
- n'ihi na m nwere ohere mmemme nke m hyperperformance ekesa scale lab ngwa, nke na-agaghị kpamkpam ikwugharị architecture nke ọzọ yiri hyperfor ... ọma, nke ahụ bụ ya.
Kedu ihe a ga-ede na ya? N'ezie, na Rust. Gịnị kpatara?
- n'ihi na enweelarị ihe ngwọta prototype,
- n'ihi na onye dere akụkọ ahụ amaworị nchara n'oge ahụ ma nwee mmasị ide ihe n'ime ya maka mmepụta ya na ohere itinye ya na oghere mepere emepe,
- n'ihi na asụsụ ndị nwere GC adabaghị anyị n'ihi ọdịdị nke okporo ụzọ anatara (ihe fọrọ nke nta ka ọ bụrụ ezigbo oge) yana nkwụsịtụ GC bụ ihe anaghị anabata,
- n'ihi na ịchọrọ ịrụ ọrụ kachasị dị ka C
- n'ihi na nchara na-enye anyị concurrency enweghị atụ egwu, ma ọ bụrụ na anyị malitere ide ya na C / C ++, anyị gaara raked na ọbụna karịa vulnerabilities, buffer overflows, agbụrụ ọnọdụ na ndị ọzọ egwu okwu karịa brubeck.
E nwekwara arụmụka megide nchara. Ụlọ ọrụ ahụ enweghị ahụmahụ ịmepụta ọrụ na Rust, ma ugbu a anyị adịghị eme atụmatụ iji ya na isi ọrụ. Ya mere, enwere egwu dị egwu na ọ dịghị ihe ga-eme, ma anyị kpebiri iji ohere ma gbalịa.
Oge gafere...
N'ikpeazụ, mgbe ọtụtụ mgbalị ndị dara ada, ụdị ọrụ mbụ dị njikere. Kedu ihe mere? Nke a bụ ihe mere.
Ọnụ ọnụ nke ọ bụla na-enweta usoro nke metric nke ya ma na-akwakọba ha, na ọ dịghị achịkọta metrics maka ụdị ndị ahụ ebe a chọrọ n'uju ha maka nchịkọta ikpeazụ. A na-ejikọta ọnụ na ibe ya site na ụfọdụ ụdị nkwekọrịta mkpọchi kesara, nke na-enye gị ohere ịhọrọ n'etiti ha naanị otu (ebe a anyị tiri mkpu) nke ruru eru iziga metrics na Onye Ukwu. A na-edozi nsogbu a ugbu a site na
Ihe ngwugwu UDP nwere metrik enweghị nha nha n'etiti ọnụ na akụrụngwa netwọkụ site na Round Robin dị mfe. N'ezie, ngwaike netwọk anaghị atụgharị ọdịnaya nke ngwugwu ya mere ọ nwere ike ịdọrọ ihe karịrị 4M ngwugwu kwa nkeji, ọ bụghị ịkọ metrik nke ọ maghị ihe ọ bụla. Ọ bụrụ na anyị eburu n'uche na metrics anaghị abịa n'otu n'otu na ngwugwu ọ bụla, mgbe ahụ anyị anaghị ahụ nsogbu arụmọrụ ọ bụla na ebe a. Ọ bụrụ na ihe nkesa na-akụda, ngwaọrụ netwọk ngwa ngwa (n'ime 1-2 sekọnd) na-achọpụta eziokwu a ma wepụ ihe nkesa mebiri emebi na ntụgharị. N'ihi nke a, enwere ike ịgbanwuo ma gbanyụọ oghere ndị na-agafe agafe (ya bụ, ndị na-abụghị ndị ndu) n'enweghị ihe ọ bụla na-ese onyinyo na chaatị ndị ahụ. Nke kachasị anyị tụfuru bụ akụkụ nke metrik batara na nkeji ikpeazụ. Ọnwụ mberede / nkwụsị / mgba ọkụ nke onye ndu ka ga-emepụta obere anomaly (nkeji 30 nke abụọ ka na-agakọghị), ma ọ bụrụ na enwere nkwurịta okwu n'etiti ọnụ, nsogbu ndị a nwere ike ibelata, dịka ọmụmaatụ, site na izipu ngwugwu mmekọrịta. .
Obere banyere nhazi ime. Ngwa ahụ bụ, n'ezie, multithreaded, ma usoro ihe ntanetị dị iche na nke eji brubeck. Eriri na brubeck bụ otu - nke ọ bụla n'ime ha na-ahụ maka ma nchịkọta ozi na nchịkọta. Na bioyino, a na-ekewa ndị ọrụ ụzọ abụọ: ndị na-ahụ maka netwọk na ndị na-ahụ maka nchịkọta. Nkewa a na-enye gị ohere ijikwa ngwa ahụ n'ụzọ dị nro dabere n'ụdị metrics: ebe a na-achọ nchịkọta kpụ ọkụ n'ọnụ, ị nwere ike ịgbakwunye ndị nchịkọta, ebe enwere ọtụtụ okporo ụzọ netwọk, ị nwere ike ịgbakwunye ọnụ ọgụgụ nke netwọk. N'oge a, na sava anyị, anyị na-arụ ọrụ na netwọk 8 na nchịkọta 4.
Ngụkọta (nke na-ahụ maka nchịkọta) bụ ihe na-agwụ ike. A na-ekesa ihe nkpuchi jupụtara na ntanetị n'etiti usoro ọnụ ọgụgụ, ebe a na-atụgharị ma chịkọta ha. Mgbe a rịọrọ ya, a na-enye metrics maka iziga na ọnụ ụzọ ndị ọzọ. Ihe a niile, gụnyere izipu data n'etiti ọnụ na ịrụ ọrụ na Consul, na-arụ ọrụ n'otu n'otu, na-agba ọsọ na usoro.
Ọtụtụ nsogbu ndị ọzọ n'oge mmepe bụ akụkụ netwọk na-ahụ maka ịnata metrik. Ebumnuche bụ isi nke ikewapụta netwọkụ na-asọba n'ime ụlọ ọrụ dị iche iche bụ ọchịchọ ibelata oge nke mmiri na-emefu bụghị ịgụ data sitere na oghere. Nhọrọ ndị na-eji UDP asynchronous na recvmsg mgbe niile kwụsịrị ngwa ngwa: nke mbụ na-eri oke ohere CPU maka nhazi mmemme, nke abụọ na-achọ ọtụtụ ntụgharị gburugburu. Ya mere eji ya ugbu a
Примечание
Na ntọala ndabara, atọrọ nha nchekwa ka ọ buru oke ibu. Ọ bụrụ na ị kpebie ịnwale ihe nkesa ahụ n'onwe gị, ị nwere ike izute eziokwu ahụ bụ na mgbe izipu ọnụ ọgụgụ dị nta nke metrics, ha agaghị abata na Graphite, na-anọgide na nchekwa iyi netwọk. Iji na-arụ ọrụ na ọnụ ọgụgụ dị nta nke metrics, ị kwesịrị ịtọ bufsize na ọrụ- kwụ n'ahịrị-nha ka obere ụkpụrụ na config.
N'ikpeazụ, ụfọdụ eserese maka ndị hụrụ chaatị n'anya.
Ndekọ ọnụ ọgụgụ nke metrik na-abata maka sava ọ bụla: ihe karịrị nde MPS 2.
Ịkwụsị otu ọnụ ọnụ na ikesa metrik na-abata.
Ndekọ ọnụ ọgụgụ na metrik na-apụ apụ: naanị otu ọnụ na-eziga mgbe niile - onye isi wakporo.
Ọnụ ọgụgụ nke ọrụ nke ọnụ ọnụ ọ bụla, na-eburu n'uche njehie na modul usoro dị iche iche.
Nkọwa nke metrik na-abata (ezoro ezo metric aha).
Kedu ihe anyị na-eme atụmatụ ime ihe a niile na-esote? N'ezie, dee koodu, dam...! Emebere atụmatụ a ka ọ bụrụ ebe mepere emepe ma ọ ga-adịkwa otú ahụ n'oge ndụ ya niile. Atụmatụ anyị ozugbo gụnyere ịtụgharị gaa na ụdị Raft nke anyị, ịgbanwe ụkpụrụ ndị ọgbọ ka ọ bụrụ nke enwere ike ibugharị, iwebata ọnụ ọgụgụ dị n'ime ọzọ, ụdị metrik ọhụrụ, ndozi ahụhụ na ndozi ndị ọzọ.
N'ezie, a na-anabata onye ọ bụla iji nyere aka na mmepe nke ọrụ ahụ: ịmepụta PR, Okwu, ọ bụrụ na ọ ga-ekwe omume anyị ga-azaghachi, melite, wdg.
A na-ekwu nke ahụ, nke ahụ bụ ihe niile, zụta enyí anyị!
isi: www.habr.com