{"id":94153,"date":"2020-09-13T19:42:30","date_gmt":"2020-09-13T17:42:30","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/victoriametrics-i-monitoring-privatnyh-oblakov-pavel-kolobaev"},"modified":"2020-09-13T19:42:30","modified_gmt":"2020-09-13T17:42:30","slug":"victoriametrics-i-monitoring-privatnyh-oblakov-pavel-kolobaev","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/victoriametrics-i-monitoring-privatnyh-oblakov-pavel-kolobaev","title":{"rendered":"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/d84a6783fbf35e9d96afd263b5cd4578.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>VictoriaMetrics \u2014 szybka i skalowalna baza danych do przechowywania i przetwarzania danych w formie szereg\u00f3w czasowych (zapis tworzy czas oraz zbi\u00f3r odpowiadaj\u0105cych mu warto\u015bci, na przyk\u0142ad uzyskanych przez okresowe zapytanie stanu czujnik\u00f3w lub zbieranie metryk).<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<center><div class=\"youtube-placeholder\" data-id=\"74swsWqf0Uc\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/74swsWqf0Uc\/hqdefault.jpg\" alt=\"Odtwarzaj wideo\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/df849870a0432a863e34eb11387c9fab.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Nazywam si\u0119 Pawel Kolobaev. DevOps, SRE, LeroyMerlin, wszystko jako kod \u2014 to wszystko o nas: o mnie i o innych pracownikach LeroyMerlin.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/b7b63999cef8d80148bf666c2bce335a.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/bit.ly\/3jf1fIK\">https:\/\/bit.ly\/3jf1fIK<\/a><\/noindex><\/p>\n<p><\/p>\n<p>Mamy chmur\u0119 opart\u0105 na OpenStack. Jest tam niewielki link do radar\u00f3w technologicznych. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/e99d4aeab2a62bc46cfa9aaadb9590af.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Zbudowane jest na bazie sprz\u0119tu Kubernetes oraz wszystkich towarzysz\u0105cych us\u0142ug OpenStack i logowania. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/c19c24b9006162eaf79f8f9bdc5aa14a.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Schemat wygl\u0105da\u0142 tak podczas rozwoju. Kiedy to wszystko tworzyli\u015bmy, mieli\u015bmy operatora Prometheus, kt\u00f3ry przechowywa\u0142 dane wewn\u0105trz samego klastra K8s. Automatycznie znajduje to, co trzeba zeskrobi\u0107 i sk\u0142ada sobie pod nogi, m\u00f3wi\u0105c w przeno\u015bni. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/ebaf6b3d32483c405a1ae69d0ea7e3ea.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Wszystkie dane musimy przenie\u015b\u0107 poza klaster Kubernetes, poniewa\u017c je\u015bli co\u015b si\u0119 wydarzy, musimy wiedzie\u0107, co i gdzie jest. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/36f921aa715ed00b9ac26ae3861a73b8.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Pierwsze rozwi\u0105zanie \u2014 u\u017cywamy federacji, kiedy mamy zewn\u0119trzny serwer Prometheus, kiedy wchodzimy w klaster Kubernetes przez mechanizm federacji.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/11033de585d88cfaee1edeec908da55a.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ale pojawiaj\u0105 si\u0119 ma\u0142e problemy. W naszym przypadku problemy zacz\u0119\u0142y si\u0119, gdy mieli\u015bmy 250 000 metryk, a kiedy sta\u0142o si\u0119 400 000 metryk, zrozumieli\u015bmy, \u017ce nie mo\u017cemy tak dzia\u0142a\u0107. Zwi\u0119kszyli\u015bmy scrape_timeout do 25 sekund.<\/p>\n<p><\/p>\n<p>Dlaczego musieli\u015bmy to zrobi\u0107? Prometheus zaczyna odlicza\u0107 czas wyga\u015bni\u0119cia od chwili pobrania danych. I nieistotne, \u017ce dane wci\u0105\u017c p\u0142yn\u0105. Je\u015bli w tym okre\u015blonym czasie dane nie zosta\u0142y przes\u0142ane, a sesja nie zostanie zamkni\u0119ta przez http, to uwa\u017ca si\u0119, \u017ce sesja jest nieudana i dane nie trafiaj\u0105 do samego Prometheusa.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/c5d8f034cbf80638775ecc68b6ad8f21.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Wszystkie znajome wykresy, kt\u00f3re otrzymujemy, gdy cz\u0119\u015b\u0107 danych brakuje. Wykresy s\u0105 porwane i nam to nie odpowiada. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/8caa1939ac95d26163e98ed2bd12fd6a.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Nast\u0119pn\u0105 opcj\u0105 jest szardowanie w oparciu o dwa r\u00f3\u017cne serwery Prometheus przez ten sam mechanizm federacji.<\/p>\n<p><\/p>\n<p>Na przyk\u0142ad po prostu wzi\u0105\u0107 i rozdzieli\u0107 po nazwie. To mo\u017cna r\u00f3wnie\u017c wykorzysta\u0107, ale postanowili\u015bmy i\u015b\u0107 dalej. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/c5715365ac494689194ad4d305a7be08.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>B\u0119dziemy teraz musieli jako\u015b przetwarza\u0107 te shard'y. Mo\u017cna wzi\u0105\u0107 promxy, kt\u00f3ry wejdzie w obszar sharda i zduplikuje dane. Dzia\u0142a z dwoma shardami jak z jednolitym punktem wej\u015bcia. Mo\u017cna to zrealizowa\u0107 przez promxy, ale jak na razie jest zbyt skomplikowane. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/672984d1ca13743acb4b8102b74d0eb2.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Pierwsza opcja \u2013 chcemy zrezygnowa\u0107 z mechanizmu federacji, poniewa\u017c jest bardzo wolny. <\/p>\n<p><\/p>\n<p>Deweloperzy Prometheus wyra\u017anie m\u00f3wi\u0105: \u201eLudzie, u\u017cywajcie innych TimescaleDB, poniewa\u017c nie b\u0119dziemy d\u0142ugo wspiera\u0107 przechowywania metryk\u201d. To nie jest ich zadanie. <img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/dfc59949ec16fe731d339d7bf477edff.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Zapisujemy sobie na kartce, \u017ce jednak potrzebujemy eksportu na zewn\u0105trz, aby nie przechowywa\u0107 wszystkiego w jednym miejscu. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/a0e566b89c15df9c17c0750ce8512044.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Drug\u0105 wad\u0105 jest zu\u017cycie pami\u0119ci. Tak, rozumiem, \u017ce wielu powie, \u017ce w 2020 roku kilka gigabajt\u00f3w pami\u0119ci to kosztuje grosze, ale mimo to. <\/p>\n<p><\/p>\n<p>Obecnie mamy \u015brodowisko dev i prod. W dev to oko\u0142o 9 gigabajt\u00f3w na 350 000 metryk. W prod \u2013 to nieco ponad 14 gigabajt\u00f3w na 780 000 metryk. Przy tym czas retencji wynosi zaledwie 30 minut. To \u017ale. I teraz wyt\u0142umacz\u0119 dlaczego.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/35ad6d2792fd4dbf68b15851f24eb047.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Robimy obliczenia, tzn. przy p\u00f3\u0142tora miliona metryk, a ju\u017c si\u0119 do nich zbli\u017camy, na etapie projektowania otrzymujemy 35-37 gigabajt\u00f3w pami\u0119ci. Ale ju\u017c przy 4 milionach metryk potrzeba oko\u0142o 90 gigabajt\u00f3w pami\u0119ci. Tzn. to zosta\u0142o obliczone na podstawie formu\u0142y dostarczonej przez deweloper\u00f3w Prometheus. Zbadali\u015bmy korelacj\u0119 i zrozumieli\u015bmy, \u017ce nie chcemy p\u0142aci\u0107 kilku milion\u00f3w za serwer tylko do monitorowania. <\/p>\n<p><\/p>\n<p>Nie tylko zwi\u0119kszy si\u0119 liczba maszyn, ale r\u00f3wnie\u017c monitorujemy same maszyny wirtualne. Dlatego im wi\u0119cej maszyn wirtualnych, tym wi\u0119cej r\u00f3\u017cnych metryk itd. B\u0119dzie to specjalny wzrost naszego klastra pod wzgl\u0119dem metryk.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/d0aa8f00c7bd511b128bfa38cd280d03.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Z przestrzeni\u0105 dyskow\u0105 nie jest a\u017c tak \u017ale, ale chcieliby\u015bmy poprawi\u0107 sytuacj\u0119. W ci\u0105gu 15 dni uzyskali\u015bmy \u0142\u0105cznie 120 gigabajt\u00f3w, z czego 100 \u2013 to dane skompresowane, 20 \u2013 to dane nieskompresowane, ale zawsze chcemy, aby by\u0142o ich mniej. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/04dcc202029ce2433ae5cfb379c51181.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Odpowiednio, zapisujemy jeszcze jeden punkt \u2013 to du\u017ce zu\u017cycie zasob\u00f3w, kt\u00f3re chcieliby\u015bmy jednak oszcz\u0119dza\u0107, poniewa\u017c nie chcemy, aby nasz klaster monitorowania poch\u0142ania\u0142 wi\u0119cej zasob\u00f3w ni\u017c nasz klaster zajmuj\u0105cy si\u0119 zarz\u0105dzaniem OpenStack.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/1708dcd413d890f18149414616f6264e.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Jest jeszcze jedna wada Prometheus, kt\u00f3r\u0105 zidentyfikowali\u015bmy, to jakie\u015b ograniczenie dotycz\u0105ce pami\u0119ci. Z Prometheus jest tutaj znacznie gorzej, poniewa\u017c nie ma w og\u00f3le takich opcji. U\u017cywanie ogranicze\u0144 w Dockerze r\u00f3wnie\u017c nie jest rozwi\u0105zaniem. Je\u015bli nagle \u0443 was spad\u0142 RAF i tam jest 20-30 gigabajt\u00f3w, to jego uruchomienie zajmie bardzo du\u017co czasu. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/95a19ff217d1601e9ee8dbe1f1b11ba2.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>To jeszcze jedna przyczyna, dla kt\u00f3rej Prometheus nam nie odpowiada, tzn. nie mo\u017cna ograniczy\u0107 zu\u017cycia pami\u0119ci. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/77280b358370327e4285c90795833a23.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Mo\u017cna by by\u0142o opracowa\u0107 taki schemat. Ten schemat jest nam potrzebny, aby zorganizowa\u0107 klaster HA. Chcemy, aby nasze metryki by\u0142y zawsze i wsz\u0119dzie dost\u0119pne, nawet w przypadku awarii serwera przechowuj\u0105cego te metryki. W zwi\u0105zku z tym musimy stworzy\u0107 taki schemat. <\/p>\n<p><\/p>\n<p>Ten schemat m\u00f3wi, \u017ce b\u0119dziemy mie\u0107 duplikacj\u0119 shard\u00f3w, a tym samym duplikacj\u0119 wydatk\u00f3w na zasoby. Mo\u017cna go prawie poziomo skalowa\u0107, jednak zu\u017cycie zasob\u00f3w b\u0119dzie ogromne. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/461a4c163693af4700d69a0667aea667.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Wady w kolejno\u015bci, w jakiej je wypisali\u015bmy:<\/p>\n<p><\/p>\n<ul>\n<li>Wymagana jest eksfiltracja metryk na zewn\u0105trz.<\/li>\n<li>Du\u017ce zu\u017cycie zasob\u00f3w.<\/li>\n<li>Nie mo\u017cna ograniczy\u0107 zu\u017cycia pami\u0119ci.<\/li>\n<li>Skomplikowana i zasobo\u017cerna realizacja HA.<\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/d748b9c51767e37b9248e77871172d77.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Zdecydowali\u015bmy, \u017ce rezygnujemy z Prometheus jako z magazynu. <\/p>\n<p><\/p>\n<p>Okre\u015blili\u015bmy dodatkowe wymagania, kt\u00f3re s\u0105 nam potrzebne. S\u0105 to:<\/p>\n<p><\/p>\n<ul>\n<li>Wsparcie dla promql, poniewa\u017c ju\u017c wiele rzeczy zosta\u0142o stworzonych dla Prometheus: zapytania, alerty. <\/li>\n<li>A nast\u0119pnie mamy Grafan\u0119, kt\u00f3ra r\u00f3wnie\u017c zosta\u0142a stworzona dla Prometheus jako backend. Nie chcemy przepisywa\u0107 pulpit\u00f3w nawigacyjnych. <\/li>\n<li>Chcemy zbudowa\u0107 normaln\u0105 architektur\u0119 HA. <\/li>\n<li>Chcemy zmniejszy\u0107 zu\u017cycie wszelkich zasob\u00f3w. <\/li>\n<li>Jest jeszcze jeden ma\u0142y szczeg\u00f3\u0142. Nie mo\u017cemy korzysta\u0107 z r\u00f3\u017cnego rodzaju system\u00f3w chmurowych do zbierania metryk. Nie wiemy, co zanika w tych metrykach na razie. A poniewa\u017c tam mo\u017ce trafi\u0107 wszystko, co zechcemy, musimy ograniczy\u0107 si\u0119 do lokalnego umiejscowienia. <\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/53bf7dd09cec6fbd42569702b800cf08.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Wyb\u00f3r by\u0142 niewielki. Zebrali\u015bmy wszystko, co mieli\u015bmy do\u015bwiadczenie. Spojrzeli\u015bmy na stron\u0119 Prometheus w sekcji integracji, przeczytali\u015bmy mn\u00f3stwo artyku\u0142\u00f3w, sprawdzili\u015bmy, co w og\u00f3le jest dost\u0119pne. I dla siebie wybrali\u015bmy VictoriaMetrics jako zamiennik Prometheus.<\/p>\n<p><\/p>\n<p>Dlaczego? Poniewa\u017c:<\/p>\n<p><\/p>\n<ul>\n<li>Obs\u0142uguje promql.<\/li>\n<li>Ma architektur\u0119 modu\u0142ow\u0105. <\/li>\n<li>Nie wymaga zmian w Grafanie.<\/li>\n<li>I najwa\u017cniejsze \u2013 by\u0107 mo\u017ce b\u0119dziemy oferowa\u0107 magazyn metryk w naszej firmie jako us\u0142ug\u0119, dlatego z wyprzedzeniem patrzymy w kierunku r\u00f3\u017cnych ogranicze\u0144, aby u\u017cytkownicy mogli w pewien ograniczony spos\u00f3b korzysta\u0107 ze wszystkich zasob\u00f3w klastra, poniewa\u017c istnieje szansa, \u017ce b\u0119dzie on wielonajem.<\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/137a425e463ce524e873c962c0bc27f7.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Robimy pierwsze por\u00f3wnanie. Bierzemy ten sam Prometheus w obr\u0119bie klastra, do kt\u00f3rego \u0142\u0105czy si\u0119 zewn\u0119trzny Prometheus. Dodajemy przez remoteWrite VictoriaMetrics.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/5357d81a4fc38a2178cd589f36fce063.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Od razu zaznacz\u0119, \u017ce tutaj zauwa\u017cyli\u015bmy niewielki wzrost zu\u017cycia CPU ze strony VictoriaMetrics. Na wiki VictoriaMetrics napisano, jakie parametry s\u0105 najlepsze. Sprawdzili\u015bmy je. Bardzo dobrze zmniejszy\u0142y zu\u017cycie CPU.<\/p>\n<p><\/p>\n<p>W naszym przypadku zu\u017cycie pami\u0119ci przez Prometheus, kt\u00f3ry znajduje si\u0119 w klastrze Kubernetes, wzros\u0142o nieznacznie. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/7c70bfb0a50bcbd1e0976b70ae5b7b3a.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Por\u00f3wnujemy dwa \u017ar\u00f3d\u0142a danych tych samych danych. W Prometheus widzimy wszystkie te same brakuj\u0105ce dane. W VictoriaMetrics wszystko jest w porz\u0105dku. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/b2d7f9b451f87366e186b25450cb52fa.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Wyniki test\u00f3w dotycz\u0105cych przestrzeni dyskowej. W Prometheus uzyskali\u015bmy \u0142\u0105cznie 120 gigabajt\u00f3w. W VictoriaMetrics uzyskujemy ju\u017c 4 gigabajty dziennie. Tam jest troch\u0119 inny mechanizm ni\u017c w Prometheus. Tzn. dane s\u0105 ju\u017c do\u015b\u0107 dobrze kompresowane za dzie\u0144, za p\u00f3\u0142 godziny. S\u0105 ju\u017c dobrze skompresowane za dzie\u0144, za p\u00f3\u0142 godziny, mimo \u017ce p\u00f3\u017aniej b\u0119d\u0105 jeszcze scalane. Ostatecznie zaoszcz\u0119dzili\u015bmy na przestrzeni dyskowej.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/ce1f6edf70595aac40aeaae70c286bed.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ponadto oszcz\u0119dzamy na zu\u017cyciu zasob\u00f3w pami\u0119ci. Nasz Prometheus w momencie test\u00f3w by\u0142 uruchomiony na maszynie wirtualnej \u2013 8 rdzeni, 24 gigabajty. Prometheus praktycznie zajmuje wszystko. Upad\u0142 przez OOM Killer. Jednocze\u015bnie w nim by\u0142o tylko 900 000 aktywnych metryk. To oko\u0142o 25 000-27 000 metryk na sekund\u0119. <\/p>\n<p><\/p>\n<p>VictoriaMetrics uruchomili\u015bmy na dwurdzeniowej maszynie wirtualnej z 8 gigabajtami RAM. Uda\u0142o nam si\u0119 sprawi\u0107, \u017ce VictoriaMetrics dzia\u0142a dobrze, manipuluj\u0105c niekt\u00f3rymi rzeczami na 8-gigabajtowej maszynie. Ostatecznie zmie\u015bcili\u015bmy si\u0119 w 7 gigabajtach. Przy tym uzyskali\u015bmy pr\u0119dko\u015b\u0107 dostarczania tre\u015bci, tzn. metryk, nawet wy\u017csz\u0105 ni\u017c w Prometheus. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/e4c175aee859bc95a4ee08e8b3fdcc22.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Zu\u017cycie CPU w por\u00f3wnaniu do Prometheus sta\u0142o si\u0119 znacznie lepsze. Tutaj Prometheus zu\u017cywa 2,5 rdzenia, a VictoriaMetrics tylko 0,25 rdzenia. Na pocz\u0105tku - 0,5 rdzenia. W miar\u0119 scalania osi\u0105ga jedno rdzenie, ale to skrajnie rzadko.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/dcdbc7d70642130949b0c65b43a58f7f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>W naszym przypadku wyb\u00f3r pad\u0142 na VictoriaMetrics z oczywistych powod\u00f3w, chcieli\u015bmy zaoszcz\u0119dzi\u0107 i zaoszcz\u0119dzili\u015bmy. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/457576073885b9153041589bb2f53ee4.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Odrzucamy na pocz\u0105tek dwa punkty \u2013 to wyw\u00f3z metryk i du\u017ce zu\u017cycie zasob\u00f3w. Pozostaj\u0105 nam dwa punkty do rozwi\u0105zania, kt\u00f3re jeszcze zostawili\u015bmy dla siebie. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/9ee296c7838abd243a893c8e34b60711.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Tutaj zaznacz\u0119 od razu, \u017ce VictoriaMetrics traktujemy jako magazyn metryk. Ale poniewa\u017c prawdopodobnie b\u0119dziemy oferowa\u0107 VictoriaMetrics jako magazyn dla ca\u0142ego Leroy, musimy ograniczy\u0107 tych, kt\u00f3rzy b\u0119d\u0105 korzysta\u0107 z tego klastra, aby nam go nie zniszczyli. <\/p>\n<p><\/p>\n<p>Jest wspania\u0142y parametr, kt\u00f3ry pozwala ogranicza\u0107 czas, obj\u0119to\u015b\u0107 danych oraz czas wykonania. <\/p>\n<p><\/p>\n<p>A tak\u017ce istnieje doskona\u0142a opcja, kt\u00f3ra pozwala ogranicza\u0107 zu\u017cycie pami\u0119ci, dzi\u0119ki czemu mo\u017cemy znale\u017a\u0107 r\u00f3wnowag\u0119, kt\u00f3ra pozwoli nam osi\u0105gn\u0105\u0107 normaln\u0105 pr\u0119dko\u015b\u0107 pracy i adekwatne zu\u017cycie zasob\u00f3w. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/039d8b7f24e50a2e62211eef30ef0812.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Odbieramy jeszcze jeden punkt, t. j. skre\u015blamy punkt \u2013 nie mo\u017cna ograniczy\u0107 zu\u017cycia pami\u0119ci.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/7444f68188a835392f8c6ad82c3c26d1.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>W pierwszych iteracjach testowali\u015bmy VictoriaMetrics Single Node. Nast\u0119pnie przechodzimy do wersji klastrowej VictoriaMetrics.<\/p>\n<p><\/p>\n<p>Tutaj mamy woln\u0105 r\u0119k\u0119 w kwestii rozdzielania r\u00f3\u017cnych us\u0142ug w VictoriaMetrics w zale\u017cno\u015bci od tego, na czym b\u0119d\u0105 dzia\u0142a\u0107 i jakie zasoby b\u0119d\u0105 zu\u017cywa\u0107. To bardzo elastyczne i wygodne rozwi\u0105zanie. U\u017cywali\u015bmy go na w\u0142asnej sk\u00f3rze. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/4bcadbd80d7efcdbcbda6c79929ab279.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Podstawowe komponenty VictoriaMetrics Cluster Version to vmstorage. Mo\u017ce ich by\u0107 N liczba. W naszym przypadku na razie s\u0105 2. <\/p>\n<p><\/p>\n<p>Jest te\u017c vminsert. To serwer proxy, kt\u00f3ry pozwala nam: zorganizowa\u0107 sharding pomi\u0119dzy wszystkimi storage, o kt\u00f3rych mu powiedzieli\u015bmy, a tak\u017ce zapewnia replik\u0119, t. j. b\u0119dziecie mie\u0107 zar\u00f3wno sharding, jak i replik\u0119. <\/p>\n<p><\/p>\n<p>Vminsert wspiera protoko\u0142y OpenTSDB, Graphite, InfluxDB oraz remoteWrite od Prometheus.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/6b4ac44513d7bfa7e0b234aa0f2fa3f5.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Jest jeszcze vmselect. Jego g\u0142\u00f3wnym zadaniem jest przeprowadzanie zapyta\u0144 do vmstorage, uzyskiwanie danych od nich, deduplikacja tych danych i przekazywanie ich klientowi. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/768db0f7dbd17223b7057d33ceccd12d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Jest wspania\u0142a rzecz jak vmagent. Bardzo nam si\u0119 podoba. Umo\u017cliwia konfiguracj\u0119 w ten sam spos\u00f3b jak Prometheus i wykonuje wszystko tak samo jak Prometheus. T. j. zbiera metryki z r\u00f3\u017cnych encji, us\u0142ug i wysy\u0142a je do vminsert. Dalej wszystko ju\u017c zale\u017cy od was.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/429caa4d3296810c688e7c972ab6d35c.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kolejna wspania\u0142a us\u0142uga to vmalert, kt\u00f3ra pozwala korzysta\u0107 z VictoriaMetrics jako backendu, pobiera\u0107 dane z vminsert i wysy\u0142a\u0107 je do vmselect w formie przetworzonych danych. Obs\u0142uguje same alerty oraz regu\u0142y. W przypadku alert\u00f3w otrzymujemy alert przez alertmanager.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/67d6264ffd5e061e168261586b4e6369.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Jest komponent wmauth. Mo\u017cliwe, \u017ce go u\u017cyjemy, a by\u0107 mo\u017ce nie (jeszcze si\u0119 z tym nie zdecydowali\u015bmy) jako system autoryzacji przy wieloaspektowej wersji klastr\u00f3w. Wspiera remoteWrite dla Prometheus i mo\u017ce autoryzowa\u0107 na podstawie url, a dok\u0142adniej drugiej jego cz\u0119\u015bci, gdzie mo\u017cna lub nie mo\u017cna pisa\u0107. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/2a6a97eedc36ce71d660e44e0b736581.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Jest te\u017c vmbackup, vmrestore. To w zasadzie odzyskiwanie i backup wszystkich danych. Obs\u0142uguje S3, GCS, plik.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/ec11f7a981bb80daaf6891001d80a1c9.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Pierwsza iteracja naszego klastra zosta\u0142a zrealizowana w czasie kwarantanny. W\u00f3wczas nie by\u0142o replik, wi\u0119c nasza iteracja sk\u0142ada\u0142a si\u0119 z dw\u00f3ch r\u00f3\u017cnych i niezale\u017cnych klastr\u00f3w, do kt\u00f3rych przez remoteWrite pozyskiwali\u015bmy dane. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/2a76181fc6c0ffb6b09ad5bcdb33909c.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Zaznacz\u0119, \u017ce podczas przechodzenia z wersji VictoriaMetrics Single Node na wersj\u0119 VictoriaMetrics Cluster, wci\u0105\u017c pozosta\u0142y\u015bmy w tych samych zu\u017cywanych zasobach, tj. g\u0142\u00f3wnie pami\u0119\u0107. W ten spos\u00f3b rozk\u0142ada\u0142y si\u0119 nasze dane, tj. zu\u017cycie zasob\u00f3w.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/2d22446669e71b490226a789294707fc.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Tutaj ju\u017c by\u0142a dodana replika. Po\u0142\u0105czyli\u015bmy to wszystko w jeden stosunkowo du\u017cy klaster. Wszystkie dane s\u0105 zar\u00f3wno shardowane, jak i replikowane. <\/p>\n<p><\/p>\n<p>Ca\u0142y klaster ma N punkt\u00f3w wej\u015bcia, tj. Prometheus mo\u017ce dodawa\u0107 dane przez HAPROXY. To jest nasz punkt wej\u015bcia. Przez ten punkt wej\u015bcia mo\u017cna si\u0119 \u0142\u0105czy\u0107 z Grafana. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/4a797ed22c57cab7c10b2635f53941df.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>W naszym przypadku HAPROXY to jedyny port, kt\u00f3ry proxy'uje selekcj\u0119, wstawianie i inne us\u0142ugi do wewn\u0105trz tego klastra. W naszym przypadku nie mogli\u015bmy stworzy\u0107 jednego adresu, musieli\u015bmy zrealizowa\u0107 kilka punkt\u00f3w wej\u015bcia, poniewa\u017c same maszyny wirtualne, na kt\u00f3rych dzia\u0142a klaster VictoriaMetrics, znajduj\u0105 si\u0119 w r\u00f3\u017cnych strefach jednego dostawcy chmurowego, tj. nie w naszym chmurze, a na zewn\u0105trz. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/76bd7e59b58795ceada54977a933fb6d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Mamy alertowanie. U\u017cywamy go. Korzystamy z alertmanagera od Prometheus. Jako kana\u0142u dostawy alert\u00f3w u\u017cywamy Opsgenie i Telegrama. Na Telegram wp\u0142ywaj\u0105 powiadomienia od dev, mo\u017ce co\u015b od prod, ale bardziej co\u015b takiego statystycznego, potrzebnego in\u017cynierom. A Opsgenie \u2013 krytyczne. To telefony, zarz\u0105dzanie incydentami. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/b06abbf9eac39450a290e1a776df415f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Odwieczne pytanie: \u201eKto monitoruje monitoring?\u201d. W naszym przypadku monitoring monitoruje sam monitoring, poniewa\u017c u\u017cywamy vmagent na ka\u017cdym w\u0119\u017ale. A poniewa\u017c nasze w\u0119z\u0142y s\u0105 rozmieszczone w r\u00f3\u017cnych centrach danych jednego dostawcy, dla ka\u017cdego centrum danych mamy sw\u00f3j kana\u0142, s\u0105 one niezale\u017cne i nawet je\u015bli zajdzie splitting brain, to i tak otrzymamy alerty. Tak, b\u0119dzie ich wi\u0119cej, ale lepiej mie\u0107 wi\u0119cej alert\u00f3w ni\u017c \u017cadnego. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/20e94b612f00619015da7e6ebc1e6afb.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ko\u0144czymy nasz\u0105 list\u0119 realizacj\u0105 HA.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/f7cac236b8f99d8f2f12288e565c7de0.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>I chcia\u0142bym jeszcze podkre\u015bli\u0107 do\u015bwiadczenie zwi\u0105zane z interakcj\u0105 z spo\u0142eczno\u015bci\u0105 VictoriaMetrics. Okaza\u0142a si\u0119 bardzo pozytywna. Ch\u0142opaki s\u0105 pomocni. Staraj\u0105 si\u0119 zrozumie\u0107 ka\u017cdy przypadek, kt\u00f3ry jest przedstawiany. <\/p>\n<p><\/p>\n<p>Zak\u0142ada\u0142em zg\u0142oszenia na GitHubie. Zosta\u0142y one bardzo szybko rozwi\u0105zane. S\u0105 jeszcze jakie\u015b dwa zg\u0142oszenia, kt\u00f3re nie s\u0105 ca\u0142kowicie zamkni\u0119te, ale ju\u017c po kodzie widz\u0119, \u017ce prace w tym kierunku trwaj\u0105. <\/p>\n<p><\/p>\n<p>G\u0142\u00f3wnym problemem podczas iteracji by\u0142o dla mnie to, \u017ce je\u015bli wy\u0142\u0105czy\u0142em w\u0119ze\u0142, to przez pierwsze 30 sekund nie mog\u0142em zrozumie\u0107, \u017ce backend nie dzia\u0142a. Teraz to ju\u017c rozwi\u0105zano. I dos\u0142ownie w ci\u0105gu sekundy lub dw\u00f3ch dane s\u0105 pobierane ze wszystkich pozosta\u0142ych w\u0119z\u0142\u00f3w, a zapytanie przestaje czeka\u0107 na brakuj\u0105cy w\u0119ze\u0142. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/722ad280977c2f377c5afe36eb309c96.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>W pewnym momencie chcieli\u015bmy, \u017ceby to by\u0142 operator VictoriaMetrics. Czekali\u015bmy na niego. Teraz aktywnie budujemy nak\u0142adk\u0119 na operator VictoriaMetrics, aby przej\u0105\u0107 wszystkie zasady pre-calculation i tak dalej. Prometheus, poniewa\u017c do\u015b\u0107 aktywnie u\u017cywamy regu\u0142, kt\u00f3re id\u0105 razem z operatorem Prometheus.<\/p>\n<p><\/p>\n<p>S\u0105 propozycje dotycz\u0105ce ulepszenia realizacji klastra. Przedstawi\u0142em je powy\u017cej. <\/p>\n<p><\/p>\n<p>I jeszcze bardzo chcemy downsampling. W naszym przypadku downsampling jest potrzebny wy\u0142\u0105cznie do przegl\u0105dania trend\u00f3w. M\u00f3wi\u0105c wprost, potrzebuj\u0119 jednej metryki w ci\u0105gu dnia. Te trendy s\u0105 potrzebne na rok, na trzy, na pi\u0119\u0107, na dziesi\u0119\u0107 lat. I jedna warto\u015b\u0107 metryki jest wystarczaj\u0105ca.<br \/>\n<img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/01073d8f9b16e1094daef3e36dd97e44.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<ul>\n<li>Do\u015bwiadczyli\u015bmy b\u00f3lu, podobnie jak niekt\u00f3rzy nasi koledzy, podczas korzystania z Prometheus.<\/li>\n<li>Wybrali\u015bmy dla siebie VictoriaMetrics. <\/li>\n<li>Dobrze si\u0119 skaluje zar\u00f3wno w pionie, jak i w poziomie. <\/li>\n<li>Mo\u017cemy rozdziela\u0107 r\u00f3\u017cne komponenty na r\u00f3\u017cn\u0105 liczb\u0119 w\u0119z\u0142\u00f3w w klastrze, ogranicza\u0107 je pod wzgl\u0119dem pami\u0119ci, dodawa\u0107 pami\u0119\u0107 itd. <\/li>\n<\/ul>\n<p><\/p>\n<p>B\u0119dziemy u\u017cywa\u0107 VictoriaMetrics, poniewa\u017c bardzo nam si\u0119 spodoba\u0142a. Oto co by\u0142o, a co si\u0119 zmieni\u0142o. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaew\" src=\"\/wp-content\/uploads\/2020\/09\/e04b66e5e2b765143797d3c983d4029c.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/VictoriaMetrics_ru1\">https:\/\/t.me\/VictoriaMetrics_ru1<\/a><\/noindex><\/p>\n<p><\/p>\n<p>Para kod\u00f3w qr do czatu VictoriaMetrics, moje dane kontaktowe, radar technologiczny LeroyMerlin.<\/p>\n<p>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/518680\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>VictoriaMetrics \u2014 \u0431\u044b\u0441\u0442\u0440\u0430\u044f \u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u0430\u044f \u0421\u0423\u0411\u0414 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0444\u043e\u0440\u043c\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u044f\u0434\u0430 (\u0437\u0430\u043f\u0438\u0441\u044c \u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0432\u0440\u0435\u043c\u044f \u0438 \u043d\u0430\u0431\u043e\u0440 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u044d\u0442\u043e\u043c\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u0447\u0435\u0440\u0435\u0437 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u043f\u0440\u043e\u0441 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432 \u0438\u043b\u0438 \u0441\u0431\u043e\u0440 \u043c\u0435\u0442\u0440\u0438\u043a). \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041a\u043e\u043b\u043e\u0431\u0430\u0435\u0432 \u041f\u0430\u0432\u0435\u043b. DevOps, SRE, LeroyMerlin, \u0432\u0441\u0435 \u043a\u0430\u043a \u043a\u043e\u0434 \u2013 \u044d\u0442\u043e \u0432\u0441\u0435 \u043f\u0440\u043e \u043d\u0430\u0441: \u043f\u0440\u043e \u043c\u0435\u043d\u044f \u0438 \u043f\u0440\u043e \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u043e\u0432 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":94154,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-94153","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.1.1 - aioseo.com -->\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\/pl\/blog\/administrirovanie\/victoriametrics-i-monitoring-privatnyh-oblakov-pavel-kolobaev\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\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\udd47VictoriaMetrics \u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0445 \u043e\u0431\u043b\u0430\u043a\u043e\u0432. \u041f\u0430\u0432\u0435\u043b \u041a\u043e\u043b\u043e\u0431\u0430\u0435\u0432 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/victoriametrics-i-monitoring-privatnyh-oblakov-pavel-kolobaev\" \/>\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-09-13T17:42:30+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-09-13T17:42:30+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\udd47VictoriaMetrics i monitorowanie prywatnych chmur. Pawe\u0142 Kolobaev | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/victoriametrics-i-monitoring-privatnyh-oblakov-pavel-kolobaev","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","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\udd47VictoriaMetrics \u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0445 \u043e\u0431\u043b\u0430\u043a\u043e\u0432. \u041f\u0430\u0432\u0435\u043b \u041a\u043e\u043b\u043e\u0431\u0430\u0435\u0432 | ProHoster","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/victoriametrics-i-monitoring-privatnyh-oblakov-pavel-kolobaev","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-09-13T17:42:30+00:00","article:modified_time":"2020-09-13T17:42:30+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"94153","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 11:32:22","updated":"2022-09-28 11:09:52","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/94153","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=94153"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/94153\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/94154"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=94153"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=94153"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=94153"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}