Thanos - Scalable Prometheus

A haziri nsụgharị nke isiokwu ahụ kpọmkwem maka ụmụ akwụkwọ nke usoro ahụ "omume na ngwaọrụ DevOps".

Fabian Reinartz bụ onye nrụpụta ngwanrọ, Go na-anụ ọkụ n'obi, yana ngwọta nsogbu. Ọ bụkwa onye na-elekọta Prometheus na onye nchoputa nke Kubernetes SIG instrumentation. N'oge gara aga, ọ bụ onye injinia mmepụta ihe na SoundCloud ma duru ndị otu nlekota na CoreOS. Ugbu a na-arụ ọrụ na Google.

Bartek Plotka - Injinia akụrụngwa na agaghị ekwe omume. Ọ nwere mmasị na teknụzụ ọhụrụ na nsogbu nke usoro kesara. O nwere ahụmịhe mmemme dị ala na Intel, ahụmịhe ntinye aka na Mesos, yana ahụmịhe mmepụta SRE nke ụwa na enweghị ike. Raara onwe ya nye iji melite ụwa nke microservices. Ịhụnanya ya atọ: Golang, isi mmalite na volleyball.

N'ileghachi anya na ngwaahịa ọkọlọtọ anyị SpatialOS, ị nwere ike ịkọ na improbable chọrọ akụrụngwa igwe ojii zuru oke nke nwere ọtụtụ ụyọkọ Kubernetes. Anyị bụ otu n'ime ndị mbụ jiri sistemụ nleba anya Prometheus. Prometheus nwere ike soro nde metrics ozugbo wee bia n'asụsụ ajụjụ siri ike nke na-enye gị ohere iwepụta ozi ịchọrọ.

Ihe dị mfe na ntụkwasị obi nke Prometheus bụ otu n'ime uru ya. Otú ọ dị, ozugbo anyị gafere n'ókè ụfọdụ, anyị zutere ọtụtụ ihe ndọghachi azụ. Iji dozie nsogbu ndị a anyị mepụtara Thanos bụ ọrụ mepere emepe mepụtara site na enweghị ike ịgbanwe ụyọkọ Prometheus dị adị n'enweghị nsogbu ka ọ bụrụ otu sistemụ nlekota nke nwere nchekwa data akụkọ ihe mere eme na-akparaghị ókè. Thanos dị na Github ebe a.

Jikọọ na akụkọ kachasị ọhụrụ sitere na Improbable.

Ebumnuche anyị na Thanos

N'otu ọkwa, nsogbu na-ebilite nke karịrị ike nke vanilla Prometheus. Kedu ka esi echekwa petabytes nke data akụkọ ihe mere eme nke ọma na nke akụ na ụba? Enwere ike ime nke a n'emebighị oge nzaghachi? Ọ ga-ekwe omume ịnweta metric niile dị na sava Prometheus dị iche iche site na iji otu arịrịọ API? Ọ nwere ụzọ ọ bụla isi jikọta data ekpokọtara n'iji Prometheus HA?

Iji dozie nsogbu ndị a, anyị kere Thanos. Akụkụ ndị na-esonụ na-akọwa otú anyị si mesoo okwu ndị a ma kọwaa ihe mgbaru ọsọ anyị.

Ịjụ data sitere na ọtụtụ oge Prometheus (ajụjụ zuru ụwa ọnụ)

Prometheus na-enye ụzọ na-arụ ọrụ maka sharding. Ọbụlagodi otu ihe nkesa Prometheus na-enye oke scalability iji tọhapụ ndị ọrụ na mgbagwoju anya nke sharding kwụ ọtọ n'ihe fọrọ nke nta ka ọ bụrụ ikpe niile.

Ọ bụ ezie na nke a bụ nnukwu ihe nlegharị anya, ọ na-adịkarị mkpa ịnweta data na sava Prometheus dị iche iche site na otu API ma ọ bụ UI - echiche zuru ụwa ọnụ. N'ezie, ọ ga-ekwe omume igosipụta ọtụtụ ajụjụ na otu Grafana panel, mana ajụjụ ọ bụla nwere ike igbu naanị na otu ihe nkesa Prometheus. N'aka nke ọzọ, na Thanos ị nwere ike ịjụ ajụjụ na nchịkọta data sitere na ọtụtụ sava Prometheus ebe ọ bụ na ha niile na-enweta site na otu njedebe.

Na mbụ, iji nweta echiche zuru ụwa ọnụ na improbable, anyị haziri ihe omume Prometheus anyị ka ọ bụrụ ọkwa dị iche iche. Federation hierrchical. Nke a pụtara ịmepụta otu Prometheus meta nkesa nke na-anakọta ụfọdụ metrik site na nkesa akwụkwọ ọ bụla.

Thanos - Scalable Prometheus

Ụzọ a nwere nsogbu. Nke a emeela ka nhazi ndị ọzọ dị mgbagwoju anya, mgbakwunye nke ihe ọzọ nwere ike ịdaba, na itinye iwu mgbagwoju anya iji hụ na njedebe federated na-enweta naanị data ọ chọrọ. Na mgbakwunye, ụdị federation a anaghị ekwe ka ị nweta ezi echiche zuru ụwa ọnụ, ebe ọ bụ na ọ bụghị data niile dị site na otu arịrịọ API.

Ihe jikọrọ ya na nke a bụ nleba anya dị n'otu nke data anakọtara na sava dị elu (HA) Prometheus. Ụdị Prometheus 'HA na-anakọta data n'onwe ya ugboro abụọ, nke dị mfe ọ gaghị adị mfe. Otú ọ dị, iji nchikota na nbipu anya nke iyi abụọ ahụ ga-adaba adaba karị.

N'ezie, enwere mkpa maka sava Prometheus dị ukwuu. N'ihe na-agaghị ekwe omume, anyị na-eji nleba anya data nkeji nkeji na nkeji nke ọma, mana ịnwe otu ihe atụ Prometheus kwa ụyọkọ bụ otu ebe ọdịda. Njehie nhazi ọ bụla ma ọ bụ ọdịda ngwaike nwere ike iduga na ọnwụ nke data dị mkpa. Ọbụlagodi nfesa dị mfe nwere ike ịkpata obere ọgba aghara na nchịkọta metrik n'ihi na ịmalitegharị nwere ike ịdị ogologo oge karịa oge nchacha.

Nchekwa ntụkwasị obi nke data akụkọ ihe mere eme

Ebe nchekwa metrik dị ọnụ ala, ngwa ngwa, ogologo oge bụ nrọ anyị (ọtụtụ ndị ọrụ Prometheus na-ekerịta). Na-agaghị ekwe omume, a manyere anyị ịhazi oge njide metrics ruo ụbọchị itoolu (maka Prometheus 1.8). Nke a na-agbakwụnye oke doro anya na ogologo azụ anyị nwere ike ile anya.

Prometheus 2.0 emeela ka ọ dịkwuo mma na nke a, ebe ọ bụ na ọnụ ọgụgụ nke usoro oge anaghịzi emetụta arụmọrụ nke ihe nkesa (lee. Isi okwu KubeCon gbasara Prometheus 2). Agbanyeghị, Prometheus na-echekwa data na diski mpaghara. Ọ bụ ezie na mkpakọ data dị elu nwere ike ibelata ojiji SSD mpaghara, n'ikpeazụ ka nwere oke na ọnụọgụ data akụkọ ihe mere eme enwere ike ịchekwa.

Na mgbakwunye, na improbable anyị na-eche maka ntụkwasị obi, ịdị mfe na ọnụ ahịa. Nnukwu diski mpaghara na-esiri ike ịrụ ọrụ na ịkwado ya. Ha na-efu karịa ma na-achọ ngwa ndabere ọzọ, na-ebute mgbagwoju anya na-enweghị isi.

Downsampling

Ozugbo anyị malitere iji data akụkọ ihe mere eme na-arụ ọrụ, anyị chọpụtara na e nwere isi ihe isi ike na nnukwu-O na-eme ka ajụjụ dị nwayọọ na nwayọọ ka anyị na-arụ ọrụ izu, ọnwa, na afọ nke data.

Ngwọta ọkọlọtọ maka nsogbu a ga-abụ downsampling (downsampling) - ibelata ugboro nlele mgbama. Site na mgbada ala, anyị nwere ike “gbadata” ruo ogologo oge buru ibu ma na-edobe otu ọnụọgụ nlele, na-edobe ajụjụ.

Iwetu data ochie bụ ihe a na-apụghị izere ezere nke ihe ngwọta nchekwa ogologo oge ọ bụla ma gafere vanilla Prometheus.

Ebumnuche ndị ọzọ

Otu n'ime ebumnuche izizi nke ọrụ Thanos bụ ijikọ n'enweghị nsogbu na nrụnye Prometheus ọ bụla dị. Ebumnuche nke abụọ bụ ịdị mfe nke ịrụ ọrụ yana obere ihe mgbochi ịbanye. Ndabere ọ bụla kwesịrị inwe afọ ojuju ngwa ngwa maka ndị ọrụ obere na ndị buru ibu, nke pụtakwara ọnụ ala dị ala.

Thanos architecture

Ka anyị depụtachara ebumnuche anyị na ngalaba gara aga, ka anyị rụọ ọrụ na ha wee hụ ka Thanos si edozi nsogbu ndị a.

Echiche zuru ụwa ọnụ

Iji nweta echiche zuru ụwa ọnụ n'elu ihe atụ Prometheus dị, anyị kwesịrị ijikọ otu ebe ntinye arịrịọ na sava niile. Nke a bụ kpọmkwem ihe akụrụngwa Thanos na-eme. Akpa. A na-ebugharị ya n'akụkụ ihe nkesa Prometheus ọ bụla ma na-arụ ọrụ dị ka onye nnọchiteanya, na-eje ozi data Prometheus mpaghara site na gRPC Store API, na-ekwe ka eweghachite data usoro oge site na mkpado na oge.

N'akụkụ nke ọzọ bụ ọnụ ọgụgụ-apụ, akụrụngwa Querier na-enweghị steeti, nke na-eme ntakịrị karịa ịza ajụjụ PromQL site na ọkọlọtọ Prometheus HTTP API. Querier, Sidecar na akụrụngwa Thanos ndị ọzọ na-ekwurịta okwu site na protocol asịrị.

Thanos - Scalable Prometheus

  1. Querier, mgbe ọ natara arịrịọ, na-ejikọ na sava API Store kwekọrọ, ya bụ, na Sidecars anyị wee nata data usoro oge site na sava Prometheus kwekọrọ.
  2. Mgbe nke ahụ gasịrị, ọ na-ejikọta azịza ya wee mee ajụjụ PromQL na ha. Querier nwere ike ijikọ ma data dị iche iche yana data oyiri sitere na sava Prometheus HA.

Nke a na-edozi isi ihe mgbaghoju anya anyị - ijikọta data sitere na sava Prometheus dịpụrụ adịpụ n'otu nlele. N'ezie, enwere ike iji Thanos naanị maka njirimara a. Enweghị mgbanwe ọ bụla a ga-eme na sava Prometheus dị adị!

Ndụ nchekwa na-akparaghị ókè!

Agbanyeghị, n'oge na-adịghị, anyị ga-achọ ịchekwa data gafere oge njigide Prometheus nkịtị. Anyị họọrọ nchekwa ihe iji chekwaa data akụkọ ihe mere eme. A na-enweta ya n'igwe ojii ọ bụla yana ebe data dị n'ime ụlọ ma ọ dị oke ọnụ ahịa. Na mgbakwunye, ihe fọrọ nke nta ka ọ bụrụ nchekwa ihe ọ bụla dị site na S3 API nke ama ama.

Prometheus na-ede data sitere na RAM gaa na diski ihe dịka awa abụọ ọ bụla. Ihe mgbochi data echekwara nwere data niile maka oge a kapịrị ọnụ yana enweghị ike ịgbanwe. Nke a dị ezigbo mma n'ihi na Thanos Sidecar nwere ike ilele akwụkwọ ndekọ data Prometheus na, ka ihe mgbochi ọhụrụ dị, tinye ha n'ime bọket nchekwa ihe.

Thanos - Scalable Prometheus

Ịkwanye n'ime nchekwa ihe ozugbo ị dechara na diski na-enye gị ohere ịnọgide na-adị mfe nke scraper (Prometheus na Thanos Sidecar). Nke na-eme ka nkwado, ọnụ ahịa na nhazi usoro dị mfe.

Dị ka ị pụrụ ịhụ, data ndabere dị nnọọ mfe. Mana kedu maka ịza ajụjụ data na nchekwa ihe?

Akụkụ ụlọ ahịa Thanos na-arụ ọrụ dị ka onye nnọchiteanya iji weghachite data na nchekwa ihe. Dị ka Thanos Sidecar, ọ na-esonye na ụyọkọ asịrị ma mejuputa API Store. N'ụzọ dị otú a, dị Querier nwere ike na-emeso ya dị ka a Sidecar, dị ka ọzọ isi iyi nke usoro oge data - ọ dịghị pụrụ iche nhazi chọrọ.

Thanos - Scalable Prometheus

Ihe mgbochi data usoro oge nwere ọtụtụ nnukwu faịlụ. Ịkwanye ha n'ọchịchọ ga-abụ nke na-adịghị arụ ọrụ nke ọma, na ịchekwa ha na mpaghara ga-achọ nnukwu ebe nchekwa na ohere diski.

Kama, Store Gateway maara ka esi ejikwa usoro nchekwa Prometheus. N'ihi onye nhazi ajụjụ smart na caching naanị akụkụ index dị mkpa nke ngọngọ, ọ ga-ekwe omume ibelata ajụjụ dị mgbagwoju anya na ọnụọgụ HTTP kacha nta iji chefuo faịlụ nchekwa. N'ụzọ dị otú a, ị nwere ike belata ọnụ ọgụgụ nke arịrịọ site anọ ruo isii iwu nke ịdị ukwuu na nweta oge nzaghachi nke na-adịkarị ike ịmata ọdịiche na arịrịọ na data na mpaghara SSD.

Thanos - Scalable Prometheus

Dị ka egosiri na eserese dị n'elu, Thanos Querier na-ebelata ọnụ ahịa n'otu n'otu nke data nchekwa ihe site na iji usoro nchekwa Prometheus na-etinye data metụtara n'akụkụ. N'iji usoro a, anyị nwere ike ikpokọta ọtụtụ arịrịọ n'ime ọnụọgụ kacha nta nke nnukwu arụmọrụ.

Compaction na downsampling

Ozugbo etinyere data usoro oge ọhụrụ nke ọma na nchekwa ihe, anyị na-ewere ya dị ka data "akụkọ ihe mere eme", nke dị ozugbo site na Ọnụ Ụzọ Ahịa Store.

Agbanyeghị, ka oge na-aga, ihe mgbochi sitere n'otu ebe (Prometheus with Sidecar) na-agbakọta ma gharakwa iji ikike ntinye aka zuru oke. Iji dozie nsogbu a, anyị webatara ihe ọzọ a na-akpọ Compactor. Ọ na-etinye naanị injin mkpọ mpaghara Prometheus na data akụkọ ihe mere eme na nchekwa ihe ma enwere ike ịgba ya dị ka ọrụ obere oge.

Thanos - Scalable Prometheus

Ekele maka mkpakọ nke ọma, ịjụ ajụjụ nchekwa ahụ ogologo oge adịghị eweta nsogbu n'ihe gbasara nha data. Agbanyeghị, ego enwere ike ịwepu otu ijeri ụkpụrụ na ijikwa ha site na nhazi ajụjụ ga-ebute mmụba dị egwu na oge mmezu ajụjụ. N'aka nke ọzọ, ebe ọ bụ na e nwere ọtụtụ narị isi data kwa pixel na ihuenyo, ọ na-aghọ-agaghị ekwe omume ọbụna iji anya nke uche data na zuru mkpebi. N'ihi ya, ịla n'iyi abụghị naanị na ọ ga-ekwe omume, kamakwa ọ gaghị eduga na nkwụsị nke ziri ezi pụtara ìhè.

Thanos - Scalable Prometheus

Iji wedata data, Compactor na-achịkọta data na mkpebi nkeji ise na otu awa. Maka ngwa ngwa ọ bụla etinyere na iji mkpakọ TSDB XOR, a na-echekwa ụdị nchịkọta data dị iche iche, dị ka min, max ma ọ bụ nchikota maka otu ngọngọ. Nke a na-enye Querier ohere ịhọrọ mkpokọta dabara adaba maka ajụjụ PromQL enyere.

Ọnweghị nhazi pụrụ iche achọrọ maka onye ọrụ iji data ziri ezi belatara. Querier na-agbanwe na-akpaghị aka n'etiti mkpebi dị iche iche yana data adịchaghị ka onye ọrụ na-ebuba ma pụta. Ọ bụrụ na achọrọ, onye ọrụ nwere ike ijikwa nke a ozugbo site na oke "nzọụkwụ" na arịrịọ ahụ.

Ebe ọ bụ na ọnụ ahịa ịchekwa otu GB dị obere, na ndabara Thanos na-echekwa data raw, nkeji nkeji ise na otu elekere data mkpebi. Ọ dịghị mkpa ka ihichapụ mbụ data.

Iwu ndekọ

Ọbụna na Thanos, iwu ndekọ bụ akụkụ dị mkpa nke nchịkọta nlekota. Ha na-ebelata mgbagwoju anya, nkwụsịtụ, na ọnụ ahịa ajụjụ. Ha dịkwa mma maka ndị ọrụ ịnweta data chịkọtara site na metrik. Thanos dabere na oge vanilla Prometheus, yabụ a na-anabata ya nke ọma ịchekwa iwu ndekọ na iwu ịdọ aka na ntị na sava Prometheus dị adị. Agbanyeghị, n'ọnọdụ ụfọdụ nke a nwere ike ọ gaghị ezuru:

  • Ọchịchọ zuru ụwa ọnụ na iwu (dịka ọmụmaatụ, njikere mgbe ọrụ anaghị arụ ọrụ karịa ụyọkọ abụọ n'ime atọ).
  • Iwu maka data na mpụga nchekwa mpaghara.
  • Ọchịchọ ịchekwa iwu na ọkwa niile n'otu ebe.

Thanos - Scalable Prometheus

Maka ikpe ndị a niile, Thanos gụnyere akụkụ dị iche a na-akpọ Onye Ọchịchị, nke na-agbakọ iwu na njikere site na Thanos Queries. Site n'inye StoreAPI amaara nke ọma, ọnụ ajụjụ ajụjụ nwere ike ịnweta metrik agbakọtara ọhụrụ. E mesịa, a na-echekwa ha na nchekwa ihe ma mee ka ọ dị site n'ọnụ ụzọ Ụlọ Ahịa.

Ike nke Thanos

Thanos na-agbanwe nke ọma ka ahaziri ya ka ọ dabara na mkpa gị. Nke a bara uru karịsịa mgbe ị na-esi na Prometheus dị larịị. Ka anyị were ihe atụ ngwa ngwa weghachi ihe anyị mụtara gbasara akụrụngwa Thanos ngwa ngwa. Nke a bụ otu ị ga-esi were vanilla Prometheus gị banye n'ụwa nke "nchekwa metrik na-akparaghị ókè":

Thanos - Scalable Prometheus

  1. Tinye Thanos Sidecar na sava Prometheus gị - dịka ọmụmaatụ, akpa akụkụ dị na pọd Kubernetes.
  2. Weghachite otutu Thanos Querier oyiri ka inwe ike ịlele data. N'oge a ọ dị mfe ịtọ asịrị n'etiti Scraper na Querier. Ka ịlele mmekọrịta nke akụrụngwa, jiri metrik 'thanos_cluster_members'.

Naanị nzọụkwụ abụọ a zuru ezu iji nye echiche zuru ụwa ọnụ na ntinye data enweghị nkebi site na ihe ndị nwere ike ime Prometheus HA! Naanị jikọọ dashboard gị na njedebe Querier HTTP ma ọ bụ jiri Thanos UI ozugbo.

Agbanyeghị, ọ bụrụ na ịchọrọ nkwado metrics na nchekwa ogologo oge, ị ga-achọ imezu usoro atọ ọzọ:

  1. Mepụta bọket AWS S3 ma ọ bụ GCS. Hazie Sidecar ka idetuo data na bọket ndị a. Enwere ike ibelata nchekwa data mpaghara ugbu a.
  2. Nyefee ọnụ ụzọ ụlọ ahịa ma jikọọ ya na ụyọkọ asịrị gị dị ugbu a. Ugbu a ị nwere ike jụọ ajụjụ data akwadoro!
  3. Weghachite Compactor iji kwalite arụmọrụ ajụjụ n'ime ogologo oge site na iji compaction na downsampling.

Ọ bụrụ na ịchọrọ ịmatakwu, egbula oge ilele anyị anya kubernetes gosipụtara atụ и na-amalite!

N'ime naanị usoro ise, anyị tụgharịrị Prometheus ka ọ bụrụ usoro nleba anya nke a pụrụ ịdabere na ya nke nwere echiche zuru ụwa ọnụ, oge nchekwa na-akparaghị ókè na enwere ike dị elu nke metrics.

Were arịrịọ: anyị chọrọ gị!

Thanos abụrụla ọrụ mepere emepe site na mmalite. Njikọ na-enweghị ntụpọ na Prometheus na ike iji naanị akụkụ nke Thanos na-eme ka ọ bụrụ nhọrọ magburu onwe ya maka ịmegharị usoro nlekota gị n'enweghị ike.

Anyị na-anabata GitHub Pull Arịrịọ na Okwu. Ka ọ dị ugbu a, nweere onwe gị ịkpọtụrụ anyị site na Github Issues ma ọ bụ slack Agaghị ekwe omume- Eng #thanosma ọ bụrụ na ị nwere ajụjụ ma ọ bụ nzaghachi, ma ọ bụ chọrọ ịkọrọ gị ahụmahụ iji ya! Ọ bụrụ na-amasị gị ihe anyị na-eme na Improbable, egbula oge ịkpọtụrụ anyị - anyị na-enwe ohere mgbe niile!

Mụtakwuo maka nkuzi ahụ.

isi: www.habr.com

Tinye a comment