Thanos - Prometheus Skalabbli

It-traduzzjoni tal-artiklu tħejjiet speċifikament għall-istudenti tal-kors "Prattiċi u għodod DevOps".

Fabian Reinartz huwa żviluppatur tas-softwer, Mur fanatic, u jsolvi l-problemi. Huwa wkoll manutenzjoni ta' Prometheus u ko-fundatur tal-istrumentazzjoni SIG ta' Kubernetes. Fil-passat, kien inġinier tal-produzzjoni f'SoundCloud u mexxa t-tim ta' monitoraġġ f'CoreOS. Bħalissa jaħdem fuq Google.

Bartek Plotka - Inġinier tal-Infrastruttura fuq Improbabbli. Huwa interessat f'teknoloġiji ġodda u problemi ta 'sistemi distribwiti. Huwa għandu esperjenza ta 'programmazzjoni ta' livell baxx f'Intel, esperjenza ta 'kontributur f'Mesos, u esperjenza ta' produzzjoni SRE ta 'klassi dinjija f'Improbable. Iddedikat għat-titjib tad-dinja tal-mikroservizzi. It-tliet imħabba tiegħu: Golang, open source u volleyball.

Meta wieħed iħares lejn il-prodott ewlieni tagħna SpatialOS, tista’ taqta’ li Improbable teħtieġ infrastruttura ta’ sħab dinamika ħafna u fuq skala globali b’għexieren ta’ raggruppamenti ta’ Kubernetes. Konna wieħed minn tal-ewwel li użajna sistema ta’ monitoraġġ Prometheus. Prometheus huwa kapaċi li jsegwi miljuni ta 'metriċi f'ħin reali u jiġi b'lingwaġġ ta' mistoqsija b'saħħtu li jippermettilek tiġbed l-informazzjoni li għandek bżonn.

Is-sempliċità u l-affidabbiltà ta 'Prometheus hija waħda mill-vantaġġi ewlenin tagħha. Madankollu, ladarba aħna ltqajna minn ċertu skala, iltqajna ma 'diversi żvantaġġi. Biex insolvu dawn il-problemi żviluppajna Thanos huwa proġett ta 'sors miftuħ maħluq minn Improbable biex jittrasforma bla xkiel raggruppamenti eżistenti ta' Prometheus f'sistema waħda ta 'monitoraġġ b'ħażna ta' data storika illimitata. Thanos huwa disponibbli fuq Github hawn.

Ibqa' aġġornat bl-aħħar aħbarijiet minn Improbable.

L-għanijiet tagħna ma' Thanos

F'ċerta skala, jinqalgħu problemi li huma lil hinn mill-kapaċitajiet ta 'vanilla Prometheus. Kif taħżen b'mod affidabbli u ekonomiku petabytes ta 'dejta storika? Dan jista' jsir mingħajr ma jiġi kompromess il-ħin tar-rispons? Huwa possibbli li taċċessa l-metriċi kollha li jinsabu fuq servers Prometheus differenti b'talba API waħda? Hemm xi mod kif tikkombina data replikata miġbura bl-użu ta' Prometheus HA?

Biex nindirizzaw dawn il-kwistjonijiet, ħloqna Thanos. It-taqsimiet li ġejjin jiddeskrivu kif avviċinajna dawn il-kwistjonijiet u jispjegaw l-għanijiet tagħna.

Mistoqsija ta' dejta minn istanzi multipli ta' Prometheus (mistoqsija globali)

Prometheus joffri approċċ funzjonali għat-tqattigħ. Anke server wieħed Prometheus jipprovdi biżżejjed skalabbiltà biex jeħles lill-utenti mill-kumplessitajiet ta 'sharding orizzontali fi kważi l-każijiet kollha ta' użu.

Filwaqt li dan huwa mudell ta 'skjerament kbir, ħafna drabi huwa meħtieġ li taċċessa dejta fuq servers Prometheus differenti permezz ta' API jew UI waħda - ħarsa globali. Naturalment, huwa possibbli li jintwerew mistoqsijiet multipli f'panel Grafana wieħed, iżda kull mistoqsija tista 'titwettaq biss fuq server Prometheus wieħed. Min-naħa l-oħra, ma 'Thanos tista' tagħmel mistoqsija u taggrega data minn servers multipli Prometheus peress li huma kollha aċċessibbli minn endpoint wieħed.

Preċedentement, biex tikseb ħarsa globali f'Improbabbli, organizzajna l-istanzi tagħna ta' Prometheus f'diversi livelli Federazzjoni Ġerarkika. Dan kien ifisser li jinħoloq meta server wieħed Prometheus li jiġbor xi wħud mill-metriċi minn kull server tal-weraq.

Thanos - Prometheus Skalabbli

Dan l-approċċ kien problematiku. Dan irriżulta f'konfigurazzjonijiet aktar kumplessi, iż-żieda ta 'punt potenzjali ta' falliment addizzjonali, u l-applikazzjoni ta 'regoli kumplessi biex jiġi żgurat li l-endpoint federat jirċievi biss id-dejta li jeħtieġ. Barra minn hekk, dan it-tip ta 'federazzjoni ma jippermettix li tikseb ħarsa globali vera, peress li mhux id-dejta kollha hija disponibbli minn talba API waħda.

Relatat mill-qrib ma’ dan hemm ħarsa unifikata tad-dejta miġbura fuq servers Prometheus ta’ disponibbiltà għolja (HA). Il-mudell HA ta' Prometheus jiġbor id-dejta b'mod indipendenti darbtejn, li hija tant sempliċi li ma tistax tkun aktar sempliċi. Madankollu, l-użu ta 'dehra magħquda u deduplikata taż-żewġ flussi jkun ħafna aktar konvenjenti.

Naturalment, hemm ħtieġa għal servers Prometheus disponibbli ħafna. F'Improbabbli, nieħdu l-monitoraġġ tad-dejta minuta b'minuta tassew bis-serjetà, iżda li jkun hemm istanza waħda ta' Prometheus għal kull cluster huwa punt wieħed ta' falliment. Kwalunkwe żball ta 'konfigurazzjoni jew falliment tal-hardware jista' potenzjalment iwassal għat-telf ta 'dejta importanti. Anke skjerament sempliċi jista 'jikkawża tfixkil minuri fil-ġbir tal-metriċi minħabba li l-bidu mill-ġdid jista' jkun itwal b'mod sinifikanti mill-intervall tal-brix.

Ħażna affidabbli ta 'data storika

Il-ħażna tal-metriċi irħas, veloċi u fit-tul hija l-ħolma tagħna (kondiviża mill-biċċa l-kbira tal-utenti tal-Prometheus). F'Improbabbli, konna sfurzati nikkonfiguraw il-perjodu taż-żamma tal-metriċi għal disat ijiem (għal Prometheus 1.8). Dan iżid limiti ovvji għal kemm nistgħu nħarsu lura.

Prometheus 2.0 tjieb f’dan ir-rigward, peress li n-numru ta’ serje ta’ żmien m’għadux jaffettwa l-prestazzjoni ġenerali tas-server (ara. Nota ewlenija tal-KubeCon dwar Prometheus 2). Madankollu, Prometheus jaħżen id-dejta fuq disk lokali. Għalkemm il-kompressjoni tad-dejta b'effiċjenza għolja tista 'tnaqqas b'mod sinifikanti l-użu tal-SSD lokali, fl-aħħar mill-aħħar għad hemm limitu għall-ammont ta' dejta storika li tista 'tinħażen.

Barra minn hekk, f'Improbabbli aħna jimpurtahom mill-affidabbiltà, is-sempliċità u l-ispiża. Diski lokali kbar huma aktar diffiċli biex joperaw u back-up. Jiswew aktar u jeħtieġu aktar għodod ta 'backup, li jirriżultaw f'kumplessità bla bżonn.

It-tnaqqis tal-kampjuni

Ladarba bdejna naħdmu b'dejta storika, indunajna li hemm diffikultajiet fundamentali bil-big-O li jagħmlu l-mistoqsijiet aktar bil-mod u aktar bil-mod hekk kif naħdmu b'ġimgħat, xhur u snin ta 'dejta.

Is-soluzzjoni standard għal din il-problema tkun it-tnaqqis tal-kampjuni (downsampling) - tnaqqis tal-frekwenza tal-kampjunar tas-sinjal. Bit-tnaqqis tal-kampjuni, nistgħu "nnaqqas" għal medda ta 'żmien akbar u nżommu l-istess numru ta' kampjuni, u nżommu l-mistoqsijiet reattivi.

It-tnaqqis tal-kampjuni tad-dejta antika huwa rekwiżit inevitabbli ta 'kwalunkwe soluzzjoni ta' ħażna fit-tul u huwa lil hinn mill-ambitu ta 'vanilla Prometheus.

Għanijiet addizzjonali

Wieħed mill-għanijiet oriġinali tal-proġett Thanos kien li jintegra bla xkiel ma 'kwalunkwe installazzjoni eżistenti ta' Prometheus. It-tieni għan kien il-faċilità ta 'tħaddim b'ostakli minimi għad-dħul. Kwalunkwe dipendenzi għandhom ikunu faċilment sodisfatti kemm għall-utenti żgħar u kbar, li jfisser ukoll spiża bażi baxxa.

L-arkitettura ta' Thanos

Wara li elenkajna l-għanijiet tagħna fit-taqsima preċedenti, ejja naħdmu magħhom u naraw kif Thanos issolvi dawn il-problemi.

Veduta globali

Biex tikseb ħarsa globali fuq l-istanzi eżistenti tal-Prometheus, irridu ngħaqqdu punt tad-dħul tat-talba wieħed mas-servers kollha. Dan huwa eżattament dak li jagħmel il-komponent Thanos. Sidecar. Huwa skjerat ħdejn kull server Prometheus u jaġixxi bħala prokura, li jservi dejta Prometheus lokali permezz tal-gRPC Store API, li jippermetti li d-dejta tas-serje ta 'żmien tiġi rkuprata permezz ta' tag u medda ta 'żmien.

Fuq in-naħa l-oħra hemm il-komponent tal-Querier scale-out, mingħajr stat, li jagħmel ftit aktar milli sempliċement iwieġeb mistoqsijiet PromQL permezz tal-API standard Prometheus HTTP. Querier, Sidecar u komponenti oħra Thanos jikkomunikaw permezz protokoll tal-gossip.

Thanos - Prometheus Skalabbli

  1. Querier, malli jirċievi talba, jgħaqqad mas-server tal-API Store korrispondenti, jiġifieri, mas-Sidecars tagħna u jirċievi dejta tas-serje tal-ħin mis-servers korrispondenti tal-Prometheus.
  2. Wara dan, tgħaqqad it-tweġibiet u tesegwixxi mistoqsija PromQL fuqhom. Querier jista' jingħaqad kemm dejta disjoint kif ukoll dejta duplikata minn servers Prometheus HA.

Dan isolvi biċċa kbira tal-puzzle tagħna - tgħaqqad data minn servers Prometheus iżolati f'dehra waħda. Fil-fatt, Thanos jista 'jintuża biss għal din il-karatteristika. M'hemmx bżonn li jsiru bidliet għas-servers eżistenti tal-Prometheus!

Ħajja fuq l-ixkaffa bla limitu!

Madankollu, illum jew għada nkunu rridu naħżnu d-dejta lil hinn mill-ħin normali ta 'żamma ta' Prometheus. Aħna għażilna l-ħażna tal-oġġetti biex naħżnu dejta storika. Huwa disponibbli b'mod wiesa 'fi kwalunkwe cloud kif ukoll ċentri tad-dejta fuq il-post u huwa kosteffettiv ħafna. Barra minn hekk, kważi kull ħażna ta 'oġġetti hija disponibbli permezz tal-API S3 magħrufa sew.

Prometheus jikteb data minn RAM għal disk madwar kull sagħtejn. Il-blokka tad-dejta maħżuna fiha d-dejta kollha għal perjodu fiss ta 'żmien u hija immutabbli. Dan huwa konvenjenti ħafna għaliex Thanos Sidecar jista 'sempliċement iħares lejn id-direttorju tad-dejta tal-Prometheus u, hekk kif blokki ġodda jsiru disponibbli, jgħabbihom f'bramel tal-ħażna tal-oġġetti.

Thanos - Prometheus Skalabbli

It-tagħbija fil-ħażna tal-oġġett immedjatament wara l-kitba fuq id-disk tippermetti wkoll li żżomm is-sempliċità tal-barraxa (Prometheus u Thanos Sidecar). Li jissimplifika l-appoġġ, l-ispiża u d-disinn tas-sistema.

Kif tistgħu taraw, backup tad-data huwa sempliċi ħafna. Imma xi ngħidu dwar l-interrogazzjoni tad-dejta fil-ħażna tal-oġġetti?

Il-komponent Thanos Store jaġixxi bħala prokura biex tkun irkuprata data mill-ħażna tal-oġġetti. Bħal Thanos Sidecar, tipparteċipa fil-grupp tal-gossip u timplimenta l-API Store. B'dan il-mod, Querier eżistenti jista 'jittrattaha bħal Sidecar, bħala sors ieħor ta' data tas-serje taż-żmien - l-ebda konfigurazzjoni speċjali meħtieġa.

Thanos - Prometheus Skalabbli

Il-blokki tad-dejta tas-serje tal-ħin jikkonsistu f'diversi fajls kbar. It-tagħbija tagħhom fuq talba tkun pjuttost ineffiċjenti, u l-caching tagħhom lokalment ikun jeħtieġ ammont kbir ta 'memorja u spazju fuq disk.

Minflok, Store Gateway jaf kif jimmaniġġja l-format tal-ħażna Prometheus. Grazzi għal skedatur ta 'mistoqsijiet intelliġenti u caching biss il-partijiet ta' indiċi meħtieġa ta 'blokki, huwa possibbli li jitnaqqsu mistoqsijiet kumplessi għal numru minimu ta' talbiet HTTP għal fajls ta 'ħażna ta' oġġetti. B'dan il-mod, tista 'tnaqqas in-numru ta' talbiet b'erba 'sa sitt ordnijiet ta' kobor u tikseb ħinijiet ta 'rispons li huma ġeneralment diffiċli biex jiġu distinti minn talbiet għal dejta fuq SSD lokali.

Thanos - Prometheus Skalabbli

Kif muri fid-dijagramma ta 'hawn fuq, Thanos Querier inaqqas b'mod sinifikanti l-ispiża għal kull mistoqsija tad-dejta tal-ħażna tal-oġġetti billi juża l-format tal-ħażna Prometheus u jqiegħed id-dejta relatata ħdejn xulxin. Bl-użu ta 'dan l-approċċ, nistgħu ngħaqqdu ħafna talbiet uniċi f'numru minimu ta' operazzjonijiet bl-ingrossa.

Il-kompattazzjoni u t-tnaqqis tal-kampjuni

Ladarba blokka ġdida ta 'dejta tas-serje taż-żmien titgħabba b'suċċess fil-ħażna tal-oġġetti, nittrattawha bħala data "storika", li hija disponibbli immedjatament permezz tal-Store Gateway.

Madankollu, wara xi żmien, blokki minn sors wieħed (Prometheus b'Sidecar) jakkumulaw u ma jibqgħux jużaw il-potenzjal sħiħ ta 'indiċjar. Biex issolvi din il-problema, introduċejna komponent ieħor imsejjaħ Compactor. Sempliċement tapplika l-magna tal-kompattazzjoni lokali ta 'Prometheus għal data storika fil-ħażna ta' l-oġġetti u tista 'titħaddem bħala xogħol ta' lott perjodiku sempliċi.

Thanos - Prometheus Skalabbli

Grazzi għall-kompressjoni effiċjenti, mistoqsija dwar il-ħażna fuq perjodu twil ta 'żmien ma toħloqx problema f'termini ta' daqs tad-data. Madankollu, l-ispiża potenzjali tal-ispakkjar ta 'biljun valuri u t-tħaddim tagħhom permezz ta' proċessur tal-mistoqsijiet inevitabbilment se tirriżulta f'żieda drammatika fil-ħin tal-eżekuzzjoni tal-mistoqsijiet. Min-naħa l-oħra, peress li hemm mijiet ta 'punti ta' dejta għal kull pixel fuq l-iskrin, isir impossibbli li anki wieħed iħares id-dejta f'riżoluzzjoni sħiħa. Għalhekk, it-tnaqqis tal-kampjuni mhux biss huwa possibbli, iżda wkoll mhux se jwassal għal telf notevoli ta 'eżattezza.

Thanos - Prometheus Skalabbli

Biex tnaqqas id-dejta, Compactor kontinwament jiġbor id-dejta f'riżoluzzjoni ta 'ħames minuti u siegħa. Għal kull biċċa mhux maħduma kodifikata bl-użu ta 'kompressjoni TSDB XOR, huma maħżuna tipi differenti ta' data aggregata, bħal min, max jew somma għal blokka waħda. Dan jippermetti lil Querier jagħżel awtomatikament aggregat li huwa xieraq għal mistoqsija PromQL partikolari.

L-ebda konfigurazzjoni speċjali mhi meħtieġa biex l-utent juża data ta 'preċiżjoni mnaqqsa. Querier jaqleb awtomatikament bejn riżoluzzjonijiet differenti u dejta mhux ipproċessata hekk kif l-utent iżumni 'l ġewwa u 'l barra. Jekk mixtieq, l-utent jista 'jikkontrolla dan direttament permezz tal-parametru "pass" fit-talba.

Peress li l-ispiża tal-ħażna ta 'GB wieħed hija baxxa, b'mod awtomatiku Thanos jaħżen data mhux ipproċessata, data ta' riżoluzzjoni ta 'ħames minuti u siegħa. M'hemmx bżonn li titħassar id-dejta oriġinali.

Regoli ta' reġistrazzjoni

Anke ma 'Thanos, ir-regoli ta' reġistrazzjoni huma parti essenzjali mill-munzell ta 'monitoraġġ. Huma jnaqqsu l-kumplessità, il-latenza, u l-ispiża tal-mistoqsijiet. Huma wkoll konvenjenti għall-utenti biex jiksbu data aggregata bil-metriċi. Thanos huwa bbażat fuq każijiet ta 'vanilla Prometheus, għalhekk huwa perfettament aċċettabbli li taħżen regoli ta' reġistrazzjoni u regoli ta 'twissija fuq server Prometheus eżistenti. Madankollu, f'xi każijiet dan jista' ma jkunx biżżejjed:

  • Twissija u regola globali (pereżempju, twissija meta servizz ma jaħdimx fuq aktar minn tnejn minn tliet gruppi).
  • Regola għal data barra l-ħażna lokali.
  • Ix-xewqa li taħżen ir-regoli u t-twissijiet kollha f'post wieħed.

Thanos - Prometheus Skalabbli

Għal dawn il-każijiet kollha, Thanos jinkludi komponent separat imsejjaħ Ruler, li jikkalkula r-regola u t-twissija permezz tal-Mistoqsijiet Thanos. Billi jipprovdi StoreAPI magħruf sew, in-node Query jista’ jaċċessa metriċi kkalkulati friski. Aktar tard huma wkoll maħżuna fil-ħażna ta 'oġġetti u magħmula disponibbli permezz tal-Store Gateway.

Il-Qawwa ta' Thanos

Thanos huwa flessibbli biżżejjed biex jiġi personalizzat skond il-bżonnijiet tiegħek. Dan huwa speċjalment utli meta jemigra minn Prometheus sempliċi. Ejja nġabru malajr dak li tgħallimna dwar il-komponenti Thanos b'eżempju rapidu. Ara kif tieħu l-vanilla Prometheus tiegħek fid-dinja tal-“ħażna ta’ metriċi bla limitu”:

Thanos - Prometheus Skalabbli

  1. Żid Thanos Sidecar mas-servers Prometheus tiegħek - pereżempju, kontenitur sidecar f'pod Kubernetes.
  2. Uża repliki multipli ta' Thanos Querier biex tkun tista' tara d-dejta. F'dan l-istadju huwa faċli li twaqqaf gossip bejn Scraper u Querier. Biex tiċċekkja l-interazzjoni tal-komponenti, uża l-metrika 'thanos_cluster_members'.

Dawn iż-żewġ passi biss huma biżżejjed biex jipprovdu viżjoni globali u deduplikazzjoni tad-dejta bla xkiel minn repliki potenzjali ta' Prometheus HA! Sempliċement qabbad id-dashboards tiegħek mal-endpoint HTTP Querier jew uża l-UI Thanos direttament.

Madankollu, jekk teħtieġ backup tal-metriċi u ħażna fit-tul, ser ikollok bżonn timla tliet passi oħra:

  1. Oħloq barmil AWS S3 jew GCS. Ikkonfigura Sidecar biex tikkopja dejta f'dawn il-bramel. Il-ħażna tad-dejta lokali issa tista' tiġi minimizzata.
  2. Uża Store Gateway u qabbadha mal-grupp ta' gossip eżistenti tiegħek. Issa tista 'tfittex id-data backup!
  3. Uża Compactor biex ittejjeb l-effiċjenza tal-mistoqsija fuq perjodi twal ta 'żmien bl-użu ta' kompattazzjoni u teħid ta' kampjuni.

Jekk trid tkun taf aktar, toqgħodx lura milli tagħti ħarsa lejn tagħna eżempji manifest kubernetes и bidu beda!

F'ħames passi biss, biddel lil Prometheus f'sistema ta 'monitoraġġ affidabbli b'ħarsa globali, ħin ta' ħażna illimitat u disponibbiltà għolja potenzjali ta 'metriċi.

Iġbed it-talba: għandna bżonnek!

Thanos kien proġett open source mill-bidu nett. L-integrazzjoni bla xkiel ma 'Prometheus u l-abbiltà li tuża biss porzjon ta' Thanos tagħmilha għażla eċċellenti biex is-sistema ta 'monitoraġġ tiegħek titkabbar mingħajr sforz.

Aħna dejjem nilqgħu t-Talbiet u l-Kwistjonijiet ta' GitHub. Sadanittant, tħossok liberu li tikkuntattjana permezz ta' Github Issues jew slack Improbabbli-eng #thanosjekk għandek mistoqsijiet jew feedback, jew trid taqsam l-esperjenza tiegħek tużah! Jekk tixtieq dak li nagħmlu fl-Improbable, toqgħodx lura milli tikkuntattjana - dejjem ikollna postijiet vakanti!

Tgħallem aktar dwar il-kors.

Sors: www.habr.com

Żid kumment