It-traduzzjoni tal-artiklu tħejjiet speċifikament għall-istudenti tal-kors
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ġġ
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
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
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.
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 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.
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
- 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.
- 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.
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.
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.
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.
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.
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.
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”:
- Żid Thanos Sidecar mas-servers Prometheus tiegħek - pereżempju, kontenitur sidecar f'pod Kubernetes.
- 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:
- 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.
- Uża Store Gateway u qabbadha mal-grupp ta' gossip eżistenti tiegħek. Issa tista 'tfittex id-data backup!
- 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
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!
Aħna dejjem nilqgħu t-Talbiet u l-Kwistjonijiet ta' GitHub. Sadanittant, tħossok liberu li tikkuntattjana permezz ta' Github Issues jew slack
Sors: www.habr.com