Thanos - Évolutive Prometheus

Tradiksyon atik la te prepare espesyalman pou elèv yo nan kou a "Prattik ak zouti DevOps".

Fabian Reinartz se yon devlopè lojisyèl, Go fanatic, ak rezoud pwoblèm. Li se tou yon mentè Prometheus ak ko-fondatè Kubernetes SIG instrumentation. Nan tan lontan, li te yon enjenyè pwodiksyon nan SoundCloud epi li te dirije ekip siveyans nan CoreOS. Kounye a travay nan Google.

Bartek Plotka - Enfrastrikti Engineer nan Improbable. Li enterese nan nouvo teknoloji ak pwoblèm nan sistèm distribiye. Li gen eksperyans nan pwogram ba nivo nan Intel, eksperyans kontribitè nan Mesos, ak eksperyans pwodiksyon SRE nan klas mondyal nan Improbable. Dedye a amelyore mond lan nan mikwosèvis. Twa renmen li yo: Golang, sous louvri ak volebòl.

Lè w gade pwodwi bato nou an SpatialOS, ou ka devine ke Improbable mande pou yon enfrastrikti nwaj trè dinamik, echèl mondyal ak plizyè douzèn grap Kubernetes. Nou te youn nan premye moun ki te sèvi ak yon sistèm siveyans Prometheus. Prometheus kapab swiv dè milyon de mezi an tan reyèl epi li vini ak yon langaj rekèt pwisan ki pèmèt ou ekstrè enfòmasyon ou bezwen an.

Senplisite ak fyab nan Prometheus se youn nan avantaj prensipal li yo. Sepandan, yon fwa nou te pase yon sèten echèl, nou te rankontre plizyè dezavantaj. Pou rezoud pwoblèm sa yo nou devlope Tano se yon pwojè sous louvri ki te kreye pa Improbable pou transfòme san pwoblèm gwoup Prometheus ki egziste deja yo nan yon sistèm siveyans sèl ak depo done istorik san limit. Thanos disponib sou Github isit la.

Rete ajou ak dènye nouvèl ki soti nan Improbable.

Objektif nou ak Thanos

Nan yon sèten echèl, pwoblèm rive ki depase kapasite vaniy Prometheus. Ki jan yo fyab ak ekonomikman estoke petabyte nan done istorik? Èske sa ka fèt san yo pa konpwomèt tan repons? Èske li posib jwenn aksè nan tout paramèt ki sitiye sou diferan sèvè Prometheus ak yon sèl demann API? Èske gen nenpòt fason pou konbine done repwodwi kolekte lè l sèvi avèk Prometheus HA?

Pou adrese pwoblèm sa yo, nou te kreye Thanos. Seksyon sa yo dekri fason nou te apwoche pwoblèm sa yo epi eksplike objektif nou yo.

Kesyon done ki soti nan plizyè egzanp Prometheus (rekèt mondyal)

Prometheus ofri yon apwòch fonksyonèl nan sharding. Menm yon sèl sèvè Prometheus bay ase évolutivité pou libere itilizatè yo nan konpleksite yo nan sharding orizontal nan prèske tout ka itilize.

Pandan ke sa a se yon modèl deplwaman gwo, li souvan nesesè jwenn aksè nan done sou diferan sèvè Prometheus atravè yon sèl API oswa UI - yon View global. Natirèlman, li posib pou montre plizyè demann nan yon sèl panèl Grafana, men chak demann ka fèt sèlman sou yon sèl sèvè Prometheus. Nan lòt men an, ak Thanos ou ka rechèch ak total done ki soti nan plizyè sèvè Prometheus paske yo tout aksesib nan yon sèl pwen final.

Anvan sa, pou nou ka jwenn yon vi global nan Improbable, nou te òganize enstans Prometheus nou yo nan yon plizyè nivo. Federasyon yerachik. Sa vle di kreye yon sèl meta sèvè Prometheus ki kolekte kèk nan mezi yo nan chak sèvè fèy.

Thanos - Évolutive Prometheus

Apwòch sa a te pwouve pwoblèm. Sa a te lakòz konfigirasyon pi konplèks, adisyon nan yon pwen echèk potansyèl adisyonèl, ak aplikasyon an nan règ konplèks asire ke pwen final federasyon an sèlman resevwa done li bezwen yo. Anplis de sa, kalite federasyon sa a pa pèmèt ou jwenn yon vi global vre, paske se pa tout done ki disponib nan yon sèl demann API.

Gen anpil rapò ak sa a se yon gade inifye nan done yo kolekte sou gwo disponiblite (HA) sèvè Prometheus. Modèl HA Prometheus a poukont kolekte done de fwa, ki tèlman senp li pa ta ka pi senp. Sepandan, lè l sèvi avèk yon View konbine ak deduplike nan tou de kouran yo ta pi bon.

Natirèlman, gen yon bezwen pou serveurs Prometheus trè disponib. Nan Improbable, nou pran siveyans done minit pa minit vrèman seryezman, men gen yon egzanp Prometheus pou chak gwoup se yon sèl pwen echèk. Nenpòt erè konfigirasyon oswa echèk pyès ki nan konpitè ka potansyèlman mennen nan pèt done enpòtan yo. Menm yon deplwaman senp ka lakòz dezòd minè nan koleksyon mezi paske rekòmanse yo ka siyifikativman pi long pase entèval la grate.

Depo serye nan done istorik

Depo mezi bon mache, rapid, alontèm se rèv nou (ki pataje pa pifò itilizatè Prometheus). Nan Improbable, nou te fòse yo configured peryòd retansyon mezi a nèf jou (pou Prometheus 1.8). Sa a ajoute limit evidan nan ki jan lwen tounen nou ka gade.

Prometheus 2.0 te amelyore nan sans sa a, depi kantite seri tan pa afekte pèfòmans jeneral sèvè a ankò (gade. Konte prensipal KubeCon sou Prometheus 2). Sepandan, Prometheus estoke done sou disk lokal yo. Malgre ke konpresyon done segondè-efikasite ka siyifikativman redwi itilizasyon lokal SSD, finalman gen toujou yon limit nan kantite done istorik ki ka estoke.

Anplis de sa, nan Improbable nou pran swen sou fyab, senplisite ak pri. Gwo disk lokal yo pi difisil pou opere ak tounen moute. Yo koute plis epi mande plis zouti backup, sa ki lakòz konpleksite nesesè.

Downsampling

Yon fwa nou te kòmanse travay ak done istorik, nou reyalize ke gen difikilte fondamantal ak big-O ki fè demann pi dousman ak pi dousman pandan n ap travay ak semèn, mwa ak ane done yo.

Solisyon estanda a pwoblèm sa a ta dwe desann echantiyon (downsampling) - diminye frekans echantiyon siyal la. Avèk downsampling, nou ka "scale desann" nan yon pi gwo ranje tan epi kenbe menm kantite echantiyon yo, kenbe demann yo reponn.

Downsampling ansyen done se yon kondisyon inevitab nan nenpòt solisyon depo alontèm epi li pi lwen pase sijè ki abòde lan vaniy Prometheus.

Objektif adisyonèl

Youn nan objektif orijinal pwojè Thanos se te entegre san pwoblèm ak nenpòt enstalasyon Prometheus ki egziste deja. Dezyèm objektif la se te fasilite operasyon ak baryè minim pou antre. Nenpòt depandans yo ta dwe fasil satisfè pou tou de ti ak gwo itilizatè, ki vle di tou yon pri baz ki ba.

Achitekti Thanos

Apre lis objektif nou yo nan seksyon anvan an, ann travay atravè yo epi wè ki jan Thanos rezoud pwoblèm sa yo.

View global

Pou jwenn yon View global sou tèt egzanp Prometheus ki deja egziste, nou bezwen konekte yon sèl pwen antre demann ak tout sèvè. Sa a se egzakteman sa eleman Thanos fè. Sidecar. Li deplwaye akote chak sèvè Prometheus epi li aji kòm yon prokurasyon, k ap sèvi done lokal Prometheus atravè API gRPC Store, sa ki pèmèt done seri tan yo dwe rekipere pa tag ak seri tan.

Lòt bò a se echèl-out, apatrid Querier eleman, ki fè yon ti kras plis pase jis reponn demann PromQL atravè estanda Prometheus HTTP API. Querier, Sidecar ak lòt konpozan Thanos kominike atravè pwotokòl tripotay.

Thanos - Évolutive Prometheus

  1. Querier, lè li resevwa yon demann, konekte ak sèvè API Store ki koresponn lan, se sa ki, ak Sidecar nou yo epi li resevwa done seri tan nan sèvè Prometheus korespondan yo.
  2. Apre sa, li konbine repons yo epi egzekite yon rechèch PromQL sou yo. Querier ka rantre tou de done disjoint ak done kopi soti nan serveurs Prometheus HA.

Sa a rezoud yon gwo moso nan devinèt nou an - konbine done ki soti nan sèvè izole Prometheus nan yon sèl gade. An reyalite, Thanos ka itilize sèlman pou karakteristik sa a. Ou pa bezwen fè okenn chanjman nan serveurs Prometheus ki egziste deja!

Lavi etajè san limit!

Sepandan, pi bonè oswa pita nou pral vle estoke done pi lwen pase tan nòmal retansyon Prometheus la. Nou te chwazi depo objè pou estoke done istorik. Li disponib lajman nan nenpòt nwaj osi byen ke sant done sou lokal yo epi li trè efikas. Anplis de sa, prèske nenpòt depo objè ki disponib atravè byen li te ye S3 API a.

Prometheus ekri done ki soti nan RAM sou disk apeprè chak de zè de tan. Blòk done ki estoke a gen tout done yo pou yon peryòd tan fiks epi li pa ka chanje. Sa a se trè pratik paske Thanos Sidecar ka tou senpleman gade nan anyè done Prometheus la epi, kòm nouvo blòk vin disponib, chaje yo nan bokit depo objè.

Thanos - Évolutive Prometheus

Chaje nan depo objè imedyatman apre ekri sou disk pèmèt ou kenbe senplisite grate a (Prometheus ak Thanos Sidecar). Ki senplifye sipò, pri ak konsepsyon sistèm.

Kòm ou ka wè, backup done se trè senp. Men, sa ki sou demann done nan depo objè?

Eleman Thanos Store la aji kòm yon prokurasyon pou rekipere done nan depo objè. Menm jan ak Thanos Sidecar, li patisipe nan gwoup tripotay la epi aplike API Store la. Nan fason sa a, Querier ki deja egziste ka trete li tankou yon Sidecar, kòm yon lòt sous done seri tan - pa gen okenn konfigirasyon espesyal obligatwa.

Thanos - Évolutive Prometheus

Blòk done seri tan yo konpoze de plizyè dosye gwo. Chaje yo sou demann ta dwe byen rezèvwa, ak kachèt yo lokalman ta mande pou yon gwo kantite memwa ak espas ki gen kapasite.

Olye de sa, Store Gateway konnen ki jan yo okipe fòma depo Prometheus la. Mèsi a yon pwogramasyon rechèch entelijan ak kachèt sèlman pati endèks ki nesesè nan blòk, li posib diminye demann konplèks nan yon kantite minimòm demann HTTP nan dosye depo objè. Nan fason sa a, ou ka diminye kantite demann pa kat a sis lòd nan grandè epi reyalize tan repons ki jeneralman difisil pou fè distenksyon ant demann ak done sou yon SSD lokal yo.

Thanos - Évolutive Prometheus

Jan yo montre nan dyagram ki pi wo a, Thanos Querier siyifikativman diminye pri pou chak demann nan done depo objè lè li itilize fòma depo Prometheus la epi mete done ki gen rapò kòt a kòt. Sèvi ak apwòch sa a, nou ka konbine anpil demann sèl nan yon kantite minimòm operasyon esansyèl.

Konpak ak desann echantiyon

Yon fwa yon nouvo blòk done seri tan yo chaje avèk siksè nan depo objè, nou trete li kòm done "istorik", ki disponib imedyatman atravè Store Gateway la.

Sepandan, apre kèk tan, blòk ki soti nan yon sèl sous (Prometheus ak Sidecar) akimile epi yo pa sèvi ak tout potansyèl la Indexing ankò. Pou rezoud pwoblèm sa a, nou prezante yon lòt eleman ki rele Compactor. Li tou senpleman aplike motè lokal konpaksyon Prometheus a nan done istorik nan depo objè epi li ka kouri kòm yon senp travay pakèt peryodik.

Thanos - Évolutive Prometheus

Mèsi a konpresyon efikas, demann depo a sou yon peryòd tan ki long pa poze yon pwoblèm an tèm de gwosè done yo. Sepandan, pri potansyèl pou debake yon milya valè ak kouri yo atravè yon processeur rechèch pral inevitableman rezilta nan yon ogmantasyon dramatik nan tan egzekisyon demann. Nan lòt men an, depi gen dè santèn de pwen done pou chak pixel sou ekran an, li vin enposib menm visualize done yo nan rezolisyon konplè. Kidonk, downsampling se pa sèlman posib, men tou, pa pral mennen nan yon pèt aparan nan presizyon.

Thanos - Évolutive Prometheus

Pou pran echantiyon done, Compactor kontinyèlman rasanble done nan yon rezolisyon senk minit ak yon èdtan. Pou chak moso anvan tout koreksyon kode lè l sèvi avèk konpresyon TSDB XOR, diferan kalite done total yo estoke, tankou min, max oswa sòm pou yon blòk. Sa a pèmèt Querier otomatikman chwazi yon total ki apwopriye pou yon demann PromQL bay.

Pa gen okenn konfigirasyon espesyal obligatwa pou itilizatè a itilize done presizyon redwi. Querier otomatikman chanje ant diferan rezolisyon ak done anvan tout koreksyon kòm itilizatè a rale nan ak soti. Si ou vle, itilizatè a ka kontwole sa a dirèkteman atravè paramèt "etap" nan demann lan.

Depi pri pou estoke yon GB ba, Thanos estoke done anvan tout koreksyon, done rezolisyon senk minit ak yon èdtan. Pa gen okenn nesesite pou efase done orijinal yo.

Règ anrejistreman

Menm ak Thanos, règ anrejistreman yo se yon pati esansyèl nan pil siveyans la. Yo redwi konpleksite, latansi, ak pri demann yo. Yo tou pratik pou itilizatè yo jwenn done total pa mezi. Thanos baze sou egzanp vaniy Prometheus, kidonk li parfe akseptab pou konsève règ anrejistreman ak règ alèt sou yon sèvè Prometheus ki egziste deja. Sepandan, nan kèk ka sa a ka pa ase:

  • Alèt mondyal ak règ (pa egzanp, yon alèt lè yon sèvis pa travay sou plis pase de nan twa gwoup).
  • Règ pou done deyò depo lokal yo.
  • Dezi a nan magazen tout règ ak alèt nan yon sèl kote.

Thanos - Évolutive Prometheus

Pou tout ka sa yo, Thanos gen ladan yon eleman separe ki rele Ruler, ki kalkile règ ak alèt atravè Thanos Queries. Lè yo bay yon StoreAPI byen li te ye, ne Rechèch la ka jwenn aksè nan mezi ki fèk kalkile. Apre sa, yo estoke tou nan depo objè epi yo disponib atravè Store Gateway la.

Pouvwa Thanos

Thanos se fleksib ase yo dwe Customized selon bezwen ou yo. Sa a itil sitou lè w ap migrasyon soti nan plenn Prometheus. An nou byen vit refè sa nou te aprann sou konpozan Thanos ak yon egzanp rapid. Men ki jan yo pran vaniy Prometheus ou a nan mond lan nan "depo mezi san limit":

Thanos - Évolutive Prometheus

  1. Ajoute Thanos Sidecar nan serveurs Prometheus ou yo - pou egzanp, yon veso sidecar nan yon gous Kubernetes.
  2. Deplwaye plizyè kopi Thanos Querier pou kapab wè done yo. Nan etap sa a li fasil pou mete kanpe tripotay ant Scraper ak Querier. Pou tcheke entèraksyon eleman yo, sèvi ak metrik 'thanos_cluster_members'.

Jis de etap sa yo ase pou bay yon vi mondyal ak deduplication done san pwoblèm soti nan kopi potansyèl Prometheus HA! Senpleman konekte tablodbò ou yo ak pwen final Querier HTTP oswa itilize Thanos UI dirèkteman.

Sepandan, si ou bezwen backup mezi ak depo alontèm, w ap bezwen ranpli twa etap plis:

  1. Kreye yon bokit AWS S3 oswa GCS. Konfigure Sidecar pou kopye done nan bokit sa yo. Depo done lokal yo kapab kounye a minimize.
  2. Deplwaye Store Gateway epi konekte li ak gwoup tripotay ki egziste deja. Koulye a, ou ka rechèch done yo fè bak!
  3. Deplwaye Compactor pou amelyore efikasite rechèch sou peryòd tan ki long lè l sèvi avèk konpaksyon ak downsampling.

Si ou vle konnen plis, pa ezite pran yon gade nan nou an kubernetes manifeste egzanp и trape te kòmanse!

Nan senk etap sèlman, nou te fè Prometheus nan yon sistèm siveyans serye ak vizyon mondyal, tan depo san limit ak potansyèl gwo disponiblite nan mezi.

Rale demann: nou bezwen ou!

Tano te yon pwojè sous louvri depi nan kòmansman an. Entegrasyon san pwoblèm ak Prometheus ak kapasite nan sèvi ak jis yon pòsyon nan Thanos fè li yon chwa ekselan pou dekale sistèm siveyans ou san efò.

Nou toujou akeyi demann ak pwoblèm GitHub Pull. Antretan, ou lib pou kontakte nou via Github Issues oswa slack Improbable-eng #thanossi ou gen kesyon oswa fidbak, oswa ou vle pataje eksperyans ou lè l sèvi avèk li! Si ou renmen sa nou fè nan Improbable, pa ezite kontakte nou - nou toujou gen pòs vid!

Aprann plis sou kou a.

Sous: www.habr.com

Add nouvo kòmantè