Thanos - Scalable Prometheus

Itumọ nkan naa ti pese ni pataki fun awọn ọmọ ile-iwe ti iṣẹ-ẹkọ naa "Awọn iṣe DevOps ati awọn irinṣẹ".

Fabian Reinartz ni a software Olùgbéejáde, Lọ fanatic, ati isoro solver. O tun jẹ olutọju Prometheus ati oludasile ti Kubernetes SIG ohun elo. Ni iṣaaju, o jẹ onimọ-ẹrọ iṣelọpọ ni SoundCloud ati mu ẹgbẹ ibojuwo ni CoreOS. Lọwọlọwọ ṣiṣẹ ni Google.

Bartek Plotka - Infrastructure Engineer ni improbable. O nifẹ si awọn imọ-ẹrọ tuntun ati awọn iṣoro ti awọn eto pinpin. O ni iriri siseto ipele kekere ni Intel, iriri oluranlọwọ ni Mesos, ati iriri iṣelọpọ SRE kilasi agbaye ni Improbable. Igbẹhin si ilọsiwaju agbaye ti awọn iṣẹ microservices. Awọn ifẹ mẹta rẹ: Golang, orisun ṣiṣi ati volleyball.

Wiwo ọja flagship wa SpatialOS, o le gboju pe Improbable nilo agbara giga, awọn amayederun awọsanma ti iwọn agbaye pẹlu awọn dosinni ti awọn iṣupọ Kubernetes. A jẹ ọkan ninu awọn akọkọ lati lo eto ibojuwo Ipolowo. Prometheus ni agbara lati ṣe atẹle awọn miliọnu awọn metiriki ni akoko gidi ati pe o wa pẹlu ede ibeere ti o lagbara ti o fun ọ laaye lati yọkuro alaye ti o nilo.

Irọrun ati igbẹkẹle ti Prometheus jẹ ọkan ninu awọn anfani akọkọ rẹ. Bibẹẹkọ, ni kete ti a ti kọja iwọn kan, a pade ọpọlọpọ awọn alailanfani. Lati yanju awọn iṣoro wọnyi a ti ni idagbasoke Thanos jẹ iṣẹ akanṣe orisun ṣiṣi ti a ṣẹda nipasẹ Improbable lati yi awọn iṣupọ Prometheus pada lainidi sinu eto ibojuwo kan pẹlu ibi ipamọ data itan ailopin. Thanos wa lori Github nibi.

Duro titi di oni pẹlu awọn iroyin tuntun lati Improbable.

Awọn ibi-afẹde wa pẹlu Thanos

Ni iwọn kan, awọn iṣoro dide ti o kọja awọn agbara ti fanila Prometheus. Bii o ṣe le ni igbẹkẹle ati ti ọrọ-aje tọju awọn petabytes ti data itan? Njẹ eyi le ṣee ṣe laisi idinku akoko idahun bi? Ṣe o ṣee ṣe lati wọle si gbogbo awọn metiriki ti o wa lori oriṣiriṣi olupin Prometheus pẹlu ibeere API kan bi? Njẹ ọna eyikeyi wa lati darapo data ẹda ti a gba ni lilo Prometheus HA?

Lati koju awọn ọran wọnyi, a ṣẹda Thanos. Àwọn apá tó tẹ̀ lé e yìí ṣàpèjúwe bí a ṣe ń sún mọ́ àwọn ọ̀ràn wọ̀nyí tí a sì ń ṣàlàyé àwọn góńgó wa.

Ibeere data lati awọn iṣẹlẹ Prometheus pupọ (ibeere agbaye)

Prometheus nfunni ni ọna iṣẹ ṣiṣe si sharding. Paapaa olupin Prometheus kan n pese iwọn ti o to lati fun awọn olumulo laaye lati awọn eka ti sharding petele ni o fẹrẹ to gbogbo awọn ọran lilo.

Lakoko ti eyi jẹ awoṣe imuṣiṣẹ nla, o jẹ pataki nigbagbogbo lati wọle si data lori oriṣiriṣi olupin Prometheus nipasẹ API kan tabi UI kan - wiwo agbaye. Nitoribẹẹ, o ṣee ṣe lati ṣafihan awọn ibeere pupọ ni igbimọ Grafana kan, ṣugbọn ibeere kọọkan le ṣee ṣe lori olupin Prometheus kan. Ni apa keji, pẹlu Thanos o le beere ati ṣajọ data lati awọn olupin Prometheus pupọ nitori gbogbo wọn wa lati aaye ipari kan.

Ni iṣaaju, lati gba wiwo agbaye ni Iṣeṣe, a ṣeto awọn iṣẹlẹ Prometheus wa si ipele pupọ. Federation akosoagbasomode. Eyi tumọ si ṣiṣẹda olupin meta Prometheus kan ti o gba diẹ ninu awọn metiriki lati ọdọ olupin ewe kọọkan.

Thanos - Scalable Prometheus

Ọna yii jẹ iṣoro. Eyi ti yorisi awọn atunto eka diẹ sii, afikun ti aaye ikuna afikun ti o pọju, ati ohun elo ti awọn ofin idiju lati rii daju pe aaye ipari federated nikan gba data ti o nilo. Ni afikun, iru apapo yii ko gba ọ laaye lati ni iwoye agbaye ni otitọ, nitori kii ṣe gbogbo data wa lati ibeere API kan.

Ni ibatan si eyi jẹ wiwo iṣọkan ti data ti a gba lori wiwa giga (HA) awọn olupin Prometheus. Awoṣe Prometheus 'HA ni ominira gba data lẹẹmeji, eyiti o rọrun pupọ ko le rọrun. Bibẹẹkọ, lilo apapọ ati wiwo iyasọtọ ti awọn ṣiṣan mejeeji yoo jẹ irọrun diẹ sii.

Nitoribẹẹ, iwulo wa fun awọn olupin Prometheus ti o wa pupọ. Ni improbable, a ṣe abojuto data iṣẹju-iṣẹju-iṣẹju ni pataki ni pataki, ṣugbọn nini apẹẹrẹ Prometheus kan fun iṣupọ jẹ aaye ikuna kan. Eyikeyi aṣiṣe iṣeto tabi ikuna hardware le ja si isonu ti data pataki. Paapaa imuṣiṣẹ ti o rọrun le fa awọn idalọwọduro kekere ni ikojọpọ awọn metiriki nitori awọn atunbere le jẹ pataki to gun ju aarin gbigbẹ lọ.

Gbẹkẹle ipamọ ti itan data

Olowo poku, yara, ibi ipamọ awọn metiriki igba pipẹ jẹ ala wa (pín nipasẹ ọpọlọpọ awọn olumulo Prometheus). Ni improbable, a fi agbara mu lati tunto akoko idaduro awọn metiriki si awọn ọjọ mẹsan (fun Prometheus 1.8). Eyi ṣe afikun awọn opin ti o han gbangba si bawo ni sẹhin ti a le wo.

Prometheus 2.0 ti ni ilọsiwaju ni ọran yii, nitori nọmba awọn jara akoko ko ni ipa lori iṣẹ gbogbogbo ti olupin naa (wo. KubeCon koko ọrọ nipa Prometheus 2). Sibẹsibẹ, Prometheus tọju data lori disiki agbegbe. Botilẹjẹpe funmorawon data ṣiṣe-giga le dinku lilo SSD agbegbe ni pataki, nikẹhin tun wa opin si iye data itan ti o le fipamọ.

Ni afikun, ni Improbable a bikita nipa igbẹkẹle, ayedero ati idiyele. Awọn disiki agbegbe ti o tobi julọ nira sii lati ṣiṣẹ ati ṣe afẹyinti. Wọn jẹ diẹ sii ati nilo awọn irinṣẹ afẹyinti diẹ sii, ti o mu abajade idiju ti ko wulo.

Isalẹjade

Ni kete ti a bẹrẹ ṣiṣẹ pẹlu data itan, a rii pe awọn iṣoro ipilẹ wa pẹlu nla-O ti o jẹ ki awọn ibeere lọra ati losokepupo bi a ṣe n ṣiṣẹ pẹlu awọn ọsẹ, awọn oṣu, ati awọn ọdun ti data.

Ojutu boṣewa si iṣoro yii yoo jẹ downsampling (downsampling) - idinku igbohunsafẹfẹ iṣapẹẹrẹ ifihan agbara. Pẹlu downsampling, a le "iwọn si isalẹ" si akoko ti o tobi ju ati ki o ṣetọju nọmba kanna ti awọn ayẹwo, fifi awọn ibeere ṣe idahun.

Ṣiṣejade data atijọ jẹ ibeere ti ko ṣeeṣe ti eyikeyi ojutu ibi ipamọ igba pipẹ ati pe o kọja opin ti fanila Prometheus.

Awọn afikun afojusun

Ọkan ninu awọn ibi-afẹde atilẹba ti iṣẹ akanṣe Thanos ni lati ṣepọ lainidi pẹlu awọn fifi sori ẹrọ Prometheus eyikeyi ti o wa. Ibi-afẹde keji jẹ irọrun ti iṣẹ pẹlu awọn idena kekere si titẹsi. Eyikeyi awọn igbẹkẹle yẹ ki o ni itẹlọrun ni irọrun fun awọn olumulo kekere ati nla, eyiti o tun tumọ si idiyele ipilẹ kekere.

Thanos faaji

Lẹhin ti ṣe atokọ awọn ibi-afẹde wa ni apakan ti tẹlẹ, jẹ ki a ṣiṣẹ nipasẹ wọn ki a wo bii Thanos ṣe yanju awọn iṣoro wọnyi.

Wiwo agbaye

Lati gba wiwo agbaye lori oke awọn iṣẹlẹ Prometheus ti o wa tẹlẹ, a nilo lati sopọ aaye titẹsi ibeere kan si gbogbo awọn olupin. Eyi ni deede ohun ti paati Thanos ṣe. Ẹrọ. O ti wa ni ransogun tókàn si kọọkan Prometheus olupin ati ki o ìgbésẹ bi a aṣoju, sìn agbegbe Prometheus data nipasẹ gRPC Store API, gbigba akoko jara data lati wa ni gba pada nipa tag ati akoko ibiti.

Ni apa keji ni iwọn-jade, paati Querier ti ko ni ipinlẹ, eyiti o ṣe diẹ sii ju o kan dahun awọn ibeere PromQL nipasẹ boṣewa Prometheus HTTP API. Querier, Sidecar ati awọn ẹya Thanos miiran ṣe ibaraẹnisọrọ nipasẹ ofofo Ilana.

Thanos - Scalable Prometheus

  1. Querier, lori gbigba ibeere kan, sopọ si olupin API itaja ti o baamu, iyẹn ni, si awọn Sidecars wa ati gba data jara akoko lati awọn olupin Prometheus ti o baamu.
  2. Lẹhin iyẹn, o dapọ awọn idahun ati ṣiṣe ibeere PromQL kan lori wọn. Querier le dapọ awọn data iyatọ mejeeji ati data ẹda-iwe lati awọn olupin Prometheus HA.

Eyi yanju nkan pataki ti adojuru wa - apapọ data lati awọn olupin Prometheus ti o ya sọtọ sinu wiwo ẹyọkan. Ni otitọ, Thanos le ṣee lo fun ẹya yii nikan. Ko si awọn ayipada nilo lati ṣe si awọn olupin Prometheus ti o wa tẹlẹ!

Aye selifu ailopin!

Sibẹsibẹ, pẹ tabi ya a yoo fẹ lati tọju data kọja akoko idaduro Prometheus deede. A yan ibi ipamọ ohun lati tọju data itan. O wa ni ibigbogbo ni eyikeyi awọsanma bi daradara bi awọn ile-iṣẹ data agbegbe ati pe o munadoko pupọ. Ni afikun, fere eyikeyi ibi ipamọ ohun kan wa nipasẹ S3 API ti a mọ daradara.

Prometheus kọ data lati Ramu si disk ni gbogbo wakati meji. Àkọsílẹ data ti o fipamọ ni gbogbo data fun akoko ti o wa titi ati pe ko le yipada. Eyi jẹ irọrun pupọ nitori Thanos Sidecar le jiroro ni wo iwe ilana data Prometheus ati, bi awọn bulọọki tuntun ṣe wa, gbe wọn sinu awọn garawa ibi ipamọ ohun.

Thanos - Scalable Prometheus

Gbigbe sinu ibi ipamọ ohun lẹsẹkẹsẹ lẹhin kikọ si disk tun gba ọ laaye lati ṣetọju ayedero ti scraper (Prometheus ati Thanos Sidecar). Eyi ti o rọrun atilẹyin, idiyele ati apẹrẹ eto.

Bi o ti le ri, afẹyinti data jẹ irorun. Ṣugbọn kini nipa wiwa data ni ibi ipamọ ohun?

Awọn paati Thanos Store n ṣiṣẹ bi aṣoju lati gba data lati ibi ipamọ ohun. Bii Thanos Sidecar, o ṣe alabapin ninu iṣupọ olofofo ati imuse API itaja. Ni ọna yii, Querier ti o wa tẹlẹ le ṣe itọju rẹ bi Sidecar, bi orisun miiran ti data jara akoko - ko si iṣeto pataki ti o nilo.

Thanos - Scalable Prometheus

Awọn bulọọki data jara akoko ni ọpọlọpọ awọn faili nla lọpọlọpọ. Ikojọpọ wọn lori ibeere yoo jẹ ailagbara pupọ, ati fifipamọ wọn ni agbegbe yoo nilo iye nla ti iranti ati aaye disk.

Dipo, Itaja Gateway mọ bi o ṣe le mu ọna kika ibi ipamọ Prometheus. Ṣeun si oluṣeto ibeere ọlọgbọn ati fifipamọ nikan awọn apakan atọka pataki ti awọn bulọọki, o ṣee ṣe lati dinku awọn ibeere eka si nọmba ti o kere ju ti awọn ibeere HTTP si awọn faili ibi ipamọ ohun. Ni ọna yii, o le dinku nọmba awọn ibeere nipasẹ awọn aṣẹ titobi mẹrin si mẹfa ati ṣaṣeyọri awọn akoko idahun ti o nira ni gbogbogbo lati ṣe iyatọ si awọn ibeere si data lori SSD agbegbe kan.

Thanos - Scalable Prometheus

Gẹgẹbi a ṣe han ninu aworan atọka ti o wa loke, Thanos Querier ṣe pataki dinku idiyele fun ibeere ti data ipamọ ohun nipa gbigbe ọna kika ipamọ Prometheus ati gbigbe data ti o ni ibatan si ẹgbẹ. Lilo ọna yii, a le darapọ ọpọlọpọ awọn ibeere ẹyọkan sinu nọmba ti o kere ju ti awọn iṣẹ olopobobo.

Iwapọ ati downsampling

Ni kete ti bulọọki tuntun ti data jara akoko ti ṣaṣeyọri ti kojọpọ sinu ibi ipamọ ohun, a tọju rẹ bi data “itan”, eyiti o wa lẹsẹkẹsẹ nipasẹ Ẹnu-ọna Ile itaja.

Sibẹsibẹ, lẹhin igba diẹ, awọn bulọọki lati orisun kan (Prometheus with Sidecar) kojọpọ ati pe ko lo agbara atọka ni kikun. Lati yanju iṣoro yii, a ṣe agbekalẹ paati miiran ti a pe ni Compactor. O rọrun kan ẹrọ iwapọ agbegbe Prometheus si data itan ni ibi ipamọ ohun ati pe o le ṣiṣẹ bi iṣẹ ipele igbakọọkan ti o rọrun.

Thanos - Scalable Prometheus

Ṣeun si funmorawon daradara, ibeere ibi ipamọ fun igba pipẹ ko ṣe iṣoro ni awọn ofin ti iwọn data. Bibẹẹkọ, idiyele ti o pọju ti ṣiṣi awọn iye bilionu kan ati ṣiṣiṣẹ wọn nipasẹ ero isise ibeere yoo laiseaniani ja si ilosoke iyalẹnu ni akoko ipaniyan ibeere. Ni apa keji, niwọn igba ti awọn ọgọọgọrun awọn aaye data wa fun piksẹli loju iboju, ko ṣee ṣe lati paapaa wo data naa ni ipinnu ni kikun. Nitorinaa, idinku kii ṣe ṣee ṣe nikan, ṣugbọn tun kii yoo ja si isonu akiyesi ti deede.

Thanos - Scalable Prometheus

Lati sokale data, Compactor nigbagbogbo n ṣajọpọ data ni ipinnu iṣẹju marun ati wakati kan. Fun ọkọọkan aise chunk ti a fi koodu parọ nipa lilo funmorawon TSDB XOR, awọn oriṣi ti data apapọ ti wa ni ipamọ, gẹgẹbi min, max tabi apao fun bulọọki kan. Eyi ngbanilaaye Querier lati yan akojọpọ laifọwọyi ti o yẹ fun ibeere PromQL ti a fun.

Ko si iṣeto ni pataki ti o nilo fun olumulo lati lo data konge idinku. Querier laifọwọyi yipada laarin awọn ipinnu oriṣiriṣi ati data aise bi olumulo ṣe sun sinu ati ita. Ti o ba fẹ, olumulo le ṣakoso eyi taara nipasẹ paramita “igbesẹ” ninu ibeere naa.

Niwọn bi idiyele ti fifipamọ GB kan jẹ kekere, nipasẹ aiyipada Thanos tọju data aise, iṣẹju marun ati data ipinnu wakati kan. Ko si ye lati pa awọn atilẹba data.

Awọn ofin igbasilẹ

Paapaa pẹlu Thanos, awọn ofin gbigbasilẹ jẹ apakan pataki ti akopọ ibojuwo. Wọn dinku idiju, lairi, ati idiyele awọn ibeere. Wọn tun rọrun fun awọn olumulo lati gba data akojọpọ nipasẹ awọn metiriki. Thanos da lori awọn iṣẹlẹ fanila Prometheus, nitorinaa o jẹ itẹwọgba pipe lati tọju awọn ofin gbigbasilẹ ati awọn ofin titaniji lori olupin Prometheus ti o wa tẹlẹ. Sibẹsibẹ, ni awọn igba miiran eyi le ma to:

  • Itaniji agbaye ati ofin (fun apẹẹrẹ, itaniji nigbati iṣẹ kan ko ṣiṣẹ lori diẹ sii ju meji ninu awọn iṣupọ mẹta).
  • Ofin fun data ita ibi ipamọ agbegbe.
  • Ifẹ lati tọju gbogbo awọn ofin ati awọn titaniji ni ibi kan.

Thanos - Scalable Prometheus

Fun gbogbo awọn ọran wọnyi, Thanos pẹlu paati lọtọ ti a pe ni Alakoso, eyiti o ṣe iṣiro ofin ati itaniji nipasẹ Awọn ibeere Thanos. Nipa ipese StoreAPI ti a mọ daradara, oju-ọna ibeere le wọle si awọn metiriki tuntun ti a ṣe iṣiro. Nigbamii wọn tun wa ni ipamọ ni ibi ipamọ ohun ati ṣe wa nipasẹ Ẹnu-ọna Ile-itaja.

Agbara ti Thanos

Thanos jẹ rọ to lati ṣe adani lati baamu awọn iwulo rẹ. Eyi wulo paapaa nigba gbigbe lati Prometheus pẹtẹlẹ. Jẹ ki a yara atunṣe ohun ti a ti kọ nipa awọn paati Thanos pẹlu apẹẹrẹ iyara. Eyi ni bii o ṣe le mu fanila Prometheus rẹ sinu agbaye ti “ibi ipamọ awọn metiriki ailopin”:

Thanos - Scalable Prometheus

  1. Ṣafikun Thanos Sidecar si awọn olupin Prometheus rẹ - fun apẹẹrẹ, apoti ẹgbe kan ninu podu Kubernetes kan.
  2. Mu awọn ẹda Thanos Querier lọpọlọpọ lati ni anfani lati wo data. Ni ipele yii o rọrun lati ṣeto olofofo laarin Scraper ati Querier. Lati ṣayẹwo ibaraenisepo awọn paati, lo 'thanos_cluster_members' metiriki.

Awọn igbesẹ meji wọnyi ti to lati pese wiwo agbaye ati iyọkuro data ailopin lati awọn ẹda Prometheus HA ti o pọju! Nikan so awọn dasibodu rẹ pọ si aaye ipari HTTP Querier tabi lo Thanos UI taara.

Sibẹsibẹ, ti o ba nilo afẹyinti awọn metiriki ati ibi ipamọ igba pipẹ, iwọ yoo nilo lati pari awọn igbesẹ mẹta diẹ sii:

  1. Ṣẹda AWS S3 tabi garawa GCS. Ṣe atunto Sidecar lati daakọ data si awọn buckets wọnyi. Ibi ipamọ data agbegbe le dinku bayi.
  2. Ran Ile-iṣọ Itaja silẹ ki o so pọ mọ iṣupọ olofofo ti o wa tẹlẹ. Bayi o le beere awọn lona soke data!
  3. Mu Compactor ṣiṣẹ lati mu ilọsiwaju ibeere ṣiṣẹ lori awọn akoko pipẹ nipa lilo iṣakojọpọ ati isalẹ.

Ti o ba fẹ mọ diẹ sii, ma ṣe ṣiyemeji lati wo wa kubernetes farahan apẹẹrẹ и Bibẹrẹ!

Ni awọn igbesẹ marun nikan, a yipada Prometheus sinu eto ibojuwo igbẹkẹle pẹlu wiwo agbaye, akoko ipamọ ailopin ati wiwa giga ti awọn metiriki.

Fa ibeere: a nilo rẹ!

Thanos ti jẹ iṣẹ akanṣe orisun ṣiṣi lati ibẹrẹ. Ibarapọ ailopin pẹlu Prometheus ati agbara lati lo ipin kan ti Thanos jẹ ki o jẹ yiyan ti o dara julọ fun iwọn eto ibojuwo rẹ lainidi.

Nigbagbogbo a ṣe itẹwọgba GitHub Fa Awọn ibeere ati Awọn ọran. Lakoko, lero ọfẹ lati kan si wa nipasẹ Awọn ọran Github tabi ọlẹ Ko ṣee ṣe-ej #thanosti o ba ni awọn ibeere tabi esi, tabi fẹ pin iriri rẹ nipa lilo rẹ! Ti o ba fẹran ohun ti a ṣe ni Improbable, ma ṣe ṣiyemeji lati kan si wa - a nigbagbogbo ni awọn aye!

Kọ ẹkọ diẹ sii nipa ẹkọ naa.

orisun: www.habr.com

Fi ọrọìwòye kun