Thanos - Prometheus azo scalable

Ny fandikana ny lahatsoratra dia nomanina manokana ho an'ny mpianatry ny taranja "Fanazatra sy fitaovana DevOps".

Fabian Reinartz dia mpamorona rindrambaiko, Go fanatic, ary mpamaha olana. Izy koa dia mpitazona Prometheus ary mpiara-manorina ny fitaovana Kubernetes SIG. Taloha, injeniera famokarana tao amin'ny SoundCloud izy ary nitarika ny ekipa mpanara-maso tao amin'ny CoreOS. Miasa ao amin'ny Google amin'izao fotoana izao.

Bartek Plotka - Infrastructure Infrastructure at Improbable. Izy dia liana amin'ny teknolojia vaovao sy ny olana amin'ny rafitra mizara. Manana traikefa amin'ny programa ambany izy ao amin'ny Intel, traikefa mpandray anjara ao amin'ny Mesos, ary traikefa famokarana SRE kilasy manerantany ao amin'ny Improbable. Natokana ho amin'ny fanatsarana ny tontolon'ny microservices. Ny fitiavany telo: Golang, open source ary volley.

Raha jerena ny SpatialOS vokatra sangantsika, dia azonao atao ny maminavina fa ny Improbable dia mitaky fotodrafitrasa rahona midadasika be eran-tany miaraka amin'ny cluster Kubernetes am-polony. Iray amin'ireo voalohany nampiasa rafitra fanaraha-maso izahay Prometheus. Ny Prometheus dia afaka manara-maso metrika an-tapitrisany amin'ny fotoana tena izy ary tonga miaraka amin'ny fiteny fangatahana mahery vaika izay ahafahanao maka ny fampahalalana ilainao.

Ny fahatsorana sy ny fahamendrehan'ny Prometheus dia iray amin'ireo tombony lehibe indrindra. Na izany aza, rehefa nandalo ny mari-pamantarana iray izahay, dia nisedra olana maro. Mba hamahana ireo olana ireo dia novolavolainay Thanos dia tetikasa loharano misokatra noforonin'i Improbable mba hanovana tsy misy olana ny clusters Prometheus efa misy ho rafitra fanaraha-maso tokana miaraka amin'ny fitahirizana angon-drakitra ara-tantara tsy misy fetra. Thanos dia hita ao amin'ny Github eto.

Araho hatrany ny vaovao farany avy amin'ny Improbable.

Ny tanjonay miaraka amin'i Thanos

Amin'ny ambaratonga iray dia misy olana izay tsy vitan'ny vanilla Prometheus. Ahoana ny fomba fitahirizana azo antoka sy ara-toekarena ny petabytes amin'ny angona ara-tantara? Azo atao ve izany raha tsy mampandefitra ny fotoana famaliana? Azo atao ve ny miditra amin'ny metrika rehetra hita amin'ny mpizara Prometheus samihafa miaraka amin'ny fangatahana API tokana? Misy fomba hanambadiana angon-drakitra voaangona amin'ny fampiasana Prometheus HA ve?

Mba hamahana ireo olana ireo dia namorona Thanos izahay. Ireto fizarana manaraka ireto dia mamaritra ny fomba niatrehantsika ireo olana ireo sy manazava ny tanjontsika.

Fangatahana angona avy amin'ny tranga Prometheus marobe (fanontaniana manerantany)

Prometheus dia manolotra fomba fiasa mahomby amin'ny sharding. Na dia mpizara Prometheus tokana aza dia manome scalability ampy hanafaka ireo mpampiasa amin'ny fahasarotan'ny sharding horizontally amin'ny ankamaroan'ny tranga fampiasana.

Na dia maodely fandefasana lehibe aza ity, dia matetika ilaina ny miditra angon-drakitra amin'ny mpizara Prometheus samihafa amin'ny alàlan'ny API tokana na UI - fomba fijery manerantany. Mazava ho azy fa azo atao ny mampiseho fanontaniana maro ao amin'ny tontonana Grafana iray, fa ny fangatahana tsirairay dia azo tanterahina amin'ny mpizara Prometheus iray ihany. Amin'ny lafiny iray, miaraka amin'i Thanos dia afaka manontany sy manangona angon-drakitra avy amin'ny mpizara Prometheus marobe ianao satria azo idirana amin'ny teboka tokana izy ireo.

Teo aloha, mba hahazoana fijery maneran-tany amin'ny Improbable, dia nandamina ny tranga Prometheus izahay ho sehatra maromaro. Federasiona hierarchical. Midika izany fa mamorona mpizara meta Prometheus iray izay manangona ny sasany amin'ireo metrika avy amin'ny mpizara ravina tsirairay.

Thanos - Prometheus azo scalable

Nisedra olana io fomba fiasa io. Niteraka fanamboarana saro-pady kokoa izany, fanampim-panampiana teboka mety tsy fahombiazana, ary fampiharana fitsipika saro-takarina mba hahazoana antoka fa tsy mahazo afa-tsy ny angon-drakitra ilainy ny teboka federasiona. Ankoatr'izay, ity karazana federasiona ity dia tsy mamela anao hahazo fijery manerantany marina, satria tsy ny angon-drakitra rehetra dia azo avy amin'ny fangatahana API tokana.

Mifandray akaiky amin'izany ny fomba fijery miray saina amin'ny angon-drakitra voaangona amin'ny mpizara Prometheus avo lenta (HA). Ny modelin'i Prometheus HA dia manangona angon-drakitra indroa, izay tena tsotra ka tsy ho tsotra kokoa. Na izany aza, ny fampiasana ny fomba fijery mitambatra sy deduplicated amin'ny renirano roa dia mety kokoa.

Mazava ho azy fa ilaina ny mpizara Prometheus tena misy. Ao amin'ny Improbable, dia raisinay am-pahamatorana ny fanaraha-maso angon-drakitra isa-minitra, fa ny fananana prometheus iray isaky ny cluster dia teboka iray tsy fahombiazana. Ny hadisoan'ny fandrindrana na ny tsy fahombiazan'ny fitaovana dia mety hitarika amin'ny fahaverezan'ny angona manan-danja. Na ny fametrahana tsotra aza dia mety hiteraka fanelingelenana kely amin'ny fanangonana metrika satria mety ho lava kokoa noho ny elanelam-potoana fikikisana ny fanombohana.

Fitehirizana azo itokisana ny angona ara-tantara

Ny fitahirizana metrika mora, haingana, maharitra no nofinofisinay (zarain'ny ankamaroan'ny mpampiasa Prometheus). Ao amin'ny Improbable, voatery nanamboatra ny fe-potoana fitazonana metrika ho sivy andro izahay (ho an'ny Prometheus 1.8). Izany dia manampy fetra mazava ho an'ny halaviran-davitra azontsika jerena.

Ny Prometheus 2.0 dia nihatsara tamin'io lafiny io, satria tsy misy fiantraikany amin'ny fampisehoana ankapoben'ny mpizara intsony ny isan'ny andiam-potoana (jereo. KubeCon keynote momba ny Prometheus 2). Na izany aza, ny Prometheus dia mitahiry angona amin'ny kapila eo an-toerana. Na dia mety hampihena be ny fampiasana SSD eo an-toerana aza ny fanerena angon-drakitra avo lenta, dia mbola misy fetra ihany ny habetsaky ny angona ara-tantara azo tehirizina.

Fanampin'izany, ao amin'ny Improbable dia miahy ny fahamendrehana, ny fahatsorana ary ny vidiny izahay. Ny kapila eo an-toerana lehibe dia sarotra kokoa ny miasa sy mamerina. Mandany vola bebe kokoa izy ireo ary mitaky fitaovana backup bebe kokoa, ka miteraka fahasarotana tsy ilaina.

Downsampling

Raha vao nanomboka niasa tamin'ny angona ara-tantara izahay dia nahatsapa fa misy fahasahiranana fototra amin'ny big-O izay mahatonga ny fanontaniana miadana sy miadana kokoa rehefa miasa miaraka amin'ny angona herinandro, volana, ary taona maro.

Ny vahaolana mahazatra amin'ity olana ity dia ho downsampling (downsampling) - fampihenana ny fatran'ny sampling famantarana. Miaraka amin'ny fampidinana santionany, dia afaka "midina" mankany amin'ny fe-potoana lehibe kokoa isika ary mitazona santionany mitovy amin'izany, mitazona ny fanontaniana ho mamaly.

Ny fampidinana ny angona taloha dia fepetra tsy azo ihodivirana amin'ny vahaolana fitahirizana maharitra ary mihoatra ny sahan'ny Prometheus lavanila.

Tanjona fanampiny

Ny iray amin'ireo tanjona tany am-boalohany tamin'ny tetikasa Thanos dia ny hampiditra tsy misy olana amin'ireo fametrahana Prometheus efa misy. Ny tanjona faharoa dia ny fanamorana ny asa miaraka amin'ny sakana kely indrindra amin'ny fidirana. Ny fiankinan-doha rehetra dia tokony ho afa-po mora foana ho an'ny mpampiasa kely na lehibe, izay midika ihany koa fa vidiny ambany.

Architecture Thanos

Rehefa avy mitanisa ny tanjonay ao amin'ny fizarana teo aloha dia andao isika handinika azy ireo ary hojerentsika ny fomba namahan'i Thanos ireo olana ireo.

Fijery maneran-tany

Mba hahazoana fijery manerantany momba ny tranga Prometheus efa misy, dia mila mampifandray teboka fidirana fangatahana tokana amin'ny mpizara rehetra isika. Izany indrindra no ataon'ny singa Thanos. Sidecar. Apetraka eo akaikin'ny mpizara Prometheus tsirairay izy io ary miasa ho toy ny proxy, manompo ny angona Prometheus eo an-toerana amin'ny alàlan'ny gRPC Store API, mamela ny angon-drakitra andiam-potoana horaisina amin'ny alàlan'ny marika sy ny fe-potoana.

Amin'ny lafiny iray dia ny singa Querier tsy misy fanjakana, izay tsy mamaly fotsiny ny fanontanian'ny PromQL amin'ny alàlan'ny Prometheus HTTP API. Querier, Sidecar ary ireo singa Thanos hafa dia mifandray amin'ny alàlan'ny protocole fifosana.

Thanos - Prometheus azo scalable

  1. Ny Querier, rehefa nahazo fangatahana, dia mifandray amin'ny mpizara API Store mifanaraka amin'izany, izany hoe amin'ny Sidecars ary mahazo angon-drakitra andiam-potoana avy amin'ireo mpizara Prometheus mifanaraka aminy.
  2. Aorian'izany dia manambatra ny valiny ary manatanteraka fangatahana PromQL amin'izy ireo. Ny Querier dia afaka manambatra ny angon-drakitra misaraka sy ny angona duplicate avy amin'ny mpizara Prometheus HA.

Mamaha ampahany lehibe amin'ny piozilantsika izany - manambatra ny angona avy amin'ireo mpizara Prometheus mitoka-monina ho fijery tokana. Raha ny marina, Thanos ihany no azo ampiasaina amin'ity endri-javatra ity. Tsy misy fanovana mila atao amin'ireo mpizara Prometheus efa misy!

fiainana talantalana tsy manam-petra!

Na izany aza, na ho ela na ho haingana dia te-hitahiry angona mihoatra ny fotoana fitazonana Prometheus mahazatra izahay. Nisafidy fitahirizana zavatra izahay hitahiry angona ara-tantara. Hita be dia be amin'ny rahona rehetra ary koa amin'ny foibe angon-drakitra eo an-toerana ary tena lafo tokoa. Ankoatra izany, saika misy fitahirizana zavatra rehetra azo alaina amin'ny alàlan'ny S3 API malaza.

Prometheus dia manoratra angona avy amin'ny RAM mankany amin'ny kapila isaky ny adiny roa. Ny sakana angon-drakitra voatahiry dia ahitana ny angon-drakitra rehetra mandritra ny fe-potoana voafaritra ary tsy azo ovaina. Tena mety izany satria i Thanos Sidecar dia afaka mijery fotsiny ny lahatahiry data Prometheus ary, rehefa misy sakana vaovao, dia ampidiro ao anaty siny fitahirizana zavatra.

Thanos - Prometheus azo scalable

Ny fampidirana ao anaty fitahirizana zavatra avy hatrany aorian'ny fanoratana amin'ny kapila dia ahafahanao mitazona ny fahatsoran'ny scraper (Prometheus sy Thanos Sidecar). Izay manamora ny fanohanana, ny vidiny ary ny famolavolana rafitra.

Araka ny hitanao, ny data backup dia tena tsotra. Ahoana anefa ny amin'ny fangatahana angona amin'ny fitahirizana zavatra?

Ny singa Thanos Store dia miasa toy ny proxy haka angona avy amin'ny fitahirizana zavatra. Tahaka an'i Thanos Sidecar, mandray anjara amin'ny vondron'olona fifosana izy ary mampihatra ny Store API. Amin'izany fomba izany, ny Querier efa misy dia afaka mitondra azy ho toy ny Sidecar, ho loharano hafa amin'ny angon-drakitra andiam-potoana - tsy mila fanitsiana manokana.

Thanos - Prometheus azo scalable

Ny bloc data andiam-potoana dia misy rakitra lehibe maromaro. Ny fametahana azy ireo amin'ny fangatahana dia ho tsy mahomby, ary ny fitahirizana azy ireo eo an-toerana dia mitaky fitadidiana sy habaka kapila be dia be.

Fa kosa, ny Store Gateway dia mahafantatra ny fomba fitantanana ny endrika fitahirizana Prometheus. Noho ny mpandrindra fangataham-panontaniana marani-tsaina sy ny fikojakojana ny ampahany ilaina amin'ny sakana ihany, dia azo atao ny mampihena ny fangatahana sarotra ho amin'ny fangatahana HTTP faran'izay kely indrindra amin'ny rakitra fitahirizana zavatra. Amin'izany fomba izany, azonao atao ny mampihena ny isan'ny fangatahana amin'ny lamina efatra ka hatramin'ny enina amin'ny halehiben'ny habeny ary hahatratra ny fotoana famaliana izay sarotra ny manavaka ny fangatahana amin'ny data amin'ny SSD eo an-toerana.

Thanos - Prometheus azo scalable

Araka ny aseho amin'ny kisary etsy ambony, Thanos Querier dia mampihena be ny vidin'ny fangatahana angon-drakitra fitahirizana zavatra amin'ny alàlan'ny fampiasana ny endrika fitahirizana Prometheus sy ny fametrahana angon-drakitra mifandraika amin'ny lafiny iray. Amin'ny fampiasana an'io fomba io, dia afaka manambatra fangatahana tokana maro ho lasa asa be dia be izahay.

Compaction sy downsampling

Raha vantany vao tafapetraka tsara ao anaty fitahirizana zavatra ny sakana vaovao misy angona andiam-potoana, dia raisinay ho toy ny angona "tantara", izay azo avy hatrany amin'ny alàlan'ny Store Gateway.

Na izany aza, rehefa afaka kelikely, dia miangona ny sakana avy amin'ny loharano iray (Prometheus miaraka amin'i Sidecar) ary tsy mampiasa ny mety ho fanondroana feno intsony. Mba hamahana ity olana ity dia nampiditra singa iray hafa antsoina hoe Compactor izahay. Mampihatra tsotra izao ny motera fampifangaroana eo an-toerana an'i Prometheus amin'ny angon-drakitra ara-tantara ao amin'ny fitahirizana zavatra ary azo atao toy ny asa andiany tsotra.

Thanos - Prometheus azo scalable

Noho ny famoretana mahomby, ny fangatahana ny fitahirizana mandritra ny fotoana maharitra dia tsy miteraka olana amin'ny haben'ny data. Na izany aza, ny mety ho sandan'ny famoahana sanda an'arivony tapitrisa sy ny fampandehanana azy ireo amin'ny alàlan'ny processeur query dia tsy maintsy hiafara amin'ny fisondrotan'ny fotoana fanatanterahana ny fangatahana. Amin'ny lafiny iray, satria misy teboka angon-drakitra an-jatony isaky ny piksel eo amin'ny efijery, dia tsy azo atao mihitsy ny mijery ny angon-drakitra amin'ny fanapahan-kevitra feno. Noho izany, ny downsampling dia tsy azo atao ihany, fa koa tsy hitarika ho amin'ny fahaverezan'ny marina.

Thanos - Prometheus azo scalable

Mba hampihenana ny angona, ny Compactor dia manangona angon-drakitra hatrany amin'ny famaha dimy minitra sy adiny iray. Ho an'ny tapany manta voahodina amin'ny famatrarana TSDB XOR, misy karazana angona fitambarana samihafa dia voatahiry, toy ny min, max na isa ho an'ny sakana iray. Izany dia ahafahan'ny Querier misafidy ho azy ny fitambarana mety amin'ny fangatahana PromQL nomena.

Tsy ilaina ny fanamafisana manokana ho an'ny mpampiasa hampiasa angon-drakitra mivaingana. Ny Querier dia mifamadika ho azy eo anelanelan'ny fanapahan-kevitra samihafa sy ny angona manta rehefa miditra sy mivoaka ny mpampiasa. Raha tianao, ny mpampiasa dia afaka mifehy izany mivantana amin'ny alalan'ny "dingana" parameter ao amin'ny fangatahana.

Satria ambany ny vidin'ny fitehirizana GB iray, amin'ny alàlan'ny default dia mitahiry angon-drakitra manta, dimy minitra ary adiny iray i Thanos. Tsy ilaina ny mamafa ny angona tany am-boalohany.

Fitsipika fanoratana

Na dia miaraka amin'i Thanos aza, ny fitsipiky ny firaketana dia ampahany manan-danja amin'ny stack fanaraha-maso. Mampihena ny fahasarotana, ny fahatarana ary ny vidin'ny fanontaniana izy ireo. Izy ireo ihany koa dia mety ho an'ny mpampiasa ny mahazo angona natambatra amin'ny alàlan'ny metrika. Thanos dia mifototra amin'ny vanila Prometheus tranga, noho izany dia azo ekena tanteraka ny mitahiry ny firaketana an-tsoratra sy ny fitsipika fanairana amin'ny efa misy Prometheus mpizara. Na izany aza, amin'ny toe-javatra sasany dia mety tsy ampy izany:

  • Fanairana sy fitsipika eran-tany (ohatra, fanairana rehefa tsy mandeha amin'ny vondrona mihoatra ny roa amin'ny telo ny serivisy iray).
  • Fitsipika momba ny angona ivelan'ny fitahirizana eo an-toerana.
  • Ny faniriana hitahiry ny fitsipika sy ny fanairana rehetra amin'ny toerana iray.

Thanos - Prometheus azo scalable

Ho an'ireo tranga rehetra ireo, Thanos dia misy singa miavaka antsoina hoe Ruler, izay manisa fitsipika sy fanairana amin'ny alàlan'ny Thanos Queries. Amin'ny fanomezana StoreAPI fanta-daza, ny node Query dia afaka miditra amin'ny metrika vao kajy. Taty aoriana dia voatahiry ao anaty fitahirizana zavatra izy ireo ary azo alaina amin'ny alàlan'ny Store Gateway.

Ny herin'i Thanos

Thanos dia mora azo atao mifanaraka amin'ny filanao. Tena ilaina izany rehefa mifindra monina avy amin'ny Prometheus tsotra. Andeha hojerentsika haingana ny zavatra nianarantsika momba ny singa Thanos miaraka amin'ny ohatra haingana. Toy izao ny fomba hitondranao ny Prometheus lavanila ao amin'ny tontolon'ny “fitehirizana metrika tsy misy fetra”:

Thanos - Prometheus azo scalable

  1. Ampio ny Thanos Sidecar amin'ny mpizara Prometheus-nao, ohatra, fitoeran-jiro misy sisiny ao anaty pod Kubernetes.
  2. Mametraha dika mitovy amin'ny Thanos Querier mba hahafahana mijery angon-drakitra. Amin'ity dingana ity dia mora ny mametraka fifosana eo amin'ny Scraper sy Querier. Mba hanamarinana ny fifaneraserana amin'ireo singa dia ampiasao ny metrika 'thanos_cluster_members'.

Ireo dingana roa ireo fotsiny dia ampy hanomezana fomba fijery manerantany sy deduplication angon-drakitra tsy misy fotony avy amin'ny replika Prometheus HA! Ampifandraiso tsotra izao ny dashboard-nao amin'ny teboka farany Querier HTTP na ampiasao mivantana ny Thanos UI.

Na izany aza, raha mila fitahirizana metrika sy fitahirizana maharitra ianao dia mila mamita dingana telo fanampiny:

  1. Mamorona siny AWS S3 na GCS. Amboary ny Sidecar mba handikana angona amin'ireo siny ireo. Ny fitahirizana angona eo an-toerana izao dia azo ahena.
  2. Ampidiro ny vavahadin'ny Store ary ampifandraiso amin'ny vondron'olona fifosana misy anao. Azonao atao izao ny manontany ny angon-drakitra voatahiry!
  3. Ampidiro ny Compactor hanatsarana ny fahombiazan'ny fangatahana mandritra ny fotoana maharitra amin'ny alàlan'ny fampihenana sy fampidinana.

Raha te hahalala bebe kokoa ianao dia aza misalasala mijery ny anay kubernetes maneho ohatra и hanomboka!

Tao anatin'ny dingana dimy monja, dia nanova ny Prometheus ho rafitra fanaraha-maso azo antoka miaraka amin'ny fijery manerantany, fotoana fitehirizana tsy voafetra ary mety hisian'ny metrika avo lenta.

Fangatahana sintonina: mila anao izahay!

Thanos dia tetikasa open source hatrany am-boalohany. Ny fampidirana tsy misy olana amin'ny Prometheus sy ny fahafahana mampiasa ampahany fotsiny amin'ny Thanos dia mahatonga azy io ho safidy tsara indrindra amin'ny fampitomboana ny rafitra fanaraha-maso anao.

Raisinay foana ny fangatahana sy ny olana GitHub Pull. Mandritra izany fotoana izany, aza misalasala mifandray aminay amin'ny alàlan'ny Github Issues na slack Improbable-eng #thanosraha manana fanontaniana na fanehoan-kevitra ianao, na te hizara ny traikefanao amin'ny fampiasana azy! Raha tianao ny ataonay ao amin'ny Improbable, aza misalasala mifandray aminay - manana fahabangan-toerana foana izahay!

Mianara bebe kokoa momba ny fianarana.

Source: www.habr.com

Add a comment