{"id":81888,"date":"2020-05-17T13:42:23","date_gmt":"2020-05-17T11:42:23","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/thanos-masshtabiruemyj-prometheus"},"modified":"2020-05-17T13:42:23","modified_gmt":"2020-05-17T11:42:23","slug":"thanos-masshtabiruemyj-prometheus","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/thanos-masshtabiruemyj-prometheus","title":{"rendered":"Thanos \u2014 skalabilan Prometheus","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><b><i>Prijevod \u010dlanka pripremljen je posebno za studente te\u010daja <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/jYQP\/\">\u201eDevOps prakse i alati\u201c<\/a><\/noindex>.<\/i><\/b><\/p>\n<p>\n<i><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/fabxc\">Fabijan Reinartz<\/a><\/noindex> \u2014 programer, entuzijast Go jezika i zaljubljenik u re\u0161avanje slo\u017eenih problema. Tako\u0111e je odr\u017eavaoc Prometheusa i suosniva\u010d Kubernetes SIG instrumentation. U pro\u0161losti je bio in\u017eenjer produkcije u SoundCloudu i vodio je tim za nadgledanje u CoreOS-u. Trenutno radi u Google-u.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Bplotka\">Bartek Plotka<\/a><\/noindex> \u2014 in\u017eenjer infrastrukture u Improbable-u. Radoznalost ga vu\u010de ka novim tehnologijama i problemima distribuiranih sistema. Ima iskustvo niskonivojnog programiranja u Intel-u, iskustvo doprinositelja u Mesos-u i produkcijsko iskustvo SRE svetskog nivoa u Improbable-u. Fokusira se na pobolj\u0161anje sveta mikroslu\u017ebi. Tri njegove ljubavi su: Golang, open source i odbojka.<\/i><\/p>\n<p>Gledaju\u0107i na\u0161 vode\u0107i proizvod SpatialOS, mo\u017eete naslutiti da je Improbable-u potrebna visoko dinami\u010dna obla\u010dna infrastruktura globalnog obima sa desetinama Kubernetes klastera. Bili smo jedni od prvih koji su po\u010deli koristiti sistem nadgledanja <noindex><a rel=\"nofollow\" href=\"https:\/\/prometheus.io\/\">Prometheus<\/a><\/noindex>. Prometheus je sposoban da prati milionske metrike u realnom vremenu i dolazi sa mo\u0107nim jezikom upita koji omogu\u0107ava izvla\u010denje potrebnih informacija.<\/p>\n<p>Jednostavnost i pouzdanost Prometheusa su jedna od njegovih glavnih prednosti. Me\u0111utim, dostigav\u0161i odre\u0111eni obim, suo\u010dili smo se s nekoliko nedostataka. Da bismo re\u0161ili te probleme, razvili smo <noindex><a rel=\"nofollow\" href=\"https:\/\/thanos.io\/\">Thanos<\/a><\/noindex> \u2014 projekat otvorenog koda, razvijen od strane Improbable-a, za besprekorno transformisanje postoje\u0107ih Prometheus klastera u jedinstveni sistem nadgledanja s neograni\u010denim skladi\u0161tem istorijskih podataka. Thanos je dostupan na Github-u. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/improbable-eng\/thanos\">ovdje<\/a><\/noindex>.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/gdk.improbable.io\/l\/169082\/2020-01-10\/2j9yxq\">Budite u toku s najnovijim vestima iz Improbable-a.<\/a><\/noindex><\/p>\n<h2>Na\u0161i ciljevi s Thanosom<\/h2>\n<p>\nNa odre\u0111enom obimu javljaju se problemi koji nadilaze mogu\u0107nosti klasi\u010dnog Prometheusa. Kako pouzdano i ekonomi\u010dno skladi\u0161titi petabajte istorijskih podataka? Mo\u017ee li se to uraditi bez kompromitovanja vremena odgovora na upit? Mo\u017ee li se pristupiti svim metrima sme\u0161tenim na razli\u010ditim Prometheus serverima putem jednog API zahteva? Mo\u017ee li se na neki na\u010din spojiti replikovani podaci prikupljeni uz pomoc Prometheus HA?<\/p>\n<p>Da bismo odgovorili na ta pitanja, stvorili smo Thanos. U slede\u0107im odeljcima obja\u0161njavamo kako smo pristupili re\u0161enju ovih pitanja i obja\u0161njavamo ciljeve koje smo imali.<\/p>\n<h4>Upit podataka iz vi\u0161e instanci Prometheusa (global query)<\/h4>\n<p>\nPrometheus nudi funkcionalan pristup sharding-u. \u010cak i jedan Prometheus server omogu\u0107ava dovoljnu skalabilnost da oslobodi korisnike od slo\u017eenosti horizontalnog sharding-a u prakti\u010dno svim slu\u010dajevima upotrebe.<\/p>\n<p>Iako je to sjajan model implementacije, \u010desto je potrebno pristupiti podacima na razli\u010ditim Prometheus serverima putem jednog API ili UI \u2014 globalnog pogleda. Naravno, mogu\u0107e je prikazati vi\u0161e upita na jednom Grafana panelu, ali svaki upit mo\u017ee biti izvr\u0161en samo na jedan Prometheus server. S druge strane, uz pomo\u0107 Thanosa mo\u017eete upititi i agregirati podatke s nekoliko Prometheus servera, budu\u0107i da su svi dostupni s jedne ta\u010dke.<\/p>\n<p>Ranije, za postizanje globalnog pogleda u Improbable-u, organizovali smo na\u0161e instance Prometheus u vi\u0161eslojnu <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/prometheus\/prometheus\/blob\/master\/docs\/federation.md#hierarchical-federation\">Hijerarhijsku Federaciju<\/a><\/noindex>. To je zna\u010dilo stvaranje jednog meta-servera Prometheus, koji prikuplja dio metrika sa svakog \u201elistnog\u201c servera.<\/p>\n<p><img decoding=\"async\" alt=\"Thanos \u2014 skalabilan Prometheus\" src=\"\/wp-content\/uploads\/2020\/05\/82590f017734f5dc1038a0e13f772d2a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOvaj pristup se pokazao problemati\u010dnim. Doveo je do komplikovanja konfiguracije, dodavanja dodatne potencijalne ta\u010dke kvara i primene slo\u017eenih pravila za omogu\u0107avanje federated ta\u010dki pristupa samo potrebnim podacima. Pored toga, takva federacija ne omogu\u0107ava pravilan globalni pregled, jer nisu svi podaci dostupni iz jednog API upita.<\/p>\n<p>Tome je blisko vezano jedinstveno predstavljanje podataka prikupljenih na visoko dostupnim (high-availability, HA) Prometheus serverima. HA model Prometheus-a samostalno prikuplja podatke dva puta, \u0161to je toliko jednostavno da ne mo\u017ee biti jednostavnije. Ipak, kori\u0161\u0107enje objedinjene i deduplikovane verzije oba toka bilo bi mnogo prakti\u010dnije.<\/p>\n<p>Naravno, u serverima Prometheus visoke dostupnosti postoji potreba. U Improbable-u ozbiljno shvatamo minutnu analizu podataka, ali postojanje jednog instance Prometheus u klasteru predstavlja jedinstvenu ta\u010dku kvara. Svaka gre\u0161ka u konfiguraciji ili kvar opreme mo\u017ee potencijalno dovesti do gubitka va\u017enih podataka. \u010cak i jednostavno implementiranje mo\u017ee dovesti do malih prekida u prikupljanju metrika, jer ponovno pokretanje mo\u017ee zna\u010dajno produ\u017eiti vreme izme\u0111u skrapinga.<\/p>\n<h4>Pouzdano \u010duvanje istorijskih podataka<\/h4>\n<p>\nJeftina, brza i dugotrajna pohrana metrika je na\u0161 san (koji dijele ve\u0107ina korisnika Prometheusa). U Improbableu smo bili prisiljeni postaviti vrijeme pohrane metrika na devet dana (za Prometheus 1.8). To postavlja o\u010dite ograni\u010denja s obzirom na to koliko daleko mo\u017eemo pogledati unatrag.<\/p>\n<p>Prometheus 2.0 je u tom smislu bolji, jer broj vremenskih serija vi\u0161e ne utje\u010de na ukupnu izvedbu poslu\u017eitelja (vidi <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=nDalewt4BOw\">KubeCon keynote o Prometheusu 2<\/a><\/noindex>). Ipak, Prometheus pohranjuje podatke na lokalnom disku. Iako visoko u\u010dinkovito kompresiranje podataka mo\u017ee zna\u010dajno smanjiti kori\u0161tenje lokalnog SSD-a, na kraju i dalje postoji ograni\u010denje na koli\u010dinu pohranjenih povijesnih podataka.<\/p>\n<p>Osim toga, u Improbableu nam je stalo do pouzdanosti, jednostavnosti i tro\u0161ka. Veliki lokalni diskovi su slo\u017eeniji za upravljanje i sigurnosno kopiranje. Oni su skuplji i zahtijevaju vi\u0161e alata za sigurnosno kopiranje, \u0161to dovodi do suvi\u0161ne slo\u017eenosti.<\/p>\n<h4>Downsampling<\/h4>\n<p>\n\u010cim smo po\u010deli raditi s povijesnim podacima, shvatili smo da postoje temeljni problemi s O-velikim, koji \u010dine upite sve sporijima i sporijima kada radimo s podacima iz tjedana, mjeseci i godina.<\/p>\n<p>Standardno rje\u0161enje za ovaj problem je <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Decimation_(signal_processing)\">downsampling<\/a><\/noindex> (downsampling) \u2014 smanjenje frekvencije uzorkovanja signala. Smanjenjem uzorkovanja mo\u017eemo \"skratiti\" do ve\u0107eg vremenskog raspona i odr\u017eavati isti broj uzoraka, \u0161to omogu\u0107uje odr\u017eavanje brzine upita.<\/p>\n<p>Downsampling starih podataka je neizbje\u017eni zahtjev bilo kakvog rje\u0161enja za dugoro\u010dnu pohranu i nadma\u0161uje obi\u010dni Prometheus.<\/p>\n<h4>Dodatni ciljevi<\/h4>\n<p>\nJedan od prvotnih ciljeva projekta Thanos bio je besprijekorna integracija sa svim postoje\u0107im instalacijama Prometheusa. Drugi cilj je bio jednostavna upotreba s minimalnom barijerom ulaska. Sve ovisnosti trebaju biti lako zadovoljene kako za male, tako i za velike korisnike, \u0161to tako\u0111er podrazumijeva neznatnu osnovnu cijenu.<\/p>\n<h2>Arhitektura Thanosa<\/h2>\n<p>\nNakon \u0161to su u prethodnom odjeljku navedeni na\u0161i ciljevi, ajmo raditi na njima i vidjeti kako Thanos rje\u0161ava ove probleme.<\/p>\n<h4>Globalni prikaz<\/h4>\n<p>\nDa bismo dobili globalni pregled iznad postoje\u0107ih instanci Prometheusa, moramo povezati jedinstvenu ulaznu to\u010dku zahtjeva sa svim serverima. To upravo \u010dini komponenta Thanos. <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/blog\/2015\/06\/the-distributed-system-toolkit-patterns#example-1-sidecar-containers\">Sidecar<\/a><\/noindex>. Raspore\u0111uje se pored svakog servera Prometheus i djeluje kao proxy, opslu\u017euju\u0107i lokalne podatke Prometheus putem gRPC su\u010delja Store API, koje omogu\u0107ava odabir vremenskih serija podataka prema oznakama i vremenskom rasponu.<\/p>\n<p>S druge strane nalazi se horizontalno skalabilna komponenta Querier bez stanja, koja radi malo vi\u0161e od jednostavnog odgovaranja na zahtjeve PromQL putem standardnog Prometheus HTTP API. Komponente Querier, Sidecar i drugi Thanos komuniciraju putem <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Gossip_protocol\">gossip protokola.<\/a><\/noindex>.<\/p>\n<p><img decoding=\"async\" alt=\"Thanos \u2014 skalabilan Prometheus\" src=\"\/wp-content\/uploads\/2020\/05\/fbcf1e756f5da4e8529f17abd4cedd00.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<ol>\n<li>Querier, prilikom primanja zahtjeva, povezuje se s odgovaraju\u0107im serverom Store API, odnosno s na\u0161im Sidecar-ima, i dobiva vremenske serije podataka s odgovaraju\u0107ih Prometheus servera.<\/li>\n<li>Nakon toga spaja odgovore i izvr\u0161ava PromQL upit. Querier mo\u017ee spajati kako nepoklapaju\u0107e podatke, tako i duplicirane podatke s HA servera Prometheus.<\/li>\n<\/ol>\n<p>\nTo rje\u0161ava najve\u0107i dio na\u0161e zagonetke \u2014 spajanje podataka s izoliranih servera Prometheus u jedinstveni prikaz. U stvari, Thanos se mo\u017ee koristiti samo zbog ove mogu\u0107nosti. Nema potrebe za promjenama na postoje\u0107im Prometheus serverima!<\/p>\n<h4>Neograni\u010deno vrijeme pohrane!<\/h4>\n<p>\nMe\u0111utim, prije ili kasnije, \u017eeljet \u0107emo pohraniti podatke koji izlaze izvan uobi\u010dajenog vremena pohrane Prometheus. Za pohranu povijesnih podataka odabrali smo objektno skladi\u0161te. Ono je \u0161iroko dostupno u bilo kojem oblaku, kao i u lokalnim podatkovnim centrima, i vrlo je ekonomski isplativo. Osim toga, gotovo svako objektno skladi\u0161te dostupno je putem dobro poznatog S3 API.<\/p>\n<p>Prometheus zapisuje podatke iz radne memorije na disk otprilike svaka dva sata. Blok pohranjenih podataka sadr\u017ei sve podatke za fiksni vremenski interval i nepromjenjiv je. To je vrlo zgodno, jer Thanos Sidecar mo\u017ee jednostavno pregledati katalog podataka Prometheus, a kako se novi blokovi pojavljuju, u\u010ditavati ih u ba\u010dve objektne pohrane.<\/p>\n<p><img decoding=\"async\" alt=\"Thanos \u2014 skalabilan Prometheus\" src=\"\/wp-content\/uploads\/2020\/05\/2be803d8d7e0ce9a5ffa441b7778a40b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nU\u010ditavanje u objektno skladi\u0161te odmah nakon zapisivanja na disk tako\u0111er omogu\u0107ava zadr\u017eavanje jednostavnosti \u201cscrapera\u201d (Prometheus i Thanos Sidecar). \u0160to pojednostavljuje odr\u017eavanje, tro\u0161kove i dizajn sustava.<\/p>\n<p>Kao \u0161to vidite, backup podataka se ostvaruje vrlo jednostavno. No, \u0161to je s upitima podacima u objektnoj pohrani?<\/p>\n<p>Thanos Store komponenta djeluje kao proxy za dohva\u0107anje podataka iz objektne pohrane. Poput Thanos Sidecara, sudjeluje u gossip klasteru i implementira Store API. Tako postoje\u0107i Querieri mogu gledati na njega kao Sidecar, kao jo\u0161 jedan izvor vremenskih serija podataka \u2014 nije potrebno nikakvo posebno pode\u0161avanje.<\/p>\n<p><img decoding=\"async\" alt=\"Thanos \u2014 skalabilan Prometheus\" src=\"\/wp-content\/uploads\/2020\/05\/5a437ae1bf8a6f79b8d24aeb9dde2d17.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nBlokovi vremenskih serija podataka se sastoje od nekoliko velikih datoteka. Dohva\u0107anje po zahtjevu bi bilo prili\u010dno neefikasno, a lokalno ke\u0161iranje bi zahtijevalo ogromnu memoriju i diskovni prostor.<\/p>\n<p>Umjesto toga, Store Gateway zna kako upravljati formatom pohrane Prometheusa. Zahvaljuju\u0107i inteligentnom planerima upita i ke\u0161iranju samo potrebnih indeksnih dijelova blokova, postalo je mogu\u0107e smanjiti slo\u017eene upite na minimalan broj HTTP zahtjeva prema datotekama objektne pohrane. Tako je mogu\u0107e smanjiti broj zahtjeva za \u010detiri do \u0161est redoslijeda i posti\u0107i vrijeme odgovora koje je u cjelini te\u0161ko razlikovati od zahtjeva za podacima na lokalnom SSD-u.<\/p>\n<p><img decoding=\"async\" alt=\"Thanos \u2014 skalabilan Prometheus\" src=\"\/wp-content\/uploads\/2020\/05\/ebcbe1ee16dbac18daa474e7cb4b12b2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKao \u0161to je prikazano na gornjem dijagramu, Thanos Querier zna\u010dajno smanjuje tro\u0161kove za jedan zahtjev za podacima u objektnoj pohrani, koriste\u0107i format pohrane Prometheusa i grupiraju\u0107i povezane podatke blizu sebe. Koriste\u0107i ovaj pristup, mo\u017eemo spojiti mno\u0161tvo pojedina\u010dnih zahtjeva u minimalan broj bulk operacija.<\/p>\n<h4>Kompaktiranje i downsampling<\/h4>\n<p>\nNakon \u0161to je novi blok vremenskih serija podataka uspje\u0161no u\u010ditan u objektno skladi\u0161te, tretiramo ga kao \"historijske\" podatke koji su odmah dostupni putem Store Gateway-a.<\/p>\n<p>Me\u0111utim, nakon nekog vremena, blokovi iz jednog izvora (Prometheus s Sidecarom) se kumuliraju i vi\u0161e ne koriste sav potencijal indeksiranja. Da bismo rije\u0161ili ovaj problem, uveli smo jo\u0161 jednu komponentu pod nazivom Compactor. Ona jednostavno primjenjuje lokalni mehanizam kompresije Prometheusa na povijesne podatke u objektnoj pohrani i mo\u017ee se pokrenuti kao jednostavna periodi\u010dna batch zada\u0107a.<\/p>\n<p><img decoding=\"async\" alt=\"Thanos \u2014 skalabilan Prometheus\" src=\"\/wp-content\/uploads\/2020\/05\/c7dd83dab074a4c5f93069a4bc152342.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZahvaljuju\u0107i u\u010dinkovitoj kompresiji, zahtjev za pohranu tijekom du\u017eeg vremenskog razdoblja ne predstavlja problem s aspekta veli\u010dine podataka. Me\u0111utim, potencijalni tro\u0161ak dekompresije milijarde vrijednosti i njihovo propu\u0161tanje kroz obradu zahtjeva neizbje\u017eno \u0107e dovesti do o\u0161trog pove\u0107anja vremena izvr\u0161enja zahtjeva. S druge strane, budu\u0107i da na svaki piksel ekrana dolazi stotine to\u010daka podataka, postaje nemogu\u0107e \u010dak ni vizualizirati podatke u punoj rezoluciji. Stoga, downsampling nije samo mogu\u0107, ve\u0107 ne\u0107e dovesti do zna\u010dajnog gubitka to\u010dnosti. <\/p>\n<p><img decoding=\"async\" alt=\"Thanos \u2014 skalabilan Prometheus\" src=\"\/wp-content\/uploads\/2020\/05\/5f36a05aba3fbffa905b6a8da482ab3d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZa downsampling podataka, Compactor neprekidno agregira podatke s rezolucijom od pet minuta i jednog sata. Za svaki neobraden fragment, kodiran uz pomo\u0107 TSDB XOR kompresije, pohranjuju se razli\u010dite vrste agregiranih podataka, poput min, max ili sum za jedan blok. To omogu\u0107uje Querieru da automatski odabere agregat koji odgovara danom PromQL zahtjevu. <\/p>\n<p>Za kori\u0161tenje podataka s ni\u017eom precizno\u0161\u0107u korisniku nije potrebna nikakva posebna konfiguracija. Querier automatski prelazi izme\u0111u razli\u010ditih rezolucija i neobra\u0111enih podataka dok korisnik pove\u0107ava ili smanjuje zoom. Ako se \u017eeli, korisnik mo\u017ee izravno upravljati tim putem parametra \u201cstep\u201d u zahtjevu. <\/p>\n<p>Budu\u0107i da je tro\u0161ak pohrane jednog GB mali, Thanos po defaultu pohranjuje izvorne podatke, podatke s rezolucijom od pet minuta i jednog sata. Nema potrebe za brisanjem izvornih podataka.<\/p>\n<h2>Recording pravila<\/h2>\n<p>\n\u010cak i s Thanos recording pravilima predstavljaju bitan dio stacka za nadzor. Smanjuju slo\u017eenost, ka\u0161njenje i tro\u0161ak zahtjeva. Tako\u0111er su zgodni korisnicima za dobivanje agregiranih podataka o metrikama. Thanos se temelji na standardnim instancama Prometheusa, stoga je sasvim prihvatljivo pohranjivati recording i alerting pravila na postoje\u0107em Prometheus serveru. Me\u0111utim, u nekim slu\u010dajevima to mo\u017ee biti nedovoljno:<\/p>\n<ul>\n<li>Globalni alert i pravilo (na primjer, obavijest kada usluga ne radi na vi\u0161e od dva od tri klastera).<\/li>\n<li>Pravilo za podatke izvan lokalne pohrane.<\/li>\n<li>Nastojanje pohraniti sva pravila i alerte na jednom mjestu.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Thanos \u2014 skalabilan Prometheus\" src=\"\/wp-content\/uploads\/2020\/05\/ab48e044b952bd891932b99e248120fa.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZa sve te slu\u010dajeve, Thanos uklju\u010duje zasebnu komponentu nazvanu Ruler, koja izra\u010dunava pravila i upozorenja putem Thanos upita. Pru\u017eaju\u0107i poznati StoreAPI, Query \u010dvor mo\u017ee pristupiti sve\u017eim izra\u010dunatim metrikama. Kasnije se tako\u0111er \u010duvaju u objektnoj pohrani i postaju dostupne putem Store Gateway-a.<\/p>\n<h2>Mo\u0107 Thanosa<\/h2>\n<p>\nThanos je dovoljno fleksibilan da ga mo\u017eete prilagoditi svojim potrebama. To je posebno korisno prilikom migracije sa jednostavnog Prometheusa. Pogledajmo na brz na\u010din na mali primjer onoga \u0161to smo nau\u010dili o komponentama Thanosa. Evo kako mo\u017eete preseliti svoj vanilla Prometheus u svijet \u201cneograni\u010denog pohranjivanja metrika\u201d:<\/p>\n<p><img decoding=\"async\" alt=\"Thanos \u2014 skalabilan Prometheus\" src=\"\/wp-content\/uploads\/2020\/05\/f6ee4185af57d2a1869890014e6a0062.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<ol>\n<li>Dodajte Thanos Sidecar na svoje Prometheus servere - na primjer, susjedni kontejner u Kubernetes podu.<\/li>\n<li>Odredite vi\u0161e replik Thanos Queriera za mogu\u0107nost pregledavanja podataka. U ovoj fazi je lako postaviti gossip izme\u0111u Scraper-a i Queriera. Za provjeru interakcije komponenti koristite metrik 'thanos_cluster_members'.<\/li>\n<\/ol>\n<p>\nSamo ta dva koraka dovoljna su da osiguraju globalni pregled i besprijekornu dedupliciranje podataka od potencijalnih HA-replika Prometheus-a! Jednostavno pove\u017eite svoje nadzorne plo\u010de na HTTP end-point Queriersa ili koristite Thanos UI su\u010delje izravno.<\/p>\n<p>Me\u0111utim, ako vam je potrebna sigurnosna kopija metrika i dugoro\u010dno pohranjivanje, potrebno je napraviti jo\u0161 tri koraka:<\/p>\n<ol>\n<li>Stvorite AWS S3 ili GCS bucket. Konfigurirajte Sidecar za kopiranje podataka u te buckete. Sada mo\u017eete minimizirati lokalno pohranjivanje podataka.<\/li>\n<li>Postavite Store Gateway i pove\u017eite ga s postoje\u0107im gossip-klasterom. Sada mo\u017eete slati upite za podatke u sigurnosnim kopijama!<\/li>\n<li>Postavite Compactor kako biste pobolj\u0161ali efikasnost upita za du\u017ee vremenske okvire koriste\u0107i komprimiranje i downsampling.<\/li>\n<\/ol>\n<p>\nAko \u017eelite saznati vi\u0161e, slobodno pogledajte na\u0161e <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/improbable-eng\/thanos\/tree\/master\/kube\">primjere kubernetes manifest-a<\/a><\/noindex> i <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/improbable-eng\/thanos\/blob\/master\/docs\/getting-started.md\">kako po\u010deti<\/a><\/noindex>!<\/p>\n<p>Samo pet koraka pretvorili smo Prometheus u pouzdan sustav nadzora s globalnim pregledom, neograni\u010denim vremenom pohrane i potencijalnom visokom dostupno\u0161\u0107u metrika.<\/p>\n<h3>Pull request: potrebni ste nam!<\/h3>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/improbable-eng\/thanos\">Thanos<\/a><\/noindex> od po\u010detka je bio projekt s otvorenim izvorom. Besprijekorna integracija s Prometheusom i mogu\u0107nost kori\u0161tenja samo dijela Thanosa \u010dini ga odli\u010dnim izborom za skaliranje sustava nadzora bez suvi\u0161nih napora.<\/p>\n<p>Uvijek smo otvoreni za GitHub Pull Request i Issues. U isto vrijeme, slobodno nas kontaktirajte putem Github Issues ili slacks.<noindex><a rel=\"nofollow\" href=\"https:\/\/join.slack.com\/t\/improbable-eng\/shared_invite\/enQtMzQ1ODcyMzQ5MjM4LWY5ZWZmNGM2ODc5MmViNmQ3ZTA3ZTY3NzQwOTBlMTkzZmIxZTIxODk0OWU3YjZhNWVlNDU3MDlkZGViZjhkMjc\"> Improbable-eng #thanos<\/a><\/noindex>, ako imate pitanja ili povratne informacije, ili \u017eelite podijeliti svoje iskustvo kori\u0161tenja! Ako vam se svi\u0111a ono \u0161to radimo u Improbableu, slobodno nas kontaktirajte \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/improbable.io\/careers\/\">uvijek imamo slobodnih radnih mjesta.<\/a><\/noindex>!<\/p>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/jYQP\/\">Saznajte vi\u0161e o te\u010daju.<br \/>\n<\/a><\/noindex><\/p>\n<p>Izvor: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/502122\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u043a\u0443\u0440\u0441\u0430 \u00abDevOps \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b\u00bb. \u0424\u0430\u0431\u0438\u0430\u043d \u0420\u0435\u0439\u043d\u0430\u0440\u0446 (Fabian Reinartz) \u2014 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f, \u0444\u0430\u043d\u0430\u0442 Go \u0438 \u043b\u044e\u0431\u0438\u0442\u0435\u043b\u044c \u0440\u0435\u0448\u0430\u0442\u044c \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438. \u0422\u0430\u043a\u0436\u0435 \u043e\u043d \u043c\u044d\u0439\u043d\u0442\u0435\u0439\u043d\u0435\u0440 Prometheus \u0438 \u0441\u043e\u0443\u0447\u0440\u0435\u0434\u0438\u0442\u0435\u043b\u044c Kubernetes SIG instrumentation. \u0412 \u043f\u0440\u043e\u0448\u043b\u043e\u043c \u043e\u043d \u0431\u044b\u043b production-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u043c \u0432 SoundCloud \u0438 \u0432\u043e\u0437\u0433\u043b\u0430\u0432\u043b\u044f\u043b \u0433\u0440\u0443\u043f\u043f\u0443 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0432 CoreOS. \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 Google. \u0411\u0430\u0440\u0442\u0435\u043a [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":81889,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-81888","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u043a\u0443\u0440\u0441\u0430 \u00abDevOps \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b\u00bb.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/thanos-masshtabiruemyj-prometheus\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"hr_HR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Thanos \u2014 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u0439 Prometheus | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u043a\u0443\u0440\u0441\u0430 \u00abDevOps \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b\u00bb.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/thanos-masshtabiruemyj-prometheus\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-05-17T11:42:23+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-17T11:42:23+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Thanos \u2014 skalabilan Prometheus | ProHoster","description":"Prijevod \u010dlanka pripremljen je posebno za studente te\u010daja \"DevOps prakse i alati\".","canonical_url":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/thanos-masshtabiruemyj-prometheus","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hr_HR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Thanos \u2014 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u0439 Prometheus | ProHoster","og:description":"\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u043a\u0443\u0440\u0441\u0430 \u00abDevOps \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b\u00bb.","og:url":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/thanos-masshtabiruemyj-prometheus","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-05-17T11:42:23+00:00","article:modified_time":"2020-05-17T11:42:23+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"81888","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 15:48:24","updated":"2022-09-30 01:06:17","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/81888","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/comments?post=81888"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/81888\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media\/81889"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media?parent=81888"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/categories?post=81888"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/tags?post=81888"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}