{"id":52115,"date":"2019-11-01T00:00:00","date_gmt":"2019-10-31T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/monitoring-kak-servis-modulnaya-sistema-dlya-mikroservisnoj-arhitektury"},"modified":"2020-02-18T13:59:47","modified_gmt":"2020-02-18T10:59:47","slug":"monitoring-kak-servis-modulnaya-sistema-dlya-mikroservisnoj-arhitektury","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/monitoring-kak-servis-modulnaya-sistema-dlya-mikroservisnoj-arhitektury","title":{"rendered":"Monitooring teenusena: modulaarne s\u00fcsteem mikroteenuste arhitektuuriks","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>T\u00e4na meie projektis toimivad lisaks monoliitsele koodile ka k\u00fcmned mikroteenused. Iga\u00fcht nendest tuleb j\u00e4lgida. Selliste mahtude puhul on DevOps-inseneride j\u00f5ududes keeruline. Oleme v\u00e4lja arendanud j\u00e4lgimiss\u00fcsteemi, mis t\u00f6\u00f6tab teenusena arendajatele. Nad saavad ise kirjutada m\u00f5\u00f5dikud j\u00e4lgimiss\u00fcsteemi, kasutada neid, luua nende p\u00f5hjal armatuurlaudu ja \u00fchendada neile h\u00e4ireid, mis aktiveeruvad, kui piirv\u00e4\u00e4rtused on saavutatud. DevOps-insenerid on seotud vaid infrastruktuuri ja dokumentatsiooniga. <\/p>\n<p>See postitus on minu esitluse salvestus meie <noindex><a rel=\"nofollow\" href=\"http:\/\/bit.ly\/tomicro\">sektori<\/a><\/noindex> RIT++-l. Paljud palusid meil teha sealt tekstiversioone. Kui olite konverentsil v\u00f5i vaatasite videot, siis ei leia te seal midagi uut. K\u00f5igile teistele \u2014 tere tulemast allapoole. R\u00e4\u00e4gin, kuidas me sellise s\u00fcsteemi juurde j\u00f5udsime, kuidas see t\u00f6\u00f6tab ja kuidas plaanime seda uuendada. <\/p>\n<p><img decoding=\"async\" alt=\"Monitooring teenusena: modulaarne s\u00fcsteem mikroteenuste arhitektuuriks\" src=\"\/wp-content\/uploads\/2019\/11\/000b8fdc8fb16aa76ce545ff2aa4e767.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Minevik: skeemid ja plaanid <\/h3>\n<p>\nKuidas me j\u00f5udsime olemasoleva j\u00e4lgimiss\u00fcsteemini? Sellele k\u00fcsimusele vastamiseks tuleb tagasi minna 2015. aastasse. Nii see siis v\u00e4lja n\u00e4gi: <\/p>\n<p><img decoding=\"async\" alt=\"Monitooring teenusena: modulaarne s\u00fcsteem mikroteenuste arhitektuuriks\" src=\"\/wp-content\/uploads\/2019\/11\/d955f9bcdb5f5a5a54720c77113ca85d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMeil oli umbes 24 s\u00f5lme, mis vastutasid j\u00e4lgimise eest. Siin on hulk erinevaid crone, skripte, deemonite, mis mingil moel j\u00e4lgivad, saadavad s\u00f5numeid, t\u00e4idavad funktsioone. M\u00f5tlesime, et mida kaugemale, seda v\u00e4hem on selline s\u00fcsteem eluj\u00f5uline. Selle arendamine pole m\u00f5istlik: liiga mahukas. <br \/>\nOtsustasime valida need j\u00e4lgimise elemendid, mida j\u00e4tame ja arendame, ja need, millest loobume. Nende hulk oli 19. J\u00e4rele j\u00e4id vaid grafiidid, agregaatid ja Grafana armatuurlaudade jaoks. Kuid kuidas n\u00e4eb uus s\u00fcsteem v\u00e4lja? Nii: <\/p>\n<p><img decoding=\"async\" alt=\"Monitooring teenusena: modulaarne s\u00fcsteem mikroteenuste arhitektuuriks\" src=\"\/wp-content\/uploads\/2019\/11\/57d220113d0b76c05874b5d774bff8af.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMeil on m\u00f5\u00f5dikute salvestus: need on grafiidid, mis p\u00f5hinevad kiiretel SSD-diskidel, ja teatud agregaatide m\u00f5\u00f5dikud. Edasi \u2014 Grafana armatuurlaudade kuvamiseks ja Moira h\u00e4irete t\u00f5hususe jaoks. Samuti soovisime v\u00e4lja t\u00f6\u00f6tada anomaaliate otsimisse s\u00fcsteemi. <\/p>\n<h3>Standard: J\u00e4lgimine 2.0<\/h3>\n<p>\nNii n\u00e4gid plaanid v\u00e4lja 2015. aastal. Kuid me pidime ette valmistama mitte ainult infrastruktuuri ja teenuse ise, vaid ka dokumentatsiooni selle jaoks. Me t\u00f6\u00f6tasime v\u00e4lja ettev\u00f5tte standardi, mille nimetasime j\u00e4lgimiseks 2.0. Millised olid n\u00f5uded s\u00fcsteemile? <\/p>\n<ul>\n<li>pidev k\u00e4ttesaadavus; <\/li>\n<li>m\u00f5\u00f5dikute salvestusintervall = 10 sekundit; <\/li>\n<li>struktureeritud metrikate ja juhtpaneelide salvestamine; <\/li>\n<li>SLA &gt; 99,99% <\/li>\n<li>\u00fcrituste metrikate kogumine UDP kaudu (!). <\/li>\n<\/ul>\n<p>\nMe vajasime UDP-d, kuna meil on suur liiklus ja s\u00fcndmuste voog, mis genereerib metrikaid. Kui kirjutada k\u00f5ik Graphite'i korraga, tahab salvestus kokku kukkuda. Samuti valisime k\u00f5igi metrikate jaoks esmaklassilised prefiksid. <\/p>\n<p><img decoding=\"async\" alt=\"Monitooring teenusena: modulaarne s\u00fcsteem mikroteenuste arhitektuuriks\" src=\"\/wp-content\/uploads\/2019\/11\/d24c4474b19b532a48cef4d4376287ad.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIga prefiks omab m\u00f5nda omadust. On metrikad serverite, v\u00f5rkude, konteinerite, ressursside, rakenduste ja nii edasi. On rakendatud selge, range ja t\u00fcpiseeritud filtreerimine, kus me v\u00f5tame esmaklassilised metrikad ja \u00fclej\u00e4\u00e4nud lihtsalt l\u00fckkame k\u00f5rvale. Nii me plaanisime seda s\u00fcsteemi 2015. aastal. Mis on aga reaalsus? <\/p>\n<h3>Reaalsus: monitooringu komponentide interaktsiooni skeem<\/h3>\n<p>\nEsiteks j\u00e4lgime rakendusi: meie PHP-koodi, rakendusi ja mikroteenuseid \u2013 s\u00f5naga, k\u00f5ike, mida meie arendajad kirjutavad. K\u00f5ik rakendused saadavad UDP kaudu metrikad koondajale Brubeck (statsd, C-keeles \u00fcmber kirjutatud). Tulemuseks oli see, et see osutus s\u00fcnteetiliste testide tulemusel k\u00f5ige kiiremaks. Ning see saadab koondatud metrikad Graphite'i kaudu TCP. <\/p>\n<p>Sel on selline metrikate t\u00fc\u00fcp nagu taimerid. See on \u00e4\u00e4rmiselt mugav asi. N\u00e4iteks igakord, kui kasutaja teenusega \u00fchendust v\u00f5tab, saadate Brubeck'i metrika response time. Kui miljon vastust saabus, antakse koondajale vaid 10 metrikat. Teil on teada tulnud inimeste arv, maksimaalne, minimaalne ja keskmine vastusaeg, mediaan ja 4 persentiili. Seej\u00e4rel edastatakse andmed Graphite'i ja me n\u00e4eme neid k\u00f5ik reaalajas. <\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0430\u0433\u0440\u0435\u0433\u0430\u0446\u0438\u044f \u0434\u043b\u044f \u043c\u0435\u0442\u0440\u0438\u043a \u043f\u043e \u0436\u0435\u043b\u0435\u0437\u0443, \u0441\u043e\u0444\u0442\u0443, \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u043c\u0435\u0442\u0440\u0438\u043a \u0438 \u043d\u0430\u0448\u0435\u0439 \u0441\u0442\u0430\u0440\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 Munin (\u043e\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u0443 \u043d\u0430\u0441 \u0434\u043e 2015 \u0433\u043e\u0434\u0430). \u0412\u0441\u0435 \u044d\u0442\u043e \u043c\u044b \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0447\u0435\u0440\u0435\u0437 C&#8217;\u0438\u0448\u043d\u044b\u0439 \u0434\u0435\u043c\u043e\u043d CollectD (\u0432 \u043d\u0435\u0433\u043e \u0432\u0448\u0438\u0442\u0430 \u0446\u0435\u043b\u0430\u044f \u043f\u0430\u0447\u043a\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432, \u043e\u043d \u0443\u043c\u0435\u0435\u0442 \u043e\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0445\u043e\u0441\u0442\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u043d \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d, \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u043a\u0430\u0436\u0438\u0442\u0435 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438, \u043a\u0443\u0434\u0430 \u043f\u0438\u0441\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435) \u0438 \u043f\u0438\u0448\u0435\u043c \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0433\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 Graphite. \u0422\u0430\u043a\u0436\u0435 \u043e\u043d \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u043b\u0430\u0433\u0438\u043d\u044b python \u0438 shell \u0441\u043a\u0440\u0438\u043f\u0442\u044b, \u0442\u0430\u043a \u0447\u0442\u043e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0432\u043e\u0438 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f: CollectD \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0445\u043e\u0441\u0442\u0430 (\u043f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u0435\u0441\u0442\u044c Curl) \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u0445 \u0432 Graphite. <\/p>\n<p>J\u00e4tkame: k\u00f5ik m\u00f5\u00f5dikud, mida oleme kogunud, saadame Carbon-c-relay'le. See on Carbon Relay Graphitelt, C keeles t\u00e4iustatud lahendus. See on ruuter, mis kogub endasse k\u00f5ik m\u00f5\u00f5dikud, mille me saadame oma aggregeerijatelt, ja suunab need nodidesse. Samuti kontrollib see suunamise etapis m\u00f5\u00f5dikute kehtivust. Esiteks peavad nad vastama sellele scheemile koos eelliidetega, mida ma varem n\u00e4itasin, ja teiseks peavad nad olema Graphitele kehtivad. Vastasel juhul visatakse nad v\u00e4lja. <\/p>\n<p>Siis saadab Carbon-c-relay m\u00f5\u00f5dikud Graphite klastrisse. Kasutame peamise m\u00f5\u00f5dikute salvestusena Carbon-cache'i, mis on kirjutatud Go-s. Go-carbon \u00fcletab oma mitme t\u00f6\u00f6tluse t\u00f5ttu oluliselt Carbon-cache'i j\u00f5udlust. See v\u00f5tab andmed enda alla ja salvestab need kettale kasutades whisperi paketti (tavaline, kirjutatud pythonis). Andmete lugemiseks meie salvestitest kasutame Graphite API-d. See t\u00f6\u00f6tab oluliselt kiiremini kui standardne Graphite WEB. Mis juhtub andmetega edasi? <\/p>\n<p>Need l\u00e4hevad Grafanasse. Peamise andmeallikana kasutame meie Graphite klastreid, pluss meil on Grafana veebiliides m\u00f5\u00f5dikute kuvamiseks ja armatuurlaudade koostamiseks. Iga teenuse arendaja loob oma armatuuri. Seej\u00e4rel koostavad nad graafikuid, millel kuvatakse m\u00f5\u00f5dikud, mida nad oma rakendustest saadavad. Peale Grafana on meil ka SLAM. See on Pythonis kirjutatud demon, mis arvutab SLA-d Graphite andmete p\u00f5hjal. Nagu ma juba \u00fctlesin, on meil mitu tosinat mikroteenust, millest iga\u00fchel on oma n\u00f5uded. SLAM-i abil vaatame dokumentatsiooni ja v\u00f5rdleme seda Graphite'is oleva infoga, kontrollime, kui h\u00e4sti n\u00f5uded vastavad meie teenuste saadavusele. <\/p>\n<p>J\u00e4tkame: h\u00e4irituse j\u00e4lgimise s\u00fcsteem. See on organiseeritud tugeva s\u00fcsteemi, Moira, abil. See on iseseisev, kuna selle all on oma Graphite. Arendatud S\u041aB 'Kontur' poolt, kirjutatud pythonis ja Go-s, t\u00e4iesti avatud l\u00e4htekoodiga. Moira saab endasse k\u00f5ik sama voogu, mis suundub Graphite'idesse. Kui mingil p\u00f5hjusel sureb teie salvestus, t\u00f6\u00f6tab teie h\u00e4dah\u00e4ires\u00fcsteem ikka.<\/p>\n<p>Moira on laotud Kubernetesesse ja see kasutab peamise andmebaasina Redis-serverite klastrit. Tulemuseks on talitlush\u00e4irekindel s\u00fcsteem. See v\u00f5rdleb m\u00f5\u00f5dikute voogu triggereid loendiga: kui see ei sisalda nimetusi, siis visatakse m\u00f5\u00f5diku andmed minema. Nii suudab see t\u00f6\u00f6delda gigabaite m\u00f5\u00f5dikute andmeid minutis. <\/p>\n<p>Lisaks integreerisime sellele ettev\u00f5tte LDAP-i, mille abil saavad k\u00f5ik ettev\u00f5tte s\u00fcsteemi kasutajad luua endale teateid olemasolevate (v\u00f5i uute) triggereid p\u00f5hjal. Kuna Moira sisaldab Graphite'i, toetab see k\u00f5iki selle funktsioone. Esiteks v\u00f5tate rea ja kopeerite selle Grafanasse. Vaadake, kuidas andmed graafikutel kuvatakse. Seej\u00e4rel v\u00f5tate selle sama rea ja kopeerite selle Moira-sse. Lisate sellele piirangud ja saate alarme. K\u00f5ik see ei n\u00f5ua mingeid spetsiifilisi teadmisi. Moira suudab genereerida teateid SMS-i, e-posti, Jira, Slack'i kaudu... Samuti toetab see kohandatud skriptide t\u00e4itmist. Kui tal tekib trigger ja see on seotud kohandatud skripti v\u00f5i binaariga, siis k\u00e4ivitab ta selle ja annab sellele stdin-is JSON-i. Seet\u00f5ttu peab teie programm selle parsima. Mida te selle JSON-iga teete, on teie otsustada. Kui soovite \u2014 saatke see Telegrammi, kui soovite \u2014 avage \u00fclesandeid Jira's, tehke mida iganes. <\/p>\n<p>Meie alarmeerimiseks kasutame ka oma arengut \u2014 Imagotag. Oleme kohandanud paneeli, mida tavaliselt kasutatakse poodides elektrooniliste hinnasiltide jaoks, meie vajaduste jaoks. Oleme sellele v\u00e4lja toonud Moira triggereid. Seal on n\u00e4idatud, millises olekus need on ja millal need toimusid. Osa arendusmeeskonnast loobus teavitustest Slack'is ja e-kirjas selle paneeli kasuks. <\/p>\n<p><img decoding=\"async\" alt=\"Monitooring teenusena: modulaarne s\u00fcsteem mikroteenuste arhitektuuriks\" src=\"\/wp-content\/uploads\/2019\/11\/bcf454c96adaa0cff81f5e56db5b715c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKuna oleme progressiivne ettev\u00f5te, seet\u00f5ttu seirasime selles s\u00fcsteemis ka Kubernetes'i. L\u00fclitasime selle s\u00fcsteemi l\u00e4bi Heapsteri, mille paigaldasime klastrisse, mis kogub andmeid ja saadab need Graphite'i. Tulemuseks on j\u00e4rgmine skeem: <\/p>\n<p><img decoding=\"async\" alt=\"Monitooring teenusena: modulaarne s\u00fcsteem mikroteenuste arhitektuuriks\" src=\"\/wp-content\/uploads\/2019\/11\/cca0f2f9f590fc84609d48e52ebd0d21.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Monitooringu komponendid<\/h3>\n<p>Siin on linkide loend nende komponentide jaoks, mida kasutasime selle \u00fclesande t\u00e4itmiseks. K\u00f5ik need on avatud l\u00e4htekoodiga. <\/p>\n<h4>Graphite:<\/h4>\n<p><\/p>\n<ul>\n<li>go-carbon: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/lomik\/go-carbon\">github.com\/lomik\/go-carbon<\/a><\/noindex><\/li>\n<li>whisper: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/graphite-project\/whisper\">github.com\/graphite-project\/whisper<\/a><\/noindex> <\/li>\n<li>graphite-api: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/brutasse\/graphite-api\">github.com\/brutasse\/graphite-api<\/a><\/noindex> <\/li>\n<\/ul>\n<h4>Carbon-c-relay: <\/h4>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/grobian\/carbon-c-relay\">github.com\/grobian\/carbon-c-relay<\/a><\/noindex> <\/p>\n<h4>Brubeck: <\/h4>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/github\/brubeck\">github.com\/github\/brubeck<\/a><\/noindex> <\/p>\n<h4>Collectd:<\/h4>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/collectd.org\/\">collectd.org<\/a><\/noindex><\/p>\n<h4>Moira: <\/h4>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/moira-alert\">github.com\/moira-alert<\/a><\/noindex> <\/p>\n<h4>Grafana: <\/h4>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/grafana.com\/\">grafana.com<\/a><\/noindex> <\/p>\n<h4>Heapster: <\/h4>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/heapster\">github.com\/kubernetes\/heapster<\/a><\/noindex><\/p>\n<h3>Statistika<\/h3>\n<p>\nJa natuke numbreid selle kohta, kuidas meie s\u00fcsteem t\u00f6\u00f6tab. <\/p>\n<h4>Koguja (brubeck)<\/h4>\n<p>\nM\u00f5\u00f5dikute arv: ~ 300 000 \/ sec<br \/>\nM\u00f5\u00f5dikute saatmise intervall Graphitesse: 30 sec<br \/>\nServeri ressursikasutus: ~ 6% CPU (t\u00e4isfunktsionaalsed serverid); ~ 1Gb RAM; ~ 3 Mbps LAN<\/p>\n<h4>Graphite (go-carbon)<\/h4>\n<p>\nM\u00f5\u00f5dikute arv: ~ 1 600 000 \/ min<br \/>\nM\u00f5\u00f5dikute uuendamise intervall: 30 sec<br \/>\nM\u00f5\u00f5dikute s\u00e4ilitamise skeem: 30sec 35d, 5min 90d, 10min 365d (annab \u00fclevaate sellest, mis teenusega pikemas perspektiivis toimub) <br \/>\nServeri ressursikasutus: ~ 10% CPU; ~ 20Gb RAM; ~ 30 Mbps LAN<\/p>\n<h3>Paindlikkus<\/h3>\n<p>\nMe hindame Avitos oma j\u00e4lgimisteenuses paindlikkust. Miks see t\u00e4pselt selline on? Esiteks on selle koostisosad omavahel asendatavad: nii komponendid kui ka nende versioonid. Teiseks \u2014 hooldatavus. Kuna kogu projekt on rajatud avatud l\u00e4htekoodiga, saate ise koodi muuta, muudatusi sisse viia, luua funktsioone, mis ei ole v\u00e4lja toodud. Kasutatakse \u00fcsna levinud tehnoloogiaid, peamiselt Go ja Python, seega on see \u00fcsna lihtne. <\/p>\n<p>Siin on n\u00e4ide t\u00f5eliselt tekkinud probleemist. M\u00f5\u00f5dik Graphites on fail. Sellel on nimi. Faili nimi = m\u00f5\u00f5diku nimi. Ja on tee selle juurde. Linuxis on failinimede pikkus piiratud 255 s\u00fcmboliga. Ja meil on (siseprojektide \u201ctellijatena\u201d) inimesed andmebaasi osakonnast. Nad \u00fctlevad meile: \u201cTahame j\u00e4lgida oma SQL-p\u00e4ringuid. Need ei ole 255 s\u00fcmbolit, vaid 8 MB iga\u00fche kohta. Tahame neid kuvada Grafanas, n\u00e4ha selle p\u00e4ringu parameetreid, ja veel parem, tahame n\u00e4ha selliste p\u00e4ringute topi. Oleks tore, kui see kuvataks reaalajas. Ja t\u00e4iuslik oleks see sisse panna h\u00e4iretesse.\u201d <\/p>\n<p><img decoding=\"async\" alt=\"Monitooring teenusena: modulaarne s\u00fcsteem mikroteenuste arhitektuuriks\" src=\"\/wp-content\/uploads\/2019\/11\/e1136c7fd0b6156c0c3fd49bab54737e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>SQL-p\u00e4ringu n\u00e4ide on toodud n\u00e4iteks saidilt <noindex><a rel=\"nofollow\" href=\"https:\/\/postgrespro.ru\/docs\/postgrespro\/9.6\/queries-with\">postgrespro.ru<\/a><\/noindex> <\/i><\/p>\n<p>\u041c\u044b \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u043c \u0441\u0435\u0440\u0432\u0435\u0440 Redis \u0438 \u043d\u0430\u0448\u0438\u043c\u0438 Collectd-\u043f\u043b\u0430\u0433\u0438\u043d\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u043e\u0434\u044f\u0442 \u0432 Postgres \u0438 \u0431\u0435\u0440\u0443\u0442 \u043e\u0442\u0442\u0443\u0434\u0430 \u0432\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0432 Graphite. \u041d\u043e \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u043c \u0438\u043c\u044f \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043d\u0430 \u0445\u044d\u0448\u0438. \u042d\u0442\u043e\u0442 \u0436\u0435 \u0445\u044d\u0448 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0432 Redis \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043a\u043b\u044e\u0447\u0430, \u0438 \u0432\u0435\u0441\u044c SQL-\u0437\u0430\u043f\u0440\u043e\u0441 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u041d\u0430\u043c \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b Grafana \u0443\u043c\u0435\u043b\u0430 \u0445\u043e\u0434\u0438\u0442\u044c \u0432 Redis \u0438 \u0431\u0440\u0430\u0442\u044c \u044d\u0442\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e. \u041c\u044b \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c Graphite API, \u0442.\u043a. \u044d\u0442\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0432\u0441\u0435\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0441 \u0433\u0440\u0430\u0444\u0438\u0442\u043e\u043c, \u0438 \u0432\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0442\u0443\u0434\u0430 \u043d\u043e\u0432\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f aliasByHash() \u2014 \u043e\u0442 Grafana \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u043c\u044f \u043c\u0435\u0442\u0440\u0438\u043a\u0438, \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0435\u0433\u043e \u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u0435 \u043a Redis \u043a\u0430\u043a \u043a\u043b\u044e\u0447, \u0432 \u043e\u0442\u0432\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u043b\u044e\u0447\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u0448 \u201cSQL \u0437\u0430\u043f\u0440\u043e\u0441\u201d. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043c\u044b \u0432\u044b\u0432\u0435\u043b\u0438 \u0432 Grafana \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 SQL-\u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e \u0438\u0434\u0435\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0442\u0430\u043c \u0431\u044b\u043b\u043e \u043d\u0438\u043a\u0430\u043a \u043d\u0435\u043b\u044c\u0437\u044f, \u0432\u043c\u0435\u0441\u0442\u0435 \u0441\u043e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u043e\u0439 \u043f\u043e \u043d\u0435\u043c\u0443 (calls, rows, total_time, &#8230;). <\/p>\n<h3>Summary <\/h3>\n<p>\n<b>Saadavus.<\/b> Meie j\u00e4lgimisteenus on saadaval 24\/7 igast rakendusest ja igast koodist. Kui teil on ligip\u00e4\u00e4s ladustamiss\u00fcsteemidele, v\u00f5ite teenusele andmeid kirjutada. Keel ei ole oluline, lahendused ei ole olulised. Teil on vaja ainult teada, kuidas avada pesa, saata sinna m\u00f5\u00f5dik ja siis pesa sulgeda. <\/p>\n<p><b>Usaldusv\u00e4\u00e4rsus.<\/b> K\u00f5ik komponendid on talitlush\u00e4ireteta ja suudavad meie koormusi h\u00e4sti taluda. <\/p>\n<p><b>Madala sisenemise k\u00fcnnis.<\/b> Selle s\u00fcsteemi kasutamiseks ei pea te \u00f5ppima programmeerimiskeeli ega p\u00e4ringuid Grafanas. Lihtsalt avage oma rakendus, kirjutage sinna pesa, mis saadab m\u00f5\u00f5dikud Graphite'i, sulgege see, avage Grafana, looge seal armatuurlaud ja vaadake oma m\u00f5\u00f5dikute k\u00e4itumist, saades hoiatusi Moira kaudu.<\/p>\n<p><b>Iseseisvus.<\/b> Kogu seda saab teha iseseisvalt, DevOps- inseneride abita. Ja see on pealehakkamiseks ideaalne, kuna saate oma projekti j\u00e4lgida kohe, kedagi ei pea paluma \u2014 ei alguses ega muudatuste tegemiseks. <\/p>\n<h3>Mille poole me p\u00fc\u00fcdleme? <\/h3>\n<p>\nK\u00f5ik allpool loetletud on mitte lihtsalt abstraktsed m\u00f5tted, vaid see, mille suunal on tehtud v\u00e4hemalt esimesed sammud. <\/p>\n<ol>\n<li>Anomaaliate tuvastaja. Tahame luua teenuse, mis l\u00e4heb meie Graphite'i ladustamisse ja kontrollib iga m\u00f5\u00f5diku erinevate algoritmide j\u00e4rgi. Algoritmid on juba olemas, mida tahame vaadata, andmed on olemas, me oskame nendega t\u00f6\u00f6tada.\n<\/li>\n<li>Metaandmed. Meil on palju teenuseid, mis ajas muutuvad, samuti nagu ka inimesed, kes nendega t\u00f6\u00f6tavad. Dokumentatsiooni pidev k\u00e4sitsi pidamine ei ole variant. Seet\u00f5ttu integreerime praegu oma mikroteenustesse metaandmed. Seal on kirjas, kes selle arendas, milliste keeltega ta suhtleb, SLA n\u00f5udmised, kuhu ja kellele saata teavitusi. Teenuse juurutamisel luuakse k\u00f5ik andmed iseseisvalt. L\u00f5puks saad kaks linki \u2014 \u00fcks triggerite jaoks, teine \u2014 Grafana armatuurlaudade jaoks.\n<\/li>\n<li>Seire iga koju. Usume, et sellisest s\u00fcsteemist peaksid k\u00f5ik arendajad kasutama. Sel juhul tead alati, kus on su liiklus, mis temaga toimub, kus see langeb, kus on n\u00f5rgad kohad. Kui n\u00e4iteks juhtub midagi, mis rikub su teenuse, saad sellest teada mitte telefonik\u00f5nest haldurilt, vaid h\u00e4iresignaalist ning saad kohe avada v\u00e4rsked logid ja vaadata, mis juhtus.\n<\/li>\n<li>K\u00f5rge j\u00f5udlus. Meie projekt kasvab pidevalt ja t\u00e4na t\u00f6\u00f6deldakse selles umbes 2 000 000 m\u00f5\u00f5tmev\u00e4\u00e4rtust minutis. Aasta tagasi oli see number 500 000. Ja kasv j\u00e4tkub, mis t\u00e4hendab, et m\u00f5ne aja p\u00e4rast hakkab Graphite (whisper) v\u00e4ga tugevalt koormama salvestuss\u00fcsteemi. Nagu ma juba \u00fctlesin, on see seires\u00fcsteem \u00fcsna universaalne oma komponentide vahetatavuse t\u00f5ttu. Keegi hooldab ja laiendab oma infrastruktuuri spetsiaalselt Graphite'i jaoks, kuid me otsustasime minna teist teed: kasutada <noindex><a rel=\"nofollow\" href=\"https:\/\/clickhouse.yandex\/\">ClickHouse<\/a><\/noindex> kui meie m\u00f5\u00f5tmete salvestust. See \u00fcleminek on peaaegu l\u00f5pule j\u00f5udnud ning peagi r\u00e4\u00e4gin detailselt, kuidas see tehti: millised olid raskused ja kuidas need \u00fcletati, kuidas toimus migratsiooniprotsess, kirjeldan valitud komponentide sidumist ja nende seadistusi. \n<\/li>\n<\/ol>\n<p>\nAit\u00e4h t\u00e4helepanu eest! Esitage oma k\u00fcsimusi teema kohta, p\u00fc\u00fcan siin v\u00f5i j\u00e4rgnevates postitustes vastata. V\u00f5ib-olla on kellelgi kogemusi sarnase seires\u00fcsteemi loomise v\u00f5i Clickhouse'ile \u00fclemineku osas \u2014 jagage neid kommentaarides.<br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/avito\/blog\/335410\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u043f\u043e\u043c\u0438\u043c\u043e \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u044e\u0442 \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432. \u041a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0435\u0433\u043e \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043b\u0438. \u0414\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0432 \u0442\u0430\u043a\u0438\u0445 \u043e\u0431\u044a\u0435\u043c\u0430\u0445 \u0441\u0438\u043b\u0430\u043c\u0438 DevOps-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0442\u0438\u0447\u043d\u043e. \u041c\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043a\u0430\u043a \u0441\u0435\u0440\u0432\u0438\u0441 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432. \u041e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u043c\u0438, \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043d\u0430 \u0438\u0445 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u044b, \u043f\u0440\u0438\u043a\u0440\u0443\u0447\u0438\u0432\u0430\u0442\u044c \u043a \u043d\u0438\u043c \u0430\u043b\u0435\u0440\u0442\u044b, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-52115","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u043f\u043e\u043c\u0438\u043c\u043e \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u044e\u0442 \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432. \u041a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0435\u0433\u043e \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043b\u0438. \u0414\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0432 \u0442\u0430\u043a\u0438\u0445 \u043e\u0431\u044a\u0435\u043c\u0430\u0445 \u0441\u0438\u043b\u0430\u043c\u0438 DevOps-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0442\u0438\u0447\u043d\u043e.\" \/>\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\/et\/blog\/administrirovanie\/monitoring-kak-servis-modulnaya-sistema-dlya-mikroservisnoj-arhitektury\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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\udd47\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u043a\u0430\u043a \u0441\u0435\u0440\u0432\u0438\u0441: \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0434\u043b\u044f \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u043f\u043e\u043c\u0438\u043c\u043e \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u044e\u0442 \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432. \u041a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0435\u0433\u043e \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043b\u0438. \u0414\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0432 \u0442\u0430\u043a\u0438\u0445 \u043e\u0431\u044a\u0435\u043c\u0430\u0445 \u0441\u0438\u043b\u0430\u043c\u0438 DevOps-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0442\u0438\u0447\u043d\u043e.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/monitoring-kak-servis-modulnaya-sistema-dlya-mikroservisnoj-arhitektury\" \/>\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=\"2019-10-31T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T10:59:47+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\udd47J\u00e4lgimine teenusena: moodulaarne s\u00fcsteem mikroteenuste arhitektuurile | ProHoster","description":"T\u00e4na meie projektis, lisaks monoliitsele koodile, toimib k\u00fcmneid mikroteenuseid. Iga\u00fcht neist tuleb j\u00e4lgida. Sellise mahuga DevOps-inseneride j\u00f5ududega j\u00e4lgimine on problemaatiline.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/monitoring-kak-servis-modulnaya-sistema-dlya-mikroservisnoj-arhitektury","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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\udd47\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u043a\u0430\u043a \u0441\u0435\u0440\u0432\u0438\u0441: \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0434\u043b\u044f \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b | ProHoster","og:description":"\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u043f\u043e\u043c\u0438\u043c\u043e \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u0443\u044e\u0442 \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432. \u041a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0435\u0433\u043e \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043b\u0438. \u0414\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0432 \u0442\u0430\u043a\u0438\u0445 \u043e\u0431\u044a\u0435\u043c\u0430\u0445 \u0441\u0438\u043b\u0430\u043c\u0438 DevOps-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0442\u0438\u0447\u043d\u043e.","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/monitoring-kak-servis-modulnaya-sistema-dlya-mikroservisnoj-arhitektury","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":"2019-10-31T21:00:00+00:00","article:modified_time":"2020-02-18T10:59:47+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"52115","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":"2026-01-24 02:30:22","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:49:49","updated":"2026-01-24 02:30:22","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/52115","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=52115"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/52115\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=52115"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=52115"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=52115"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}