Thanos - Scalable Prometheus

Phetolelo ea sehlooho sena e lokiselitsoe ka ho khetheha liithuti tsa thupelo "Mekhoa le lisebelisoa tsa DevOps".

Fabian Reinartz ke moqapi oa software, E-ea ka cheseho, le ho rarolla mathata. Hape ke mohlokomeli oa Prometheus le mothehi-'moho oa lisebelisoa tsa Kubernetes SIG. Nakong e fetileng, e ne e le moenjiniere oa tlhahiso ho SoundCloud mme a etella pele sehlopha sa ho beha leihlo CoreOS. Hajoale e sebetsa ho Google.

Bartek Plotka - Infrastructure Engineer at Improbable. O thahasella theknoloji e ncha le mathata a litsamaiso tse ajoang. O na le boiphihlelo ba maemo a tlase ho Intel, boiphihlelo ba bafani ho Mesos, le boiphihlelo ba maemo a lefats'e a tlhahiso ea SRE ho Improbable. E inehetse ho ntlafatsa lefats'e la li-microservices. Baratuoa ba hae ba bararo: Golang, mohloli o bulehileng le volleyball.

Ha u sheba sehlahisoa sa rona se hlahelletseng sa SpatialOS, u ka hakanya hore Improbable e hloka moralo o matla oa maru oa lefatše o nang le lihlopha tse ngata tsa Kubernetes. Re bile ba bang ba pele ba ho sebelisa mokhoa oa ho beha leihlo Prometheus. Prometheus e khona ho sala morao li-metrics tse limilione ka nako ea 'nete,' me e tla le puo e matla ea ho botsa e u lumellang ho ntša lintlha tseo u li hlokang.

Bonolo le ho tšepahala ha Prometheus ke e 'ngoe ea melemo ea eona e ka sehloohong. Leha ho le joalo, hang ha re feta tekanyo e itseng, re ile ra kopana le mathata a ’maloa. Ho rarolla mathata ana re ntlafalitse Thanos ke morero o bulehileng oa mohloli o entsoeng ke Improbable ho fetola lihlopha tse teng tsa Prometheus ka mokhoa o tsitsitseng hore e be tsamaiso e le 'ngoe ea ho beha leihlo e nang le polokelo ea data e sa lekanyetsoang ea histori. Thanos e fumaneha ho Github mona.

Lula u ntse u tseba litaba tsa morao-rao tse tsoang ho Improbable.

Lipheo tsa rona le Thanos

Ka tekanyo e itseng, ho hlaha mathata a fetang matla a vanilla Prometheus. Mokhoa oa ho boloka li-petabyte tsa data ea nalane ka mokhoa o tšepahalang le ka moruo? Na see se ka etsoa ntle le ho senya nako ea karabo? Na hoa khoneha ho fumana metrics eohle e fumanehang ho li-server tse fapaneng tsa Prometheus ka kopo e le 'ngoe ea API? Na ho na le mokhoa oa ho kopanya data e kopilitsoeng e bokelletsoeng ho sebelisoa Prometheus HA?

Ho rarolla mathata ana, re thehile Thanos. Likarolo tse latelang li hlalosa kamoo re ileng ra sebetsana le litaba tsena kateng le ho hlalosa lipakane tsa rōna.

Ho botsa data ho tsoa maemong a mangata a Prometheus (potso ea lefats'e)

Prometheus e fana ka mokhoa o sebetsang oa ho sharding. Esita le seva se le seng sa Prometheus se fana ka scalability e lekaneng ea ho lokolla basebelisi ho tloha ho mathata a ho sharding a holimo hoo e batlang e le linyeoe tsohle tsa tšebeliso.

Le hoja ena e le mohlala o motle oa ho tsamaisa, hangata hoa hlokahala ho fumana lintlha ho li-server tse fapaneng tsa Prometheus ka API e le 'ngoe kapa UI - pono ea lefats'e. Ehlile, hoa khoneha ho hlahisa lipotso tse ngata phanele e le 'ngoe ea Grafana, empa potso e' ngoe le e 'ngoe e ka etsoa feela ho seva se le seng sa Prometheus. Ka lehlakoreng le leng, ka Thanos u ka botsa le ho kopanya data ho tsoa ho li-server tse ngata tsa Prometheus kaha kaofela li fumaneha ho tsoa pheletsong e le 'ngoe.

Pejana, ho fumana pono ea lefats'e ka Improbable, re ile ra hlophisa maemo a rona a Prometheus ka mekhahlelo e mengata. Hierarchical Federation. Sena se ne se bolela ho theha seva e le 'ngoe ea meta ea Prometheus e bokellang tse ling tsa metrics ho tsoa ho seva se seng le se seng sa makhasi.

Thanos - Scalable Prometheus

Mokhoa ona o ile oa ipaka o le bothata. Sena se entse hore ho be le litlhophiso tse rarahaneng haholoanyane, ho eketsoa ha ntlha e eketsehileng ea ho hlōleha, le ho sebelisoa ha melao e rarahaneng ho netefatsa hore qetello e kopanetsoeng e fumana feela lintlha tseo e li hlokang. Ntle le moo, mofuta ona oa mokhatlo ha o u lumelle ho fumana pono ea 'nete ea lefats'e, kaha ha se data eohle e fumanehang ho tsoa kopo e le' ngoe ea API.

E amanang haholo le sena ke pono e kopaneng ea data e bokelletsoeng ho li-server tsa Prometheus tse fumanehang haholo (HA). Prometheus 'HA model o bokella data ka makhetlo a mabeli, e leng bonolo hoo e ke keng ea e-ba bonolo. Leha ho le joalo, ho sebelisa pono e kopantsoeng le e fokolang ea melapo ka bobeli ho ka ba bonolo haholoanyane.

Ehlile, ho na le tlhoko ea li-server tsa Prometheus tse fumanehang haholo. Ho Iprobable, re nka tlhahlobo ea data motsotso le motsotso ka botebo, empa ho ba le mohlala o le mong oa Prometheus ka sehlopha ka seng ke ntlha e le 'ngoe ea ho hloleha. Phoso efe kapa efe ea tlhophiso kapa ho hloleha ha hardware ho ka lebisa tahlehelong ea data ea bohlokoa. Le thomello e bonolo e ka baka litšitiso tse nyane pokellong ea metrics hobane ho qala bocha ho ka nka nako e telele ho feta nako ea ho hlakola.

Poloko e tšepahalang ea data ea nalane

Ho boloka metrics e theko e tlaase, e potlakileng, ea nako e telele ke toro ea rona (e arolelanoang ke basebelisi ba bangata ba Prometheus). Ho Iprobable, re ile ra qobelloa ho hlophisa nako ea ho boloka metrics ho matsatsi a robong (bakeng sa Prometheus 1.8). Sena se eketsa meeli e hlakileng ea hore na re ka sheba morao hakae.

Prometheus 2.0 e ntlafetse ntlheng ena, kaha palo ea letoto la nako ha e sa ama ts'ebetso eohle ea seva (bona. KubeCon e bua ka Prometheus 2). Leha ho le joalo, Prometheus e boloka data ho disk ea lehae. Leha khatello ea data e sebetsang hantle haholo e ka fokotsa ts'ebeliso ea SSD ea lehae, qetellong ho ntse ho na le moeli oa palo ea data ea nalane e ka bolokoang.

Ho feta moo, ho Improbable re tsotella ho ts'epahala, bonolo le litšenyehelo. Li-disk tse kholo tsa lehae li thata haholo ho li sebetsa le ho li boloka. Li bitsa chelete e ngata 'me li hloka lisebelisoa tse eketsehileng tsa ho boloka, e leng se bakang ho rarahana ho sa hlokahaleng.

Ho theola mohlala

Hang ha re qala ho sebetsa ka boitsebiso ba histori, re ile ra hlokomela hore ho na le mathata a bohlokoa ka big-O a etsang hore lipotso li be butle le ho lieha ha re ntse re sebetsa ka libeke, likhoeli le lilemo tsa data.

Tharollo e tloaelehileng ea bothata bona e ka ba ho theola mohlala (downsampling) - ho fokotsa maqhubu a mohlala oa pontšo. Ka ho theola lisampole, re ka "fokotsa" ho isa tekanyong e kholoanyane ea nako le ho boloka palo e lekanang ea disampole, re boloka lipotso li arabela.

Ho theola data ea khale ke tlhokahalo e ke keng ea qojoa ea tharollo efe kapa efe ea nako e telele ea polokelo mme e feta boholo ba vanilla Prometheus.

Lipakane tse eketsehileng

E 'ngoe ea lipheo tsa mantlha tsa projeke ea Thanos e ne e le ho hokahana ka mokhoa o se nang moeli le meaho efe kapa efe e teng ea Prometheus. Sepheo sa bobeli e ne e le boiketlo ba ts'ebetso le litšitiso tse fokolang tsa ho kena. Litšenyehelo leha e le life li lokela ho khotsofatsoa habonolo bakeng sa basebelisi ba banyenyane le ba baholo, e leng se bolelang le litšenyehelo tse tlase.

Meaho ea Thanos

Kamora ho thathamisa lipheo tsa rona karolong e fetileng, ha re li sebetseng 'me re bone hore na Thanos e rarolla mathata ana joang.

Pono ea lefatše

Ho fumana pono ea lefats'e ka holim'a maemo a teng a Prometheus, re hloka ho hokahanya sebaka se le seng sa kopo ho li-server tsohle. Sena ke sona hantle seo karolo ea Thanos e se etsang. Sidecar. E behiloe haufi le seva e 'ngoe le e' ngoe ea Prometheus 'me e sebetsa e le moemeli, e sebeletsa data ea Prometheus ea sebakeng sa heno ka gRPC Store API, e lumellang lintlha tsa letoto la nako hore li fumanehe ka tag le nako.

Ka lehlakoreng le leng ke karolo ea sekhahla, e se nang palo ea Querier, e sa arabeng feela lipotso tsa PromQL ka Prometheus HTTP API. Querier, Sidecar le likarolo tse ling tsa Thanos li buisana ka protocol ea lesebo.

Thanos - Scalable Prometheus

  1. Querier, ha e fumana kopo, e hokela ho seva sa Store API se ts'oanang, ke hore, ho Sidecars ea rona mme e fumana lintlha tsa letoto la nako ho tsoa ho li-server tsa Prometheus tse tsamaellanang.
  2. Kamora moo, e kopanya likarabo ebe e etsa potso ea PromQL ho tsona. Querier e ka kopanya data ea disjoint le data e kopitsoang ho tsoa ho li-server tsa Prometheus HA.

Sena se rarolla karolo e kholo ea papali ea rona - ho kopanya data ho tsoa ho li-server tsa Prometheus tse ka thoko ho pono e le 'ngoe. Ebile, Thanos e ka sebelisoa feela bakeng sa tšobotsi ena. Ha ho na liphetoho tse lokelang ho etsoa ho li-server tsa Prometheus tse teng!

Bophelo ba lishelefo bo se nang moeli!

Leha ho le joalo, haufinyane re tla batla ho boloka data ho feta nako e tloaelehileng ea ho boloka Prometheus. Re khethile polokelo ea lintho ho boloka data ea nalane. E fumaneha haholo marung leha e le afe hammoho le litsi tsa data tsa sebakeng seo 'me e theko e boima haholo. Ho feta moo, hoo e ka bang polokelo ea ntho leha e le efe e fumaneha ka S3 API e tsebahalang.

Prometheus o ngola data ho tloha ho RAM ho ea ho disk hoo e ka bang lihora tse ling le tse ling tse peli. Setsi sa data se bolokiloeng se na le lintlha tsohle bakeng sa nako e tsitsitseng mme ha se fetohe. Sena se bonolo haholo hobane Thanos Sidecar e ka sheba feela bukana ea data ea Prometheus mme, ha li-blocks tse ncha li ntse li fumaneha, li li kenya ka libaketeng tsa polokelo ea lintho.

Thanos - Scalable Prometheus

Ho kenya ka har'a polokelo ea ntho hang ka mor'a ho ngolla disk ho boetse ho u lumella ho boloka bonolo ba scraper (Prometheus le Thanos Sidecar). E nolofatsang tšehetso, litšenyehelo le moralo oa sistimi.

Joalokaha u ka bona, ho boloka data ho bonolo haholo. Empa ho thoe'ng ka ho botsa data polokelong ea ntho?

Karolo ea Thanos Store e sebetsa e le moemeli oa ho khutlisa data ho tsoa polokelong ea ntho. Joalo ka Thanos Sidecar, e nka karolo sehlopheng sa lesebo mme e sebelisa Store API. Ka tsela ena, Querier e teng e ka e nka joalo ka Sidecar, joalo ka mohloli o mong oa data ea letoto la nako - ha ho na tlhophiso e khethehileng e hlokahalang.

Thanos - Scalable Prometheus

Li-block tsa data tsa letoto la nako li na le lifaele tse 'maloa tse kholo. Ho li kenya ha li batloa ho ke ke ha sebetsa hantle, 'me ho li boloka sebakeng sa heno ho tla hloka sebaka se seholo sa memori le disk.

Sebakeng seo, Store Gateway e tseba ho sebetsana le sebopeho sa polokelo ea Prometheus. Ka lebaka la kemiso ea lipotso e bohlale le ho boloka likarolo tse hlokahalang feela tsa li-block, hoa khonahala ho fokotsa lipotso tse rarahaneng ho isa palo e fokolang ea likopo tsa HTTP ho hanyetsa lifaele tsa polokelo. Ka tsela ena, o ka fokotsa palo ea likopo ka litaelo tse 'nè ho isa ho tse tšeletseng tsa boholo' me u fihlele linako tsa karabo tseo ka kakaretso ho leng thata ho li khetholla ho tloha ho likopo ho ea ho data ho SSD ea lehae.

Thanos - Scalable Prometheus

Joalokaha ho bontšitsoe setšoantšong se ka holimo, Thanos Querier e fokotsa haholo litšenyehelo ka potso e 'ngoe le e' ngoe ea data ea polokelo ea ntho ka ho sebelisa mokhoa oa polokelo oa Prometheus le ho beha lintlha tse amanang le tsona. Ka ho sebelisa mokhoa ona, re ka kopanya likopo tse ngata tse le 'ngoe ka palo e fokolang ea ts'ebetso e ngata.

Compaction le downsampling

Hang ha data e ncha ea letoto la nako e kentsoe ka katleho polokelong ea ntho, re e nka e le data ea "histori", e fumanehang hanghang ka Store Gateway.

Leha ho le joalo, ka mor'a nako e itseng, li-blocks tse tsoang mohloling o le mong (Prometheus le Sidecar) lia bokella 'me ha li sa sebelisa bokhoni bo feletseng ba indexing. Ho rarolla bothata bona, re hlahisitse karolo e 'ngoe e bitsoang Compactor. E sebetsa feela enjine ea compaction ea lehae ea Prometheus ho data ea nalane polokelong ea ntho mme e ka tsamaisoa joalo ka mosebetsi o bonolo oa nako le nako.

Thanos - Scalable Prometheus

Ka lebaka la khatello e sebetsang hantle, ho botsa polokelo ka nako e telele ha ho hlahise bothata ho latela boholo ba data. Leha ho le joalo, litšenyehelo tse ka bang teng tsa ho manolla boleng ba bilione le ho li tsamaisa ka processor ea lipotso li tla baka keketseho e kholo ea nako ea ho botsa lipotso. Ka lehlakoreng le leng, kaha ho na le lintlha tse makholo tsa lintlha ka pixel skrineng, ho ba thata ho bona data ka pono e felletseng. Kahoo, ho theola sampling ha ho khonehe feela, empa hape ho ke ke ha lebisa tahlehelong e hlokomelehang ea ho nepahala.

Thanos - Scalable Prometheus

Ho fokotsa data, Compactor e tsoela pele ho bokella lintlha ka qeto ea metsotso e mehlano le hora e le 'ngoe. Bakeng sa chunk e 'ngoe le e' ngoe e tala e kenyellelitsoeng ho sebelisa compression ea TSDB XOR, mefuta e fapaneng ea data e aggregate e bolokiloe, joalo ka min, max kapa kakaretso bakeng sa boloko e le 'ngoe. Sena se lumella Querier ho ikhethela kakaretso e loketseng potso e fanoeng ea PromQL.

Ha ho tlhophiso e khethehileng e hlokahalang hore mosebelisi a sebelise data e nepahetseng e fokolitsoeng. Querier e fetoha ka bo eona lipakeng tsa liqeto tse fapaneng le data e tala ha mosebelisi a ntse a atamela le ho tsoa. Haeba a lakatsa, mosebelisi a ka laola sena ka kotloloho ka "mohato" parameter ho kopo.

Kaha litšenyehelo tsa ho boloka GB e le 'ngoe li tlase, ka ho sa feleng Thanos e boloka data e tala, lintlha tsa metsotso e mehlano le hora e le' ngoe. Ha ho hlokahale ho hlakola data ea mantlha.

Melao ea ho rekota

Leha ho na le Thanos, melao ea ho rekota ke karolo ea bohlokoa ea ho beha leihlo. Ba fokotsa ho rarahana, latency, le litšenyehelo tsa lipotso. Li boetse li loketse basebelisi ho fumana lintlha tse kopaneng ho latela metrics. Thanos e ipapisitse le maemo a vanilla Prometheus, ka hona ho amoheleha ka ho phethahetseng ho boloka melao ea ho rekota le melao ea tlhokomeliso ho seva e teng ea Prometheus. Leha ho le joalo, maemong a mang sena se ka 'na sa se ke sa lekana:

  • Tlhokomeliso le molao oa lefats'e (mohlala, tlhokomeliso ha ts'ebeletso e sa sebetse ho feta lihlopha tse peli ho tse tharo).
  • Molao bakeng sa data kantle ho polokelo ea lehae.
  • Takatso ea ho boloka melao eohle le litlhokomeliso sebakeng se le seng.

Thanos - Scalable Prometheus

Bakeng sa linyeoe tsena kaofela, Thanos e kenyelletsa karolo e arohaneng e bitsoang Ruler, e kopanyang molao le tlhokomeliso ka Thanos Queries. Ka ho fana ka StoreAPI e tsebahalang, node ea Query e ka fihlella metrics e sa tsoa etsoa. Hamorao li boetse li bolokoa sebakeng sa polokelo ea lintho 'me li fumaneha ka Store Gateway.

Matla a Thanos

Thanos e tenyetseha ka ho lekaneng hore e ka etsoa hore e lumellane le litlhoko tsa hau. Sena se bohlokoa haholo ha o falla ho tloha thota ea Prometheus. Ha re phete kapele seo re ithutileng sona ka likarolo tsa Thanos ka mohlala o potlakileng. Mona ke mokhoa oa ho nka vanilla Prometheus ea hau lefatšeng la "polokelo ea metrics e se nang moeli":

Thanos - Scalable Prometheus

  1. Kenya Thanos Sidecar ho li-server tsa hau tsa Prometheus - mohlala, setshelo se ka thōko ho pod ea Kubernetes.
  2. Kenya likopi tse ngata tsa Thanos Querier hore u tsebe ho bona data. Nakong ena ho bonolo ho theha lesebo pakeng tsa Scraper le Querier. Ho hlahloba tšebelisano ea likarolo, sebelisa 'thanos_cluster_members' metric.

Mehato ena e 'meli feela e lekane ho fana ka pono ea lefats'e le ho theoleloa ha data ka mokhoa o se nang moeli ho tsoa ho likopi tsa Prometheus HA! Hokela habonolo li-dashboard tsa hau ho Querier HTTP endpoint kapa sebelisa Thanos UI ka kotloloho.

Leha ho le joalo, haeba u hloka bekapo ea metrics le polokelo ea nako e telele, u tla hloka ho tlatsa mehato e meng e meraro:

  1. Theha bakete ea AWS S3 kapa GCS. Lokisa Sidecar ho kopitsa data ho libakete tsena. Hona joale polokelo ea data ea lehae e ka fokotsoa.
  2. Kenya Store Gateway 'me u e hokahanye le sehlopha sa hau se teng sa litšebo. Joale o ka botsa data e bolokiloeng!
  3. Deploy Compactor ho ntlafatsa bokhoni ba ho botsa lipotso ka nako e telele u sebelisa compaction le downsampling.

Haeba u batla ho tseba haholoanyane, u se ke oa tsilatsila ho sheba rona kubernetes e bonts'a mehlala и ho qala!

Ka mehato e mehlano feela, re ile ra fetola Prometheus hore e be sistimi e tšepahalang ea ho beha leihlo e nang le pono ea lefats'e, nako ea polokelo e sa lekanyetsoang le boteng bo phahameng ba metrics.

Kopa kopo: rea u hloka!

Thanos esale e le morero oa mohloli o bulehileng ho tloha qalong. Khokahano e se nang moeli le Prometheus le bokhoni ba ho sebelisa karolo e itseng feela ea Thanos e etsa hore e be khetho e ntle ea ho holisa sistimi ea hau ea ho beha leihlo ntle le matla.

Re lula re amohela likopo tsa GitHub Pull le Mathata. Khabareng, ikutloe u lokolohile ho ikopanya le rona ka Github Issues kapa slack Improbable-eng #thanoshaeba u na le lipotso kapa maikutlo, kapa u batla ho arolelana phihlelo ea hau u e sebelisa! Haeba u rata seo re se etsang ho Improbable, u se ke oa tsilatsila ho ikopanya le rona - kamehla re na le likheo!

Ithute haholoanyane ka thupelo.

Source: www.habr.com

Eketsa ka tlhaloso