{"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\/sk\/blog\/administrirovanie\/thanos-masshtabiruemyj-prometheus","title":{"rendered":"Thanos \u2014 \u0161k\u00e1lovate\u013en\u00fd Prometheus","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><b><i>Preklad \u010dl\u00e1nku bol pripraven\u00fd \u0161peci\u00e1lne pre \u0161tudentov kurzu <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/jYQP\/\">\u201ePraktiky a n\u00e1stroje DevOps\u201c<\/a><\/noindex>.<\/i><\/b><\/p>\n<p>\n<i><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/fabxc\">Fabian Reinartz<\/a><\/noindex> \u2014 softv\u00e9rov\u00fd v\u00fdvoj\u00e1r, fan\u00fa\u0161ik Go a nad\u0161enec rie\u0161enia komplexn\u00fdch probl\u00e9mov. Taktie\u017e je udr\u017eiavate\u013eom Prometheus a spoluzakladate\u013eom Kubernetes SIG instrumentation. V minulosti bol production in\u017einierom v SoundCloud a viedol monitorovaciu skupinu v CoreOS. V s\u00fa\u010dasnosti pracuje v Google.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Bplotka\">Bartek Plotka<\/a><\/noindex> \u2014 infra\u0161trukt\u00farny in\u017einier v Improbable. Zauj\u00edma sa o nov\u00e9 technol\u00f3gie a probl\u00e9my distribuovan\u00fdch syst\u00e9mov. M\u00e1 sk\u00fasenosti s n\u00edzko\u00farov\u0148ov\u00fdm programovan\u00edm v Intel, ako prispievate\u013e v Mesos a glob\u00e1lne production sk\u00fasenosti SRE v Improbable. Pracuje na zlep\u0161en\u00ed sveta mikroslu\u017eieb. Jeho tri l\u00e1sky: Golang, open source a volejbal.<\/i><\/p>\n<p>Pri poh\u013eade na n\u00e1\u0161 vlajkov\u00fd produkt SpatialOS si m\u00f4\u017eete domyslie\u0165, \u017ee pre Improbable je potrebn\u00e1 vysoko dynamick\u00e1 cloudov\u00e1 infra\u0161trukt\u00fara glob\u00e1lneho rozsahu s desiatkami klastrov Kubernetes. Boli sme jedni z prv\u00fdch, ktor\u00ed za\u010dali pou\u017e\u00edva\u0165 monitorovac\u00ed syst\u00e9m <noindex><a rel=\"nofollow\" href=\"https:\/\/prometheus.io\/\">Prometheus<\/a><\/noindex>. Prometheus dok\u00e1\u017ee sledova\u0165 mili\u00f3ny metr\u00edk v re\u00e1lnom \u010dase a je dod\u00e1van\u00fd s v\u00fdkonn\u00fdm dotazovac\u00edm jazykom, ktor\u00fd umo\u017e\u0148uje extrahova\u0165 potrebn\u00e9 inform\u00e1cie.<\/p>\n<p>Jednoduchos\u0165 a spo\u013eahlivos\u0165 Prometheus je jednou z jeho hlavn\u00fdch v\u00fdhod. Av\u0161ak, pri ur\u010ditom rozsahu sme sa stretli s nieko\u013ek\u00fdmi nev\u00fdhodami. Na rie\u0161enie t\u00fdchto probl\u00e9mov sme vyvinuli <noindex><a rel=\"nofollow\" href=\"https:\/\/thanos.io\/\">Thanos<\/a><\/noindex> \u2014 projekt s otvoren\u00fdm zdrojov\u00fdm k\u00f3dom, vytvoren\u00fd spolo\u010dnos\u0165ou Improbable, na bezprobl\u00e9mov\u00fa transform\u00e1ciu existuj\u00facich klastrov Prometheus do jedn\u00e9ho monitorovacieho syst\u00e9mu s neobmedzen\u00fdm \u00falo\u017eiskom historick\u00fdch d\u00e1t. Thanos je dostupn\u00fd na Github <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/improbable-eng\/thanos\">tu<\/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\">Bu\u010fte informovan\u00ed o najnov\u0161\u00edch spr\u00e1vach od Improbable.<\/a><\/noindex><\/p>\n<h2>Na\u0161e ciele s Thanos<\/h2>\n<p>\nPri ur\u010ditom rozsahu vznikaj\u00fa probl\u00e9my, ktor\u00e9 prekra\u010duj\u00fa mo\u017enosti vanilkov\u00e9ho Prometheus. Ako bezpe\u010dne a hospod\u00e1rne uchov\u00e1va\u0165 petabajty historick\u00fdch d\u00e1t? D\u00e1 sa to dosiahnu\u0165 bez po\u0161kodenia \u010dasu odpovede na dotaz? Je mo\u017en\u00e9 z\u00edska\u0165 pr\u00edstup ku v\u0161etk\u00fdm metrik\u00e1m umiestnen\u00fdm na r\u00f4znych serveroch Prometheus pomocou jedn\u00e9ho API dotazu? Je mo\u017en\u00e9 zl\u00fa\u010di\u0165 replikovan\u00e9 d\u00e1ta, zhroma\u017eden\u00e9 pomocou Prometheus HA?<\/p>\n<p>Na vyrie\u0161enie t\u00fdchto ot\u00e1zok sme vytvorili Thanos. V nasleduj\u00facich \u010dastiach sa popisuje, ako sme prist\u00fapili k vyrie\u0161eniu t\u00fdchto ot\u00e1zok a objas\u0148uj\u00fa sa ciele, ktor\u00e9 sme sledovali.<\/p>\n<h4>Dotazovanie d\u00e1t z viacer\u00fdch in\u0161tanci\u00ed Prometheus (global query)<\/h4>\n<p>\nPrometheus pon\u00faka funk\u010dn\u00fd pr\u00edstup k shardingu. Dokonca aj jeden server Prometheus zabezpe\u010duje dostato\u010dn\u00fa \u0161k\u00e1lovate\u013enos\u0165, aby oslobodil pou\u017e\u00edvate\u013eov od zlo\u017eitost\u00ed horizont\u00e1lneho shardingu takmer vo v\u0161etk\u00fdch pr\u00edpadoch pou\u017eitia.<\/p>\n<p>Hoci je to skvel\u00fd model nasadenia, \u010dasto je potrebn\u00e9 z\u00edska\u0165 pr\u00edstup k d\u00e1tam na r\u00f4znych serveroch Prometheus cez jednotn\u00e9 API alebo UI \u2014 global view. Samozrejme, existuje mo\u017enos\u0165 zobrazi\u0165 viacero dopytov na jednom paneli Grafana, ale ka\u017ed\u00fd dopyt m\u00f4\u017ee by\u0165 vykonan\u00fd iba na jednom serveri Prometheus. Na druhej strane, pomocou Thanos m\u00f4\u017eete dotazova\u0165 a agregova\u0165 d\u00e1ta z nieko\u013ek\u00fdch serverov Prometheus, ke\u010f\u017ee v\u0161etky s\u00fa dostupn\u00e9 z jedn\u00e9ho koncov\u00e9ho bodu.<\/p>\n<p>Predt\u00fdm, aby sme z\u00edskali global view v Improbable, sme organizovali na\u0161e in\u0161tancie Prometheus do viac\u00farov\u0148ovej <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/prometheus\/prometheus\/blob\/master\/docs\/federation.md#hierarchical-federation\">Hierarchical Federation<\/a><\/noindex>. To znamenalo vytvorenie jedn\u00e9ho meta-servera Prometheus, ktor\u00fd zbiera \u010das\u0165 metr\u00edk z ka\u017ed\u00e9ho \"listov\u00e9ho\" servera.<\/p>\n<p><img decoding=\"async\" alt=\"Thanos \u2014 \u0161k\u00e1lovate\u013en\u00fd Prometheus\" src=\"\/wp-content\/uploads\/2020\/05\/82590f017734f5dc1038a0e13f772d2a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTento pr\u00edstup sa uk\u00e1zal by\u0165 problematick\u00fd. Viedol k zlo\u017eitosti konfigur\u00e1cie, pridaniu \u010fal\u0161ieho potenci\u00e1lneho bodu zlyhania a uplatneniu zlo\u017eit\u00fdch pravidiel na poskytnutie federovanej koncovej bodu iba pre potrebn\u00e9 d\u00e1ta. Okrem toho, tak\u00e1to feder\u00e1cia neumo\u017e\u0148uje z\u00edska\u0165 skuto\u010dn\u00fd global view, preto\u017ee nie v\u0161etky d\u00e1ta s\u00fa dostupn\u00e9 z jedn\u00e9ho API dopytu.<\/p>\n<p>S t\u00fdm \u00fazko s\u00favis\u00ed jednotn\u00e9 zobrazenie d\u00e1t, zhroma\u017eden\u00fdch na vysoko dostupn\u00fdch (high-availability, HA) serveroch Prometheus. HA model Prometheus nez\u00e1visle zhroma\u017e\u010fuje d\u00e1ta dvakr\u00e1t, \u010do je tak jednoduch\u00e9, \u017ee to nem\u00f4\u017ee by\u0165 jednoduch\u0161ie. Av\u0161ak, pou\u017ei\u0165 kombinovan\u00e9 a deduplikovan\u00e9 zobrazenie oboch tokov by bolo ove\u013ea pohodlnej\u0161ie.<\/p>\n<p>Samozrejme, vo vysoko dostupn\u00fdch serveroch Prometheus existuje potreba. V Improbable sa skuto\u010dne v\u00e1\u017ene zaober\u00e1me min\u00fatov\u00fdm monitorovan\u00edm d\u00e1t, ale ma\u0165 jeden exempl\u00e1r Prometheus v kl\u00e1tri je jedin\u00fd bod zlyhania. Ak\u00e1ko\u013evek chyba v konfigur\u00e1cii alebo porucha hardv\u00e9ru m\u00f4\u017ee potenci\u00e1lne vies\u0165 k strate d\u00f4le\u017eit\u00fdch d\u00e1t. Dokonca aj jednoduch\u00e9 nasadenie m\u00f4\u017ee sp\u00f4sobi\u0165 drobn\u00e9 poruchy v zhroma\u017e\u010fovan\u00ed metr\u00edk, preto\u017ee re\u0161tart m\u00f4\u017ee by\u0165 v\u00fdrazne dlh\u0161\u00ed ako interval scrapingu.<\/p>\n<h4>Spo\u013eahliv\u00e9 uchov\u00e1vanie historick\u00fdch d\u00e1t<\/h4>\n<p>\nCenovo, r\u00fdchlo a dlhodob\u00e9 ukladanie metr\u00edk \u2013 to je n\u00e1\u0161 sen (zdie\u013ean\u00fd v\u00e4\u010d\u0161inou pou\u017e\u00edvate\u013eov Prometheus). V spolo\u010dnosti Improbable sme museli nastavi\u0165 dobu uchov\u00e1vania metr\u00edk na dev\u00e4\u0165 dn\u00ed (pre Prometheus 1.8). To prid\u00e1va zjavn\u00e9 obmedzenia na to, ako \u010faleko m\u00f4\u017eeme pozrie\u0165 sp\u00e4\u0165.<\/p>\n<p>Prometheus 2.0 sa v tomto oh\u013eade zlep\u0161il, preto\u017ee po\u010det \u010dasov\u00fdch s\u00e9ri\u00ed u\u017e nem\u00e1 vplyv na celkov\u00fd v\u00fdkon servera (pozri <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=nDalewt4BOw\">hlavn\u00fd prejav KubeCon o Prometheus 2<\/a><\/noindex>). Napriek tomu Prometheus uchov\u00e1va \u00fadaje na lok\u00e1lnom disku. Hoci vysoko \u00fa\u010dinn\u00e9 kompresie d\u00e1t m\u00f4\u017eu v\u00fdznamne zn\u00ed\u017ei\u0165 pou\u017e\u00edvanie lok\u00e1lneho SSD, nakoniec tu st\u00e1le existuje obmedzenie na objem uchov\u00e1van\u00fdch historick\u00fdch d\u00e1t.<\/p>\n<p>Okrem toho sa v Improbable star\u00e1me o spo\u013eahlivos\u0165, jednoduchos\u0165 a n\u00e1klady. Ve\u013ek\u00e9 lok\u00e1lne disky s\u00fa zlo\u017eitej\u0161ie na prev\u00e1dzku a z\u00e1lohovanie. Stoja viac a vy\u017eaduj\u00fa viac n\u00e1strojov na z\u00e1lohovanie, \u010do vedie k zbyto\u010dnej zlo\u017eitosti.<\/p>\n<h4>Downsampling<\/h4>\n<p>\nAkon\u00e1hle sme za\u010dali pracova\u0165 s historick\u00fdmi d\u00e1tami, pochopili sme, \u017ee existuj\u00fa z\u00e1kladn\u00e9 komplik\u00e1cie s O-velk\u00fdm, ktor\u00e9 sp\u00f4sobuj\u00fa, \u017ee dotazy s\u00fa st\u00e1le pomal\u0161ie, ak pracujeme s d\u00e1tami za t\u00fd\u017edne, mesiace a roky.<\/p>\n<p>\u0160tandardn\u00fdm rie\u0161en\u00edm tejto probl\u00e9my bude <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Decimation_(signal_processing)\">downsampling<\/a><\/noindex> (downsampling) \u2013 zn\u00ed\u017eenie frekvencie vzorkovania sign\u00e1lu. Pomocou zni\u017eovania vzorkovania m\u00f4\u017eeme \"zmen\u0161i\u0165 mierku\" na v\u00e4\u010d\u0161ie \u010dasov\u00e9 obdobie a udr\u017eiava\u0165 predch\u00e1dzaj\u00faci po\u010det vzoriek, \u010do umo\u017en\u00ed zachova\u0165 reak\u010dnos\u0165 dotazov.<\/p>\n<p>Downsampling star\u00fdch d\u00e1t je nevyhnutn\u00fdm po\u017eiadavkom ak\u00e9hoko\u013evek rie\u0161enia pre dlhodob\u00e9 uchov\u00e1vanie a presahuje r\u00e1mec vanilkov\u00e9ho Prometheus.<\/p>\n<h4>\u010eal\u0161ie ciele<\/h4>\n<p>\nJedn\u00fdm z po\u010diato\u010dn\u00fdch cie\u013eov projektu Thanos bola bezprobl\u00e9mov\u00e1 integr\u00e1cia so v\u0161etk\u00fdmi existuj\u00facimi in\u0161tal\u00e1ciami Prometheus. Druh\u00fd cie\u013e spo\u010d\u00edval v jednoduchosti prev\u00e1dzky s minim\u00e1lnou bari\u00e9rou pre vstup. Ak\u00e9ko\u013evek z\u00e1vislosti by mali by\u0165 \u013eahko splnite\u013en\u00e9 pre mal\u00e9 aj ve\u013ek\u00e9 u\u017e\u00edvate\u013eov, \u010do tie\u017e znamen\u00e1 mal\u00fa z\u00e1kladn\u00fa cenu.<\/p>\n<h2>Architekt\u00fara Thanos<\/h2>\n<p>\nPo tom, \u010do boli v predch\u00e1dzaj\u00facej \u010dasti uveden\u00e9 na\u0161e ciele, po\u010fme sa na ne s\u00fastredi\u0165 a pozrie\u0165 sa, ako Thanos tieto probl\u00e9my rie\u0161i.<\/p>\n<h4>Glob\u00e1lny poh\u013ead<\/h4>\n<p>\nAby sme z\u00edskali glob\u00e1lny poh\u013ead na existuj\u00face in\u0161tancie Prometheus, potrebujeme spoji\u0165 jednotn\u00fd bod vstupu po\u017eiadaviek so v\u0161etk\u00fdmi servermi. To je \u00faloha komponentu Thanos. <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/blog\/2015\/06\/the-distributed-system-toolkit-patterns#example-1-sidecar-containers\">Sidecar<\/a><\/noindex>. Rozmiest\u0148uje sa ved\u013ea ka\u017ed\u00e9ho servera Prometheus a funguje ako proxy, poskytuj\u00faca miestne \u00fadaje Prometheus prostredn\u00edctvom gRPC rozhrania Store API, \u010do umo\u017e\u0148uje vyh\u013ead\u00e1va\u0165 \u010dasov\u00e9 rady pod\u013ea zna\u010diek a \u010dasov\u00e9ho rozsahu.<\/p>\n<p>Na druhej strane je horizont\u00e1lne \u0161k\u00e1lovate\u013en\u00fd komponent Querier bez uchov\u00e1vania stavu, ktor\u00fd rob\u00ed o nie\u010do viac, ne\u017e len odpoved\u00e1 na po\u017eiadavky PromQL cez \u0161tandardn\u00e9 HTTP API Prometheus. Komponenty Querier, Sidecar a \u010fal\u0161ie Thanos interaguj\u00fa prostredn\u00edctvom <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Gossip_protocol\">gossip protokolu.<\/a><\/noindex>.<\/p>\n<p><img decoding=\"async\" alt=\"Thanos \u2014 \u0161k\u00e1lovate\u013en\u00fd Prometheus\" src=\"\/wp-content\/uploads\/2020\/05\/fbcf1e756f5da4e8529f17abd4cedd00.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<ol>\n<li>Querier, ke\u010f dostane po\u017eiadavku, sa pripoj\u00ed k pr\u00edslu\u0161n\u00e9mu serveru Store API, teda k na\u0161im Sidecarom, a z\u00edska \u010dasov\u00e9 rady z pr\u00edslu\u0161n\u00fdch serverov Prometheus.<\/li>\n<li>N\u00e1sledne zl\u00fa\u010di odpovede a vykon\u00e1 na nich PromQL dopyt. Querier dok\u00e1\u017ee zl\u00fa\u010di\u0165 ako neprekr\u00fdvaj\u00face sa \u00fadaje, tak aj duplicitn\u00e9 \u00fadaje z HA serverov Prometheus.<\/li>\n<\/ol>\n<p>\nT\u00fdmto sa rie\u0161i v\u00e4\u010d\u0161ina na\u0161ej h\u00e1danky \u2013 zl\u00fa\u010denie \u00fadajov z izolovan\u00fdch serverov Prometheus do jednotn\u00e9ho zobrazenia. V skuto\u010dnosti sa Thanos m\u00f4\u017ee pou\u017e\u00edva\u0165 len kv\u00f4li tejto funk\u010dnosti. Nie je potrebn\u00e9 meni\u0165 existuj\u00face servery Prometheus!<\/p>\n<h4>Neobmedzen\u00e9 obdobie uchov\u00e1vania!<\/h4>\n<p>\nAv\u0161ak sk\u00f4r \u010di nesk\u00f4r budeme chcie\u0165 uchova\u0165 \u00fadaje, ktor\u00e9 presahuj\u00fa be\u017en\u00e9 obdobie uchov\u00e1vania Prometheus. Na uchov\u00e1vanie historick\u00fdch \u00fadajov sme si zvolili objektov\u00e9 \u00falo\u017eisko. To je \u0161iroko dostupn\u00e9 v akomko\u013evek cloude, ako aj v miestnych d\u00e1tov\u00fdch centr\u00e1ch a je ve\u013emi ekonomick\u00e9. Navy\u0161e takmer ak\u00e9ko\u013evek objektov\u00e9 \u00falo\u017eisko je dostupn\u00e9 cez dobre zn\u00e1me S3 API.<\/p>\n<p>Prometheus zapisuje \u00fadaje z opera\u010dnej pam\u00e4te na disk pribli\u017ene ka\u017ed\u00e9 dve hodiny. Blok uchov\u00e1van\u00fdch \u00fadajov obsahuje v\u0161etky d\u00e1ta za stanoven\u00fd \u010dasov\u00fd \u00fasek a je nemenn\u00fd. To je ve\u013emi v\u00fdhodn\u00e9, preto\u017ee Thanos Sidecar m\u00f4\u017ee jednoducho sledova\u0165 adres\u00e1r \u00fadajov Prometheus a ako sa objavuj\u00fa nov\u00e9 bloky, nahr\u00e1va\u0165 ich do vedier objektov\u00e9ho \u00falo\u017eiska.<\/p>\n<p><img decoding=\"async\" alt=\"Thanos \u2014 \u0161k\u00e1lovate\u013en\u00fd Prometheus\" src=\"\/wp-content\/uploads\/2020\/05\/2be803d8d7e0ce9a5ffa441b7778a40b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNahr\u00e1vanie do objektov\u00e9ho \u00falo\u017eiska hne\u010f po z\u00e1pise na disk tie\u017e umo\u017e\u0148uje zachova\u0165 jednoduchos\u0165 \u201escraperu\u201c (Prometheus a Thanos Sidecar). To zjednodu\u0161uje \u00fadr\u017ebu, n\u00e1klady a dizajn syst\u00e9mu.<\/p>\n<p>Ako vid\u00edte, z\u00e1lohovanie \u00fadajov je ve\u013emi jednoduch\u00e9. Ale \u010do tak po\u017eiadavky na \u00fadaje v objektovom \u00falo\u017eisku?<\/p>\n<p>Komponent Thanos Store p\u00f4sob\u00ed ako proxy na z\u00edskavanie \u00fadajov z objektov\u00e9ho \u00falo\u017eiska. Rovnako ako Thanos Sidecar, je s\u00fa\u010das\u0165ou gossip klasteru a implementuje Store API. Takto m\u00f4\u017eu existuj\u00face Querier pova\u017eova\u0165 jeho za Sidecar ako \u010fal\u0161\u00ed zdroj \u00fadajov \u010dasovej rady \u2014 nevy\u017eaduje \u017eiadnu \u0161peci\u00e1lnu konfigur\u00e1ciu.<\/p>\n<p><img decoding=\"async\" alt=\"Thanos \u2014 \u0161k\u00e1lovate\u013en\u00fd Prometheus\" src=\"\/wp-content\/uploads\/2020\/05\/5a437ae1bf8a6f79b8d24aeb9dde2d17.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nBloky \u00fadajov \u010dasovej rady pozost\u00e1vaj\u00fa z nieko\u013ek\u00fdch ve\u013ek\u00fdch s\u00faborov. Na\u010d\u00edtanie ich na po\u017eiadanie by bolo pomerne neefekt\u00edvne a miestne cachovanie by vy\u017eadovalo obrovsk\u00e9 mno\u017estvo pam\u00e4te a diskov\u00e9ho priestoru.<\/p>\n<p>Namiesto toho Store Gateway vie, ako pracova\u0165 s form\u00e1tom ukladania Prometheus. V\u010faka inteligentn\u00e9mu pl\u00e1nova\u010du po\u017eiadaviek a cachovaniu iba potrebn\u00fdch indexov\u00fdch \u010dast\u00ed blokov sa podarilo zn\u00ed\u017ei\u0165 zlo\u017een\u00e9 po\u017eiadavky na minim\u00e1lny po\u010det HTTP po\u017eiadaviek na s\u00fabory objektov\u00e9ho \u00falo\u017eiska. Takto je mo\u017en\u00e9 zn\u00ed\u017ei\u0165 po\u010det po\u017eiadaviek o \u0161tyri a\u017e \u0161es\u0165 r\u00e1dov a dosiahnu\u0165 \u010das odozvy, ktor\u00fd je celkovo \u0165a\u017ek\u00e9 odli\u0161it od po\u017eiadaviek na \u00fadaje na miestnom SSD.<\/p>\n<p><img decoding=\"async\" alt=\"Thanos \u2014 \u0161k\u00e1lovate\u013en\u00fd Prometheus\" src=\"\/wp-content\/uploads\/2020\/05\/ebcbe1ee16dbac18daa474e7cb4b12b2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAko je zn\u00e1zornen\u00e9 na vy\u0161\u0161ej diagrame, Thanos Querier v\u00fdrazne zni\u017euje n\u00e1klady na jednu po\u017eiadavku na \u00fadaje v objektovom \u00falo\u017eisku, pri\u010dom pou\u017e\u00edva form\u00e1t ukladania Prometheus a umiest\u0148uje s\u00favisiace \u00fadaje bl\u00edzko seba. Pou\u017eit\u00edm tohto pr\u00edstupu m\u00f4\u017eeme zl\u00fa\u010di\u0165 mno\u017estvo jednotliv\u00fdch po\u017eiadaviek na minim\u00e1lny po\u010det hromadn\u00fdch oper\u00e1ci\u00ed.<\/p>\n<h4>Kompakcia a downsamping<\/h4>\n<p>\nAkon\u00e1hle je nov\u00fd blok \u00fadajov \u010dasovej rady \u00faspe\u0161ne nahrat\u00fd do objektov\u00e9ho \u00falo\u017eiska, pova\u017eujeme ho za 'historick\u00e9' \u00fadaje, ktor\u00e9 s\u00fa okam\u017eite k dispoz\u00edcii cez Store Gateway.<\/p>\n<p>Av\u0161ak po chv\u00edli sa bloky z jedn\u00e9ho zdroja (Prometheus so Sidecar) hromadia a u\u017e nevyu\u017e\u00edvaj\u00fa cel\u00fd potenci\u00e1l indexovania. Na vyrie\u0161enie tohto probl\u00e9mu sme zaviedli e\u0161te jednu komponentu naz\u00fdvan\u00fa Compactor. Jednoducho aplikuje miestny mechanizmus kompakcie Prometheus na historick\u00e9 \u00fadaje v objektovom \u00falo\u017eisku a m\u00f4\u017ee by\u0165 spusten\u00fd ako jednoduch\u00e1 periodick\u00e1 d\u00e1vkov\u00e1 \u00faloha.<\/p>\n<p><img decoding=\"async\" alt=\"Thanos \u2014 \u0161k\u00e1lovate\u013en\u00fd Prometheus\" src=\"\/wp-content\/uploads\/2020\/05\/c7dd83dab074a4c5f93069a4bc152342.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV\u010faka efekt\u00edvnemu stla\u010deniu nezap\u00f4sob\u00ed dopyt do \u00falo\u017eiska na dlh\u00fa dobu probl\u00e9m z h\u013eadiska ve\u013ekosti \u00fadajov. Av\u0161ak potenci\u00e1lne n\u00e1klady na rozbalenie miliardy hodn\u00f4t a ich spracovanie cez dotazovaciu agenta nevyhnutne poved\u00fa k v\u00fdrazn\u00e9mu zv\u00fd\u0161eniu \u010dasu vykon\u00e1vania dopytu. Na druhej strane, preto\u017ee na ka\u017ed\u00fd pixel obrazovky pripad\u00e1 stovky bodov \u00fadajov, st\u00e1va sa nemo\u017en\u00fdm aj vizualizova\u0165 \u00fadaje v plnom rozl\u00ed\u0161en\u00ed. Tak\u017ee downsampling nie je len mo\u017en\u00fd, ale ani nevedie k znate\u013enej strate presnosti. <\/p>\n<p><img decoding=\"async\" alt=\"Thanos \u2014 \u0161k\u00e1lovate\u013en\u00fd Prometheus\" src=\"\/wp-content\/uploads\/2020\/05\/5f36a05aba3fbffa905b6a8da482ab3d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPre downsampling \u00fadajov Compactor neust\u00e1le agreguje \u00fadaje s rozl\u00ed\u0161en\u00edm p\u00e4\u0165 min\u00fat a jednu hodinu. Pre ka\u017ed\u00fd neopracovan\u00fd fragment, zak\u00f3dovan\u00fd pomocou TSDB XOR-kompresie, s\u00fa ulo\u017een\u00e9 r\u00f4zne typy agregovan\u00fdch \u00fadajov, ako min, max alebo sum pre jeden blok. To umo\u017e\u0148uje Querier automaticky vybra\u0165 agreg\u00e1t, ktor\u00fd je vhodn\u00fd pre dan\u00fd PromQL dopyt. <\/p>\n<p>Na pou\u017e\u00edvanie \u00fadajov s ni\u017e\u0161ou presnos\u0165ou pou\u017e\u00edvate\u013e nepotrebuje \u017eiadnu \u0161peci\u00e1lnu konfigur\u00e1ciu. Querier sa automaticky prep\u00edna medzi r\u00f4znymi rozl\u00ed\u0161eniami a neopracovan\u00fdmi \u00fadajmi pri zv\u00e4\u010d\u0161ovan\u00ed a zmen\u0161ovan\u00ed mierky pou\u017e\u00edvate\u013eom. Ak chce, pou\u017e\u00edvate\u013e m\u00f4\u017ee spravova\u0165 tento priamo cez parameter \u201cstep\u201d v dopyte. <\/p>\n<p>Ke\u010f\u017ee n\u00e1klady na ukladanie jedn\u00e9ho GB s\u00fa mal\u00e9, Thanos v predvolenom nastaven\u00ed uchov\u00e1va p\u00f4vodn\u00e9 \u00fadaje, \u00fadaje s rozl\u00ed\u0161en\u00edm p\u00e4\u0165 min\u00fat a jednu hodinu. Nie je potrebn\u00e9 odstr\u00e1ni\u0165 p\u00f4vodn\u00e9 \u00fadaje.<\/p>\n<h2>Pravidl\u00e1 nahr\u00e1vania<\/h2>\n<p>\nAj s Thanos s\u00fa pravidl\u00e1 nahr\u00e1vania v\u00fdznamnou s\u00fa\u010das\u0165ou monitorovacieho stacku. Zni\u017euj\u00fa zlo\u017eitosti, oneskorenie a n\u00e1klady na dopyty. S\u00fa tie\u017e u\u017eito\u010dn\u00e9 pre pou\u017e\u00edvate\u013eov, aby z\u00edskali agregovan\u00e9 \u00fadaje o metrik\u00e1ch. Thanos je zalo\u017een\u00fd na vanilkov\u00fdch in\u0161tanci\u00e1ch Prometheus, tak\u017ee je celkom prijate\u013en\u00e9 uchov\u00e1va\u0165 pravidl\u00e1 nahr\u00e1vania a alerting pravidl\u00e1 na existuj\u00facom serveri Prometheus. Av\u0161ak v niektor\u00fdch pr\u00edpadoch to m\u00f4\u017ee by\u0165 nedostato\u010dn\u00e9:<\/p>\n<ul>\n<li>Glob\u00e1lne alert a pravidlo (napr\u00edklad upozornenie, ke\u010f slu\u017eba nefunguje na viac ako dvoch z troch klastrov).<\/li>\n<li>Pravidlo pre \u00fadaje mimo lok\u00e1lne \u00falo\u017eisko.<\/li>\n<li>Tendencia uchov\u00e1va\u0165 v\u0161etky pravidl\u00e1 a alerty na jednom mieste.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Thanos \u2014 \u0161k\u00e1lovate\u013en\u00fd Prometheus\" src=\"\/wp-content\/uploads\/2020\/05\/ab48e044b952bd891932b99e248120fa.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPre v\u0161etky tieto pr\u00edpady Thanos obsahuje samostatn\u00fa zlo\u017eku naz\u00fdvan\u00fa Ruler, ktor\u00e1 vypo\u010d\u00edtava pravidl\u00e1 a upozornenia prostredn\u00edctvom Thanos Queries. Poskytovan\u00edm dobre zn\u00e1meho StoreAPI m\u00f4\u017ee uzol Query pristupova\u0165 k \u010derstvo vypo\u010d\u00edtan\u00fdm metrik\u00e1m. Nesk\u00f4r s\u00fa tie\u017e ulo\u017een\u00e9 v objektovom \u00falo\u017eisku a s\u00fa dostupn\u00e9 prostredn\u00edctvom Store Gateway.<\/p>\n<h2>Sila Thanos<\/h2>\n<p>\nThanos je dostato\u010dne flexibiln\u00fd, aby sa dal prisp\u00f4sobi\u0165 va\u0161im po\u017eiadavk\u00e1m. To je obzvl\u00e1\u0161\u0165 u\u017eito\u010dn\u00e9 pri migr\u00e1cii z jednoduch\u00e9ho Prometheus. R\u00fdchlo si pripome\u0148me, \u010do sme sa nau\u010dili o komponentoch Thanos. Takto prenesiete v\u00e1\u0161 vanilkov\u00fd Prometheus do sveta \u201eneobmedzen\u00e9ho ulo\u017eenia metr\u00edk\u201c:<\/p>\n<p><img decoding=\"async\" alt=\"Thanos \u2014 \u0161k\u00e1lovate\u013en\u00fd Prometheus\" src=\"\/wp-content\/uploads\/2020\/05\/f6ee4185af57d2a1869890014e6a0062.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<ol>\n<li>Pridajte Thanos Sidecar k va\u0161im serverom Prometheus \u2014 napr\u00edklad susedn\u00fd kontajner v Kubernetes pude.<\/li>\n<li>Nasadte nieko\u013eko replik Thanos Querier pre mo\u017enos\u0165 prezerania d\u00e1t. V tomto \u0161t\u00e1diu je \u013eahk\u00e9 nastavi\u0165 gossip medzi Scraper a Querier. Na overenie interakcie komponentov pou\u017eite metriku 'thanos_cluster_members'.<\/li>\n<\/ol>\n<p>\nLen tieto dva kroky s\u00fa dostato\u010dn\u00e9 na zabezpe\u010denie glob\u00e1lneho poh\u013eadu a plynulej deduplik\u00e1cie d\u00e1t z potenci\u00e1lnych HA replik Prometheus! Jednoducho pripojte svoje dashboardy k HTTP endpointu Querier alebo pou\u017e\u00edvajte Thanos UI priamo.<\/p>\n<p>Ak v\u0161ak potrebujete z\u00e1lohovanie metr\u00edk a dlhodob\u00e9 ulo\u017eenie, budete musie\u0165 vykona\u0165 e\u0161te tri kroky:<\/p>\n<ol>\n<li>Vytvorte bucket AWS S3 alebo GCS. Nastavte Sidecar na kop\u00edrovanie d\u00e1t do t\u00fdchto bucketov. Zn\u00ed\u017ete lok\u00e1lne ulo\u017eenie d\u00e1t na minimum.<\/li>\n<li>Nasadte Store Gateway a pripojte ho k existuj\u00facemu gossip klastrom. Teraz m\u00f4\u017eete posiela\u0165 po\u017eiadavky na d\u00e1ta v z\u00e1loh\u00e1ch!<\/li>\n<li>Nasadte Compactor, aby ste zv\u00fd\u0161ili \u00fa\u010dinnos\u0165 po\u017eiadaviek na dlh\u00e9 \u010dasov\u00e9 obdobia, pri\u010dom pou\u017eijete kompresiu a zni\u017eovanie vzorky.<\/li>\n<\/ol>\n<p>\nAk sa chcete dozvedie\u0165 viac, nev\u00e1hajte sa pozrie\u0165 na na\u0161e <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/improbable-eng\/thanos\/tree\/master\/kube\">pr\u00edklady manifestu kubernetes<\/a><\/noindex> a <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/improbable-eng\/thanos\/blob\/master\/docs\/getting-started.md\">za\u010dnite<\/a><\/noindex>!<\/p>\n<p>V piatich jednoduch\u00fdch krokoch sme premenili Prometheus na spo\u013eahliv\u00fd syst\u00e9m monitorovania s glob\u00e1lnym poh\u013eadom, neobmedzen\u00fdm \u010dasom uchov\u00e1vania a potenci\u00e1lnou vysokou dostupnos\u0165ou metr\u00edk.<\/p>\n<h3>Pull request: potrebujeme v\u00e1s!<\/h3>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/improbable-eng\/thanos\">Thanos<\/a><\/noindex> od za\u010diatku bol projektom s otvoren\u00fdm k\u00f3dom. Bezprobl\u00e9mov\u00e1 integr\u00e1cia s Prometheus a mo\u017enos\u0165 vyu\u017e\u00edva\u0165 iba \u010das\u0165 Thanos rob\u00ed z neho vynikaj\u00facu vo\u013ebu na \u0161k\u00e1lovanie syst\u00e9mu monitorovania bez zbyto\u010dn\u00e9ho \u00fasilia.<\/p>\n<p>Sme v\u017edy radi za GitHub Pull Requesty a Issues. Z\u00e1rove\u0148 sa nev\u00e1hajte na n\u00e1s obr\u00e1ti\u0165 cez Github Issues alebo Slack.<noindex><a rel=\"nofollow\" href=\"https:\/\/join.slack.com\/t\/improbable-eng\/shared_invite\/enQtMzQ1ODcyMzQ5MjM4LWY5ZWZmNGM2ODc5MmViNmQ3ZTA3ZTY3NzQwOTBlMTkzZmIxZTIxODk0OWU3YjZhNWVlNDU3MDlkZGViZjhkMjc\"> Improbable-eng #thanos<\/a><\/noindex>, ak m\u00e1te ot\u00e1zky alebo pripomienky, alebo sa chcete podeli\u0165 o svoju sk\u00fasenos\u0165! Ak sa v\u00e1m p\u00e1\u010di to, \u010do rob\u00edme v Improbable, nev\u00e1hajte n\u00e1s kontaktova\u0165 \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/improbable.io\/careers\/\">m\u00e1me v\u017edy otvoren\u00e9 poz\u00edcie.<\/a><\/noindex>!<\/p>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/jYQP\/\">Zisti\u0165 viac o kurze.<br \/>\n<\/a><\/noindex><\/p>\n<p>Zdroj: <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\/sk\/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=\"sk_SK\" \/>\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\/sk\/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 \u0161k\u00e1lovate\u013en\u00fd Prometheus | ProHoster","description":"Preklad \u010dl\u00e1nku bol pripraven\u00fd \u0161peci\u00e1lne pre \u0161tudentov kurzu \u201eDevOps praktiky a n\u00e1stroje\u201c.","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/thanos-masshtabiruemyj-prometheus","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sk_SK","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\/sk\/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\/sk\/wp-json\/wp\/v2\/posts\/81888","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=81888"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/81888\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media\/81889"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=81888"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=81888"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=81888"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}