Thanos - Scalable Prometheus

An shirya fassarar labarin musamman ga ɗaliban kwas ɗin "Ayyukan DevOps da kayan aikin".

Fabian Reinartz mai haɓaka software ne, Go mai tsaurin ra'ayi, kuma mai warware matsala. Shi ne kuma mai kula da Prometheus kuma wanda ya kafa Kubernetes SIG kayan aiki. A baya, ya kasance injiniyan samarwa a SoundCloud kuma ya jagoranci ƙungiyar sa ido a CoreOS. A halin yanzu yana aiki a Google.

Bartek Plotka - Injiniyan Kayan Aiki a Mai yuwuwa. Yana da sha'awar sababbin fasaha da matsalolin tsarin rarraba. Yana da ƙananan ƙwarewar shirye-shirye a Intel, ƙwarewar mai ba da gudummawa a Mesos, da ƙwarewar samar da SRE na duniya a Ba'a iya yiwuwa. Ƙaddamarwa don inganta duniyar microservices. Masoyansa guda uku: Golang, bude tushen da wasan kwallon raga.

Duban samfurin flagship ɗin mu SpatialOS, zaku iya tsammani cewa Mai yuwuwa yana buƙatar haɓakar haɓaka, kayan aikin girgije na duniya tare da tarin tarin Kubernetes. Mun kasance ɗaya daga cikin na farko da suka fara amfani da tsarin sa ido Prometheus. Prometheus yana da ikon bin diddigin miliyoyin ma'auni a cikin ainihin lokaci kuma ya zo tare da yaren tambaya mai ƙarfi wanda ke ba ku damar cire bayanan da kuke buƙata.

Sauƙi da amincin Prometheus yana ɗaya daga cikin manyan fa'idodinsa. Duk da haka, da zarar mun wuce wani ma'auni, mun ci gaba da fuskantar wasu matsaloli. Domin magance wadannan matsalolin mun bunkasa Thanos wani buɗaɗɗen tushen aikin ne wanda Mai yuwuwa ya ƙirƙira don canza ƙungiyoyin Prometheus da ke da su ba tare da matsala ba zuwa tsarin sa ido ɗaya tare da ajiyar bayanan tarihi mara iyaka. Akwai Thanos akan Github a nan.

Kasance tare da sabbin labarai daga Improbable.

Burin mu tare da Thanos

A wani ma'auni, matsalolin sun taso waɗanda suka wuce iyawar vanilla Prometheus. Yadda za a adana petabytes na bayanan tarihi cikin dogaro da tattalin arziki? Za a iya yin haka ba tare da bata lokaci ba? Shin yana yiwuwa a sami dama ga duk awo da ke kan sabar Prometheus daban-daban tare da buƙatun API guda ɗaya? Shin akwai wata hanya ta haɗa kwafin bayanan da aka tattara ta amfani da Prometheus HA?

Don magance waɗannan batutuwa, mun ƙirƙiri Thanos. Sashe na gaba suna bayyana yadda muka tunkari waɗannan batutuwa da kuma bayyana manufofinmu.

Neman bayanai daga misalan Prometheus da yawa (tambayoyin duniya)

Prometheus yana ba da hanya mai aiki don sharding. Ko da uwar garken Prometheus guda ɗaya yana ba da isassun haɓakawa don 'yantar da masu amfani daga rikitattun sharding a kwance a kusan duk lokuta masu amfani.

Duk da yake wannan babban samfurin turawa ne, sau da yawa ya zama dole don samun damar bayanai akan sabar Prometheus daban-daban ta API guda ɗaya ko UI - ra'ayi na duniya. Tabbas, yana yiwuwa a nuna tambayoyin da yawa a cikin rukunin Grafana guda ɗaya, amma kowace tambaya za a iya aiwatar da ita akan sabar Prometheus ɗaya kawai. A gefe guda, tare da Thanos zaku iya yin tambaya da tara bayanai daga sabar Prometheus da yawa tunda ana iya samun su duka daga ƙarshen ƙarshen.

A baya can, don samun ra'ayi na duniya a cikin Mai yuwuwa, mun tsara abubuwan Prometheus zuwa matakai da yawa. Tarayyar Matsayi. Wannan yana nufin ƙirƙirar uwar garken meta na Prometheus guda ɗaya wanda ke tattara wasu ma'auni daga kowane sabar ganye.

Thanos - Scalable Prometheus

Wannan hanya ta tabbatar da matsala. Ya haifar da ƙarin ƙayyadaddun ƙayyadaddun ƙayyadaddun ƙayyadaddun ƙayyadaddun ƙayyadaddun bayanai, ƙari na ƙarin yuwuwar maƙasudin gazawa, da aikace-aikacen ƙayyadaddun ƙa'idodi don tabbatar da cewa ƙarshen haɗin gwiwa yana samun bayanan da yake buƙata kawai. Bugu da ƙari, irin wannan tarayya ba ya ƙyale ka ka sami ra'ayi na gaskiya na duniya, tun da ba duk bayanai ke samuwa daga buƙatun API guda ɗaya ba.

Kusa da wannan shine ra'ayi ɗaya na bayanan da aka tattara akan manyan sabar Prometheus (HA). Samfurin Prometheus'HA yana tattara bayanai da kansa sau biyu, wanda yake da sauƙi ba zai iya zama mai sauƙi ba. Koyaya, yin amfani da haɗe-haɗe da ra'ayi na rafukan biyu zai fi dacewa.

Tabbas, akwai buƙatar sabar Prometheus sosai. A Ba zai yuwu ba, muna ɗaukar saka idanu akan bayanai na minti-da-minti da gaske, amma samun misalin Prometheus ɗaya a kowane tari shine maki guda na gazawa. Duk wani kuskuren daidaitawa ko gazawar hardware na iya haifar da asarar mahimman bayanai. Ko da ƙaddamarwa mai sauƙi na iya haifar da ƙananan rushewa a cikin tarin ma'auni saboda sake farawa zai iya yin tsayi fiye da tazara.

Dogaran adana bayanan tarihi

Ma'ajiya mai arha, sauri, dogon lokaci shine mafarkinmu (mafi yawan masu amfani da Prometheus suka raba). A cikin Mai yiwuwa, an tilasta mana saita lokacin riƙe awo zuwa kwanaki tara (na Prometheus 1.8). Wannan yana ƙara tabbataccen iyakoki zuwa nisan da za mu iya duba baya.

Prometheus 2.0 ya inganta a wannan batun, tun da yawan adadin lokaci ba ya shafar aikin gaba ɗaya na uwar garke (duba. KubeCon mahimmin bayani game da Prometheus 2). Koyaya, Prometheus yana adana bayanai akan faifan gida. Kodayake matsawar bayanai masu inganci na iya rage yawan amfani da SSD na gida, a ƙarshe akwai iyaka ga adadin bayanan tarihi da za a iya adanawa.

Bugu da ƙari, a Improbable muna kula da aminci, sauƙi da farashi. Manyan fayafai na gida sun fi wahalar aiki da adanawa. Sun fi tsada kuma suna buƙatar ƙarin kayan aikin ajiya, yana haifar da rikitarwa mara amfani.

Sauke samfurin

Da zarar mun fara aiki tare da bayanan tarihi, mun fahimci cewa akwai matsaloli na asali tare da babban-O waɗanda ke sa tambayoyin a hankali da hankali yayin da muke aiki tare da makonni, watanni, da bayanan shekaru.

Daidaitaccen maganin wannan matsala zai kasance downsampling (downsampling) - rage mitar samfurin sigina. Tare da ƙaddamarwa, za mu iya "ƙasa" zuwa mafi girman lokaci da kuma kula da adadin samfurori iri ɗaya, yana mai da martani ga tambayoyin.

Ƙirƙirar tsofaffin bayanai buƙatu ne da babu makawa na kowane maganin ajiya na dogon lokaci kuma ya wuce iyakar vanilla Prometheus.

Ƙarin burin

Ɗaya daga cikin ainihin maƙasudin aikin Thanos shine haɗawa ba tare da wata matsala ba tare da kowane shigarwa na Prometheus. Manufar ta biyu ita ce sauƙi na aiki tare da ƙananan shinge na shigarwa. Duk wani abin dogaro ya kamata a sami sauƙin gamsuwa ga ƙanana da manyan masu amfani, wanda kuma yana nufin ƙarancin farashi.

Thanos gine-gine

Bayan jera makasudin mu a sashin da ya gabata, bari mu yi aiki da su kuma mu ga yadda Thanos yake magance waɗannan matsalolin.

Duban duniya

Don samun ra'ayi na duniya a saman abubuwan da ke akwai na Prometheus, muna buƙatar haɗa wurin shigar da buƙatun guda ɗaya zuwa duk sabobin. Wannan shine ainihin abin da bangaren Thanos yayi. Sidecar. Ana tura shi kusa da kowane uwar garken Prometheus kuma yana aiki azaman wakili, yana ba da bayanan Prometheus na gida ta hanyar gRPC Store API, yana ba da damar dawo da jerin bayanan lokaci ta alama da kewayon lokaci.

A gefe guda kuma shine sikelin-fita, ɓangaren Querier mara ƙasa, wanda bai yi kadan ba fiye da amsa tambayoyin PromQL ta daidaitaccen Prometheus HTTP API. Querier, Sidecar da sauran abubuwan Thanos suna sadarwa ta hanyar ka'idar tsegumi.

Thanos - Scalable Prometheus

  1. Querier, bayan karɓar buƙatu, yana haɗi zuwa uwar garken API ɗin Store mai dacewa, wato, zuwa Sidecars ɗinmu kuma yana karɓar bayanan jerin lokaci daga sabar Prometheus masu dacewa.
  2. Bayan haka, yana haɗa martanin kuma yana aiwatar da tambayar PromQL akan su. Querier na iya haɗa bayanan da ba a haɗa su da kwafi daga sabar Prometheus HA.

Wannan yana warware babban yanki na wasan wasanmu - haɗa bayanai daga keɓaɓɓen sabar Prometheus zuwa kallo guda. A zahiri, ana iya amfani da Thanos don wannan fasalin kawai. Babu wasu canje-canje da za a yi ga sabar Prometheus na yanzu!

Rayuwar shiryayye mara iyaka!

Koyaya, ba dade ko ba dade za mu so adana bayanai sama da lokacin riƙewar Prometheus na yau da kullun. Mun zaɓi ma'ajiyar abu don adana bayanan tarihi. Ana samunsa ko'ina a cikin kowane gajimare da kuma cibiyoyin bayanan gida kuma yana da tasiri sosai. Bugu da kari, kusan kowane ma'ajiyar abu yana samuwa ta hanyar sanannen S3 API.

Prometheus yana rubuta bayanai daga RAM zuwa faifai kusan kowane awa biyu. Tushen bayanan da aka adana ya ƙunshi duk bayanan na ƙayyadadden lokaci kuma ba za a iya canzawa ba. Wannan ya dace sosai saboda Thanos Sidecar na iya kallon kundin bayanan Prometheus kawai kuma, yayin da sabbin tubalan ke samuwa, loda su cikin buckets na ajiya abubuwa.

Thanos - Scalable Prometheus

Loading cikin kayan ajiya nan da nan bayan ƙonewa zuwa faifai kuma yana ba ku damar kiyaye sauƙi na scraper (Prometheus da Thanos Sidecar). Wanda ke sauƙaƙe tallafi, farashi da ƙirar tsarin.

Kamar yadda ka gani, data madadin ne mai sauqi qwarai. Amma menene game da tambayar bayanai a cikin ma'adanar abu?

Bangaren Store ɗin Thanos yana aiki azaman wakili don dawo da bayanai daga ma'adanar abu. Kamar Thanos Sidecar, yana shiga cikin gungu na tsegumi kuma yana aiwatar da API Store. Wannan hanya, data kasance Querier na iya bi da shi kamar Sidecar, a matsayin wani tushen bayanan jerin lokaci - babu wani tsari na musamman da ake buƙata.

Thanos - Scalable Prometheus

Tubalan bayanan jerin lokaci sun ƙunshi manyan fayiloli da yawa. Load da su akan buƙata ba zai zama mai inganci ba, kuma adana su a cikin gida zai buƙaci adadi mai yawa na ƙwaƙwalwar ajiya da sarari diski.

Madadin haka, Store Gateway ya san yadda ake sarrafa tsarin ajiya na Prometheus. Godiya ga mai tsara tsarin tambaya mai wayo da caching kawai mahimman mahimman sassan tubalan, yana yiwuwa a rage hadaddun tambayoyin zuwa ƙaramin adadin buƙatun HTTP don abubuwan adana fayiloli. Ta wannan hanyar, zaku iya rage adadin buƙatun ta umarni huɗu zuwa shida na girma kuma ku cimma lokutan amsawa waɗanda gabaɗaya ke da wahalar bambanta daga buƙatun zuwa bayanai akan SSD na gida.

Thanos - Scalable Prometheus

Kamar yadda aka nuna a cikin zanen da ke sama, Thanos Querier yana rage farashin kowane tambaya na bayanan ajiyar abu ta hanyar yin amfani da tsarin ajiya na Prometheus da sanya bayanan da suka danganci gefe. Amfani da wannan hanyar, za mu iya haɗa buƙatun da yawa guda ɗaya zuwa mafi ƙarancin adadin ayyuka masu yawa.

Compaction da downsampling

Da zarar an sami nasarar loda sabon katangar bayanai na jerin lokaci a cikin ma'ajiyar abu, muna ɗaukar shi azaman bayanan "tarihi", wanda ke samuwa nan da nan ta Ƙofar Store.

Koyaya, bayan ɗan lokaci, tubalan daga tushe ɗaya (Prometheus tare da Sidecar) suna taruwa kuma ba sa amfani da cikakkiyar damar yin ƙima. Don magance wannan matsala, mun gabatar da wani bangaren mai suna Compactor. Yana kawai amfani da injin haɗaɗɗen gida na Prometheus zuwa bayanan tarihi a cikin ma'ajin abu kuma ana iya gudanar da shi azaman aiki mai sauƙi na lokaci-lokaci.

Thanos - Scalable Prometheus

Godiya ga ingantaccen matsewa, tambayar ma'ajiyar na dogon lokaci baya haifar da matsala dangane da girman bayanai. Koyaya, yuwuwar farashin fitar da kimar biliyan da gudanar da su ta hanyar na'urar bincike ba makawa zai haifar da haɓaka mai ban mamaki a lokacin aiwatar da tambaya. A gefe guda, tun da akwai ɗaruruwan bayanan bayanai a kowane pixel akan allon, yana zama ba zai yiwu ba har ma da ganin bayanan a cikakken ƙuduri. Don haka, ƙaddamarwa ba kawai zai yiwu ba, amma kuma ba zai haifar da asarar daidaito ba.

Thanos - Scalable Prometheus

Don saukar da samfurin bayanai, Compactor yana ci gaba da tara bayanai a ƙudurin mintuna biyar da sa'a ɗaya. Ga kowane ɗanyen ɓangarorin da aka ɓoye ta amfani da matsi na TSDB XOR, ana adana nau'ikan tattara bayanai daban-daban, kamar min, max ko jimla don toshe ɗaya. Wannan yana bawa Querier damar zaɓar jimlar ta atomatik wanda ya dace da tambayar PromQL da aka bayar.

Ba a buƙatar saiti na musamman don mai amfani don amfani da rage madaidaicin bayanai. Querier yana canzawa ta atomatik tsakanin ƙuduri daban-daban da ɗanyen bayanai yayin da mai amfani ke zuƙowa ciki da waje. Idan ana so, mai amfani zai iya sarrafa wannan kai tsaye ta hanyar sigar "mataki" a cikin buƙatar.

Tunda farashin adana GB ɗaya yayi ƙasa, ta tsohuwa Thanos yana adana ɗanyen bayanai, bayanan ƙuduri na mintuna biyar da sa'a ɗaya. Babu buƙatar share ainihin bayanan.

Dokokin yin rikodi

Ko da tare da Thanos, dokokin yin rikodi muhimmin bangare ne na tarin saka idanu. Suna rage rikitarwa, latency, da farashin tambayoyin. Hakanan suna da amfani ga masu amfani don samun tara bayanai ta ma'auni. Thanos ya dogara ne akan lokuttan vanilla Prometheus, don haka yana da cikakkiyar karbuwa don adana ka'idodin rikodi da ka'idodin faɗakarwa akan sabar Prometheus data kasance. Koyaya, a wasu lokuta wannan bazai isa ba:

  • Faɗakarwar duniya da ƙa'ida (misali, faɗakarwa lokacin da sabis baya aiki akan fiye da biyu cikin tari uku).
  • Doka don bayanai a wajen ajiyar gida.
  • Sha'awar adana duk dokoki da faɗakarwa a wuri guda.

Thanos - Scalable Prometheus

Ga duk waɗannan shari'o'in, Thanos ya haɗa da wani sashi daban da ake kira Ruler, wanda ke ƙididdige doka da faɗakarwa ta hanyar Thanos Queries. Ta hanyar samar da sanannen StoreAPI, kumburin tambaya na iya samun damar sabbin ma'aunin ƙididdiga. Daga baya kuma ana adana su a cikin ma'ajiyar abubuwa kuma ana samun su ta hanyar Ƙofar Store.

Ƙarfin Thanos

Thanos yana da sassauƙa isa don a keɓance shi don dacewa da bukatun ku. Wannan yana da amfani musamman lokacin ƙaura daga fili Prometheus. Bari mu hanzarta dawo da abin da muka koya game da abubuwan Thanos tare da misali mai sauri. Anan ga yadda ake ɗaukar vanilla Prometheus ɗinku zuwa duniyar “ma'ajiyar awo mara iyaka":

Thanos - Scalable Prometheus

  1. Ƙara Thanos Sidecar zuwa sabar Prometheus ɗin ku - alal misali, motar gefe a cikin kwas ɗin Kubernetes.
  2. Sanya kwafi na Thanos Querier da yawa don samun damar duba bayanai. A wannan mataki yana da sauƙi don saita tsegumi tsakanin Scraper da Querier. Don bincika hulɗar abubuwan haɗin gwiwa, yi amfani da awo na 'thanos_cluster_members'.

Wadannan matakai guda biyu kawai sun isa don samar da ra'ayi na duniya da ƙaddamar da bayanan da ba su dace ba daga yuwuwar Prometheus HA kwafin! Kawai haɗa dashboard ɗin ku zuwa ƙarshen Querier HTTP ko amfani da Thanos UI kai tsaye.

Koyaya, idan kuna buƙatar ma'aunin ma'auni da ma'auni na dogon lokaci, kuna buƙatar ƙarin ƙarin matakai uku:

  1. Ƙirƙiri AWS S3 ko GCS guga. Sanya Sidecar don kwafe bayanai zuwa waɗannan bokiti. Yanzu ana iya rage girman ma'ajiyar bayanan gida.
  2. Sanya Ƙofar Store kuma haɗa shi zuwa gungu na tsegumi na yanzu. Yanzu zaku iya tambayar bayanan da aka yi wa baya!
  3. Ƙaddamar da Compactor don inganta aikin tambaya na dogon lokaci ta amfani da ƙaddamarwa da ƙaddamarwa.

Idan kuna son ƙarin sani, kada ku yi shakka don duba mu kubernetes bayyana misalai и farawa!

A cikin matakai biyar kawai, mun juya Prometheus zuwa tsarin ingantaccen tsarin sa ido tare da ra'ayi na duniya, lokacin ajiya mara iyaka da yuwuwar wadatar ma'auni.

Bukatar ja: muna buƙatar ku!

Thanos ya kasance aikin bude ido tun daga farko. Haɗin kai mara kyau tare da Prometheus da ikon yin amfani da wani yanki na Thanos kawai ya sa ya zama kyakkyawan zaɓi don haɓaka tsarin sa ido ba tare da wahala ba.

Kullum muna maraba da Buƙatun GitHub Pull da Batutuwa. A halin yanzu, jin daɗin tuntuɓar mu ta Abubuwan Github ko slack Ba zai yuwu ba - Eng #thanosidan kuna da tambayoyi ko ra'ayi, ko kuna son raba kwarewar ku ta amfani da shi! Idan kuna son abin da muke yi a Improbable, kar a yi shakka a tuntuɓe mu - kullum muna da guraben aiki!

Koyi game da kwas.

source: www.habr.com

Add a comment