{"id":491549,"date":"2026-08-20T08:48:00","date_gmt":"2026-08-20T08:48:00","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=491549"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=491549","title":{"rendered":"\u041a\u0430\u043a\u00a0\u044f \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b \u0433\u0430\u0434\u0430\u0442\u044c, \u043a\u0430\u043a\u0430\u044f \u043f\u0430\u0440\u0430 \u043d\u043e\u0434 \u0441\u043b\u043e\u043c\u0430\u043b\u0430\u0441\u044c \u043f\u043e\u0441\u043b\u0435 \u0430\u043f\u0434\u0435\u0439\u0442\u0430 CNI, \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0434\u043b\u044f\u00a0\u044d\u0442\u043e\u0433\u043e \u0441\u0432\u043e\u0439 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<h3>\u0411\u043e\u043b\u044c<\/h3>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0434\u0435\u0440\u0436\u0438\u0442\u0435 on\u2011prem \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u043d\u0430\u00a0\u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u0438\u043b\u0438\u00a0\u0441\u043e\u0442\u043d\u0438 \u043d\u043e\u0434, \u0434\u0430\u043b\u044c\u0448\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0435\u00a0\u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c. \u041e\u0431\u043d\u043e\u0432\u0438\u043b\u0438 CNI, \u0438\u043b\u0438\u00a0\u044f\u0434\u0440\u043e, \u0438\u043b\u0438\u00a0\u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u044b, \u0438\u043b\u0438\u00a0\u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0435\u0445\u0430\u043b\u0438 \u0447\u0430\u0441\u0442\u044c\u044e \u043d\u043e\u0434 \u0432\u00a0\u043d\u043e\u0432\u044b\u0439 \u0441\u0435\u0433\u043c\u0435\u043d\u0442. \u041f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u043a\u0430\u043a\u043e\u0435\u2011\u0442\u043e \u0432\u0440\u0435\u043c\u044f, \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u043a\u0430\u043f\u0430\u0442\u044c \u0442\u0438\u043a\u0435\u0442\u044b: \u00ab\u0443 \u043d\u0430\u0441 \u0438\u043d\u043e\u0433\u0434\u0430 \u0442\u0430\u0439\u043c\u0430\u0443\u0442\u0438\u0442 \u043c\u0435\u0436\u0434\u0443 \u043f\u043e\u0434\u0430\u043c\u0438\u00bb, \u00abDNS \u0438\u043d\u043e\u0433\u0434\u0430 \u043d\u0435\u00a0\u0440\u0435\u0437\u043e\u043b\u0432\u0438\u0442\u0441\u044f\u00bb, \u00abhealth\u2011check \u0442\u043e \u043f\u0430\u0434\u0430\u0435\u0442, \u0442\u043e \u043d\u0435\u0442\u00bb.<\/p>\n<p>\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u0442\u0443\u0442 \u00ab\u0438\u043d\u043e\u0433\u0434\u0430\u00bb. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043d\u0435\u00a0\u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u0430\u044f, \u043d\u0435\u00a0\u043f\u0440\u043e 100% \u0442\u0440\u0430\u0444\u0438\u043a\u0430. \u041b\u043e\u043c\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0430\u044f \u043f\u0430\u0440\u0430 \u043d\u043e\u0434 \u0438\u043b\u0438\u00a0\u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b, \u0438 \u043b\u043e\u043c\u0430\u0435\u0442\u0441\u044f \u0440\u043e\u0432\u043d\u043e \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0441\u043f\u0440\u044f\u0442\u0430\u0442\u044c\u0441\u044f \u0437\u0430\u00a0\u0430\u0433\u0440\u0435\u0433\u0430\u0442\u043e\u043c. 98% \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u0445 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e. \u0420\u043e\u0432\u043d\u043e \u0434\u043e\u00a0\u0442\u043e\u0439 \u0441\u0435\u043a\u0443\u043d\u0434\u044b, \u043a\u043e\u0433\u0434\u0430 \u0434\u043e\u0445\u043e\u0434\u0438\u0442: \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0438\u0435 2% \u044d\u0442\u043e \u043e\u0434\u043d\u0430 \u043f\u0430\u0440\u0430, \u043e\u0434\u0438\u043d \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b, \u0438 \u0442\u0430\u043a \u0438\u0437\u043e \u0434\u043d\u044f \u0432\u00a0\u0434\u0435\u043d\u044c.<\/p>\n<p>\u041f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u0432\u00a0\u044d\u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u043e\u0447\u0442\u0438 \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u0435\u043d:<\/p>\n<ul>\n<li>\n<p><code>kubectl exec<\/code> \u043f\u043b\u044e\u0441 <code>ping<\/code> \u0438\u043b\u0438 <code>curl<\/code> \u0440\u0443\u043a\u0430\u043c\u0438. \u041e\u0442\u043b\u0438\u0447\u043d\u043e, \u0430\u00a0\u043a\u0430\u043a\u0443\u044e \u043f\u0430\u0440\u0443 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c? \u0418\u0445 \u0441\u043e\u0442\u043d\u0438, \u0438 \u0432\u044b \u043d\u0435\u00a0\u0437\u043d\u0430\u0435\u0442\u0435, \u043a\u0430\u043a\u0430\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u0441\u043b\u043e\u043c\u0430\u043b\u0430\u0441\u044c.<\/p>\n<\/li>\n<li>\n<p>Node exporter \u0438 \u0442\u0438\u043f\u043e\u0432\u044b\u0435 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u044b \u043f\u043e\u043a\u0430\u0436\u0443\u0442 CPU, \u043f\u0430\u043c\u044f\u0442\u044c \u0438 \u0434\u0438\u0441\u043a \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u043d\u043e\u0434\u044b. \u041f\u0440\u043e\u00a0\u0442\u043e, \u0447\u0442\u043e\u00a0\u043d\u043e\u0434\u0430 A \u043d\u0435\u00a0\u0434\u043e\u0441\u0442\u0443\u0447\u0430\u043b\u0430\u0441\u044c \u0434\u043e\u00a0\u043d\u043e\u0434\u044b B \u043f\u043e\u00a0UDP, \u0442\u0430\u043c \u043d\u0435\u0442 \u043d\u0438 \u0441\u043b\u043e\u0432\u0430.<\/p>\n<\/li>\n<li>\n<p>\u041b\u043e\u0433\u0438 CNI\u2011\u043f\u043b\u0430\u0433\u0438\u043d\u0430. \u0415\u0441\u043b\u0438 \u043f\u043e\u0432\u0435\u0437\u0451\u0442, \u043d\u0430\u0439\u0434\u0451\u0442\u0441\u044f \u0447\u0442\u043e\u2011\u0442\u043e \u0440\u0435\u043b\u0435\u0432\u0430\u043d\u0442\u043d\u043e\u0435. \u041f\u043e\u0441\u0442\u0444\u0430\u043a\u0442\u0443\u043c \u0438 \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435\u00a0\u043f\u043e\u00a0\u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u0430\u0440\u0435.<\/p>\n<\/li>\n<\/ul>\n<p>\u0425\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0438 \u0432\u043e\u00a0\u0432\u0441\u0435\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u0445 \u0433\u043e\u043d\u044f\u0435\u0442 \u043c\u0435\u0436\u0434\u0443 \u043d\u043e\u0434\u0430\u043c\u0438 \u0436\u0438\u0432\u044b\u0435 \u043f\u0440\u043e\u0431\u044b, \u0430\u00a0\u043f\u0440\u0438\u00a0\u0441\u0431\u043e\u0435 \u0441\u0440\u0430\u0437\u0443 \u0433\u043e\u0432\u043e\u0440\u0438\u0442: \u0432\u043e\u0442 \u043f\u0430\u0440\u0430, \u0432\u043e\u0442 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b, \u0432\u043e\u0442 \u0445\u043e\u043f.<\/p>\n<h3>\u0427\u0442\u043e\u00a0\u0443\u0436\u0435 \u0435\u0441\u0442\u044c: Goldpinger<\/h3>\n<p>\u041f\u0435\u0440\u0432\u043e\u0435, \u0447\u0442\u043e\u00a0\u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0432\u00a0\u0433\u043e\u043b\u043e\u0432\u0443, \u044d\u0442\u043e <a href=\"https:\/\/github.com\/bloomberg\/goldpinger\" rel=\"noopener noreferrer nofollow\">Goldpinger<\/a>. \u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0432\u0437\u0440\u043e\u0441\u043b\u044b\u0439 \u0438 \u043e\u0431\u043a\u0430\u0442\u0430\u043d\u043d\u044b\u0439: DaemonSet, \u043e\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0441\u0432\u043e\u0438\u0445 \u0441\u043e\u0431\u0440\u0430\u0442\u044c\u0435\u0432 \u043f\u043e\u00a0HTTP, \u043e\u0442\u0434\u0430\u0451\u0442 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0438 \u0440\u0438\u0441\u0443\u0435\u0442 \u0433\u0440\u0430\u0444 \u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u0438 \u0432\u00a0\u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c web UI. \u0421\u0442\u0430\u0432\u0438\u0442\u0441\u044f \u0437\u0430\u00a0\u043c\u0438\u043d\u0443\u0442\u0443 \u0438 \u0447\u0435\u0441\u0442\u043d\u043e \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043d\u0430\u00a0\u0432\u043e\u043f\u0440\u043e\u0441, \u0432\u0438\u0434\u0438\u0442\u00a0\u043b\u0438 \u043d\u043e\u0434\u0430 X \u043d\u043e\u0434\u0443 Y. \u0415\u0441\u043b\u0438 \u0443\u00a0\u0432\u0430\u0441 \u0435\u0433\u043e \u043d\u0435\u0442, \u043d\u0430\u0447\u043d\u0438\u0442\u0435 \u0441\u00a0\u043d\u0435\u0433\u043e. \u041f\u043e\u0440\u043e\u0433 \u0432\u0445\u043e\u0434\u0430 \u043a\u043e\u043f\u0435\u0435\u0447\u043d\u044b\u0439, \u043f\u043e\u043b\u044c\u0437\u0430 \u0441\u0440\u0430\u0437\u0443.<\/p>\n<p>\u041d\u043e\u00a0\u0434\u0435\u0433\u0440\u0430\u0434\u0430\u0446\u0438\u044f\u00a0\u0431\u044b\u0432\u0430\u0435\u0442 \u043d\u0435\u00a0\u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0439, \u0430\u00a0\u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0439, \u0434\u0430\u00a0\u0435\u0449\u0451 \u0438 \u0437\u0430\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0439 \u043d\u0430\u00a0\u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b, \u0438 \u0432\u043e\u0442 \u0442\u0443\u0442 \u0435\u0433\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0451\u0442 \u0445\u0432\u0430\u0442\u0430\u0442\u044c. \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043c\u0435\u0448 \u043c\u0435\u0436\u0434\u0443 \u043f\u0438\u0440\u0430\u043c\u0438 \u0443\u00a0\u043d\u0435\u0433\u043e HTTP, per\u2011peer ICMP \u0438 \u0440\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e per\u2011hop \u0442\u0440\u0435\u0439\u0441\u0438\u043d\u0433\u0430 \u043d\u0435\u0442. \u0410\u00a0\u043c\u043d\u0435 \u043d\u0443\u0436\u043d\u044b\u00a0\u0431\u044b\u043b\u0438 \u0432\u0441\u0435 \u043f\u044f\u0442\u044c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430\u043c\u0438 \u043c\u0435\u0436\u0434\u0443 \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u0430\u0440\u043e\u0439, \u043f\u043b\u044e\u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 MTR \u043f\u0440\u044f\u043c\u043e \u0432\u00a0\u043c\u043e\u043c\u0435\u043d\u0442 \u0441\u0431\u043e\u044f.<\/p>\n<p>\u0422\u0430\u043a \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f <strong>kconmon\u2011ng<\/strong>, Kubernetes Node Connectivity Monitor, next generation (<a href=\"https:\/\/github.com\/EsDmitrii\/kconmon-ng\" rel=\"noopener noreferrer nofollow\">\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439<\/a>, Apache 2.0).<\/p>\n<p>\u0412\u00a0\u043f\u0440\u043e\u0448\u043b\u044b\u0439 \u0440\u0430\u0437 \u044f \u043f\u0438\u0441\u0430\u043b \u0432 <a href=\"https:\/\/lnkd.in\/p\/dqYBCMdY\" rel=\"noopener noreferrer nofollow\">LinkedIn<\/a> \u043f\u0440\u043e\u00a0\u0438\u0437\u043c\u0435\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u044f\u0434\u0440\u043e. \u0421\u00a0\u0442\u0435\u0445 \u043f\u043e\u0440 \u043a\u00a0\u043d\u0435\u043c\u0443 \u043f\u0440\u0438\u0440\u043e\u0441\u043b\u0430 \u0446\u0435\u043b\u0430\u044f \u0432\u0435\u0431\u2011\u043a\u043e\u043d\u0441\u043e\u043b\u044c, \u0438 \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u00a0\u043d\u0435\u0451.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5ab\/858\/507\/5ab858507b65e055fa8581121848d239.png\" alt=\"Console Overview: 9 \u043d\u043e\u0434, \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0445 \u043f\u043e \u0430\u0433\u0435\u043d\u0442\u0430\u043c, 9 \u0438\u0437 90 \u043f\u0430\u0440 \u0432 \u0444\u0435\u0439\u043b\u0435, \u043f\u044f\u0442\u044c \u0445\u0443\u0434\u0448\u0438\u0445 \u043f\u0430\u0440 \u0443\u043f\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0432 qa-node-07 \u043d\u0430 17%, \u0434\u0432\u0430 critical-\u0430\u043b\u0435\u0440\u0442\u0430 UdpPairLoss \u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\" width=\"1600\" height=\"1000\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/5ab\/858\/507\/5ab858507b65e055fa8581121848d239.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5ab\/858\/507\/5ab858507b65e055fa8581121848d239.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Console Overview: 9\u00a0\u043d\u043e\u0434, \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u00a0\u0430\u0433\u0435\u043d\u0442\u0430\u043c, 9\u00a0\u0438\u0437 90\u00a0\u043f\u0430\u0440 \u0432\u00a0\u0444\u0435\u0439\u043b\u0435, \u043f\u044f\u0442\u044c \u0445\u0443\u0434\u0448\u0438\u0445 \u043f\u0430\u0440 \u0443\u043f\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0432\u00a0qa\u2011node-07\u00a0\u043d\u0430 17%, \u0434\u0432\u0430 critical\u2011\u0430\u043b\u0435\u0440\u0442\u0430 UdpPairLoss \u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442<\/figcaption><\/div>\n<\/figure>\n<h3>\u041a\u0430\u043a\u00a0\u043e\u043d\u043e \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u043e<\/h3>\n<p>\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u043e \u044d\u0442\u043e \u0441\u0432\u044f\u0437\u043a\u0430 agent\/controller. \u041d\u043e\u00a0\u043d\u0435\u00a0\u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 full\u2011mesh HTTP\u2011\u043e\u043f\u0440\u043e\u0441.<\/p>\n<ul>\n<li>\n<p><strong>Controller<\/strong> (Deployment) \u0434\u0435\u0440\u0436\u0438\u0442 \u0440\u0435\u0435\u0441\u0442\u0440 \u0430\u0433\u0435\u043d\u0442\u043e\u0432 \u0441\u00a0heartbeat\u2011eviction, \u0441\u043b\u0435\u0434\u0438\u0442 \u0437\u0430\u00a0\u043d\u043e\u0434\u0430\u043c\u0438 \u0447\u0435\u0440\u0435\u0437 Kubernetes informer, \u043e\u0442\u0434\u0430\u0451\u0442 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044e \u043f\u043e\u00a0gRPC\u2011\u0441\u0442\u0440\u0438\u043c\u0443 \u0438 \u0443\u043c\u0435\u0435\u0442 leader election \u0434\u043b\u044f\u00a0HA (<code>controller.leaderElection: true<\/code>).<\/p>\n<\/li>\n<li>\n<p><strong>Agent<\/strong> (DaemonSet) \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043e\u0442\u00a0\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0436\u0438\u0432\u043e\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u0438\u0440\u043e\u0432 \u043f\u043e\u00a0gRPC. \u041d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u043f\u043e\u043b\u043b\u0438\u043d\u0433\u0430: \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0441\u0430\u043c \u043f\u0443\u0448\u0438\u0442 \u043f\u043e\u043b\u043d\u044b\u0439 \u0441\u043d\u0430\u043f\u0448\u043e\u0442 \u043f\u0438\u0440\u043e\u0432 \u043f\u0440\u0438\u00a0\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u0438 \u0437\u0430\u043d\u043e\u0432\u043e \u043f\u0440\u0438\u00a0\u043a\u0430\u0436\u0434\u043e\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438. \u0414\u0430\u043b\u044c\u0448\u0435 \u0430\u0433\u0435\u043d\u0442 \u0433\u043e\u043d\u044f\u0435\u0442 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 \u0438 \u0432\u0441\u0435\u043c\u0438 \u043f\u0438\u0440\u0430\u043c\u0438 \u043f\u044f\u0442\u044c \u0442\u0438\u043f\u043e\u0432 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a: <strong>TCP, UDP, ICMP, DNS, HTTP<\/strong>.<\/p>\n<\/li>\n<\/ul>\n<pre><code>                          +-------------------------------------------+                          |          Controller (Deployment)          |                          |  agent registry (heartbeat eviction)      |                          |  node watcher (zone labels)               |                          |  topology API + gRPC event stream         |                          |  leader election (active\/standby)         |                          +---------------------+---------------------+                                                |                       gRPC stream: peer list, pushed on every change                                                |              +-------------------+  +-------------------+  +-------------------+              | Agent (node-1)    |  | Agent (node-2)    |  | Agent (node-3)    |              | TCP UDP ICMP      |  | TCP UDP ICMP      |  | TCP UDP ICMP      |              | DNS HTTP          |  | DNS HTTP          |  | DNS HTTP          |              | MTR on failure    |  | MTR on failure    |  | MTR on failure    |              | \/metrics :8080    |  | \/metrics :8080    |  | \/metrics :8080    |              +-------------------+  +-------------------+  +-------------------+                ^                                                             ^                +------------------ probes between all pairs -----------------+<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:87px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041a\u0430\u0436\u0434\u044b\u0439 \u0447\u0435\u043a\u0435\u0440 \u043e\u0442\u0434\u0430\u0451\u0442 \u043d\u0435\u00a0\u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0435 \u0436\u0438\u0432\/\u043d\u0435 \u0436\u0438\u0432, \u0430\u00a0\u0441\u0432\u043e\u0439 \u043d\u0430\u0431\u043e\u0440 \u043c\u0435\u0442\u0440\u0438\u043a:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p align=\"left\">\u0427\u0435\u043a\u0435\u0440<\/p>\n<\/th>\n<th>\n<p align=\"left\">\u0427\u0442\u043e\u00a0\u043c\u0435\u0440\u044f\u0435\u0442<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">TCP<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0432\u0440\u0435\u043c\u044f \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u0430 \u0438 \u043f\u043e\u043b\u043d\u044b\u0439 RTT \u043f\u043e\u00a0\u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u043f\u0438\u0440\u0443<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">UDP<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0441\u0440\u0435\u0434\u043d\u0438\u0439 RTT, \u0434\u0436\u0438\u0442\u0442\u0435\u0440 \u0438 packet loss \u043d\u0430\u00a0burst \u0438\u0437\u00a0\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">ICMP<\/p>\n<\/td>\n<td>\n<p align=\"left\">echo RTT \u0438 loss, IPv4\u00a0\u0438 IPv6<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">DNS<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0432\u0440\u0435\u043c\u044f \u0440\u0435\u0437\u043e\u043b\u0432\u0430 \u043f\u043e\u00a0\u043f\u0430\u0440\u0435 (hostname, resolver), \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0438\u043b\u0438\u00a0\u044f\u0432\u043d\u044b\u0435 upstream<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">HTTP<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u043f\u043e\u0444\u0430\u0437\u043e\u0432\u044b\u0439 \u0442\u0430\u0439\u043c\u0438\u043d\u0433 \u0434\u043b\u044f\u00a0\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 URL: DNS, connect, TLS, TTFB, total<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">MTR<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0440\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0442\u0440\u0435\u0439\u0441 \u043f\u0440\u0438\u00a0\u0441\u0431\u043e\u0435, RTT \u0438 loss \u043f\u043e\u00a0\u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0445\u043e\u043f\u0443<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>TCP, UDP, ICMP \u0438 DNS \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0438\u0437\u00a0\u043a\u043e\u0440\u043e\u0431\u043a\u0438 \u0441\u00a0\u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u043e\u043c 5\u00a0\u0441\u0435\u043a\u0443\u043d\u0434. HTTP \u043f\u043e\u00a0\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e\u00a0URL \u0437\u043d\u0430\u0435\u0442\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u044b.<\/p>\n<p>\u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u0432\u00a0\u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0435: <strong>\u043a\u043e\u0433\u0434\u0430 TCP, UDP \u0438\u043b\u0438\u00a0ICMP \u043f\u0440\u043e\u0431\u0430 \u0434\u0430\u0451\u0442 \u0441\u0431\u043e\u0439, \u0430\u0433\u0435\u043d\u0442 \u0441\u0430\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 MTR<\/strong> \u0434\u043b\u044f\u00a0\u044d\u0442\u043e\u0439 \u043f\u0430\u0440\u044b. \u0415\u0441\u0442\u044c cooldown \u043d\u0430\u00a0\u043f\u0430\u0440\u0443, \u0438\u043d\u0430\u0447\u0435 \u043e\u0434\u0438\u043d \u0441\u043b\u043e\u043c\u0430\u043d\u043d\u044b\u0439\u00a0\u043b\u0438\u043d\u043a \u0437\u0430\u043b\u044c\u0451\u0442 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0442\u0440\u0435\u0439\u0441\u0430\u043c\u0438. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0443\u0435\u0437\u0436\u0430\u0435\u0442 \u0432\u00a0\u043c\u0435\u0442\u0440\u0438\u043a\u0443 <code>kconmon_ng_mtr_hop_rtt_seconds<\/code> \u0441\u00a0\u043b\u0435\u0439\u0431\u043b\u0430\u043c\u0438 <code>hop_number<\/code> \u0438 <code>hop_ip<\/code>. \u0412\u043c\u0435\u0441\u0442\u043e \u00ab\u043c\u0435\u0436\u0434\u0443 node-5\u00a0\u0438 node-17\u00a0\u0447\u0442\u043e\u2011\u0442\u043e \u043d\u0435\u00a0\u0442\u0430\u043a\u00bb \u0432\u044b \u0441\u0440\u0430\u0437\u0443 \u0432\u0438\u0434\u0438\u0442\u0435, \u043d\u0430\u00a0\u043a\u0430\u043a\u043e\u043c \u0445\u043e\u043f\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u0442\u0435\u0440\u0438.<\/p>\n<p>\u0415\u0449\u0451 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0439. \u0418\u043d\u0446\u0438\u0434\u0435\u043d\u0442 \u043e\u043d\u0438 \u043d\u0435\u00a0\u043b\u043e\u0432\u044f\u0442, \u0437\u0430\u0442\u043e \u0441\u0438\u043b\u044c\u043d\u043e \u044d\u043a\u043e\u043d\u043e\u043c\u044f\u0442 \u043d\u0435\u0440\u0432\u044b \u0432\u00a0\u043f\u0440\u043e\u0434\u0435:<\/p>\n<ul>\n<li>\n<p><strong>Zone auto\u2011discovery.<\/strong> \u041a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0441\u0430\u043c \u0440\u0435\u0437\u043e\u043b\u0432\u0438\u0442 \u0437\u043e\u043d\u0443 \u0438\u0437\u00a0label \u043d\u043e\u0434\u044b \u0438 \u0440\u0430\u0437\u0434\u0430\u0451\u0442 \u0435\u0451 \u0430\u0433\u0435\u043d\u0442\u0430\u043c \u043f\u0440\u0438\u00a0\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438, \u0442\u0430\u043a \u0447\u0442\u043e\u00a0\u043a\u0430\u0436\u0434\u0430\u044f \u043c\u0435\u0442\u0440\u0438\u043a\u0430 \u043d\u0435\u0441\u0451\u0442 <code>source_zone<\/code> \u0438 <code>destination_zone<\/code> \u0431\u0435\u0437\u00a0\u0440\u0443\u0447\u043d\u043e\u0439 \u043f\u0440\u043e\u043f\u0438\u0441\u043a\u0438. \u0421\u043c\u0435\u043d\u0430 \u043b\u0435\u0439\u0431\u043b\u0430 \u0440\u0430\u0437\u043b\u0435\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u0438\u0440\u0430\u043c \u0441\u0440\u0430\u0437\u0443 \u0447\u0435\u0440\u0435\u0437 full sync.<\/p>\n<\/li>\n<li>\n<p><strong>\u0421\u0431\u0440\u043e\u0441 stale\u2011\u0433\u0435\u0439\u0434\u0436\u0435\u0439.<\/strong> \u041f\u0440\u0438\u00a0\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438 per\u2011pair \u0433\u0435\u0439\u0434\u0436\u0438 \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f, \u0430\u00a0\u043d\u0435\u00a0\u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0432\u0438\u0441\u0435\u0442\u044c \u043f\u0440\u0438\u0437\u0440\u0430\u043a\u043e\u043c \u043e\u0442\u00a0\u043d\u043e\u0434\u044b, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0443\u0436\u0435 \u043d\u0435\u0442.<\/p>\n<\/li>\n<li>\n<p><strong>\u0414\u0435\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u0438\u00a0shutdown.<\/strong> \u0420\u043e\u043b\u043b\u0438\u043d\u0433 \u0441\u0430\u043c\u043e\u0433\u043e kconmon\u2011ng \u043d\u0435\u00a0\u043f\u0438\u0448\u0435\u0442 \u0444\u0435\u0439\u043a\u043e\u0432\u044b\u0435 \u043f\u043e\u0442\u0435\u0440\u0438 \u0432\u00a0\u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438.<\/p>\n<\/li>\n<li>\n<p><strong>\u0421\u0442\u0440\u043e\u0433\u0430\u044f \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0430.<\/strong> \u041d\u0435\u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0435 \u043a\u043b\u044e\u0447\u0438 \u043e\u0442\u043a\u043b\u043e\u043d\u044f\u044e\u0442\u0441\u044f, \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0430 \u0440\u043e\u043d\u044f\u0435\u0442 \u0441\u0442\u0430\u0440\u0442 \u044f\u0432\u043d\u043e. \u041f\u0440\u0438\u00a0hot\u2011reload \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435\u00a0\u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f, \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0441\u0442\u0430\u0440\u044b\u0439.<\/p>\n<\/li>\n<li>\n<p><strong>Self\u2011monitoring.<\/strong> \u041a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0437\u043d\u0430\u0435\u0442, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u043e\u0434 <em>\u0434\u043e\u043b\u0436\u043d\u043e<\/em> \u0438\u043c\u0435\u0442\u044c \u0430\u0433\u0435\u043d\u0442\u0430 (<code>kconmon_ng_controller_expected_agents<\/code>, \u0438\u0437\u00a0\u0447\u0438\u0441\u043b\u0430 schedulable\u2011\u043d\u043e\u0434). \u0415\u0441\u043b\u0438 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u043d\u044c\u0448\u0435, \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0430\u043b\u0435\u0440\u0442, \u0430\u00a0\u043d\u0435\u00a0\u0442\u0438\u0448\u0438\u043d\u0443.<\/p>\n<\/li>\n<\/ul>\n<h3>\u041a\u043e\u043d\u0441\u043e\u043b\u044c<\/h3>\n<p>\u0412\u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u0432\u00a0\u043f\u0440\u043e\u0448\u043b\u044b\u0439 \u0440\u0430\u0437 \u043d\u0435\u00a0\u0431\u044b\u043b\u043e \u0441\u043e\u0432\u0441\u0435\u043c. \u041e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u0435\u0431\u2011\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, \u043f\u043e\u00a0\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d, \u0434\u0435\u043f\u043b\u043e\u0438\u0442\u0441\u044f \u0442\u0435\u043c\u00a0\u0436\u0435 \u0447\u0430\u0440\u0442\u043e\u043c. \u0427\u0438\u0442\u0430\u0435\u0442 \u043e\u043d \u0442\u043e\u0442\u00a0\u0436\u0435 Prometheus \u0438 \u0442\u043e\u0442\u00a0\u0436\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u00a0\u0432\u0430\u0441 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c: \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u0443\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0435\u0442, \u0430\u0433\u0435\u043d\u0442\u044b \u043d\u0435\u00a0\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f, \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043d\u0438\u0433\u0434\u0435 \u043d\u0435\u00a0\u0434\u0443\u0431\u043b\u0438\u0440\u0443\u044e\u0442\u0441\u044f.<\/p>\n<p>\u0414\u0432\u0435\u043d\u0430\u0434\u0446\u0430\u0442\u044c \u0441\u0442\u0440\u0430\u043d\u0438\u0446: \u041e\u0431\u0437\u043e\u0440, \u041e\u043d\u043b\u0430\u0439\u043d, \u0420\u0430\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435, \u041c\u0430\u0442\u0440\u0438\u0446\u0430, \u0422\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f, MTR, \u0414\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430, \u0426\u0435\u043b\u0438 \u0438 \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044f, \u041c\u0435\u0442\u0440\u0438\u043a\u0438, \u041e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u044f, \u041a\u043e\u043d\u0441\u043e\u043b\u044c \u0441\u00a0PromQL dev\u2011tools \u0438 \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438. Read\u2011only \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0432\u043e\u043e\u0431\u0449\u0435 \u0431\u0435\u0437\u00a0\u0431\u0430\u0437\u044b, \u0445\u0432\u0430\u0442\u0438\u0442 \u043e\u0434\u043d\u043e\u0433\u043e URL Prometheus. \u0418\u0441\u0442\u043e\u0440\u0438\u044f, \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f, \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u044b \u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0430\u043b\u0435\u0440\u0442\u0438\u043d\u0433\u0430 \u0443\u0436\u0435 \u043f\u0440\u043e\u0441\u044f\u0442 PostgreSQL.<\/p>\n<p>\u0412\u043e\u0434\u0438\u0442\u044c \u0432\u0430\u0441 \u043f\u043e\u00a0\u0432\u0441\u0435\u043c \u0434\u0432\u0435\u043d\u0430\u0434\u0446\u0430\u0442\u0438 \u044f \u043d\u0435\u00a0\u0431\u0443\u0434\u0443. \u041b\u0443\u0447\u0448\u0435 \u043f\u043e\u043a\u0430\u0436\u0443 \u043c\u0430\u0440\u0448\u0440\u0443\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0445\u043e\u0436\u0443 \u0432\u043e\u00a0\u0432\u0440\u0435\u043c\u044f \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u0430.<\/p>\n<h4>1. \u041c\u0430\u0442\u0440\u0438\u0446\u0430: \u043a\u0430\u043a\u0430\u044f \u043f\u0430\u0440\u0430<\/h4>\n<p>\u041c\u0430\u0442\u0440\u0438\u0446\u0430 N\u00d7N, \u043f\u043e\u00a0\u044f\u0447\u0435\u0439\u043a\u0435 \u043d\u0430\u00a0\u043a\u0430\u0436\u0434\u0443\u044e \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u0443\u044e \u043f\u0430\u0440\u0443, \u0440\u0430\u0441\u043a\u0440\u0430\u0441\u043a\u0430 \u043f\u043e\u00a0loss \u0438 latency. \u0421\u043b\u043e\u043c\u0430\u043d\u043d\u0430\u044f \u043d\u043e\u0434\u0430 \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043a\u0440\u0430\u0441\u043d\u044b\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u043c. \u041e\u0434\u043d\u043e\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u044f\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0434\u043d\u0443\u2011\u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u044f\u0447\u0435\u0439\u043a\u0443, \u0430\u00a0\u043f\u043e\u043b\u043e\u043c\u043a\u0430 \u043d\u0430\u00a0\u0433\u0440\u0430\u043d\u0438\u0446\u0435 \u0437\u043e\u043d \u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044f \u0446\u0435\u043b\u044b\u043c \u0431\u043b\u043e\u043a\u043e\u043c.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/64c\/8ec\/f1b\/64c8ecf1b509ef24b016c85bc53039e1.png\" alt=\"Console Matrix: \u043c\u0430\u0442\u0440\u0438\u0446\u0430 UDP \u043d\u0430 10 \u043d\u043e\u0434, \u0432\u0435\u0441\u044c \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0432 qa-node-07 \u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u043d\u0430 16.7\u201317%, \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0435\u0442\u043a\u0430 \u0437\u0435\u043b\u0451\u043d\u0430\u044f\" width=\"1600\" height=\"1000\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/64c\/8ec\/f1b\/64c8ecf1b509ef24b016c85bc53039e1.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/64c\/8ec\/f1b\/64c8ecf1b509ef24b016c85bc53039e1.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Console Matrix: \u043c\u0430\u0442\u0440\u0438\u0446\u0430 UDP \u043d\u0430 10\u00a0\u043d\u043e\u0434, \u0432\u0435\u0441\u044c \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0432\u00a0qa\u2011node-07\u00a0\u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u043d\u0430 16.7\u201317%, \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0435\u0442\u043a\u0430 \u0437\u0435\u043b\u0451\u043d\u0430\u044f<\/figcaption><\/div>\n<\/figure>\n<p>\u0421 <code>controller.events.enabled<\/code> \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u0438 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f \u043f\u0443\u0448\u0430\u0442\u0441\u044f \u043f\u043e\u00a0WebSocket. \u0411\u0435\u0437\u00a0\u043d\u0435\u0433\u043e \u043e\u043d\u0438 \u043f\u043e\u043b\u043b\u044f\u0442, \u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043f\u0440\u044f\u043c\u043e \u043f\u0438\u0448\u0435\u0442, \u0432\u00a0\u043a\u0430\u043a\u043e\u043c \u0438\u0437\u00a0\u0434\u0432\u0443\u0445 \u0440\u0435\u0436\u0438\u043c\u043e\u0432 \u043e\u043d\u0430 \u0441\u0435\u0439\u0447\u0430\u0441, \u0430\u00a0\u043d\u0435\u00a0\u0434\u0435\u043b\u0430\u0435\u0442 \u0432\u0438\u0434, \u0447\u0442\u043e\u00a0\u0436\u0438\u0432\u0430\u044f.<\/p>\n<h4>2. \u0420\u0430\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435: \u0447\u0442\u043e\u00a0\u0431\u044b\u043b\u043e \u0432\u043e\u043a\u0440\u0443\u0433 \u0438\u0437\u043b\u043e\u043c\u0430<\/h4>\n<p>\u041a\u043d\u043e\u043f\u043a\u0430 \u0440\u0430\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u044f\u043c\u043e \u0432\u00a0\u044f\u0447\u0435\u0439\u043a\u0435 \u0432\u0435\u0434\u0451\u0442 \u043d\u0430 <code>\/investigate<\/code>, \u0441\u043a\u043e\u0443\u043f \u0438 \u043e\u043a\u043d\u043e \u0443\u0436\u0435 \u0437\u0430\u0448\u0438\u0442\u044b \u0432\u00a0URL. \u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0441\u0432\u043e\u0434\u0438\u0442 \u0434\u0435\u0432\u044f\u0442\u044c \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 \u0442\u0430\u0439\u043c\u043b\u0430\u0439\u043d\u0430 \u0432\u043e\u043a\u0440\u0443\u0433 \u044d\u0442\u043e\u0433\u043e \u0441\u043a\u043e\u0443\u043f\u0430: \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438, \u0441\u043e\u0431\u044b\u0442\u0438\u044f Kubernetes, \u0437\u0430\u043f\u0438\u0441\u0438 \u0430\u0443\u0434\u0438\u0442\u0430, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f MTR\u2011\u043f\u0443\u0442\u0435\u0439, \u0437\u0430\u043f\u0443\u0441\u043a\u0438 \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0438, \u043e\u043a\u043d\u0430 \u0440\u0430\u0431\u043e\u0442, \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438, \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0440\u043e\u0433\u043e\u0432 \u0438 \u0433\u043e\u0440\u044f\u0449\u0438\u0435 \u0430\u043b\u0435\u0440\u0442\u044b.<\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u043e\u043d\u0430 \u0440\u0430\u043d\u0436\u0438\u0440\u0443\u0435\u0442 \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u043e\u0432 \u0432\u00a0\u043f\u0440\u0438\u0447\u0438\u043d\u044b. \u0410\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0430 \u043f\u0440\u043e\u0441\u0442\u0430\u044f: \u0432\u0435\u0441 \u043a\u043b\u0430\u0441\u0441\u0430, \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u043d\u0430\u00a0\u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0435 \u0437\u0430\u0442\u0443\u0445\u0430\u043d\u0438\u0435 \u043f\u043e 300\u00a0\u0441\u0435\u043a\u0443\u043d\u0434\u0430\u043c \u0434\u043e\u00a0onset. \u0412\u0435\u0441\u0430 \u0442\u0430\u043a\u0438\u0435:<\/p>\n<ul>\n<li>\n<p><strong>3.<\/strong> \u041f\u043e\u0434\u00a0\u043f\u0440\u043e\u0431\u043e\u0439 \u043f\u043e\u0435\u0445\u0430\u043b\u0430 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430: \u0441\u043c\u0435\u043d\u0438\u043b\u0441\u044f \u043c\u0430\u0440\u0448\u0440\u0443\u0442 (path\u2011change) \u0438\u043b\u0438\u00a0\u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u043f\u043e\u043c\u0435\u043d\u044f\u043b \u043d\u043e\u0434\u0443 \u0438\u043b\u0438\u00a0\u043f\u043e\u0434 (k8s). \u0411\u043b\u0438\u0436\u0435 \u043a\u00a0\u0441\u0435\u0442\u0435\u0432\u043e\u043c\u0443 \u0441\u0438\u043c\u043f\u0442\u043e\u043c\u0443 \u043d\u0435\u00a0\u0431\u044b\u0432\u0430\u0435\u0442.<\/p>\n<\/li>\n<li>\n<p><strong>2.<\/strong> \u0418\u0437\u043c\u0435\u043d\u0438\u043b\u0441\u044f \u0444\u043b\u043e\u0442 \u0438\u043b\u0438\u00a0\u0435\u0433\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f: \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438 \u0438\u043b\u0438\u00a0\u0437\u0430\u043f\u0438\u0441\u044c \u0432\u00a0\u0430\u0443\u0434\u0438\u0442\u0435 \u043a\u043e\u043d\u0441\u043e\u043b\u0438. \u041f\u0440\u0430\u0432\u0434\u043e\u043f\u043e\u0434\u043e\u0431\u043d\u043e, \u043d\u043e\u00a0\u043d\u0430\u00a0\u0448\u0430\u0433 \u0434\u0430\u043b\u044c\u0448\u0435.<\/p>\n<\/li>\n<li>\n<p><strong>1.<\/strong> \u041e\u043a\u043d\u043e \u0440\u0430\u0431\u043e\u0442. \u041e\u043d\u043e <em>\u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0435\u0442<\/em> \u0434\u0435\u0433\u0440\u0430\u0434\u0430\u0446\u0438\u044e, \u0430\u00a0\u043d\u0435\u00a0\u043e\u0431\u0432\u0438\u043d\u044f\u0435\u0442 \u043a\u043e\u0433\u043e\u2011\u0442\u043e, \u0438 \u0441\u0442\u043e\u0438\u0442 \u0432\u00a0\u0440\u0435\u0439\u0442\u0438\u043d\u0433\u0435 \u043d\u0438\u0436\u0435 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0445 \u043f\u043e\u0434\u043e\u0437\u0440\u0435\u0432\u0430\u0435\u043c\u044b\u0445, \u0447\u0442\u043e\u0431\u044b \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u0438\u0445 \u043d\u0435\u00a0\u043f\u0435\u0440\u0435\u0431\u0438\u0442\u044c.<\/p>\n<\/li>\n<li>\n<p><strong>0.<\/strong> \u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438, \u0437\u0430\u043f\u0443\u0441\u043a\u0438 \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0438, \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0440\u043e\u0433\u043e\u0432 \u0438 \u0433\u043e\u0440\u044f\u0449\u0438\u0435 \u0430\u043b\u0435\u0440\u0442\u044b. \u041f\u0435\u0440\u0432\u044b\u0435 \u0434\u0432\u0430 \u044d\u0442\u043e \u0442\u043e, \u0447\u0442\u043e\u00a0\u0447\u0435\u043b\u043e\u0432\u0435\u043a \u0441\u0434\u0435\u043b\u0430\u043b <em>\u043f\u043e\u00a0\u043f\u043e\u0432\u043e\u0434\u0443<\/em> \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b. \u041f\u043e\u0440\u043e\u0433 \u0441\u0430\u043c \u0438 \u0435\u0441\u0442\u044c \u0441\u0438\u043c\u043f\u0442\u043e\u043c. \u0410\u00a0\u0433\u043e\u0440\u044f\u0449\u0438\u0439 \u0430\u043b\u0435\u0440\u0442 \u0432\u0441\u0435\u0433\u043e\u00a0\u043b\u0438\u0448\u044c \u043f\u0435\u0440\u0435\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0435\u0433\u043e, \u043f\u0440\u0438\u0447\u0451\u043c \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u043e\u00a0\u0442\u043e\u043c\u0443\u00a0\u0436\u0435 \u0440\u044f\u0434\u0443, \u0438\u0437\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u0440\u043e\u0433 \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d. \u0414\u0430\u0439 \u0435\u043c\u0443 \u0432\u0435\u0441 \u0432\u044b\u0448\u0435 \u043d\u0443\u043b\u044f, \u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043d\u0430\u0447\u043d\u0451\u0442 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u00ab\u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u0432\u0430\u0448\u0435\u0439 \u0430\u0432\u0430\u0440\u0438\u0438: \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u00a0\u0432\u0430\u0448\u0435\u0439 \u0430\u0432\u0430\u0440\u0438\u0438\u00bb. \u0418\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a \u044d\u0442\u0438 \u043f\u0430\u043d\u0435\u043b\u0438 \u043e\u0431\u044b\u0447\u043d\u043e \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u0432\u0440\u0430\u0442\u044c.<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0438\u043a\u0430\u043a\u043e\u0433\u043e ML. \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u043b\u0435\u0436\u0430\u0442 \u0432\u00a0\u043e\u0434\u043d\u043e\u043c \u043c\u043e\u0434\u0443\u043b\u0435, \u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0438\u0445 \u0446\u0438\u0442\u0438\u0440\u0443\u0435\u0442, \u0430\u00a0\u043d\u0435\u00a0\u043f\u0435\u0440\u0435\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/992\/600\/082\/992600082ca628f9a1e675ab8a45b67e.png\" alt=\"Console Investigate: \u0442\u0430\u0439\u043c\u043b\u0430\u0439\u043d \u043f\u043e \u0441\u043a\u043e\u0443\u043f\u0443 qa-node-07 \u0441 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0435\u0439 \u043e \u0440\u0430\u0441\u043a\u0430\u0442\u043a\u0435, \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u0430\u0443\u0434\u0438\u0442\u0430, \u0434\u0432\u0443\u043c\u044f \u0443\u043f\u0430\u0432\u0448\u0438\u043c\u0438 \u043f\u0440\u043e\u0433\u043e\u043d\u0430\u043c\u0438 \u0438 \u043f\u044f\u0442\u044c\u044e \u0433\u043e\u0440\u044f\u0449\u0438\u043c\u0438 UdpPairLoss\" width=\"1600\" height=\"1000\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/992\/600\/082\/992600082ca628f9a1e675ab8a45b67e.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/992\/600\/082\/992600082ca628f9a1e675ab8a45b67e.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Console Investigate: \u0442\u0430\u0439\u043c\u043b\u0430\u0439\u043d \u043f\u043e\u00a0\u0441\u043a\u043e\u0443\u043f\u0443 qa\u2011node-07\u00a0\u0441\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0435\u0439 \u043e\u00a0\u0440\u0430\u0441\u043a\u0430\u0442\u043a\u0435, \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u0430\u0443\u0434\u0438\u0442\u0430, \u0434\u0432\u0443\u043c\u044f \u0443\u043f\u0430\u0432\u0448\u0438\u043c\u0438 \u043f\u0440\u043e\u0433\u043e\u043d\u0430\u043c\u0438 \u0438 \u043f\u044f\u0442\u044c\u044e \u0433\u043e\u0440\u044f\u0449\u0438\u043c\u0438 UdpPairLoss<\/figcaption><\/div>\n<\/figure>\n<p>\u0420\u0430\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a\u00a0\u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442, \u0430\u00a0\u043f\u0435\u0440\u043c\u0430\u043b\u0438\u043d\u043a \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u0442 \u0438\u0437\u00a0\u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0442\u043e\u0447\u043d\u044b\u0439 \u0441\u043a\u043e\u0443\u043f \u0438 \u043e\u043a\u043d\u043e. \u0421\u0441\u044b\u043b\u043a\u0430 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435\u00a0\u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0437\u044a\u0435\u0445\u0430\u0442\u044c\u0441\u044f \u0441\u00a0\u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u043d\u0430 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442.<\/p>\n<h4>3. \u041c\u0430\u0448\u0438\u043d\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438: \u043a\u0430\u043a\u00a0\u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u043e \u0432 02:14<\/h4>\n<p>\u0423\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u0440\u0430\u0437\u0431\u043e\u0440 \u043d\u043e\u0447\u043d\u043e\u0433\u043e \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u0443\u043f\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0432\u00a0\u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442\u00a0\u0436\u0435 \u0432\u043e\u043f\u0440\u043e\u0441: \u0430\u00a0\u0447\u0442\u043e\u00a0\u0442\u0430\u043c, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e,\u00a0\u0431\u044b\u043b\u043e? \u0412\u00a0\u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u043d\u0430\u00a0\u044d\u0442\u043e\u0442 \u0441\u043b\u0443\u0447\u0430\u0439 \u0435\u0441\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0430 <strong>Now<\/strong> \u0432\u00a0\u043f\u0440\u0430\u0432\u043e\u043c \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0443\u0433\u043b\u0443. \u041e\u043d\u0430 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u043f\u0438\u043a\u0435\u0440: \u043f\u0440\u0435\u0441\u0435\u0442\u044b \u043e\u0442 \u00ab15m ago\u00bb \u0434\u043e \u00ab24h ago\u00bb, \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044c \u0438 \u0442\u043e\u0447\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f. \u0412\u044b\u0431\u0438\u0440\u0430\u0435\u0442\u0435 \u043c\u043e\u043c\u0435\u043d\u0442, \u0438 \u043a\u0430\u0436\u0434\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0447\u0442\u043e\u2011\u0442\u043e \u0447\u0438\u0442\u0430\u0435\u0442, \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u043f\u0440\u043e\u00a0\u043d\u0435\u0433\u043e, \u0430\u00a0\u043d\u0435\u00a0\u043f\u0440\u043e\u00a0\u0441\u0435\u0439\u0447\u0430\u0441: \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0437\u00a0\u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439, PromQL \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0432\u00a0\u0442\u043e\u0447\u043a\u0435 <code>t<\/code>, \u043b\u0435\u043d\u0442\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432\u00a0\u0441\u043a\u0440\u043e\u043b\u043b\u0431\u044d\u043a. \u0412\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0436\u0438\u0432\u0451\u0442 \u043f\u0440\u044f\u043c\u043e \u0432\u00a0URL \u043a\u0430\u043a <code>?at=<\/code> \u0441\u00a0\u043c\u0435\u0442\u043a\u043e\u0439 RFC 3339, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0441\u044b\u043b\u043a\u0443 \u043c\u043e\u0436\u043d\u043e \u043a\u0438\u043d\u0443\u0442\u044c \u043a\u043e\u043b\u043b\u0435\u0433\u0435 \u0432\u00a0\u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u043d\u044b\u0439 \u0447\u0430\u0442, \u0438 \u0443\u00a0\u043d\u0435\u0433\u043e \u043e\u0442\u043a\u0440\u043e\u0435\u0442\u0441\u044f \u0442\u043e\u00a0\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u043f\u0440\u043e\u0448\u043b\u043e\u0435.<\/p>\n<p>\u041f\u043e\u043a\u0430 \u041c\u0430\u0448\u0438\u043d\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430, \u0432\u0441\u0435 \u043c\u0443\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044b \u0437\u0430\u0434\u0438\u0437\u0435\u0439\u0431\u043b\u0435\u043d\u044b, \u0430\u00a0\u0431\u0430\u043d\u043d\u0435\u0440 \u0441\u0432\u0435\u0440\u0445\u0443 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u0438 \u0434\u0435\u0440\u0436\u0438\u0442 \u043a\u043d\u043e\u043f\u043a\u0443 Return to Live. \u041f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0444\u043b\u043e\u0442 \u0438\u0437\u00a0\u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u043d\u0435\u043b\u044c\u0437\u044f.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/97e\/61d\/91e\/97e61d91ed309810ad63aac2c74448b4.png\" alt=\"Console Time Machine: \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u043d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 10:49:03 \u043f\u043e\u0434 \u0431\u0430\u043d\u043d\u0435\u0440\u043e\u043c \u0441 \u044d\u0442\u0438\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c, \u0441\u0442\u043e\u043b\u0431\u0435\u0446 qa-node-07 \u043d\u0430 19.5\u201320.5%\" width=\"1600\" height=\"1000\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/97e\/61d\/91e\/97e61d91ed309810ad63aac2c74448b4.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/97e\/61d\/91e\/97e61d91ed309810ad63aac2c74448b4.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Console Time Machine: \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u043d\u0430\u00a0\u043c\u043e\u043c\u0435\u043d\u0442 10:49:03\u00a0\u043f\u043e\u0434\u00a0\u0431\u0430\u043d\u043d\u0435\u0440\u043e\u043c \u0441\u00a0\u044d\u0442\u0438\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c, \u0441\u0442\u043e\u043b\u0431\u0435\u0446 qa\u2011node-07\u00a0\u043d\u0430 19.5\u201320.5%<\/figcaption><\/div>\n<\/figure>\n<h4>4. \u041e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u044f: \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u043d\u0430\u0445\u043e\u0434\u043a\u0443 \u0432\u00a0\u043f\u0440\u0430\u0432\u0438\u043b\u043e<\/h4>\n<p>\u041a\u043e\u0433\u0434\u0430 \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u043a\u0430\u043a\u00a0\u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u043e\u043b\u043e\u043c\u043a\u0430, \u0445\u043e\u0447\u0435\u0442\u0441\u044f, \u0447\u0442\u043e\u0431\u044b \u0432\u00a0\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0440\u0430\u0437 \u043e\u043d\u0430 \u0440\u0430\u0437\u0431\u0443\u0434\u0438\u043b\u0430 \u0432\u0430\u0441 \u0441\u0430\u043c\u0430. <code>\/alerting<\/code> \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0438\u0437\u00a0\u0448\u0435\u0441\u0442\u0438 \u0442\u0438\u043f\u043e\u0432\u044b\u0445 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 (loss \u043d\u0430\u00a0\u043f\u0430\u0440\u0435, latency \u043c\u0435\u0436\u0434\u0443 \u0437\u043e\u043d\u0430\u043c\u0438, \u0441\u0431\u043e\u0438 DNS, HTTP TTFB, \u043f\u0440\u043e\u043f\u0430\u0432\u0448\u0438\u0439 \u0430\u0433\u0435\u043d\u0442, \u043b\u0435\u0436\u0430\u0449\u0438\u0439 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0442\u0430\u0440\u0433\u0435\u0442)\u00a0\u043b\u0438\u0431\u043e \u0438\u0437\u00a0\u0441\u044b\u0440\u043e\u0433\u043e PromQL.<\/p>\n<p>\u0414\u0432\u0435 \u0432\u0435\u0449\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0443\u0442 \u0432\u0430\u0436\u043d\u044b:<\/p>\n<p><strong>\u0412\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435, \u0430\u00a0\u043d\u0435\u00a0\u043f\u0430\u0440\u0441\u0438\u0442 \u0435\u0433\u043e.<\/strong> \u0412\u00a0\u0441\u0431\u043e\u0440\u043a\u0435 \u0441\u043e\u0437\u043d\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0442 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442\u00a0\u043f\u0430\u0440\u0441\u0435\u0440\u0430 <code>prometheus\/prometheus<\/code>. <code>POST \/api\/v1\/alert-rules\/preview<\/code> \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043a\u0430\u043a\u00a0instant query \u043f\u0440\u043e\u0442\u0438\u0432 \u0432\u0430\u0448\u0435\u0433\u043e \u0436\u0438\u0432\u043e\u0433\u043e Prometheus \u0438 \u0433\u043e\u0432\u043e\u0440\u0438\u0442, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u044f\u0434\u043e\u0432 \u043e\u043d\u043e \u043f\u043e\u0439\u043c\u0430\u043b\u043e. \u041e\u0448\u0438\u0431\u043a\u0430 \u0440\u0435\u043d\u0434\u0435\u0440\u0430 \u0438 \u043e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0440\u0430\u0437\u044a\u0435\u0437\u0436\u0430\u044e\u0442\u0441\u044f: \u00ab\u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043d\u0435\u00a0\u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f\u00bb \u0438 \u00ab\u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435\u00a0\u043c\u0430\u0442\u0447\u0438\u0442\u00bb \u044d\u0442\u043e \u0440\u0430\u0437\u043d\u044b\u0435 \u043d\u043e\u0432\u043e\u0441\u0442\u0438.<\/p>\n<p><strong>\u041a\u043e\u043d\u0441\u043e\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442, Prometheus \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442.<\/strong> \u0412\u0441\u0435 \u0432\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u044b\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0440\u0435\u043a\u043e\u043d\u0441\u0430\u0439\u043b\u044f\u0442\u0441\u044f server\u2011side apply \u0432 <strong>\u043e\u0434\u0438\u043d<\/strong> \u043e\u0431\u044a\u0435\u043a\u0442 <code>PrometheusRule<\/code>. \u0426\u0435\u043b\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043e\u0434\u043d\u0430: \u0434\u0440\u0435\u0439\u0444 \u044d\u0442\u043e \u043e\u0434\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435, \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0435\u00a0\u0431\u044b\u0432\u0430\u0435\u0442. \u0418 \u043d\u0438\u0447\u0442\u043e \u0432\u00a0\u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u043d\u0435\u00a0\u0440\u0435\u0448\u0430\u0435\u0442, \u0447\u0442\u043e\u00a0\u0430\u043b\u0435\u0440\u0442 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u043b.<\/p>\n<p>\u041e\u0431\u044a\u0435\u043a\u0442\u044b <code>PrometheusRule<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u043d\u0435\u00a0\u043f\u0438\u0441\u0430\u043b\u0430, \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f read\u2011only. \u0423\u0441\u044b\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u043c\u043e\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u044f\u0432\u043d\u043e\u0439 \u043a\u043e\u043f\u0438\u0435\u0439, \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u043d\u0435\u00a0\u043c\u0443\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0438\u043a\u043e\u0433\u0434\u0430. \u0417\u043d\u0430\u0447\u0438\u0442 \u043e\u0431\u0435 \u043a\u043e\u043f\u0438\u0438 \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0442\u044c\u0441\u044f, \u043f\u043e\u043a\u0430 \u0432\u044b \u043e\u0434\u043d\u0443 \u043d\u0435\u00a0\u0443\u0434\u0430\u043b\u0438\u0442\u0435, \u0438 \u043e\u0442\u0447\u0451\u0442 \u0438\u043c\u043f\u043e\u0440\u0442\u0430 \u043f\u0438\u0448\u0435\u0442 \u043e\u0431\u00a0\u044d\u0442\u043e\u043c \u043f\u0440\u044f\u043c\u044b\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u043c.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/160\/79a\/f2d\/16079af2d04cce6aac54d46c9ad8bace.png\" alt=\"Console Alerting: \u0448\u0435\u0441\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b \u0441 \u0447\u0438\u043f\u0430\u043c\u0438 SYNCED \u043f\u0440\u043e\u0442\u0438\u0432 \u0436\u0438\u0432\u043e\u0433\u043e prometheus-operator\" width=\"1600\" height=\"1000\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/160\/79a\/f2d\/16079af2d04cce6aac54d46c9ad8bace.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/160\/79a\/f2d\/16079af2d04cce6aac54d46c9ad8bace.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Console Alerting: \u0448\u0435\u0441\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b \u0441\u00a0\u0447\u0438\u043f\u0430\u043c\u0438 SYNCED \u043f\u0440\u043e\u0442\u0438\u0432 \u0436\u0438\u0432\u043e\u0433\u043e prometheus\u2011operator<\/figcaption><\/div>\n<\/figure>\n<p>\u0414\u0440\u0435\u0439\u0444 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u043f\u043e\u0442\u043e\u043c \u0447\u0438\u043d\u0438\u0442\u0441\u044f, \u043f\u0440\u0438\u0447\u0451\u043c \u0432\u00a0\u043e\u0434\u043d\u043e\u043c \u043f\u0440\u043e\u0445\u043e\u0434\u0435. \u041e\u0442\u0441\u044e\u0434\u0430 \u0448\u0442\u0443\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u00a0\u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0431\u0430\u0433\u043e\u043c: \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043c\u043e\u0436\u0435\u0442 \u0447\u0435\u0441\u0442\u043d\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c <code>drift<\/code> \u0438 \u0441\u0432\u0435\u0436\u0438\u0439 <code>lastSyncedAt<\/code> \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e. \u0420\u0430\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0443\u0432\u0438\u0434\u0435\u043b\u0438 \u0438 \u0442\u0443\u0442\u00a0\u0436\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u043b\u0438. \u041e\u0448\u0438\u0431\u043a\u0438 \u043d\u0435\u00a0\u0440\u043e\u043d\u044f\u044e\u0442 \u0446\u0438\u043a\u043b, \u043e\u043d\u0438 \u043f\u0440\u0438\u0437\u0435\u043c\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0430\u00a0\u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0441\u00a0\u0437\u0430\u043a\u0440\u044b\u0442\u044b\u043c \u043a\u043b\u0430\u0441\u0441\u043e\u043c \u043f\u0440\u0438\u0447\u0438\u043d\u044b (<code>crd-missing<\/code>, <code>forbidden<\/code>, <code>other<\/code>).<\/p>\n<h4>\u041e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u0440\u043e\u0442\u043a\u043e<\/h4>\n<ul>\n<li>\n<p><strong>MTR Explorer.<\/strong> \u041a\u0430\u0436\u0434\u044b\u0439 \u043f\u0440\u043e\u0439\u0434\u0435\u043d\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u0445\u0435\u0448\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u00a0\u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u043c\u0443 \u0438 \u0434\u0435\u0434\u0443\u043f\u043b\u0438\u0446\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u0430\u00a0\u0432\u0445\u043e\u0434\u0435, \u0442\u0430\u043a \u0447\u0442\u043e\u00a0\u0438\u0441\u0442\u043e\u0440\u0438\u044f \u043f\u0443\u0442\u0438 \u044d\u0442\u043e \u0441\u043f\u0438\u0441\u043e\u043a <em>\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439<\/em>, \u0430\u00a0\u043d\u0435\u00a0\u0441\u0442\u0435\u043d\u0430 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u0442\u0440\u0435\u0439\u0441\u043e\u0432. \u0422\u0440\u0438 \u043f\u0430\u043d\u0435\u043b\u0438, \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0439 diff \u043c\u0435\u0436\u0434\u0443 \u043b\u044e\u0431\u044b\u043c\u0438 \u0434\u0432\u0443\u043c\u044f \u0441\u043d\u0430\u043f\u0448\u043e\u0442\u0430\u043c\u0438, \u043e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u0431\u043e\u0433\u0430\u0449\u0435\u043d\u0438\u0435 \u0445\u043e\u043f\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 rDNS \u0438 MaxMind (\u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u043e \u043f\u043e\u00a0\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438 \u044d\u0442\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0445\u043e\u0434\u0438\u0442 \u0437\u0430\u00a0\u043f\u0440\u0435\u0434\u0435\u043b\u044b \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430).<\/p>\n<\/li>\n<li>\n<p><strong>\u0414\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430, \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u0442\u0430\u0440\u0433\u0435\u0442\u044b \u0438 \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044f.<\/strong> \u041f\u0440\u043e\u0433\u043d\u0430\u0442\u044c \u043f\u0430\u0440\u0443 \u043f\u043e\u00a0\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044e \u043f\u0440\u044f\u043c\u043e \u043f\u043e\u0441\u0440\u0435\u0434\u0438 \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u0430, \u0441\u00a0\u0438\u0441\u0442\u043e\u0440\u0438\u0435\u0439 \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u0432 \u0438 \u043f\u0435\u0440\u043c\u0430\u043b\u0438\u043d\u043a\u0430\u043c\u0438. \u0412\u043d\u0435\u0448\u043d\u0438\u0435 \u0442\u0430\u0440\u0433\u0435\u0442\u044b \u0430\u0433\u0435\u043d\u0442\u044b \u0447\u0435\u043a\u0430\u044e\u0442 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e, \u043f\u0440\u0438\u0447\u0451\u043c CIDR\u2011allowlist \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 <strong>\u0430\u0433\u0435\u043d\u0442<\/strong>, \u0430\u00a0\u043d\u0435\u00a0\u043a\u043e\u043d\u0441\u043e\u043b\u044c: \u0430\u0433\u0435\u043d\u0442 \u0431\u0435\u0437\u00a0\u044f\u0432\u043d\u043e\u0433\u043e \u043e\u043f\u0442\u2011\u0438\u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u00a0\u0432\u043d\u0435\u0448\u043d\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b.<\/p>\n<\/li>\n<li>\n<p><strong>\u041b\u0435\u043d\u0442\u0430 \u041e\u043d\u043b\u0430\u0439\u043d \u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u0430\u044f \u043f\u0430\u043b\u0438\u0442\u0440\u0430.<\/strong> \u0412\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u043e\u0442\u043e\u043a \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0441\u00a0\u0444\u0438\u043b\u044c\u0442\u0440\u0430\u043c\u0438 \u043f\u043e\u00a0\u0442\u0438\u043f\u0443, severity \u0438 \u0441\u043a\u043e\u0443\u043f\u0443, \u043f\u0430\u0443\u0437\u0430 \u0441\u00a0\u0431\u0443\u0444\u0435\u0440\u043e\u043c \u0438 \u0443\u0447\u0451\u0442 \u043f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439. <code>\u2318K<\/code> \u043f\u043e\u00a0\u043d\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u0438, \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u043c \u0438 \u041c\u0430\u0448\u0438\u043d\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0440\u0443\u043a\u0430\u043c\u0438, \u0431\u0435\u0437\u00a0\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439.<\/p>\n<\/li>\n<li>\n<p><strong>Auth, RBAC, \u0430\u0443\u0434\u0438\u0442, \u0432\u0435\u0431\u0445\u0443\u043a\u0438.<\/strong> <code>anonymous | local | header | oidc<\/code>, 25\u00a0permissions \u043d\u0430\u00a0\u0447\u0435\u0442\u044b\u0440\u0435 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u0440\u043e\u043b\u0438 (<code>viewer<\/code>, <code>operator<\/code>, <code>alert-editor<\/code>, <code>admin<\/code>) \u043f\u043b\u044e\u0441 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0435, \u0436\u0443\u0440\u043d\u0430\u043b \u0430\u0443\u0434\u0438\u0442\u0430, API\u2011\u0442\u043e\u043a\u0435\u043d\u044b \u0438 \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0432\u0435\u0431\u0445\u0443\u043a\u0438 \u043d\u0430\u00a0\u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044b \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u043e\u0432 \u0438 \u0430\u043b\u0435\u0440\u0442\u043e\u0432. \u0414\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u044b <code>X-Kconmon-Signature: sha256=&lt;hmac&gt;<\/code> \u043f\u043e\u00a0\u0441\u044b\u0440\u043e\u043c\u0443 \u0442\u0435\u043b\u0443, \u0441\u0435\u043a\u0440\u0435\u0442 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043d\u0434\u043f\u043e\u0438\u043d\u0442\u0430 write\u2011only \u0447\u0435\u0440\u0435\u0437 API \u0438 \u043b\u0435\u0436\u0438\u0442 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c AES-256-GCM.<\/p>\n<\/li>\n<li>\n<p><strong>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438.<\/strong> \u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0432\u044b\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u0432\u0435\u0440\u0441\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0431\u0430\u043d\u0434\u043b\u043e\u043c \u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u00a0dry\u2011run. \u0412\u0435\u0431\u0445\u0443\u043a\u0438 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0441\u00a0\u0444\u043b\u0430\u0433\u043e\u043c <code>hasSecret<\/code> \u0438 \u0431\u0435\u0437\u00a0\u0441\u0430\u043c\u043e\u0433\u043e \u0441\u0435\u043a\u0440\u0435\u0442\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u043c\u043f\u043e\u0440\u0442\u043e\u043c \u0438\u0445 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f: \u0437\u0430\u043f\u0435\u0447\u0430\u0442\u0430\u043d\u043d\u044b\u0439 \u0441\u0435\u043a\u0440\u0435\u0442 \u0438\u0437\u00a0API \u043d\u0435\u00a0\u0432\u044b\u0445\u043e\u0434\u0438\u0442.<\/p>\n<\/li>\n<\/ul>\n<h3>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430<\/h3>\n<p>\u0427\u0442\u043e\u00a0\u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f: Kubernetes 1.31+ (CI \u0433\u043e\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 1.36), Helm 4\u00a0(\u0447\u0430\u0440\u0442 \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a\u00a0OCI\u2011\u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442, Helm \u22653.14\u00a0\u0442\u043e\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442) \u0438 Prometheus Operator, \u0435\u0441\u043b\u0438 \u0445\u043e\u0447\u0435\u0442\u0441\u044f <code>ServiceMonitor<\/code> \u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0430\u043b\u0435\u0440\u0442\u0438\u043d\u0433\u0430 \u0438\u0437\u00a0\u043a\u043e\u0440\u043e\u0431\u043a\u0438. \u0427\u0442\u043e\u00a0\u043d\u0435\u043c\u0430\u043b\u043e\u0432\u0430\u0436\u043d\u043e, \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 capability \u0430\u0433\u0435\u043d\u0442\u0443 \u043d\u0435\u00a0\u043d\u0443\u0436\u043d\u043e \u0432\u043e\u0432\u0441\u0435: ICMP \u0438 MTR \u0445\u043e\u0434\u044f\u0442 \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 ICMP\u2011\u0441\u043e\u043a\u0435\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 sysctl <code>net.ipv4.ping_group_range<\/code>. \u042d\u0442\u043e\u0442 sysctl \u0443\u00a0kubelet \u0432\u00a0\u0441\u043f\u0438\u0441\u043a\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0445, \u0442\u0430\u043a \u0447\u0442\u043e\u00a0\u0447\u0430\u0440\u0442 \u0441\u0430\u043c \u0435\u0433\u043e \u0438 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442, \u0437\u0430\u043e\u0434\u043d\u043e \u0441\u00a0RBAC \u043d\u0430\u00a0node watch \u0434\u043b\u044f\u00a0\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430.<\/p>\n<pre><code class=\"bash\">helm upgrade --install kconmon-ng oci:\/\/ghcr.io\/esdmitrii\/charts\/kconmon-ng \\  --version 2.0.3 \\  --set serviceMonitor.enabled=true \\  --set prometheusRule.enabled=true<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e\u00a0\u0432\u0441\u0451 \u043f\u043e\u0434\u043d\u044f\u043b\u043e\u0441\u044c. \u0414\u043e\u043b\u0436\u0435\u043d\u00a0\u0431\u044b\u0442\u044c \u043e\u0434\u0438\u043d controller pod \u0438 \u043f\u043e\u00a0\u043e\u0434\u043d\u043e\u043c\u0443 agent pod \u043d\u0430\u00a0\u043a\u0430\u0436\u0434\u0443\u044e \u043d\u043e\u0434\u0443:<\/p>\n<pre><code class=\"bash\">kubectl get pods -l app.kubernetes.io\/name=kconmon-ng -o wide<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0418 \u0447\u0442\u043e\u00a0\u0430\u0433\u0435\u043d\u0442\u044b \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043e\u0442\u0434\u0430\u044e\u0442 \u043c\u0435\u0442\u0440\u0438\u043a\u0438:<\/p>\n<pre><code class=\"bash\">AGENT=$(kubectl get pods -l app.kubernetes.io\/component=agent -o jsonpath='{.items[0].metadata.name}')kubectl port-forward \"$AGENT\" 8080 &amp;curl -s http:\/\/localhost:8080\/metrics | grep '^kconmon_ng' | head<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041a\u043e\u043d\u0441\u043e\u043b\u044c \u044d\u0442\u043e \u0444\u043b\u0430\u0433 \u043d\u0430\u00a0\u0442\u043e\u043c\u00a0\u0436\u0435 \u0440\u0435\u043b\u0438\u0437\u0435, \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u00a0\u0447\u0430\u0440\u0442\u0435 \u043d\u0435\u00a0\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f:<\/p>\n<pre><code class=\"bash\">helm upgrade --install kconmon-ng oci:\/\/ghcr.io\/esdmitrii\/charts\/kconmon-ng \\  --version 2.0.3 \\  --set console.enabled=true \\  --set console.prometheus.url=http:\/\/prometheus-operated.monitoring:9090kubectl port-forward svc\/kconmon-ng-console 8081:8080<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041d\u0430 <code>http:\/\/localhost:8081<\/code> \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 read\u2011only \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u043f\u043e\u0434\u00a0\u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u043c viewer. \u0414\u0430\u043b\u044c\u0448\u0435 \u0432\u0441\u0451 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u00a0\u043e\u0434\u043d\u043e\u043c\u0443 \u0444\u043b\u0430\u0433\u0443. \u0418\u0441\u0442\u043e\u0440\u0438\u0438, \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438, \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u0430\u043c \u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c \u0430\u043b\u0435\u0440\u0442\u0438\u043d\u0433\u0430 \u043d\u0443\u0436\u0435\u043d <code>database.existingSecret<\/code> \u0441\u00a0PostgreSQL DSN. Realtime\u2011\u043f\u0443\u0448 \u0436\u0438\u0432\u0451\u0442 \u043d\u0430 <code>controller.events.enabled=true<\/code>. \u0410\u043b\u0435\u0440\u0442\u0438\u043d\u0433\u0443, \u043a\u0440\u043e\u043c\u0435 <code>console.alerting.enabled=true<\/code>, \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u0435\u0449\u0451 CRD <code>PrometheusRule<\/code> \u043e\u0442\u00a0Prometheus Operator. \u041a\u0430\u0436\u0434\u0430\u044f \u0440\u0443\u0447\u043a\u0430 \u043e\u043f\u0438\u0441\u0430\u043d\u0430 \u043f\u0440\u044f\u043c\u043e \u0432 <code>charts\/kconmon-ng\/values.yaml<\/code>.<\/p>\n<h4>\u0427\u0442\u043e\u00a0\u0447\u0430\u0440\u0442 2.0.3\u00a0\u0434\u0435\u043b\u0430\u0435\u0442 \u0437\u0430\u00a0\u0432\u0430\u0441<\/h4>\n<p>\u0414\u0432\u043e\u0439\u043a\u0430 \u044d\u0442\u043e \u0432\u00a0\u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043f\u0440\u043e\u00a0\u0448\u0430\u0433\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u043d\u044c\u0448\u0435 \u0434\u0435\u043b\u0430\u043b\u0438\u0441\u044c \u0440\u0443\u043a\u0430\u043c\u0438. \u041b\u044e\u0431\u043e\u0439 \u0441\u0435\u043a\u0440\u0435\u0442 \u043f\u043e\u2011\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043d\u0435\u0441\u0442\u0438 \u0441\u0432\u043e\u0438\u043c <code>existingSecret<\/code>, \u0430\u00a0\u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u0447\u0430\u0440\u0442 \u043e\u0442\u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442\u044c \u0435\u0433\u043e \u0431\u043b\u043e\u043a\u043e\u043c <code>secret:<\/code>. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0435\u0439 \u043f\u0440\u0438\u00a0\u044d\u0442\u043e\u043c \u043f\u0438\u0448\u0443\u0442\u0441\u044f \u0434\u043e\u0441\u043b\u043e\u0432\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043b\u0435\u0439\u0441\u0445\u043e\u043b\u0434\u0435\u0440 \u0434\u043b\u044f\u00a0\u0432\u0441\u044f\u043a\u043e\u0433\u043e \u0440\u043e\u0434\u0430 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0438 \u0438\u043d\u0436\u0435\u043a\u0442\u043e\u0440\u043e\u0432<code>${vault:...}<\/code> \u0434\u043e\u0435\u0437\u0436\u0430\u0435\u0442 \u0431\u0430\u0439\u0442 \u0432\u00a0\u0431\u0430\u0439\u0442 \u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u00a0admission.<\/p>\n<p>\u0421\u0432\u043e\u0435\u0439 \u0431\u0430\u0437\u044b \u0438 \u0441\u0432\u043e\u0435\u0433\u043e \u043a\u0435\u0448\u0430 \u0447\u0430\u0440\u0442 \u043d\u0435\u00a0\u0441\u0442\u0430\u0432\u0438\u0442. \u041d\u0430\u043f\u0440\u0430\u0432\u044c\u0442\u0435 <code>database.existingSecret<\/code> \u043d\u0430\u00a0Secret \u0441\u00a0DSN \u0432\u0438\u0434\u0430 <code>postgres:\/\/<\/code>, \u0430 <code>redis.existingSecret<\/code> \u043d\u0430\u00a0Secret \u0441 <code>redis:\/\/<\/code>, \u0438 \u043f\u043e\u0434\u043e\u0439\u0434\u0451\u0442 \u0442\u043e, \u0447\u0442\u043e\u00a0\u0443\u00a0\u0432\u0430\u0441 \u0443\u0436\u0435 \u043a\u0440\u0443\u0442\u0438\u0442\u0441\u044f: RDS, StatefulSet, \u0441\u0432\u043e\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 CloudNativePG. GeoLite2\u00a0\u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435\u00a0\u043d\u0430\u0434\u043e \u043f\u043e\u0434\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c: \u043f\u0440\u0438 <code>geoip.mode=auto<\/code> \u0440\u044f\u0434\u043e\u043c \u0441\u00a0\u043a\u043e\u043d\u0441\u043e\u043b\u044c\u044e \u043a\u0440\u0443\u0442\u0438\u0442\u0441\u044f \u0441\u0430\u0439\u0434\u043a\u0430\u0440 \u0438\u0437\u00a0\u043e\u0431\u0440\u0430\u0437\u0430 <code>geoipupdate<\/code> \u043e\u0442\u00a0\u0441\u0430\u043c\u043e\u0439 MaxMind, \u0430\u00a0\u043a\u043e\u043d\u0441\u043e\u043b\u044c \u043f\u0435\u0440\u0435\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u043e\u0431\u0430 \u0444\u0430\u0439\u043b\u0430 \u0438 \u043f\u0435\u0440\u0435\u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0442\u043e\u0442, \u0447\u0442\u043e\u00a0\u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0441\u044f. \u0421\u0432\u0435\u0436\u0430\u044f \u0431\u0430\u0437\u0430 \u043f\u043e\u0434\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0431\u0435\u0437\u00a0\u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0430.<\/p>\n<p>\u0414\u0430\u0448\u0431\u043e\u0440\u0434\u044b \u0440\u0430\u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e\u0442\u0441\u044f ConfigMap\u2019\u0430\u043c\u0438 \u0441\u00a0\u043c\u0435\u0442\u043a\u043e\u0439 <code>grafana_dashboard<\/code> \u0434\u043b\u044f\u00a0\u0441\u0430\u0439\u0434\u043a\u0430\u0440\u0430, \u043f\u043e\u0434\u044b \u0435\u0434\u0443\u0442 \u043d\u0430\u00a0\u0434\u0435\u0444\u043e\u043b\u0442\u0430\u0445 restricted\u2011PSS, \u0430\u0433\u0435\u043d\u0442 \u0432\u00a0\u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435. \u041e\u043d \u0434\u0440\u043e\u043f\u0430\u0435\u0442 <code>ALL<\/code> \u043d\u0430\u0440\u0430\u0432\u043d\u0435 \u0441\u043e \u0432\u0441\u0435\u043c\u0438: ICMP \u0438 MTR \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u043f\u0440\u0438\u0432\u0438\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 ICMP\u2011\u0441\u043e\u043a\u0435\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 sysctl <code>net.ipv4.ping_group_range<\/code>, \u0430\u00a0\u0442\u043e\u0442 \u0443\u00a0kubelet \u0432\u00a0\u0441\u043f\u0438\u0441\u043a\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0445. Namespace \u043d\u0430 <code>restricted<\/code> \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 DaemonSet \u043a\u0430\u043a\u00a0\u0435\u0441\u0442\u044c.<\/p>\n<h3>\u041c\u0435\u0442\u0440\u0438\u043a\u0438 \u0438 PromQL<\/h3>\n<p>\u0412\u0441\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0438\u0434\u0443\u0442 \u0441\u00a0\u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u043c \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043e\u043c (<code>kconmon_ng<\/code> \u043f\u043e\u00a0\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e) \u0438 \u043e\u0431\u0449\u0438\u043c \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u043b\u0435\u0439\u0431\u043b\u043e\u0432 \u0434\u043b\u044f\u00a0\u043f\u0430\u0440\u043d\u044b\u0445 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a: <code>source_node<\/code>, <code>destination_node<\/code>, <code>source_zone<\/code>, <code>destination_zone<\/code>. \u041d\u0430\u0431\u043e\u0440 \u043d\u0435\u00a0\u043c\u0435\u043d\u044f\u043b\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u0440\u0435\u043b\u0438\u0437\u0430\u043c\u0438. \u0414\u0430\u0448\u0431\u043e\u0440\u0434\u044b \u0438 recording rules, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0435\u0449\u0451 \u043f\u043e\u0434 1.5.0, \u0432\u0435\u0434\u0443\u0442 \u0441\u0435\u0431\u044f \u0440\u043e\u0432\u043d\u043e \u0442\u0430\u043a\u00a0\u0436\u0435.<\/p>\n<p>\u0427\u0442\u043e\u00a0\u044f \u0434\u0435\u0440\u0436\u0443 \u043f\u043e\u0434\u00a0\u0440\u0443\u043a\u043e\u0439:<\/p>\n<pre><code># \u041f\u044f\u0442\u044c \u0445\u0443\u0434\u0448\u0438\u0445 \u043f\u0430\u0440 \u043f\u043e UDP loss \u043f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441topk(5, kconmon_ng_udp_packet_loss_ratio)# p95 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 TCP-\u043a\u043e\u043d\u043d\u0435\u043a\u0442\u0430 \u0432 \u0440\u0430\u0437\u0440\u0435\u0437\u0435 \u043f\u0430\u0440 \u0437\u043e\u043dhistogram_quantile(0.95,  sum by (le, source_zone, destination_zone) (    rate(kconmon_ng_tcp_connect_duration_seconds_bucket[5m])  ))# \u041f\u0430\u0440\u044b, \u0433\u0434\u0435 TCP \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u0430\u0434\u0430\u0435\u0442, \u0430 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u043e\u0440\u043c\u043e\u0437\u0438\u0442rate(kconmon_ng_tcp_results_total{result=\"fail\"}[5m]) &gt; 0# p99 \u0440\u0435\u0437\u043e\u043b\u0432\u0430 DNS \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0440\u0435\u0437\u043e\u043b\u0432\u0435\u0440\u0443histogram_quantile(0.99,  sum by (le, resolver) (rate(kconmon_ng_dns_duration_seconds_bucket[5m])))# \u0413\u0434\u0435 \u0438\u043c\u0435\u043d\u043d\u043e \u0443\u043c\u0438\u0440\u0430\u044e\u0442 \u043f\u0430\u043a\u0435\u0442\u044b \u043d\u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u043f\u0430\u0440\u0435kconmon_ng_mtr_hop_rtt_seconds{source_node=\"node-1\", destination_node=\"node-2\"}<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0418\u0437\u00a0\u043a\u043e\u0440\u043e\u0431\u043a\u0438 \u043f\u0440\u0438 <code>prometheusRule.enabled: true<\/code> \u0435\u0434\u0443\u0442 \u0441\u0435\u043c\u044c \u043f\u0440\u0430\u0432\u0438\u043b:<\/p>\n<pre><code class=\"yaml\">- alert: UDPLossHigh  expr: kconmon_ng_udp_packet_loss_ratio &gt; 0.5  for: 5m- alert: TCPChecksFailing  expr: &gt;-    sum by (source_node, destination_node, source_zone, destination_zone)    (rate(kconmon_ng_tcp_results_total{result=\"fail\"}[5m]))    \/    sum by (source_node, destination_node, source_zone, destination_zone)    (rate(kconmon_ng_tcp_results_total[5m]))    &gt; 0.05  for: 5m- alert: PairWentSilent  expr: &gt;-    sum by (source_node, destination_node)    (rate(kconmon_ng_tcp_results_total[1h] offset 5m)) &gt; 0    unless    sum by (source_node, destination_node)    (rate(kconmon_ng_tcp_results_total[5m])) &gt; 0  for: 10m- alert: DNSChecksFailing  expr: &gt;-    sum by (source_node, source_zone, host, resolver)    (rate(kconmon_ng_dns_results_total{result=\"fail\"}[5m]))    \/    sum by (source_node, source_zone, host, resolver)    (rate(kconmon_ng_dns_results_total[5m]))    &gt; 0.05  for: 5m- alert: ExternalChecksFailing  expr: &gt;-    sum by (source_node, source_zone, target, target_kind, check_type)    (rate(kconmon_ng_external_results_total{result=\"fail\"}[5m]))    \/    sum by (source_node, source_zone, target, target_kind, check_type)    (rate(kconmon_ng_external_results_total[5m]))    &gt; 0.1  for: 5m- alert: KconmonAgentsMissing  expr: &gt;-    (kconmon_ng_controller_expected_agents    - kconmon_ng_controller_registered_agents &gt; 0)    and (kconmon_ng_controller_leader == 1)  for: 10m- alert: KconmonControllerDown  expr: absent(kconmon_ng_controller_leader == 1)  for: 5m<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0422\u0440\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 <code>*ChecksFailing<\/code> \u0441\u043c\u043e\u0442\u0440\u044f\u0442 \u043d\u0430\u00a0\u0434\u043e\u043b\u044e \u043d\u0435\u0443\u0434\u0430\u0447, \u0430\u00a0\u043d\u0435\u00a0\u043d\u0430\u00a0\u0441\u044b\u0440\u043e\u0439 rate: \u043e\u0434\u043d\u0430 \u0432\u0441\u043f\u044b\u0448\u043a\u0430 \u0434\u0435\u0440\u0436\u0430\u043b\u0430\u00a0\u0431\u044b rate \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0432\u0441\u0435 \u043f\u044f\u0442\u044c \u043c\u0438\u043d\u0443\u0442 \u043e\u043a\u043d\u0430 \u0438 \u0431\u0443\u0434\u0438\u043b\u0430\u00a0\u0431\u044b \u0432\u0430\u0441 \u043d\u0430\u00a0\u0440\u043e\u0432\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435, \u0430\u00a0\u0434\u043e\u043b\u044f \u0442\u0430\u043a \u0438 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0432\u00a0\u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u043d\u043e\u0440\u043c\u044b, \u043f\u043e\u043a\u0430\u00a0\u043b\u0438\u043d\u043a \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043d\u0435\u00a0\u0441\u043b\u043e\u043c\u0430\u043b\u0441\u044f. \u041f\u043e\u0440\u043e\u0433\u0438: 5% \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 (TCP, DNS) \u0438 10% \u0434\u043b\u044f\u00a0\u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0446\u0435\u043b\u0435\u0439, \u0434\u043e\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u0435\u0442\u044c \u0443\u0436\u0435 \u043d\u0435\u00a0\u0432\u0430\u0448\u0430.<\/p>\n<p><code>PairWentSilent<\/code> \u0442\u0443\u0442 \u0441\u0442\u043e\u0438\u0442 \u043e\u0441\u043e\u0431\u043d\u044f\u043a\u043e\u043c: \u043e\u043d \u043b\u043e\u0432\u0438\u0442 \u043d\u0435\u00a0\u043f\u043b\u043e\u0445\u0438\u0435 \u0446\u0438\u0444\u0440\u044b, \u0430\u00a0\u0442\u0438\u0448\u0438\u043d\u0443, \u043a\u043e\u0433\u0434\u0430 \u043f\u0430\u0440\u0430 \u0435\u0449\u0451 \u0447\u0430\u0441 \u043d\u0430\u0437\u0430\u0434 \u0441\u043b\u0430\u043b\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b, \u0430\u00a0\u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u043b\u0447\u0438\u0442, \u0438 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u043f\u043e\u00a0\u043d\u0435\u0439 \u0442\u043e\u0436\u0435 \u0437\u0430\u043c\u043e\u043b\u043a\u0430\u044e\u0442, \u0431\u0443\u0434\u0442\u043e \u0432\u0441\u0451 \u0445\u043e\u0440\u043e\u0448\u043e.<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0435 \u0434\u0432\u0430 \u0441\u043b\u0435\u0434\u044f\u0442 \u0437\u0430\u00a0\u0441\u0430\u043c\u0438\u043c kconmon\u2011ng. \u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043c\u043e\u043b\u0447\u0430\u043b, \u0440\u0430\u0437\u0431\u0443\u0434\u0438\u0442 \u0432\u0430\u0441, \u0430\u00a0\u043d\u0435\u00a0\u0431\u0443\u0434\u0435\u0442 \u0442\u0438\u0445\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0437\u0434\u043e\u0440\u043e\u0432\u044b\u043c. \u041f\u043e\u043b\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043c\u0435\u0442\u0440\u0438\u043a \u0441\u00a0\u0442\u0438\u043f\u0430\u043c\u0438 \u0438 \u043b\u0435\u0439\u0431\u043b\u0430\u043c\u0438 \u043b\u0435\u0436\u0438\u0442 \u0432 <code>docs\/metrics.md<\/code>.<\/p>\n<p>\u0418 \u0442\u0440\u0438 \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430 \u0434\u043b\u044f\u00a0Grafana \u0432 <code>dashboards\/<\/code>: Overview (Connectivity Matrix, success rate \u0438 \u043b\u0430\u0442\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u00a0\u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443, \u0441\u0442\u0430\u0442\u0443\u0441 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430, \u0441\u0447\u0451\u0442\u0447\u0438\u043a \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0439 MTR), Node Detail (\u0442\u043e\u00a0\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0432\u00a0\u0440\u0430\u0437\u0431\u0438\u0432\u043a\u0435 \u043f\u043e\u00a0destination\u2011\u043d\u043e\u0434\u0435) \u0438 Zone Heatmap (\u0442\u0435\u043f\u043b\u043e\u0432\u0430\u044f \u043a\u0430\u0440\u0442\u0430 \u043b\u0430\u0442\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438 \u0438 \u043f\u043e\u0442\u0435\u0440\u044c \u043c\u0435\u0436\u0434\u0443 \u0437\u043e\u043d\u0430\u043c\u0438).<\/p>\n<pre><code class=\"bash\">for f in dashboards\/*.json; do  curl -s -X POST \"http:\/\/localhost:3000\/api\/dashboards\/db\" \\    -H \"Content-Type: application\/json\" -u admin:admin \\    -d \"{\\\"dashboard\\\": $(cat \"$f\"), \\\"overwrite\\\": true}\"done<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7d2\/f25\/1cf\/7d2f251cf06b633b8ed49306be1d53eb.png\" alt=\"Grafana Overview: 10 \u0430\u0433\u0435\u043d\u0442\u043e\u0432 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0438 \u043e\u0442\u0434\u0430\u044e\u0442 \u043c\u0435\u0442\u0440\u0438\u043a\u0438, 0 \u043f\u0440\u043e\u043f\u0430\u0432\u0448\u0438\u0445, \u043b\u0438\u0434\u0435\u0440 OK, 90 \u043f\u0430\u0440 \u043f\u043e\u0434 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435\u043c, 9 \u0441 \u043e\u0442\u043a\u0430\u0437\u0430\u043c\u0438, \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0442\u043e\u043f-10 \u0445\u0443\u0434\u0448\u0438\u0445 \u043f\u0430\u0440\" width=\"1600\" height=\"911\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/7d2\/f25\/1cf\/7d2f251cf06b633b8ed49306be1d53eb.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7d2\/f25\/1cf\/7d2f251cf06b633b8ed49306be1d53eb.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Grafana Overview: 10\u00a0\u0430\u0433\u0435\u043d\u0442\u043e\u0432 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0438 \u043e\u0442\u0434\u0430\u044e\u0442 \u043c\u0435\u0442\u0440\u0438\u043a\u0438, 0\u00a0\u043f\u0440\u043e\u043f\u0430\u0432\u0448\u0438\u0445,\u00a0\u043b\u0438\u0434\u0435\u0440 OK, 90\u00a0\u043f\u0430\u0440 \u043f\u043e\u0434\u00a0\u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435\u043c, 9\u00a0\u0441\u00a0\u043e\u0442\u043a\u0430\u0437\u0430\u043c\u0438, \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0442\u043e\u043f-10\u00a0\u0445\u0443\u0434\u0448\u0438\u0445 \u043f\u0430\u0440<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5af\/fbb\/b0c\/5affbbb0c519a835859154d7683ca459.png\" alt=\"Grafana Zone Heatmap: \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043f\u043e\u0442\u0435\u0440\u044c, RTT \u0438 MTR \u043c\u0435\u0436\u0434\u0443 \u0437\u043e\u043d\u0430\u043c\u0438, \u0432\u0435\u0441\u044c \u0444\u043e\u043d \u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 zone-c\" width=\"1600\" height=\"911\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/5af\/fbb\/b0c\/5affbbb0c519a835859154d7683ca459.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5af\/fbb\/b0c\/5affbbb0c519a835859154d7683ca459.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Grafana Zone Heatmap: \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u043f\u043e\u0442\u0435\u0440\u044c, RTT \u0438 MTR \u043c\u0435\u0436\u0434\u0443 \u0437\u043e\u043d\u0430\u043c\u0438, \u0432\u0435\u0441\u044c \u0444\u043e\u043d \u0434\u0435\u0440\u0436\u0438\u0442 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 zone\u2011c<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/480\/c42\/d8b\/480c42d8bffe779c6066af5243950a43.png\" alt=\"Grafana Node Detail: qa-node-01, 9 \u043e\u043f\u0440\u043e\u0448\u0435\u043d\u043d\u044b\u0445 \u043f\u0438\u0440\u043e\u0432, \u0445\u0443\u0434\u0448\u0430\u044f \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0430\u044f \u0434\u043e\u043b\u044f \u043e\u0442\u043a\u0430\u0437\u043e\u0432 4.03%, \u0432\u0445\u043e\u0434\u044f\u0449\u0430\u044f 0%\" width=\"1600\" height=\"911\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/480\/c42\/d8b\/480c42d8bffe779c6066af5243950a43.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/480\/c42\/d8b\/480c42d8bffe779c6066af5243950a43.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>Grafana Node Detail: qa\u2011node-01, 9\u00a0\u043e\u043f\u0440\u043e\u0448\u0435\u043d\u043d\u044b\u0445 \u043f\u0438\u0440\u043e\u0432, \u0445\u0443\u0434\u0448\u0430\u044f \u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0430\u044f \u0434\u043e\u043b\u044f \u043e\u0442\u043a\u0430\u0437\u043e\u0432 4.03%, \u0432\u0445\u043e\u0434\u044f\u0449\u0430\u044f 0%<\/figcaption><\/div>\n<\/figure>\n<h3>\u0418\u0437\u00a0\u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430<\/h3>\n<p><code>kubectl-kconmon<\/code> \u0445\u043e\u0434\u0438\u0442 \u0432\u00a0HTTP API \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0447\u0435\u0440\u0435\u0437 port\u2011forward \u043d\u0430\u00a0client\u2011go, \u0442\u0430\u043a \u0447\u0442\u043e\u00a0\u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044e \u0438 \u043f\u0440\u043e\u0433\u043d\u0430\u0442\u044c \u0440\u0430\u0437\u043e\u0432\u0443\u044e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043c\u043e\u0436\u043d\u043e \u0431\u0435\u0437\u00a0\u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430. \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0441\u043e \u0441\u0431\u043e\u0435\u043c \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u0434 \u0432\u044b\u0445\u043e\u0434\u0430 <code>2<\/code>, \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u043e\u0442 <code>1<\/code> \u0434\u043b\u044f\u00a0\u043e\u0448\u0438\u0431\u043e\u043a CLI \u0438 API. \u0412\u00a0\u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d \u044d\u0442\u043e \u043b\u043e\u0436\u0438\u0442\u0441\u044f \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e. <code>-o json<\/code> \u043e\u0442\u0434\u0430\u0451\u0442 \u0441\u044b\u0440\u043e\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043a\u0430\u043a\u00a0\u0435\u0441\u0442\u044c.<\/p>\n<pre><code>$ kubectl kconmon topologyNODE     ZONE         READY   AGENT                           AGENT IPnode-1   us-east-1a   yes     node-1-kconmon-ng-agent-aaaaa   10.0.0.1node-2   us-east-1b   yes     node-2-kconmon-ng-agent-bbbbb   10.0.0.2node-3   us-east-1c   no      -                               -$ kubectl kconmon check node-1 node-2 --type udpOK udp node-1 -&gt; node-2 (us-east-1a -&gt; us-east-1b)  duration=1.1ms  sent=5 recv=5 loss=0% rtt=1.1ms jitter=240\u00b5s<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0421\u0442\u0430\u0432\u0438\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 krew, \u043f\u043b\u0430\u0433\u0438\u043d \u0443\u0436\u0435 \u0432\u00a0\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u0435:<\/p>\n<pre><code class=\"bash\">kubectl krew install kconmon<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<h3>\u041b\u043e\u043c\u0430\u0435\u043c \u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u044c \u0440\u0443\u043a\u0430\u043c\u0438<\/h3>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0447\u0442\u043e\u00a0\u0434\u0435\u0442\u0435\u043a\u0442 \u0441\u0431\u043e\u0435\u0432, MTR \u0438 \u0430\u043b\u0435\u0440\u0442\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442, \u043f\u0440\u043e\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0441\u043b\u043e\u043c\u0430\u0432 \u0441\u0435\u0442\u044c \u0441\u0430\u043c\u043e\u043c\u0443. \u0412 <code>hack\/README.md<\/code> \u0435\u0441\u0442\u044c NetworkPolicy, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0440\u0435\u0436\u0435\u0442 \u0432\u0435\u0441\u044c \u0442\u0440\u0430\u0444\u0438\u043a \u043c\u0435\u0436\u0434\u0443 \u0430\u0433\u0435\u043d\u0442\u0430\u043c\u0438:<\/p>\n<pre><code class=\"bash\">kubectl apply -f - &lt;&lt;'EOF'apiVersion: networking.k8s.io\/v1kind: NetworkPolicymetadata:  name: block-agent-traffic  namespace: defaultspec:  podSelector:    matchLabels:      app.kubernetes.io\/name: kconmon-ng      app.kubernetes.io\/component: agent  policyTypes:    - Ingress  ingress:    - from:        - podSelector:            matchLabels:              app.kubernetes.io\/component: controller        - namespaceSelector:            matchLabels:              kubernetes.io\/metadata.name: monitoringEOF<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f\u00a0namespace <code>monitoring<\/code> \u0442\u0443\u0442 \u043d\u0435\u0441\u0443\u0449\u0435\u0435, \u0438 \u044d\u0442\u043e \u0442\u043e\u0442 \u0441\u043b\u0443\u0447\u0430\u0439, \u0433\u0434\u0435 \u044f \u043d\u0430\u0441\u0442\u0443\u043f\u0438\u043b \u043d\u0430\u00a0\u0433\u0440\u0430\u0431\u043b\u0438\u00a0\u043b\u0438\u0447\u043d\u043e. \u041c\u0435\u0442\u0440\u0438\u043a\u0438 \u043f\u043e\u0442\u0435\u0440\u044c \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u044e\u0442 \u0441\u0430\u043c\u0438 \u0430\u0433\u0435\u043d\u0442\u044b. \u0415\u0441\u043b\u0438 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430 \u0437\u0430\u043e\u0434\u043d\u043e \u043e\u0442\u0440\u0435\u0436\u0435\u0442 \u0441\u043a\u0440\u0435\u0439\u043f\u044b Prometheus, \u0440\u044f\u0434\u044b \u0430\u0433\u0435\u043d\u0442\u043e\u0432 \u043f\u0440\u043e\u0442\u0443\u0445\u043d\u0443\u0442 \u043c\u0438\u043d\u0443\u0442 \u0447\u0435\u0440\u0435\u0437 \u043f\u044f\u0442\u044c, \u0438 \u043f\u043e\u043b\u043e\u043c\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0432\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e\u00a0\u0443\u0441\u0442\u0440\u043e\u0438\u043b\u0438, \u0438\u0441\u0447\u0435\u0437\u043d\u0435\u0442 \u0441\u043e \u0432\u0441\u0435\u0445 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u043e\u0432. \u0425\u0430\u043e\u0441 \u043e\u0441\u043b\u0435\u043f\u0438\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u0435\u043b\u044f. \u041f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043e \u0436\u0438\u0432\u044c\u0451\u043c: \u0431\u0435\u0437\u00a0\u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0434\u0432\u0435 \u043d\u043e\u0434\u044b, \u0433\u0434\u0435 Prometheus \u043d\u0435\u00a0\u0436\u0438\u0432\u0451\u0442, \u0443\u0448\u043b\u0438 \u0432 <code>down<\/code> \u0432\u00a0\u0441\u043f\u0438\u0441\u043a\u0435 \u0442\u0430\u0440\u0433\u0435\u0442\u043e\u0432 \u0437\u0430\u00a0\u043e\u0434\u0438\u043d \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u0441\u043a\u0440\u0435\u0439\u043f\u0430.<\/p>\n<p>\u0427\u0435\u0440\u0435\u0437 10\u00a0\u0438\u043b\u0438 30\u00a0\u0441\u0435\u043a\u0443\u043d\u0434 \u0432\u00a0\u043b\u043e\u0433\u0430\u0445 \u0430\u0433\u0435\u043d\u0442\u043e\u0432:<\/p>\n<pre><code class=\"bash\">kubectl logs -l app.kubernetes.io\/component=agent --since=1m | grep -E \"check failed|triggering MTR\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u041e\u0436\u0438\u0434\u0430\u0435\u043c\u043e: <code>check failed<\/code> \u0441 <code>type: tcp\/udp\/icmp<\/code> \u0438 <code>i\/o timeout<\/code>\u00a0\u043b\u0438\u0431\u043e <code>100% loss<\/code>, \u0441\u043b\u0435\u0434\u043e\u043c <code>triggering MTR trace<\/code> \u0438 <code>MTR trace completed<\/code>.<\/p>\n<p>\u0412\u00a0Grafana \u043d\u0430\u00a0Overview \u043f\u0440\u043e\u0441\u044f\u0434\u0443\u0442 success rate \u043f\u043e\u00a0TCP, UDP \u0438 ICMP, \u043f\u043e\u043a\u0440\u0430\u0441\u043d\u0435\u044e\u0442 loss ratio, \u0441\u0447\u0451\u0442\u0447\u0438\u043a MTR Triggers \u0443\u0439\u0434\u0451\u0442 \u0432\u00a0\u043d\u0435\u043d\u0443\u043b\u0435\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435. \u0412\u00a0\u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u0442\u0430\u00a0\u0436\u0435 \u043f\u043e\u043b\u043e\u043c\u043a\u0430 \u0432\u0438\u0434\u043d\u0430 \u043d\u0430 <code>\/matrix<\/code> \u043a\u0440\u0430\u0441\u043d\u044b\u043c\u0438 \u044f\u0447\u0435\u0439\u043a\u0430\u043c\u0438, \u0430 <code>\/investigate<\/code> \u043f\u043e\u00a0\u043e\u0434\u043d\u043e\u0439 \u0438\u0437\u00a0\u044d\u0442\u0438\u0445 \u043f\u0430\u0440 \u043f\u043e\u043a\u0430\u0436\u0435\u0442 \u0442\u0430\u0439\u043c\u043b\u0430\u0439\u043d \u0441\u0431\u043e\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0441\u00a0MTR\u2011\u0442\u0440\u0435\u0439\u0441\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0430\u0433\u0435\u043d\u0442 \u0441\u043d\u044f\u043b \u0432\u00a0\u043c\u043e\u043c\u0435\u043d\u0442 \u0441\u0440\u044b\u0432\u0430.<\/p>\n<p>\u0423\u0431\u0440\u0430\u0442\u044c \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443:<\/p>\n<pre><code class=\"bash\">kubectl delete networkpolicy block-agent-traffic<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><img style=\"width:14px;height:14px;object-fit:cover;object-position:left;\"\/><\/a><\/div><\/pre>\n<p>\u0427\u0435\u0440\u0435\u0437 \u043c\u0438\u043d\u0443\u0442\u0443\u2011\u0434\u0432\u0435 \u0432\u0441\u0451 \u0432\u0435\u0440\u043d\u0451\u0442\u0441\u044f \u0432\u00a0\u0437\u0435\u043b\u0451\u043d\u043e\u0435. \u041f\u043e\u043b\u043d\u044b\u0439 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0442\u0435\u043d\u0434 \u043d\u0430\u00a0Minikube \u0441\u00a0kube\u2011prometheus\u2011stack, \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u044e, PostgreSQL \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u043e\u0439 round\u2011trip \u0430\u043b\u0435\u0440\u0442\u0438\u043d\u0433\u0430 \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <code>.\/hack\/local-test.sh up<\/code>, \u0438 \u0442\u0430\u043c\u00a0\u0436\u0435 \u043b\u0435\u0436\u0438\u0442 \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0440\u0443\u043a\u0430\u043c\u0438.<\/p>\n<p>\u0411\u043e\u043b\u0435\u0435 \u0434\u043b\u0438\u043d\u043d\u044b\u0439 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u0435\u0441\u0442\u044c \u0432 <code>docs\/demo\/breaking-cni.md<\/code>: \u0437\u0430\u0431\u043b\u044d\u043a\u0445\u043e\u043b\u0438\u0442\u044c UDP \u043c\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043c\u044f \u043d\u043e\u0434\u0430\u043c\u0438 \u0438 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u043a\u0430\u043a\u00a0\u043a\u0440\u0430\u0441\u043d\u0435\u0435\u0442 \u0440\u043e\u0432\u043d\u043e \u043e\u0434\u043d\u0430 \u044f\u0447\u0435\u0439\u043a\u0430 \u043c\u0430\u0442\u0440\u0438\u0446\u044b, \u043f\u043e\u043a\u0430 TCP \u0438 ICMP \u043d\u0430\u00a0\u0442\u043e\u0439\u00a0\u0436\u0435 \u043f\u0430\u0440\u0435 \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0437\u0435\u043b\u0451\u043d\u044b\u043c\u0438. \u041f\u043e\u0442\u043e\u043c \u0441\u043b\u043e\u043c\u0430\u0442\u044c TCP, ICMP \u0438 HTTP \u0435\u0449\u0451 \u0432\u00a0\u0442\u0440\u0451\u0445 \u043c\u0435\u0441\u0442\u0430\u0445 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0438 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u043e\u0442\u043a\u0430\u0437 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e, \u0432\u00a0\u0441\u0432\u043e\u0435\u0439 \u043f\u0430\u0440\u0435 \u0438 \u0441\u0432\u043e\u0451\u043c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0435.<\/p>\n<h3>\u0427\u0442\u043e\u00a0kconmon\u2011ng \u043d\u0435\u00a0\u0434\u0435\u043b\u0430\u0435\u0442<\/h3>\n<ul>\n<li>\n<p>\u041e\u043d \u043d\u0435\u00a0\u043f\u0435\u0440\u0435\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0434\u2011\u0442\u0440\u0430\u0444\u0438\u043a. \u042d\u0442\u043e \u043f\u0440\u043e\u0431\u044b \u043c\u0435\u0436\u0434\u0443 \u043d\u043e\u0434\u0430\u043c\u0438. \u0422\u0435\u043b\u0435\u043c\u0435\u0442\u0440\u0438\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u2011\u043c\u0435\u0448\u0430 \u0438 eBPF\u2011\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0442 \u043d\u0430\u00a0\u0434\u0440\u0443\u0433\u043e\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u0438 \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0442 \u043d\u0430\u00a0\u043d\u0435\u0433\u043e \u043b\u0443\u0447\u0448\u0435.<\/p>\n<\/li>\n<li>\n<p>\u041a\u043e\u043d\u0441\u043e\u043b\u044c \u044d\u0442\u043e <em>\u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u044c<\/em> Prometheus, \u0430\u00a0\u043d\u0435\u00a0\u0437\u0430\u043c\u0435\u043d\u0430 \u0435\u043c\u0443. \u0421\u043d\u0435\u0441\u0438\u0442\u0435 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0437\u0430\u0432\u0442\u0440\u0430, \u0438 \u0432\u0441\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438, \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u044b \u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.<\/p>\n<\/li>\n<li>\n<p>\u0412\u00a0\u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0435\u0442 \u043d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u0430. \u041f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e\u00a0\u044f \u043d\u0435\u00a0\u0433\u043e\u043d\u044f\u043b \u0442\u0430\u043a\u0438\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u00a0\u0441\u0442\u044b\u0434\u043d\u043e \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c.<\/p>\n<\/li>\n<li>\n<p>\u0412\u0441\u0451, \u0447\u0442\u043e\u00a0\u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043a\u043e\u043d\u0441\u043e\u043b\u044c, \u043f\u043e\u00a0\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u043e\u00a0\u043b\u0438\u0431\u043e read\u2011only\u2011additive. \u0410\u043f\u0433\u0440\u0435\u0439\u0434 \u0440\u0435\u043b\u0438\u0437\u0430 \u0431\u0435\u0437\u00a0\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f values \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u0442 \u0442\u0435\u00a0\u0436\u0435 \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u044b.<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u0440\u043e\u00a0\u0442\u0435\u0441\u0442\u044b, \u0440\u0430\u0437 \u0443\u0436 \u0440\u0435\u0447\u044c \u043e\u00a0\u0434\u043e\u0432\u0435\u0440\u0438\u0438 \u043a\u00a0\u0446\u0438\u0444\u0440\u0430\u043c: \u0432\u043e\u00a0\u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0435 3593\u00a0\u0442\u0435\u0441\u0442\u0430 \u0432 120\u00a0\u0444\u0430\u0439\u043b\u0430\u0445, 29\u00a0Go\u2011\u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043d\u0435\u0441\u0443\u0442 \u0442\u0435\u0441\u0442\u044b, \u0438 CI \u0433\u043e\u043d\u044f\u0435\u0442 \u0438\u0445 \u0441\u00a0race\u2011\u0434\u0435\u0442\u0435\u043a\u0442\u043e\u0440\u043e\u043c \u043d\u0430\u00a0\u043a\u0430\u0436\u0434\u044b\u0439 PR, \u0432\u043c\u0435\u0441\u0442\u0435 \u0441\u00a0\u043b\u0438\u043d\u0442\u043e\u043c \u0438 helm\u2011lint \u043f\u043e\u00a0\u043d\u0430\u0431\u043e\u0440\u0443 CI\u2011\u043f\u0440\u043e\u0444\u0438\u043b\u0435\u0439 values. \u0422\u0435\u0433 <code>v*<\/code> \u043a\u0440\u043e\u0441\u0441\u2011\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438, \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u0442 \u043e\u0431\u0440\u0430\u0437\u044b \u0438 \u0447\u0430\u0440\u0442 \u0432\u00a0GHCR \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 e2e.<\/p>\n<h3>\u0427\u0442\u043e\u00a0\u0434\u0430\u043b\u044c\u0448\u0435<\/h3>\n<p>v2.0.0\u00a0\u0431\u044b\u043b \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0437\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0432\u0435\u0445\u043e\u0439 \u043a\u043e\u043d\u0441\u043e\u043b\u0438, \u0442\u0430\u043a \u0447\u0442\u043e\u00a0\u043e\u043d\u0430 \u0434\u043e\u0434\u0435\u043b\u0430\u043d\u0430 \u043f\u043e\u00a0\u0437\u0430\u0434\u0443\u043c\u043a\u0435, \u0430\u00a0\u043d\u0435\u00a0\u0431\u0440\u043e\u0448\u0435\u043d\u0430 \u043f\u043e\u0441\u0435\u0440\u0435\u0434\u0438\u043d\u0435. \u0427\u0435\u0433\u043e \u043c\u043d\u0435 \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0435\u00a0\u0445\u0432\u0430\u0442\u0430\u0435\u0442? \u0427\u0443\u0436\u0438\u0445 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432: \u0444\u043b\u043e\u0442\u043e\u0432 \u043f\u043e\u0431\u043e\u043b\u044c\u0448\u0435, CNI \u043f\u043e\u044d\u043a\u0437\u043e\u0442\u0438\u0447\u043d\u0435\u0435, \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0439 \u0441\u00a0\u0443\u043f\u043e\u0440\u043e\u043c \u043d\u0430\u00a0IPv6.<\/p>\n<p>Issues \u0438 PR \u043e\u0442\u043a\u0440\u044b\u0442\u044b. \u0415\u0441\u043b\u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0438 \u043e\u043d\u043e \u0441\u043e\u0432\u0440\u0451\u0442 \u0432\u0430\u043c \u043f\u0440\u043e\u00a0\u0432\u0430\u0448\u0443 \u0441\u0435\u0442\u044c, \u043c\u043d\u0435 \u043f\u0440\u0430\u0432\u0434\u0430 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u043f\u0440\u043e\u00a0\u044d\u0442\u043e \u0443\u0441\u043b\u044b\u0448\u0430\u0442\u044c.<\/p>\n<ul>\n<li>\n<p>\u0420\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439: <a href=\"https:\/\/github.com\/EsDmitrii\/kconmon-ng\" rel=\"noopener noreferrer nofollow\">https:\/\/github.com\/EsDmitrii\/kconmon\u2011ng<\/a><\/p>\n<\/li>\n<li>\n<p>\u0427\u0430\u0440\u0442: <code>oci:\/\/ghcr.io\/esdmitrii\/charts\/kconmon-ng<\/code>, \u0432\u0435\u0440\u0441\u0438\u044f 2.0.3<\/p>\n<\/li>\n<li>\n<p>\u041b\u0438\u0446\u0435\u043d\u0437\u0438\u044f: Apache 2.0<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1072410\/\">https:\/\/habr.com\/ru\/articles\/1072410\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0411\u043e\u043b\u044c\u0415\u0441\u043b\u0438 \u0432\u044b \u0434\u0435\u0440\u0436\u0438\u0442\u0435 on\u2011prem \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u043d\u0430\u00a0\u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u0438\u043b\u0438\u00a0\u0441\u043e\u0442\u043d\u0438 \u043d\u043e\u0434, \u0434\u0430\u043b\u044c\u0448\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0435\u00a0\u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c. \u041e\u0431\u043d\u043e\u0432\u0438\u043b\u0438 CNI, \u0438\u043b\u0438\u00a0\u044f\u0434\u0440\u043e, \u0438\u043b\u0438\u00a0\u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u043a\u0430\u0440\u0442\u044b, \u0438\u043b\u0438\u00a0\u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0435\u0445\u0430\u043b\u0438 \u0447\u0430\u0441\u0442\u044c\u044e \u043d\u043e\u0434 \u0432\u00a0\u043d\u043e\u0432\u044b\u0439 \u0441\u0435\u0433\u043c\u0435\u043d\u0442. \u041f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u043a\u0430\u043a\u043e\u0435\u2011\u0442\u043e \u0432\u0440\u0435\u043c\u044f, \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u043a\u0430\u043f\u0430\u0442\u044c \u0442\u0438\u043a\u0435\u0442\u044b: \u00ab\u0443 \u043d\u0430\u0441 \u0438\u043d\u043e\u0433\u0434\u0430 \u0442\u0430\u0439\u043c\u0430\u0443\u0442\u0438\u0442 \u043c\u0435\u0436\u0434\u0443 \u043f\u043e\u0434\u0430\u043c\u0438\u00bb, \u00abDNS \u0438\u043d\u043e\u0433\u0434\u0430 \u043d\u0435\u00a0\u0440\u0435\u0437\u043e\u043b\u0432\u0438\u0442\u0441\u044f\u00bb, \u00abhealth\u2011check \u0442\u043e \u043f\u0430\u0434\u0430\u0435\u0442, \u0442\u043e \u043d\u0435\u0442\u00bb.\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u0442\u0443\u0442 \u00ab\u0438\u043d\u043e\u0433\u0434\u0430\u00bb. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043d\u0435\u00a0\u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u0430\u044f, \u043d\u0435\u00a0\u043f\u0440\u043e 100% \u0442\u0440\u0430\u0444\u0438\u043a\u0430. \u041b\u043e\u043c\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0430\u044f \u043f\u0430\u0440\u0430 \u043d\u043e\u0434 \u0438\u043b\u0438\u00a0\u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b, \u0438 \u043b\u043e\u043c\u0430\u0435\u0442\u0441\u044f \u0440\u043e\u0432\u043d\u043e \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0441\u043f\u0440\u044f\u0442\u0430\u0442\u044c\u0441\u044f \u0437\u0430\u00a0\u0430\u0433\u0440\u0435\u0433\u0430\u0442\u043e\u043c. 98% \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u0445 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e. \u0420\u043e\u0432\u043d\u043e \u0434\u043e\u00a0\u0442\u043e\u0439 \u0441\u0435\u043a\u0443\u043d\u0434\u044b, \u043a\u043e\u0433\u0434\u0430 \u0434\u043e\u0445\u043e\u0434\u0438\u0442: \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0438\u0435 2% \u044d\u0442\u043e \u043e\u0434\u043d\u0430 \u043f\u0430\u0440\u0430, \u043e\u0434\u0438\u043d \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b, \u0438 \u0442\u0430\u043a \u0438\u0437\u043e \u0434\u043d\u044f \u0432\u00a0\u0434\u0435\u043d\u044c.\u041f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u0432\u00a0\u044d\u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u043e\u0447\u0442\u0438 \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u0435\u043d:kubectl exec \u043f\u043b\u044e\u0441 ping \u0438\u043b\u0438 curl \u0440\u0443\u043a\u0430\u043c\u0438. \u041e\u0442\u043b\u0438\u0447\u043d\u043e, \u0430\u00a0\u043a\u0430\u043a\u0443\u044e \u043f\u0430\u0440\u0443 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c? \u0418\u0445 \u0441\u043e\u0442\u043d\u0438, \u0438 \u0432\u044b \u043d\u0435\u00a0\u0437\u043d\u0430\u0435\u0442\u0435, \u043a\u0430\u043a\u0430\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u0441\u043b\u043e\u043c\u0430\u043b\u0430\u0441\u044c.Node exporter \u0438 \u0442\u0438\u043f\u043e\u0432\u044b\u0435 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u044b \u043f\u043e\u043a\u0430\u0436\u0443\u0442 CPU, \u043f\u0430\u043c\u044f\u0442\u044c \u0438 \u0434\u0438\u0441\u043a \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u043d\u043e\u0434\u044b. \u041f\u0440\u043e\u00a0\u0442\u043e, \u0447\u0442\u043e\u00a0\u043d\u043e\u0434\u0430 A \u043d\u0435\u00a0\u0434\u043e\u0441\u0442\u0443\u0447\u0430\u043b\u0430\u0441\u044c \u0434\u043e\u00a0\u043d\u043e\u0434\u044b B \u043f\u043e\u00a0UDP, \u0442\u0430\u043c \u043d\u0435\u0442 \u043d\u0438 \u0441\u043b\u043e\u0432\u0430.\u041b\u043e\u0433\u0438 CNI\u2011\u043f\u043b\u0430\u0433\u0438\u043d\u0430. \u0415\u0441\u043b\u0438 \u043f\u043e\u0432\u0435\u0437\u0451\u0442, \u043d\u0430\u0439\u0434\u0451\u0442\u0441\u044f \u0447\u0442\u043e\u2011\u0442\u043e \u0440\u0435\u043b\u0435\u0432\u0430\u043d\u0442\u043d\u043e\u0435. \u041f\u043e\u0441\u0442\u0444\u0430\u043a\u0442\u0443\u043c \u0438 \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435\u00a0\u043f\u043e\u00a0\u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u0430\u0440\u0435.\u0425\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0438 \u0432\u043e\u00a0\u0432\u0441\u0435\u0445 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u0445 \u0433\u043e\u043d\u044f\u0435\u0442 \u043c\u0435\u0436\u0434\u0443 \u043d\u043e\u0434\u0430\u043c\u0438 \u0436\u0438\u0432\u044b\u0435 \u043f\u0440\u043e\u0431\u044b, \u0430\u00a0\u043f\u0440\u0438\u00a0\u0441\u0431\u043e\u0435 \u0441\u0440\u0430\u0437\u0443 \u0433\u043e\u0432\u043e\u0440\u0438\u0442: \u0432\u043e\u0442 \u043f\u0430\u0440\u0430, \u0432\u043e\u0442 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b, \u0432\u043e\u0442 \u0445\u043e\u043f.\u0427\u0442\u043e\u00a0\u0443\u0436\u0435 \u0435\u0441\u0442\u044c: Goldpinger\u041f\u0435\u0440\u0432\u043e\u0435, \u0447\u0442\u043e\u00a0\u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0432\u00a0\u0433\u043e\u043b\u043e\u0432\u0443, \u044d\u0442\u043e Goldpinger. \u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0432\u0437\u0440\u043e\u0441\u043b\u044b\u0439 \u0438 \u043e\u0431\u043a\u0430\u0442\u0430\u043d\u043d\u044b\u0439: DaemonSet, \u043e\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0441\u0432\u043e\u0438\u0445 \u0441\u043e\u0431\u0440\u0430\u0442\u044c\u0435\u0432 \u043f\u043e\u00a0HTTP, \u043e\u0442\u0434\u0430\u0451\u0442 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0438 \u0440\u0438\u0441\u0443\u0435\u0442 \u0433\u0440\u0430\u0444 \u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u0438 \u0432\u00a0\u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u043c web UI. \u0421\u0442\u0430\u0432\u0438\u0442\u0441\u044f \u0437\u0430\u00a0\u043c\u0438\u043d\u0443\u0442\u0443 \u0438 \u0447\u0435\u0441\u0442\u043d\u043e \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043d\u0430\u00a0\u0432\u043e\u043f\u0440\u043e\u0441, \u0432\u0438\u0434\u0438\u0442\u00a0\u043b\u0438 \u043d\u043e\u0434\u0430 X \u043d\u043e\u0434\u0443 Y. \u0415\u0441\u043b\u0438 \u0443\u00a0\u0432\u0430\u0441 \u0435\u0433\u043e \u043d\u0435\u0442, \u043d\u0430\u0447\u043d\u0438\u0442\u0435 \u0441\u00a0\u043d\u0435\u0433\u043e. \u041f\u043e\u0440\u043e\u0433 \u0432\u0445\u043e\u0434\u0430 \u043a\u043e\u043f\u0435\u0435\u0447\u043d\u044b\u0439, \u043f\u043e\u043b\u044c\u0437\u0430 \u0441\u0440\u0430\u0437\u0443.\u041d\u043e\u00a0\u0434\u0435\u0433\u0440\u0430\u0434\u0430\u0446\u0438\u044f\u00a0\u0431\u044b\u0432\u0430\u0435\u0442 \u043d\u0435\u00a0\u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0439, \u0430\u00a0\u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e\u0439, \u0434\u0430\u00a0\u0435\u0449\u0451 \u0438 \u0437\u0430\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0439 \u043d\u0430\u00a0\u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b, \u0438 \u0432\u043e\u0442 \u0442\u0443\u0442 \u0435\u0433\u043e \u043c\u043e\u0434\u0435\u043b\u0438 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0451\u0442 \u0445\u0432\u0430\u0442\u0430\u0442\u044c. \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043c\u0435\u0448 \u043c\u0435\u0436\u0434\u0443 \u043f\u0438\u0440\u0430\u043c\u0438 \u0443\u00a0\u043d\u0435\u0433\u043e HTTP, per\u2011peer ICMP \u0438 \u0440\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e per\u2011hop \u0442\u0440\u0435\u0439\u0441\u0438\u043d\u0433\u0430 \u043d\u0435\u0442. \u0410\u00a0\u043c\u043d\u0435 \u043d\u0443\u0436\u043d\u044b\u00a0\u0431\u044b\u043b\u0438 \u0432\u0441\u0435 \u043f\u044f\u0442\u044c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430\u043c\u0438 \u043c\u0435\u0436\u0434\u0443 \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u0430\u0440\u043e\u0439, \u043f\u043b\u044e\u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 MTR \u043f\u0440\u044f\u043c\u043e \u0432\u00a0\u043c\u043e\u043c\u0435\u043d\u0442 \u0441\u0431\u043e\u044f.\u0422\u0430\u043a \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f kconmon\u2011ng, Kubernetes Node Connectivity Monitor, next generation (\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439, Apache 2.0).\u0412\u00a0\u043f\u0440\u043e\u0448\u043b\u044b\u0439 \u0440\u0430\u0437 \u044f \u043f\u0438\u0441\u0430\u043b \u0432 LinkedIn \u043f\u0440\u043e\u00a0\u0438\u0437\u043c\u0435\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u044f\u0434\u0440\u043e. \u0421\u00a0\u0442\u0435\u0445 \u043f\u043e\u0440 \u043a\u00a0\u043d\u0435\u043c\u0443 \u043f\u0440\u0438\u0440\u043e\u0441\u043b\u0430 \u0446\u0435\u043b\u0430\u044f \u0432\u0435\u0431\u2011\u043a\u043e\u043d\u0441\u043e\u043b\u044c, \u0438 \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u00a0\u043d\u0435\u0451.Console Overview: 9\u00a0\u043d\u043e\u0434, \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u00a0\u0430\u0433\u0435\u043d\u0442\u0430\u043c, 9\u00a0\u0438\u0437 90\u00a0\u043f\u0430\u0440 \u0432\u00a0\u0444\u0435\u0439\u043b\u0435, \u043f\u044f\u0442\u044c \u0445\u0443\u0434\u0448\u0438\u0445 \u043f\u0430\u0440 \u0443\u043f\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0432\u00a0qa\u2011node-07\u00a0\u043d\u0430 17%, \u0434\u0432\u0430 critical\u2011\u0430\u043b\u0435\u0440\u0442\u0430 UdpPairLoss \u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u041a\u0430\u043a\u00a0\u043e\u043d\u043e \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u043e\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u043e \u044d\u0442\u043e \u0441\u0432\u044f\u0437\u043a\u0430 agent\/controller. \u041d\u043e\u00a0\u043d\u0435\u00a0\u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 full\u2011mesh HTTP\u2011\u043e\u043f\u0440\u043e\u0441.Controller (Deployment) \u0434\u0435\u0440\u0436\u0438\u0442 \u0440\u0435\u0435\u0441\u0442\u0440 \u0430\u0433\u0435\u043d\u0442\u043e\u0432 \u0441\u00a0heartbeat\u2011eviction, \u0441\u043b\u0435\u0434\u0438\u0442 \u0437\u0430\u00a0\u043d\u043e\u0434\u0430\u043c\u0438 \u0447\u0435\u0440\u0435\u0437 Kubernetes informer, \u043e\u0442\u0434\u0430\u0451\u0442 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044e \u043f\u043e\u00a0gRPC\u2011\u0441\u0442\u0440\u0438\u043c\u0443 \u0438 \u0443\u043c\u0435\u0435\u0442 leader election \u0434\u043b\u044f\u00a0HA (controller.leaderElection: true).Agent (DaemonSet) \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043e\u0442\u00a0\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0436\u0438\u0432\u043e\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u0438\u0440\u043e\u0432 \u043f\u043e\u00a0gRPC. \u041d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u043f\u043e\u043b\u043b\u0438\u043d\u0433\u0430: \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0441\u0430\u043c \u043f\u0443\u0448\u0438\u0442 \u043f\u043e\u043b\u043d\u044b\u0439 \u0441\u043d\u0430\u043f\u0448\u043e\u0442 \u043f\u0438\u0440\u043e\u0432 \u043f\u0440\u0438\u00a0\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u0438 \u0437\u0430\u043d\u043e\u0432\u043e \u043f\u0440\u0438\u00a0\u043a\u0430\u0436\u0434\u043e\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438. \u0414\u0430\u043b\u044c\u0448\u0435 \u0430\u0433\u0435\u043d\u0442 \u0433\u043e\u043d\u044f\u0435\u0442 \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439 \u0438 \u0432\u0441\u0435\u043c\u0438 \u043f\u0438\u0440\u0430\u043c\u0438 \u043f\u044f\u0442\u044c \u0442\u0438\u043f\u043e\u0432 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a: TCP, UDP, ICMP, DNS, HTTP.                          +&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+                          |          Controller (Deployment)          |                          |  agent registry (heartbeat eviction)      |                          |  node watcher (zone labels)               |                          |  topology API + gRPC event stream         |                          |  leader election (active\/standby)         |                          +&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+                                                |                       gRPC stream: peer list, pushed on every change                                                |              +&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+  +&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+  +&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+              | Agent (node-1)    |  | Agent (node-2)    |  | Agent (node-3)    |              | TCP UDP ICMP      |  | TCP UDP ICMP      |  | TCP UDP ICMP      |              | DNS HTTP          |  | DNS HTTP          |  | DNS HTTP          |              | MTR on failure    |  | MTR on failure    |  | MTR on failure    |              | \/metrics :8080    |  | \/metrics :8080    |  | \/metrics :8080    |              +&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+  +&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+  +&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+                ^                                                             ^                +&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; probes between all pairs &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+\u041a\u0430\u0436\u0434\u044b\u0439 \u0447\u0435\u043a\u0435\u0440 \u043e\u0442\u0434\u0430\u0451\u0442 \u043d\u0435\u00a0\u0431\u0438\u043d\u0430\u0440\u043d\u043e\u0435 \u0436\u0438\u0432\/\u043d\u0435 \u0436\u0438\u0432, \u0430\u00a0\u0441\u0432\u043e\u0439 \u043d\u0430\u0431\u043e\u0440 \u043c\u0435\u0442\u0440\u0438\u043a:\u0427\u0435\u043a\u0435\u0440\u0427\u0442\u043e\u00a0\u043c\u0435\u0440\u044f\u0435\u0442TCP\u0432\u0440\u0435\u043c\u044f \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u0430 \u0438 \u043f\u043e\u043b\u043d\u044b\u0439 RTT \u043f\u043e\u00a0\u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u043f\u0438\u0440\u0443UDP\u0441\u0440\u0435\u0434\u043d\u0438\u0439 RTT, \u0434\u0436\u0438\u0442\u0442\u0435\u0440 \u0438 packet loss \u043d\u0430\u00a0burst \u0438\u0437\u00a0\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432ICMPecho RTT \u0438 loss, IPv4\u00a0\u0438 IPv6DNS\u0432\u0440\u0435\u043c\u044f \u0440\u0435\u0437\u043e\u043b\u0432\u0430 \u043f\u043e\u00a0\u043f\u0430\u0440\u0435 (hostname, resolver), \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0438\u043b\u0438\u00a0\u044f\u0432\u043d\u044b\u0435 upstreamHTTP\u043f\u043e\u0444\u0430\u0437\u043e\u0432\u044b\u0439 \u0442\u0430\u0439\u043c\u0438\u043d\u0433 \u0434\u043b\u044f\u00a0\u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0445 URL: DNS, connect, TLS, TTFB, totalMTR\u0440\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0442\u0440\u0435\u0439\u0441 \u043f\u0440\u0438\u00a0\u0441\u0431\u043e\u0435, RTT \u0438 loss \u043f\u043e\u00a0\u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0445\u043e\u043f\u0443TCP, UDP, ICMP \u0438 DNS \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0438\u0437\u00a0\u043a\u043e\u0440\u043e\u0431\u043a\u0438 \u0441\u00a0\u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u043e\u043c 5\u00a0\u0441\u0435\u043a\u0443\u043d\u0434. HTTP \u043f\u043e\u00a0\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e\u00a0URL \u0437\u043d\u0430\u0435\u0442\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u044b.\u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u0432\u00a0\u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0435: \u043a\u043e\u0433\u0434\u0430 TCP, UDP \u0438\u043b\u0438\u00a0ICMP \u043f\u0440\u043e\u0431\u0430 \u0434\u0430\u0451\u0442 \u0441\u0431\u043e\u0439, \u0430\u0433\u0435\u043d\u0442 \u0441\u0430\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 MTR \u0434\u043b\u044f\u00a0\u044d\u0442\u043e\u0439 \u043f\u0430\u0440\u044b. \u0415\u0441\u0442\u044c cooldown \u043d\u0430\u00a0\u043f\u0430\u0440\u0443, \u0438\u043d\u0430\u0447\u0435 \u043e\u0434\u0438\u043d \u0441\u043b\u043e\u043c\u0430\u043d\u043d\u044b\u0439\u00a0\u043b\u0438\u043d\u043a \u0437\u0430\u043b\u044c\u0451\u0442 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0442\u0440\u0435\u0439\u0441\u0430\u043c\u0438. \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0443\u0435\u0437\u0436\u0430\u0435\u0442 \u0432\u00a0\u043c\u0435\u0442\u0440\u0438\u043a\u0443 kconmon_ng_mtr_hop_rtt_seconds \u0441\u00a0\u043b\u0435\u0439\u0431\u043b\u0430\u043c\u0438 hop_number \u0438 hop_ip. \u0412\u043c\u0435\u0441\u0442\u043e \u00ab\u043c\u0435\u0436\u0434\u0443 node-5\u00a0\u0438 node-17\u00a0\u0447\u0442\u043e\u2011\u0442\u043e \u043d\u0435\u00a0\u0442\u0430\u043a\u00bb \u0432\u044b \u0441\u0440\u0430\u0437\u0443 \u0432\u0438\u0434\u0438\u0442\u0435, \u043d\u0430\u00a0\u043a\u0430\u043a\u043e\u043c \u0445\u043e\u043f\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u0442\u0435\u0440\u0438.\u0415\u0449\u0451 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0439. \u0418\u043d\u0446\u0438\u0434\u0435\u043d\u0442 \u043e\u043d\u0438 \u043d\u0435\u00a0\u043b\u043e\u0432\u044f\u0442, \u0437\u0430\u0442\u043e \u0441\u0438\u043b\u044c\u043d\u043e \u044d\u043a\u043e\u043d\u043e\u043c\u044f\u0442 \u043d\u0435\u0440\u0432\u044b \u0432\u00a0\u043f\u0440\u043e\u0434\u0435:Zone auto\u2011discovery. \u041a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0441\u0430\u043c \u0440\u0435\u0437\u043e\u043b\u0432\u0438\u0442 \u0437\u043e\u043d\u0443 \u0438\u0437\u00a0label \u043d\u043e\u0434\u044b \u0438 \u0440\u0430\u0437\u0434\u0430\u0451\u0442 \u0435\u0451 \u0430\u0433\u0435\u043d\u0442\u0430\u043c \u043f\u0440\u0438\u00a0\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438, \u0442\u0430\u043a \u0447\u0442\u043e\u00a0\u043a\u0430\u0436\u0434\u0430\u044f \u043c\u0435\u0442\u0440\u0438\u043a\u0430 \u043d\u0435\u0441\u0451\u0442 source_zone \u0438 destination_zone \u0431\u0435\u0437\u00a0\u0440\u0443\u0447\u043d\u043e\u0439 \u043f\u0440\u043e\u043f\u0438\u0441\u043a\u0438. \u0421\u043c\u0435\u043d\u0430 \u043b\u0435\u0439\u0431\u043b\u0430 \u0440\u0430\u0437\u043b\u0435\u0442\u0430\u0435\u0442\u0441\u044f \u043f\u0438\u0440\u0430\u043c \u0441\u0440\u0430\u0437\u0443 \u0447\u0435\u0440\u0435\u0437 full sync.\u0421\u0431\u0440\u043e\u0441 stale\u2011\u0433\u0435\u0439\u0434\u0436\u0435\u0439. \u041f\u0440\u0438\u00a0\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438 per\u2011pair \u0433\u0435\u0439\u0434\u0436\u0438 \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f, \u0430\u00a0\u043d\u0435\u00a0\u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0432\u0438\u0441\u0435\u0442\u044c \u043f\u0440\u0438\u0437\u0440\u0430\u043a\u043e\u043c \u043e\u0442\u00a0\u043d\u043e\u0434\u044b, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0443\u0436\u0435 \u043d\u0435\u0442.\u0414\u0435\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u0438\u00a0shutdown. \u0420\u043e\u043b\u043b\u0438\u043d\u0433 \u0441\u0430\u043c\u043e\u0433\u043e kconmon\u2011ng \u043d\u0435\u00a0\u043f\u0438\u0448\u0435\u0442 \u0444\u0435\u0439\u043a\u043e\u0432\u044b\u0435 \u043f\u043e\u0442\u0435\u0440\u0438 \u0432\u00a0\u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438.\u0421\u0442\u0440\u043e\u0433\u0430\u044f \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0430. \u041d\u0435\u0437\u043d\u0430\u043a\u043e\u043c\u044b\u0435 \u043a\u043b\u044e\u0447\u0438 \u043e\u0442\u043a\u043b\u043e\u043d\u044f\u044e\u0442\u0441\u044f, \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0430 \u0440\u043e\u043d\u044f\u0435\u0442 \u0441\u0442\u0430\u0440\u0442 \u044f\u0432\u043d\u043e. \u041f\u0440\u0438\u00a0hot\u2011reload \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433 \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435\u00a0\u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f, \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0441\u0442\u0430\u0440\u044b\u0439.Self\u2011monitoring. \u041a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0437\u043d\u0430\u0435\u0442, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u043e\u0434 \u0434\u043e\u043b\u0436\u043d\u043e \u0438\u043c\u0435\u0442\u044c \u0430\u0433\u0435\u043d\u0442\u0430 (kconmon_ng_controller_expected_agents, \u0438\u0437\u00a0\u0447\u0438\u0441\u043b\u0430 schedulable\u2011\u043d\u043e\u0434). \u0415\u0441\u043b\u0438 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043c\u0435\u043d\u044c\u0448\u0435, \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0430\u043b\u0435\u0440\u0442, \u0430\u00a0\u043d\u0435\u00a0\u0442\u0438\u0448\u0438\u043d\u0443.\u041a\u043e\u043d\u0441\u043e\u043b\u044c\u0412\u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u0432\u00a0\u043f\u0440\u043e\u0448\u043b\u044b\u0439 \u0440\u0430\u0437 \u043d\u0435\u00a0\u0431\u044b\u043b\u043e \u0441\u043e\u0432\u0441\u0435\u043c. \u041e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0432\u0435\u0431\u2011\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, \u043f\u043e\u00a0\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d, \u0434\u0435\u043f\u043b\u043e\u0438\u0442\u0441\u044f \u0442\u0435\u043c\u00a0\u0436\u0435 \u0447\u0430\u0440\u0442\u043e\u043c. \u0427\u0438\u0442\u0430\u0435\u0442 \u043e\u043d \u0442\u043e\u0442\u00a0\u0436\u0435 Prometheus \u0438 \u0442\u043e\u0442\u00a0\u0436\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u00a0\u0432\u0430\u0441 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c: \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u0443\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0435\u0442, \u0430\u0433\u0435\u043d\u0442\u044b \u043d\u0435\u00a0\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f, \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043d\u0438\u0433\u0434\u0435 \u043d\u0435\u00a0\u0434\u0443\u0431\u043b\u0438\u0440\u0443\u044e\u0442\u0441\u044f.\u0414\u0432\u0435\u043d\u0430\u0434\u0446\u0430\u0442\u044c \u0441\u0442\u0440\u0430\u043d\u0438\u0446: \u041e\u0431\u0437\u043e\u0440, \u041e\u043d\u043b\u0430\u0439\u043d, \u0420\u0430\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435, \u041c\u0430\u0442\u0440\u0438\u0446\u0430, \u0422\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f, MTR, \u0414\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430, \u0426\u0435\u043b\u0438 \u0438 \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044f, \u041c\u0435\u0442\u0440\u0438\u043a\u0438, \u041e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u044f, \u041a\u043e\u043d\u0441\u043e\u043b\u044c \u0441\u00a0PromQL dev\u2011tools \u0438 \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438. Read\u2011only \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0432\u043e\u043e\u0431\u0449\u0435 \u0431\u0435\u0437\u00a0\u0431\u0430\u0437\u044b, \u0445\u0432\u0430\u0442\u0438\u0442 \u043e\u0434\u043d\u043e\u0433\u043e URL Prometheus. \u0418\u0441\u0442\u043e\u0440\u0438\u044f, \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f, \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u044b \u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0430\u043b\u0435\u0440\u0442\u0438\u043d\u0433\u0430 \u0443\u0436\u0435 \u043f\u0440\u043e\u0441\u044f\u0442 PostgreSQL.\u0412\u043e\u0434\u0438\u0442\u044c \u0432\u0430\u0441 \u043f\u043e\u00a0\u0432\u0441\u0435\u043c \u0434\u0432\u0435\u043d\u0430\u0434\u0446\u0430\u0442\u0438 \u044f \u043d\u0435\u00a0\u0431\u0443\u0434\u0443. \u041b\u0443\u0447\u0448\u0435 \u043f\u043e\u043a\u0430\u0436\u0443 \u043c\u0430\u0440\u0448\u0440\u0443\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0445\u043e\u0436\u0443 \u0432\u043e\u00a0\u0432\u0440\u0435\u043c\u044f \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u0430.1. \u041c\u0430\u0442\u0440\u0438\u0446\u0430: \u043a\u0430\u043a\u0430\u044f \u043f\u0430\u0440\u0430\u041c\u0430\u0442\u0440\u0438\u0446\u0430 N\u00d7N, \u043f\u043e\u00a0\u044f\u0447\u0435\u0439\u043a\u0435 \u043d\u0430\u00a0\u043a\u0430\u0436\u0434\u0443\u044e \u0443\u043f\u043e\u0440\u044f\u0434\u043e\u0447\u0435\u043d\u043d\u0443\u044e \u043f\u0430\u0440\u0443, \u0440\u0430\u0441\u043a\u0440\u0430\u0441\u043a\u0430 \u043f\u043e\u00a0loss \u0438 latency. \u0421\u043b\u043e\u043c\u0430\u043d\u043d\u0430\u044f \u043d\u043e\u0434\u0430 \u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043a\u0440\u0430\u0441\u043d\u044b\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u043c. \u041e\u0434\u043d\u043e\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u044f\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043e\u0434\u043d\u0443\u2011\u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u044f\u0447\u0435\u0439\u043a\u0443, \u0430\u00a0\u043f\u043e\u043b\u043e\u043c\u043a\u0430 \u043d\u0430\u00a0\u0433\u0440\u0430\u043d\u0438\u0446\u0435 \u0437\u043e\u043d \u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044f \u0446\u0435\u043b\u044b\u043c \u0431\u043b\u043e\u043a\u043e\u043c.Console Matrix: \u043c\u0430\u0442\u0440\u0438\u0446\u0430 UDP \u043d\u0430 10\u00a0\u043d\u043e\u0434, \u0432\u0435\u0441\u044c \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0432\u00a0qa\u2011node-07\u00a0\u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u043d\u0430 16.7\u201317%, \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u0435\u0442\u043a\u0430 \u0437\u0435\u043b\u0451\u043d\u0430\u044f\u0421 controller.events.enabled \u043c\u0430\u0442\u0440\u0438\u0446\u0430 \u0438 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f \u043f\u0443\u0448\u0430\u0442\u0441\u044f \u043f\u043e\u00a0WebSocket. \u0411\u0435\u0437\u00a0\u043d\u0435\u0433\u043e \u043e\u043d\u0438 \u043f\u043e\u043b\u043b\u044f\u0442, \u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043f\u0440\u044f\u043c\u043e \u043f\u0438\u0448\u0435\u0442, \u0432\u00a0\u043a\u0430\u043a\u043e\u043c \u0438\u0437\u00a0\u0434\u0432\u0443\u0445 \u0440\u0435\u0436\u0438\u043c\u043e\u0432 \u043e\u043d\u0430 \u0441\u0435\u0439\u0447\u0430\u0441, \u0430\u00a0\u043d\u0435\u00a0\u0434\u0435\u043b\u0430\u0435\u0442 \u0432\u0438\u0434, \u0447\u0442\u043e\u00a0\u0436\u0438\u0432\u0430\u044f.2. \u0420\u0430\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435: \u0447\u0442\u043e\u00a0\u0431\u044b\u043b\u043e \u0432\u043e\u043a\u0440\u0443\u0433 \u0438\u0437\u043b\u043e\u043c\u0430\u041a\u043d\u043e\u043f\u043a\u0430 \u0440\u0430\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u044f\u043c\u043e \u0432\u00a0\u044f\u0447\u0435\u0439\u043a\u0435 \u0432\u0435\u0434\u0451\u0442 \u043d\u0430 \/investigate, \u0441\u043a\u043e\u0443\u043f \u0438 \u043e\u043a\u043d\u043e \u0443\u0436\u0435 \u0437\u0430\u0448\u0438\u0442\u044b \u0432\u00a0URL. \u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u0441\u0432\u043e\u0434\u0438\u0442 \u0434\u0435\u0432\u044f\u0442\u044c \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 \u0442\u0430\u0439\u043c\u043b\u0430\u0439\u043d\u0430 \u0432\u043e\u043a\u0440\u0443\u0433 \u044d\u0442\u043e\u0433\u043e \u0441\u043a\u043e\u0443\u043f\u0430: \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438, \u0441\u043e\u0431\u044b\u0442\u0438\u044f Kubernetes, \u0437\u0430\u043f\u0438\u0441\u0438 \u0430\u0443\u0434\u0438\u0442\u0430, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f MTR\u2011\u043f\u0443\u0442\u0435\u0439, \u0437\u0430\u043f\u0443\u0441\u043a\u0438 \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0438, \u043e\u043a\u043d\u0430 \u0440\u0430\u0431\u043e\u0442, \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438, \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0440\u043e\u0433\u043e\u0432 \u0438 \u0433\u043e\u0440\u044f\u0449\u0438\u0435 \u0430\u043b\u0435\u0440\u0442\u044b.\u0414\u0430\u043b\u044c\u0448\u0435 \u043e\u043d\u0430 \u0440\u0430\u043d\u0436\u0438\u0440\u0443\u0435\u0442 \u043a\u0430\u043d\u0434\u0438\u0434\u0430\u0442\u043e\u0432 \u0432\u00a0\u043f\u0440\u0438\u0447\u0438\u043d\u044b. \u0410\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u043a\u0430 \u043f\u0440\u043e\u0441\u0442\u0430\u044f: \u0432\u0435\u0441 \u043a\u043b\u0430\u0441\u0441\u0430, \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u043d\u0430\u00a0\u043b\u0438\u043d\u0435\u0439\u043d\u043e\u0435 \u0437\u0430\u0442\u0443\u0445\u0430\u043d\u0438\u0435 \u043f\u043e 300\u00a0\u0441\u0435\u043a\u0443\u043d\u0434\u0430\u043c \u0434\u043e\u00a0onset. \u0412\u0435\u0441\u0430 \u0442\u0430\u043a\u0438\u0435:3. \u041f\u043e\u0434\u00a0\u043f\u0440\u043e\u0431\u043e\u0439 \u043f\u043e\u0435\u0445\u0430\u043b\u0430 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430: \u0441\u043c\u0435\u043d\u0438\u043b\u0441\u044f \u043c\u0430\u0440\u0448\u0440\u0443\u0442 (path\u2011change) \u0438\u043b\u0438\u00a0\u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u043f\u043e\u043c\u0435\u043d\u044f\u043b \u043d\u043e\u0434\u0443 \u0438\u043b\u0438\u00a0\u043f\u043e\u0434 (k8s). \u0411\u043b\u0438\u0436\u0435 \u043a\u00a0\u0441\u0435\u0442\u0435\u0432\u043e\u043c\u0443 \u0441\u0438\u043c\u043f\u0442\u043e\u043c\u0443 \u043d\u0435\u00a0\u0431\u044b\u0432\u0430\u0435\u0442.2. \u0418\u0437\u043c\u0435\u043d\u0438\u043b\u0441\u044f \u0444\u043b\u043e\u0442 \u0438\u043b\u0438\u00a0\u0435\u0433\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f: \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438 \u0438\u043b\u0438\u00a0\u0437\u0430\u043f\u0438\u0441\u044c \u0432\u00a0\u0430\u0443\u0434\u0438\u0442\u0435 \u043a\u043e\u043d\u0441\u043e\u043b\u0438. \u041f\u0440\u0430\u0432\u0434\u043e\u043f\u043e\u0434\u043e\u0431\u043d\u043e, \u043d\u043e\u00a0\u043d\u0430\u00a0\u0448\u0430\u0433 \u0434\u0430\u043b\u044c\u0448\u0435.1. \u041e\u043a\u043d\u043e \u0440\u0430\u0431\u043e\u0442. \u041e\u043d\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0435\u0442 \u0434\u0435\u0433\u0440\u0430\u0434\u0430\u0446\u0438\u044e, \u0430\u00a0\u043d\u0435\u00a0\u043e\u0431\u0432\u0438\u043d\u044f\u0435\u0442 \u043a\u043e\u0433\u043e\u2011\u0442\u043e, \u0438 \u0441\u0442\u043e\u0438\u0442 \u0432\u00a0\u0440\u0435\u0439\u0442\u0438\u043d\u0433\u0435 \u043d\u0438\u0436\u0435 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0445 \u043f\u043e\u0434\u043e\u0437\u0440\u0435\u0432\u0430\u0435\u043c\u044b\u0445, \u0447\u0442\u043e\u0431\u044b \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u0438\u0445 \u043d\u0435\u00a0\u043f\u0435\u0440\u0435\u0431\u0438\u0442\u044c.0. \u0410\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438, \u0437\u0430\u043f\u0443\u0441\u043a\u0438 \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0438, \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0440\u043e\u0433\u043e\u0432 \u0438 \u0433\u043e\u0440\u044f\u0449\u0438\u0435 \u0430\u043b\u0435\u0440\u0442\u044b. \u041f\u0435\u0440\u0432\u044b\u0435 \u0434\u0432\u0430 \u044d\u0442\u043e \u0442\u043e, \u0447\u0442\u043e\u00a0\u0447\u0435\u043b\u043e\u0432\u0435\u043a \u0441\u0434\u0435\u043b\u0430\u043b \u043f\u043e\u00a0\u043f\u043e\u0432\u043e\u0434\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b. \u041f\u043e\u0440\u043e\u0433 \u0441\u0430\u043c \u0438 \u0435\u0441\u0442\u044c \u0441\u0438\u043c\u043f\u0442\u043e\u043c. \u0410\u00a0\u0433\u043e\u0440\u044f\u0449\u0438\u0439 \u0430\u043b\u0435\u0440\u0442 \u0432\u0441\u0435\u0433\u043e\u00a0\u043b\u0438\u0448\u044c \u043f\u0435\u0440\u0435\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0435\u0433\u043e, \u043f\u0440\u0438\u0447\u0451\u043c \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u043e\u00a0\u0442\u043e\u043c\u0443\u00a0\u0436\u0435 \u0440\u044f\u0434\u0443, \u0438\u0437\u00a0\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u0440\u043e\u0433 \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d. \u0414\u0430\u0439 \u0435\u043c\u0443 \u0432\u0435\u0441 \u0432\u044b\u0448\u0435 \u043d\u0443\u043b\u044f, \u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043d\u0430\u0447\u043d\u0451\u0442 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u00ab\u043f\u0440\u0438\u0447\u0438\u043d\u0430 \u0432\u0430\u0448\u0435\u0439 \u0430\u0432\u0430\u0440\u0438\u0438: \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u00a0\u0432\u0430\u0448\u0435\u0439 \u0430\u0432\u0430\u0440\u0438\u0438\u00bb. \u0418\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a \u044d\u0442\u0438 \u043f\u0430\u043d\u0435\u043b\u0438 \u043e\u0431\u044b\u0447\u043d\u043e \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u0432\u0440\u0430\u0442\u044c.\u041d\u0438\u043a\u0430\u043a\u043e\u0433\u043e ML. \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u043b\u0435\u0436\u0430\u0442 \u0432\u00a0\u043e\u0434\u043d\u043e\u043c \u043c\u043e\u0434\u0443\u043b\u0435, \u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0438\u0445 \u0446\u0438\u0442\u0438\u0440\u0443\u0435\u0442, \u0430\u00a0\u043d\u0435\u00a0\u043f\u0435\u0440\u0435\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442.Console Investigate: \u0442\u0430\u0439\u043c\u043b\u0430\u0439\u043d \u043f\u043e\u00a0\u0441\u043a\u043e\u0443\u043f\u0443 qa\u2011node-07\u00a0\u0441\u00a0\u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0435\u0439 \u043e\u00a0\u0440\u0430\u0441\u043a\u0430\u0442\u043a\u0435, \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u0430\u0443\u0434\u0438\u0442\u0430, \u0434\u0432\u0443\u043c\u044f \u0443\u043f\u0430\u0432\u0448\u0438\u043c\u0438 \u043f\u0440\u043e\u0433\u043e\u043d\u0430\u043c\u0438 \u0438 \u043f\u044f\u0442\u044c\u044e \u0433\u043e\u0440\u044f\u0449\u0438\u043c\u0438 UdpPairLoss\u0420\u0430\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a\u00a0\u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442, \u0430\u00a0\u043f\u0435\u0440\u043c\u0430\u043b\u0438\u043d\u043a \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u0442 \u0438\u0437\u00a0\u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0442\u043e\u0447\u043d\u044b\u0439 \u0441\u043a\u043e\u0443\u043f \u0438 \u043e\u043a\u043d\u043e. \u0421\u0441\u044b\u043b\u043a\u0430 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435\u00a0\u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0437\u044a\u0435\u0445\u0430\u0442\u044c\u0441\u044f \u0441\u00a0\u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u043d\u0430 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442.3. \u041c\u0430\u0448\u0438\u043d\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438: \u043a\u0430\u043a\u00a0\u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u043e \u0432 02:14\u0423\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u0440\u0430\u0437\u0431\u043e\u0440 \u043d\u043e\u0447\u043d\u043e\u0433\u043e \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u0430 \u0432\u0441\u0435\u0433\u0434\u0430 \u0443\u043f\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0432\u00a0\u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442\u00a0\u0436\u0435 \u0432\u043e\u043f\u0440\u043e\u0441: \u0430\u00a0\u0447\u0442\u043e\u00a0\u0442\u0430\u043c, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e,\u00a0\u0431\u044b\u043b\u043e? \u0412\u00a0\u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u043d\u0430\u00a0\u044d\u0442\u043e\u0442 \u0441\u043b\u0443\u0447\u0430\u0439 \u0435\u0441\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0430 Now \u0432\u00a0\u043f\u0440\u0430\u0432\u043e\u043c \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0443\u0433\u043b\u0443. \u041e\u043d\u0430 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u043f\u0438\u043a\u0435\u0440: \u043f\u0440\u0435\u0441\u0435\u0442\u044b \u043e\u0442 \u00ab15m ago\u00bb \u0434\u043e \u00ab24h ago\u00bb, \u043a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u044c \u0438 \u0442\u043e\u0447\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f. \u0412\u044b\u0431\u0438\u0440\u0430\u0435\u0442\u0435 \u043c\u043e\u043c\u0435\u043d\u0442, \u0438 \u043a\u0430\u0436\u0434\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0447\u0442\u043e\u2011\u0442\u043e \u0447\u0438\u0442\u0430\u0435\u0442, \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u043f\u0440\u043e\u00a0\u043d\u0435\u0433\u043e, \u0430\u00a0\u043d\u0435\u00a0\u043f\u0440\u043e\u00a0\u0441\u0435\u0439\u0447\u0430\u0441: \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044f \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0437\u00a0\u0441\u043e\u0445\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u0439, PromQL \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0432\u00a0\u0442\u043e\u0447\u043a\u0435 t, \u043b\u0435\u043d\u0442\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432\u00a0\u0441\u043a\u0440\u043e\u043b\u043b\u0431\u044d\u043a. \u0412\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0436\u0438\u0432\u0451\u0442 \u043f\u0440\u044f\u043c\u043e \u0432\u00a0URL \u043a\u0430\u043a ?at= \u0441\u00a0\u043c\u0435\u0442\u043a\u043e\u0439 RFC 3339, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0441\u044b\u043b\u043a\u0443 \u043c\u043e\u0436\u043d\u043e \u043a\u0438\u043d\u0443\u0442\u044c \u043a\u043e\u043b\u043b\u0435\u0433\u0435 \u0432\u00a0\u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u043d\u044b\u0439 \u0447\u0430\u0442, \u0438 \u0443\u00a0\u043d\u0435\u0433\u043e \u043e\u0442\u043a\u0440\u043e\u0435\u0442\u0441\u044f \u0442\u043e\u00a0\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u043f\u0440\u043e\u0448\u043b\u043e\u0435.\u041f\u043e\u043a\u0430 \u041c\u0430\u0448\u0438\u043d\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430, \u0432\u0441\u0435 \u043c\u0443\u0442\u0438\u0440\u0443\u044e\u0449\u0438\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044b \u0437\u0430\u0434\u0438\u0437\u0435\u0439\u0431\u043b\u0435\u043d\u044b, \u0430\u00a0\u0431\u0430\u043d\u043d\u0435\u0440 \u0441\u0432\u0435\u0440\u0445\u0443 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u0438 \u0434\u0435\u0440\u0436\u0438\u0442 \u043a\u043d\u043e\u043f\u043a\u0443 Return to Live. \u041f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0444\u043b\u043e\u0442 \u0438\u0437\u00a0\u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u043d\u0435\u043b\u044c\u0437\u044f.Console Time&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-491549","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/491549","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=491549"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/491549\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=491549"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=491549"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=491549"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}