{"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":"J\u00e4lgimine teenusena: moodulaarne s\u00fcsteem mikroteenuste arhitektuuriks","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Meie projektis toimib t\u00e4nap\u00e4eval mitme mikroteenuse k\u00f5rval ka monoliitne kood. Iga\u00fcks neist vajab j\u00e4lgimist. Sedav\u00f5rd suurte mahu korral on DevOps-inseneride j\u00f5udude kaasamine keeruline. Oleme v\u00e4lja t\u00f6\u00f6tanud 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 juhtpaneele ning lisada neile h\u00e4ireid, mis aktiveeruvad, kui l\u00e4henetakse piirv\u00e4\u00e4rtustele. DevOps-inseneride osalus on vaid infrastruktuuri ja dokumentatsiooni haldamine. <\/p>\n<p>See postitus on minu ettekande t\u00f5lgendus meie <noindex><a rel=\"nofollow\" href=\"http:\/\/bit.ly\/tomicro\">sessioonis<\/a><\/noindex> RIT++-l. Paljud palusid meil teha sealsetest ettekannetest tekstiversioonid. Kui olite konverentsil v\u00f5i vaatasite videot, ei leia te midagi uut. K\u00f5igile teistele \u2014 teretulemast allapoole. R\u00e4\u00e4gin, kuidas me sellise s\u00fcsteemi juurde j\u00f5udsime, kuidas see t\u00f6\u00f6tab ja kuidas plaanime seda ajakohastada. <\/p>\n<p><img decoding=\"async\" alt=\"J\u00e4lgimine teenusena: moodulaarne 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 peame minema tagasi 2015. aastasse. Nii see siis v\u00e4lja n\u00e4gi: <\/p>\n<p><img decoding=\"async\" alt=\"J\u00e4lgimine teenusena: moodulaarne 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 j\u00e4lgimise eest vastutavad. Seal oli terve hulk erinevaid cron'e, skripte, deemonite, mis mingil viisil j\u00e4lgisid, saatsid teateid, t\u00e4itsid funktsioone. Arvasime, et mida kaugemale, seda v\u00e4hem on selline s\u00fcsteem j\u00e4tkusuutlik. Selle arendamine pole m\u00f5ttekas: liiga mahukas. <br \/>\nOtsustasime valida need j\u00e4lgimise elemendid, mille me j\u00e4tame ja arendame, ning need, millest loobume. Nendest osutus 19 olevat. J\u00f5udsid ainult grafiidid, agregaatoreid ja Grafana v\u00e4lja visata puutepunktina. Aga kuidas n\u00e4eb v\u00e4lja uus s\u00fcsteem? Nii: <\/p>\n<p><img decoding=\"async\" alt=\"J\u00e4lgimine teenusena: moodulaarne s\u00fcsteem mikroteenuste arhitektuuriks\" src=\"\/wp-content\/uploads\/2019\/11\/57d220113d0b76c05874b5d774bff8af.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMeil on metrikate salvestus: need on grafiidid, mis asuvad kiiretel SSD-diskidel, teatud agregaatoreid metrikate jaoks. J\u00e4rgmine on Grafana juhtpaneelide jaoks ja Moira h\u00e4ireks. Soovisime v\u00e4lja t\u00f6\u00f6tada ka anomaaliate leidmise s\u00fcsteemi. <\/p>\n<h3>Standard: J\u00e4lgimine 2.0<\/h3>\n<p>\nSelline n\u00e4gi v\u00e4lja plaan 2015. aastal. Kuid me pidime ette valmistama mitte ainult infrastruktuuri ja teenuse, vaid ka selle dokumentatsiooni. Koostasime oma ettev\u00f5tte standardi, mille nimeks panime monitorimine 2.0. Millised olid n\u00f5uded s\u00fcsteemile? <\/p>\n<ul>\n<li>p\u00fcsiv k\u00e4tte saadavus; <\/li>\n<li>m\u00f5\u00f5dikute salvestamise intervall = 10 sekundit; <\/li>\n<li>m\u00f5\u00f5dikute ja armatuurlaudade struktureeritud salvestamine; <\/li>\n<li>SLA &gt; 99,99% <\/li>\n<li>s\u00fcndmuste m\u00f5\u00f5dikute kogumine UDP kaudu (!). <\/li>\n<\/ul>\n<p>\nMe vajame UDP-d, sest meil on suur liiklusvoog ja s\u00fcndmused, mis genereerivad m\u00f5\u00f5dikud. Kui k\u00f5ik m\u00f5\u00f5dikud kohe graafikusse kirjutada, siis salvestus p\u00f5rkab kokku. Valisime ka k\u00f5igi m\u00f5\u00f5dikute jaoks esimese taseme prefiksid. <\/p>\n<p><img decoding=\"async\" alt=\"J\u00e4lgimine teenusena: moodulaarne s\u00fcsteem mikroteenuste arhitektuuriks\" src=\"\/wp-content\/uploads\/2019\/11\/d24c4474b19b532a48cef4d4376287ad.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIgal prefiksil on oma omadus. On olemas m\u00f5\u00f5dikud serverite, v\u00f5rkude, konteinerite, ressursside, rakenduste jne kohta. Oleme rakendanud selge, range, t\u00fc\u00fcbistatud filtreerimise, kus me aktsepteerime esimese taseme m\u00f5\u00f5dikuid ja k\u00f5ik teised lihtsalt k\u00f5rvaldame. Nii planeerisime seda s\u00fcsteemi 2015. aastal. Aga mis on hetkel? <\/p>\n<h3>T\u00e4nap\u00e4ev: j\u00e4lgimise komponentide vastastikune toimimise skeem<\/h3>\n<p>\nEsiteks j\u00e4lgime rakendusi: meie PHP-kood, rakendused ja mikroteenused \u2014 \u00fches\u00f5naga k\u00f5ik, mida meie arendajad kirjutavad. K\u00f5ik rakendused saadavad UDP kaudu m\u00f5\u00f5dikud kogujale Brubeck (statsd, kirjutatud C keeles). See osutus s\u00fcnteetiliste testide tulemusel k\u00f5ige kiiremaks. Ja see saadab juba kogutud m\u00f5\u00f5dikud Graphitele TCP kaudu. <\/p>\n<p>Sel on selline m\u00f5\u00f5dikute t\u00fc\u00fcp nagu ajam\u00f5\u00f5dikud. See on v\u00e4ga mugav asi. N\u00e4iteks iga kasutaja \u00fchenduse kohta teenusega saadate Brubeck'ile vastuseaja m\u00f5\u00f5diku. Saite miljon vastust, aga koguja andis v\u00e4lja vaid 10 m\u00f5\u00f5dikut. Teil on teada saabunud inimeste arv, maksimaalne, minimaalne ja keskmine vastusaeg, mediaan ning 4 protsentiili. Seej\u00e4rel edastatakse andmed Graphitessse ja me n\u00e4eme neid k\u00f5iki 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>Edasi saadame k\u00f5ik kogutud m\u00f5\u00f5dikud Carbon-c-relay'le. See on Graphite'i Carbon Relay lahendus, t\u00e4iendatud C keeles. See on marsruuter, mis kogub endasse k\u00f5ik m\u00f5\u00f5dikud, mida saadame oma agregaatidest, ja suunab need s\u00f5lmedesse. Samuti kontrollib see marsruutimise etapis m\u00f5\u00f5dikute kehtivust. Esiteks peavad need vastama skeemile eelsete prefixide osas, millest ma varem r\u00e4\u00e4kisin, ja teiseks peavad need olema Graphite'ile kehtivad. Vastasel juhul need j\u00e4etakse v\u00e4lja. <\/p>\n<p>See, kuidas Carbon-c-relay edastab metrikad Graphite klastrisse. Meie peamiseks metrikate salvestamiseks on Carbon-cache, mis on kirjutatud Go keeles. Go-carbon \u00fcletab oma mitme \u00e4ratuse v\u00f5imekuse t\u00f5ttu Carbon-cache'i j\u00f5udlust. See v\u00f5tab andmeid vastu ja salvestab need k\u00f5vakettale whisper paketiga (tavaline, kirjutatud Pythonis). Andmete lugemiseks meie salvestustest kasutame Graphite API-d. See t\u00f6\u00f6tab tunduvalt kiiremini kui tavaline Graphite WEB. Mis juhtub andmetega edasi? <\/p>\n<p>Need for Grafana. We use our Graphite clusters as the main data source, and Grafana serves as the web interface for displaying metrics and building dashboards. Each of our services has its own dashboard created by developers. They then create graphs based on these dashboards to display metrics collected from their applications. In addition to Grafana, we also have SLAM. This is a Python daemon that calculates SLA based on data from Graphite. As I mentioned, we have several dozen microservices, each with its own requirements. With SLAM, we refer to the documentation and compare it with what we have in Graphite to assess how well the requirements match the availability of our services. <\/p>\n<p>Moving on to alerting. It is organized using a robust system \u2014 Moira. It's independent because it has its own Graphite running under the hood. Developed by the team at SKB 'Kontur', it's written in Python and Go, and is fully open-source. Moira processes the same flow that goes into Graphite. If for any reason your storage fails, your alerting will still function.<\/p>\n<p>Moira on deployitud Kubernetesis ja kasutab p\u00f5hitehnoloogia jaoks Redis-serverite klastrit. Tulemuseks on k\u00f5rgelt usaldusv\u00e4\u00e4rne s\u00fcsteem. See v\u00f5rdleb m\u00f5\u00f5dikute voogu triggereid nimekirjaga: kui nendes puuduvad mainimised, siis viskab m\u00f5\u00f5diku \u00e4ra. Sel viisil suudab ta minutis t\u00f6\u00f6delda gigabaiti m\u00f5\u00f5dikuid. <\/p>\n<p>Oleme sellele lisanud ettev\u00f5tte LDAP, mille kaudu saavad k\u00f5ik ettev\u00f5ttes\u00fcsteemi kasutajad luua endale teateid olemasolevate (v\u00f5i uutest loodud) trigerite j\u00e4rgi. Kuna Moira sisaldab Graphite'i, toetab ta k\u00f5iki selle funktsioone. Seega kopeerite esmalt rea ja kleepite selle Grafanasse. Vaadake, kuidas andmed graafikutel kuvatakse. Seej\u00e4rel v\u00f5tate sama rea ja kopeerite selle Moira'sse. Lisate sellele piirangud ja saate tulemuseks h\u00e4ireteate. K\u00f5ik see ei n\u00f5ua teilt mingeid spetsiifilisi teadmisi. Moira oskab teavitada SMS-i, e-postiga, Jira's, Slack'is... Samuti toetab ta kohandatud skriptide k\u00e4itamise v\u00f5imalust. Kui tal toimub triger ja ta on allkirjastatud kohandatud skripti v\u00f5i binaarkoodi j\u00e4rgi, k\u00e4ivitab ta selle ja edastab sellele binaarkoodile JSON'i. Seega peab teie programm selle anal\u00fc\u00fcsima. Mida te selle JSON-iga teete - otsustage ise. Kui soovite - saatke Telegram'i, kui soovite - avage \u00fclesandeid Jira's, tehke, mida iganes tahate. <\/p>\n<p>Meil on h\u00e4\u00e4lestuseks kasutusel ka meie enda arendus \u2014 Imagotag. Oleme kohandanud tavaliselt jaem\u00fc\u00fcgis kasutatavat paneeli, et see sobiks meie \u00fclesannetega. Oleme sinna lisanud Moira triggereid. Seal on m\u00e4rgitud, millises olekus need on ja millal need toimusid. <\/p>\n<p><img decoding=\"async\" alt=\"J\u00e4lgimine teenusena: moodulaarne s\u00fcsteem mikroteenuste arhitektuuriks\" src=\"\/wp-content\/uploads\/2019\/11\/bcf454c96adaa0cff81f5e56db5b715c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJa kuna me oleme progressiivne ettev\u00f5te, oleme monitooringus\u00fcsteemi lisanud ka Kubernetes'i. L\u00e4bi Heapsteri, mille oleme klastrisse paigaldanud, kogume andmeid ja saadame need Graphitesse. L\u00f5pptulemusena n\u00e4eb skeem v\u00e4lja selline: <\/p>\n<p><img decoding=\"async\" alt=\"J\u00e4lgimine teenusena: moodulaarne 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 loetelu linkidest nendele komponentidele, mida kasutasime selle \u00fclesande jaoks. 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 siin on m\u00f5ned numbrid selle kohta, kuidas s\u00fcsteem meil t\u00f6\u00f6tab. <\/p>\n<h4>Aggregator (brubeck)<\/h4>\n<p>\nMetrikate arv: ~ 300 000 \/ sek<br \/>\nMetrikate saatmise intervall Graphitesse: 30 sek<br \/>\nServeri ressursside kasutus: ~ 6% CPU (r\u00e4\u00e4kides t\u00e4ielikest serveritest); ~ 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 v\u00e4rskenduse intervall: 30 sek<br \/>\nM\u00f5\u00f5dikute salvestamise skeem: 30sek 35d, 5min 90d, 10min 365d (annab arusaama, mis teenusega pikema aja jooksul toimub) <br \/>\nServeri ressursside kasutus: ~ 10% CPU; ~ 20Gb RAM; ~ 30 Mbps LAN<\/p>\n<h3>Paindlikkus<\/h3>\n<p>\nMeie Avitos hindame oma j\u00e4lgimisteenuses v\u00e4ga paindlikkust. Miks see selline on? Esiteks, selle koostisosad on vahetatavad: nii komponendid kui ka nende versioonid. Teiseks - hooldatavus. Kuna kogu projekt p\u00f5hineb avatud l\u00e4htekoodiga, saate ise koodi redigeerida, muudatusi teha, ja rakendada funktsioone, mis pole vaikimisi saadaval. Kasutatakse piisavalt laialdaselt levinud tehnolooge, peamiselt Go ja Python, seet\u00f5ttu on see \u00fcsna lihtne. <\/p>\n<p>Siin on n\u00e4ide t\u00f5eliselt tekkinud probleemist. Graphite'is on m\u00f5\u00f5dik fail. Tal on nimi. Faili nimi = m\u00f5\u00f5diku nimi. Ja tal on tee sinna. Failinimed Linuxis on piiratud 255 m\u00e4rgiga. Ja meil on (nagu \u201esisemised tellijad\u201d) andmebaasi osakonna kutid. Nad \u00fctlevad meile: \u201eMe tahame j\u00e4lgida meie SQL-p\u00e4ringuid. Ja need ei ole 255 m\u00e4rki, vaid 8 MB iga\u00fcks. Me tahame neid kuvada Grafanas, n\u00e4ha parameetreid selle p\u00e4ringu kohta, ja veel parem, tahame n\u00e4ha selliste p\u00e4ringute tippu. Oleks tore, kui see kuvataks reaalajas. Ja oleks t\u00e4iesti \u00e4ge, kui saaksime need alerteerimisse panna.\u201d <\/p>\n<p><img decoding=\"async\" alt=\"J\u00e4lgimine teenusena: moodulaarne 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 <noindex><a rel=\"nofollow\" href=\"https:\/\/postgrespro.ru\/docs\/postgrespro\/9.6\/queries-with\">veebisaidilt 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>Kokkuv\u00f5te <\/h3>\n<p>\n<b>Saadavus.<\/b> Meie j\u00e4lgimisteenuse k\u00e4ttesaadavus on 24\/7 igast rakendusest ja igast koodist. Kui teil on juurdep\u00e4\u00e4s andmebaasidele, saate teenusesse andmeid kirjutada. Keeleline aspekt ei ole oluline, lahendused ei ole olulised. Te peate ainult teadma, kuidas avada sokkel, edastada m\u00f5\u00f5de ja sulgeda sokkel. <\/p>\n<p><b>Usaldusv\u00e4\u00e4rsus.<\/b> K\u00f5ik komponendid on t\u00f5rkekindlad ja taluvad meie koormusi h\u00e4sti. <\/p>\n<p><b>Madala sisenemise t\u00f5kkega.<\/b> Selle s\u00fcsteemi kasutamiseks ei pea te \u00f5ppima programmeerimiskeeli ega p\u00e4ringuid Grafanas. Lihtsalt avate oma rakenduse, sisestate sellesse pistiku, mis saadab m\u00f5\u00f5dikud Graphitesse, sulgete selle, avate Grafana, loote seal armatuurlaudu ja vaatate oma m\u00f5\u00f5dikute k\u00e4itumist, saades teateid Moira kaudu.<\/p>\n<p><b>Iseseisvus.<\/b> K\u00f5ike seda saab teha ise, ilma DevOps-inseneride abita. See on \u00fcleliigne, kuna saate oma projekti j\u00e4lgida just n\u00fc\u00fcd, kedagi k\u00fcsima ei pea \u2014 ei t\u00f6\u00f6 alustamiseks ega muudatuste tegemiseks. <\/p>\n<h3>Mille poole me p\u00fc\u00fcame? <\/h3>\n<p>\nK\u00f5ik allpool loetletud ei ole lihtsalt abstraktsed m\u00f5tted, vaid see, mille suunas on astutud v\u00e4hemalt esimesed sammud. <\/p>\n<ol>\n<li>Anomaaliate detektor. Soovime luua teenuse, mis kontrollib meie Graphite'ile s\u00e4ilitatud m\u00f5\u00f5dikuid erinevate algoritmide abil. Juba on olemas algoritmid, mida soovime l\u00e4bi vaadata, andmed on olemas, me oskame nendega t\u00f6\u00f6tada.\n<\/li>\n<li>Metaandmed. Meil on palju teenuseid, mis aja jooksul muutuvad, nagu ka inimesed, kes nendega t\u00f6\u00f6tavad. Dokumentatsiooni k\u00e4sitsi pidamine ei ole praktiline variant. Seet\u00f5ttu integreeritakse meie mikroteenustesse n\u00fc\u00fcd metaandmed. Seal on kirjas, kes selle arendas, milliste keel(te)ga see t\u00f6\u00f6tab, SLA n\u00f5uded, kuhu ja kellele teavitusi saata. Teenuse juurutamisel luuakse k\u00f5ik olendi andmed iseseisvalt. Tulemuseks on kaks linki \u2014 \u00fcks triggereid, teine \u2014 Grafana juhtpaneelidele.\n<\/li>\n<li>J\u00f5udlus igas kodus. Usume, et sellist s\u00fcsteemi peaksid kasutama k\u00f5ik arendajad. Sel juhul m\u00f5istate alati, kus teie liiklus on, mis sellega toimub, kus see kukub ja kus on n\u00f5rgad kohad. Kui n\u00e4iteks saabub midagi, mis viib teie teenuse alla, siis saate sellest teada mitte telefoni k\u00f5ne ajal, vaid alert'ist ja saate kohe avada v\u00e4rsked logid ning 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\u00f5diku v\u00e4\u00e4rtust minutis. Aasta tagasi oli see n\u00e4itaja 500 000. Ja kasv j\u00e4tkub, mis t\u00e4hendab, et m\u00f5ne aja p\u00e4rast hakkab Graphite (whisper) v\u00e4ga tugevalt koormama salvestusala. Nagu ma juba mainisin, on see j\u00e4lgimiss\u00fcsteem \u00fcsna universaalne t\u00e4nu komponentide vahetatavusele. Keegi haldab ja laiendab pidevalt oma infrastruktuuri spetsiaalselt Graphite'i jaoks, kuid meie otsustasime j\u00e4rgida teistsugust teed: kasutada <noindex><a rel=\"nofollow\" href=\"https:\/\/clickhouse.yandex\/\">ClickHouse<\/a><\/noindex> meie m\u00f5\u00f5dikute salvestamiseks. See \u00fcleminek on peaaegu l\u00f5petatud ja peagi r\u00e4\u00e4gin l\u00e4hemalt, kuidas see tehti: millised olid raskused ja kuidas need \u00fcletati, kuidas toimus migratsiooniprotsess, kirjeldan valitud komponentide sidumist ja nende konfiguratsiooni. \n<\/li>\n<\/ol>\n<p>\nAit\u00e4h t\u00e4helepanu eest! Esitage oma k\u00fcsimused teema kohta, \u00fcritan vastata siin v\u00f5i j\u00e4rgnevates postitustes. V\u00f5ib-olla on kellelgi kogemusi sellise j\u00e4lgimiss\u00fcsteemi \u00fclesehitamiseks v\u00f5i Clickhouse'ile \u00fclemineku kohta sarnases olukorras \u2013 jagage seda 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 4.9.10 - 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. \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,\" \/>\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) 4.9.10\" \/>\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. \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,\" \/>\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: moodulip\u00f5hine s\u00fcsteem mikroteenuste arhitektuurile | ProHoster","description":"T\u00e4na t\u00f6\u00f6tab meie projektis, v\u00e4lja arvatud monoliitne kood, k\u00fcmneid mikroteenuseid. Iga\u00fcks neist vajab j\u00e4lgimist. Selliste mahtude j\u00e4lgimine DevOps-inseneride j\u00f5ududega on keeruline. Oleme v\u00e4lja t\u00f6\u00f6tanud j\u00e4lgimiss\u00fcsteemi, mis toimib teenusena arendajatele. Nad saavad ise kirjutada metrikaid j\u00e4lgimisse ning kasutada neid, koostada nende p\u00f5hjal armatuurlaudu ja lisada neile hoiatuseid.","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. \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,","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"},"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}]}}