{"id":496189,"date":"2026-09-26T17:58:52","date_gmt":"2026-09-26T17:58:52","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=496189"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=496189","title":{"rendered":"xk6-sip: \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f VoIP\/SIP-\u0437\u0432\u043e\u043d\u043a\u043e\u0432"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0420\u0430\u0437\u0431\u0435\u0440\u0451\u043c, \u043a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u0430 observability \u0432 xk6-sip \u2014 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 k6, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0435 \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 VoIP\/SIP-\u0437\u0432\u043e\u043d\u043a\u043e\u0432: \u043e\u0442\u043a\u0443\u0434\u0430 \u0431\u0435\u0440\u0443\u0442\u0441\u044f \u043c\u0435\u0442\u0440\u0438\u043a\u0438, \u043a\u0430\u043a \u0438\u0437 \u043d\u0438\u0445 \u0441\u0442\u0440\u043e\u044f\u0442\u0441\u044f \u043f\u0430\u043d\u0435\u043b\u0438 \u0438 \u043a\u0430\u043a \u043f\u043e \u043d\u0438\u043c \u043e\u0442\u043b\u0438\u0447\u0438\u0442\u044c \u0434\u0435\u0433\u0440\u0430\u0434\u0430\u0446\u0438\u044e \u0410\u0422\u0421 \u043e\u0442 \u0434\u0435\u0433\u0440\u0430\u0434\u0430\u0446\u0438\u0438 \u0441\u0430\u043c\u043e\u0433\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430.<\/p>\n<p>\u0412\u0441\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0438 \u0446\u0438\u0444\u0440\u044b \u043e\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u043e\u043d\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0430: 100 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0437\u0432\u043e\u043d\u043a\u043e\u0432, 10 \u043c\u0438\u043d\u0443\u0442, 2000 \u0437\u0432\u043e\u043d\u043a\u043e\u0432, 6,1 \u043c\u043b\u043d RTP-\u043f\u0430\u043a\u0435\u0442\u043e\u0432. \u0414\u0430\u0448\u0431\u043e\u0440\u0434 \u2014 37 \u043f\u0430\u043d\u0435\u043b\u0435\u0439 \u0432 \u0448\u0435\u0441\u0442\u0438 \u0431\u043b\u043e\u043a\u0430\u0445; \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430 \u043d\u0438\u0436\u0435 \u0435\u0441\u0442\u044c \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0434\u0430\u043d\u043d\u044b\u0445, \u0437\u0430\u043f\u0440\u043e\u0441, \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b.<\/p>\n<blockquote>\n<p><strong>\u0413\u0440\u0430\u043d\u0438\u0446\u044b \u0441\u0442\u0430\u0442\u044c\u0438.<\/strong> \u0412\u0441\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043d\u0438\u0436\u0435 \u2014 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435: \u0438\u0445 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 xk6-sip \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0442\u0440\u0430\u0444\u0438\u043a\u0430, \u0438 \u043e\u043d\u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0410\u0422\u0421 \u0442\u0430\u043a, \u043a\u0430\u043a \u0435\u0451 \u0432\u0438\u0434\u044f\u0442 \u0430\u0431\u043e\u043d\u0435\u043d\u0442\u044b, \u043f\u043b\u044e\u0441 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u0430\u043c\u043e\u0433\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430. \u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u2014 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0410\u0422\u0421, \u0435\u0451 SIP-\u0441\u0442\u0435\u043a\u0430, \u043c\u0435\u0434\u0438\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u2014 \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0435 \u0437\u0430\u0442\u0440\u0430\u0433\u0438\u0432\u0430\u0435\u0442. \u041a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0442 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441 \u00ab\u0447\u0442\u043e \u0441\u043b\u043e\u043c\u0430\u043b\u043e\u0441\u044c \u0438 \u043a\u043e\u0433\u0434\u0430\u00bb; \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441 \u00ab\u043f\u043e\u0447\u0435\u043c\u0443\u00bb \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430, \u043e \u043d\u0435\u0439 \u2014 \u0432 \u043a\u043e\u043d\u0446\u0435.<\/p>\n<\/blockquote>\n<h3>\u041f\u0440\u043e\u0444\u0438\u043b\u044c \u0438 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f<\/h3>\n<p>\u041f\u0440\u043e\u0433\u043e\u043d \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0434\u0432\u0443\u043c\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438. \u041f\u0435\u0440\u0432\u0430\u044f \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u0442 \u0442\u0435\u0441\u0442\u043e\u0432\u0443\u044e \u0410\u0422\u0421 <code>testpbx<\/code> \u043d\u0430 loopback \u0438 \u0437\u0430\u0432\u043e\u0434\u0438\u0442 \u0432 \u043d\u0435\u0439 200 \u0430\u0431\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0438\u0437 CSV. \u0412\u0442\u043e\u0440\u0430\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 k6 \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c xk6-sip: \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0443\u0445\u043e\u0434\u044f\u0442 \u0432 Prometheus \u0447\u0435\u0440\u0435\u0437 remote write, \u0430 \u0442\u0435\u0433\u0438 <code>testid<\/code> \u0438 <code>pbx_version<\/code> \u043f\u043e\u043c\u0435\u0447\u0430\u044e\u0442 \u043f\u0440\u043e\u0433\u043e\u043d, \u0447\u0442\u043e\u0431\u044b \u0434\u0430\u0448\u0431\u043e\u0440\u0434 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0433\u043e. \u0427\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u0438 \u043d\u0430 \u043a\u0430\u043a\u043e\u043c \u0441\u0442\u0435\u043d\u0434\u0435 \u043e\u043d \u0448\u0451\u043b \u2014 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043f\u043e\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438.<\/p>\n<pre><code class=\"bash\">testpbx -addr 127.0.0.1:5070 -users 200 -csv examples\/subscribers.csvK6_PROMETHEUS_RW_SERVER_URL=http:\/\/localhost:9091\/api\/v1\/write \\K6_FEATURES=native-histograms \\k6 run -o experimental-prometheus-rw \\  --tag testid=load-100x10m-2 --tag pbx_version=testpbx-0.4 \\  -e VUS=100 -e HOLD=30 -e DURATION=10m \\  -e SIP_METRICS_ADDR=127.0.0.1:6566 examples\/call.js<\/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<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440<\/p>\n<\/th>\n<th>\n<p>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439<\/p>\n<\/td>\n<td>\n<p align=\"left\">A \u2192 B, \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0410\u041e\u041d, <code>isHeard()<\/code> \u0432 \u043e\u0431\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440 30 \u0441 + U(0, 1) \u0441, BYE \u043e\u0442 B<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0418\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>constant-vus<\/code>, 100 VU; \u043e\u0434\u0438\u043d VU \u2014 \u0434\u0432\u0430 \u0430\u0431\u043e\u043d\u0435\u043d\u0442\u0430 \u0438 \u043e\u0434\u0438\u043d \u0437\u0432\u043e\u043d\u043e\u043a \u0437\u0430 \u0440\u0430\u0437<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0410\u0431\u043e\u043d\u0435\u043d\u0442\u044b<\/p>\n<\/td>\n<td>\n<p align=\"left\">200, digest-\u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430 REGISTER (401) \u0438 INVITE (407), Expires 300 \u0441<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041c\u0435\u0434\u0438\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">G.711 \u03bc-law, 20 \u043c\u0441, 50 pps \u043d\u0430 \u043f\u043b\u0435\u0447\u043e<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">SUT<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>testpbx<\/code> (\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 + B2BUA) \u043d\u0430 \u0442\u043e\u043c \u0436\u0435 \u0445\u043e\u0441\u0442\u0435, loopback<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0413\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440<\/p>\n<\/td>\n<td>\n<p align=\"left\">Windows 11, 16 \u0413\u0411 RAM, \u0431\u0435\u0437 \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u043a<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041f\u0435\u0440\u0435\u0434 \u0447\u0442\u0435\u043d\u0438\u0435\u043c \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430 \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u041f\u043e \u0437\u0430\u043a\u043e\u043d\u0443 \u041b\u0438\u0442\u0442\u043b\u0430 L = \u03bbW: \u043f\u0440\u0438 L = 100 \u0438 W \u2248 31 \u0441 (\u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440 + \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 + \u043f\u0430\u0443\u0437\u0430 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438) \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u03bb \u2248 3,2 CAPS \u0438 \u2248 1930 \u0437\u0432\u043e\u043d\u043a\u043e\u0432 \u0437\u0430 10 \u043c\u0438\u043d\u0443\u0442. RTP: 100 \u00d7 2 \u043f\u043b\u0435\u0447\u0430 \u00d7 50 pps = 10 000 pps, \u043f\u0440\u0438 172 \u0431\u0430\u0439\u0442\u0430\u0445 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 UDP (12 \u0431\u0430\u0439\u0442 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a RTP + 160 \u0431\u0430\u0439\u0442 G.711) \u044d\u0442\u043e 1,72 \u041c\u0411\/\u0441 \u0432 \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443. \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438: 200 \u043d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435 + \u0434\u0432\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0437\u0430 10 \u043c\u0438\u043d\u0443\u0442 = 600.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0434\u0430\u0448\u0431\u043e\u0440\u0434 \u043d\u0430 \u0447\u0438\u0441\u0442\u043e\u043c \u043f\u0440\u043e\u0433\u043e\u043d\u0435 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u044d\u0442\u0438 \u0447\u0438\u0441\u043b\u0430, \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440 \u043c\u0435\u0442\u0440\u0438\u043a \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0435\u043d, \u0438 \u0435\u0433\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f\u043c \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0432 \u043f\u0440\u043e\u0433\u043e\u043d\u0435 \u0441 \u0434\u0435\u0433\u0440\u0430\u0434\u0430\u0446\u0438\u0435\u0439.<\/p>\n<h3>\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0441\u0431\u043e\u0440\u0430 \u043c\u0435\u0442\u0440\u0438\u043a<\/h3>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/76d\/b2b\/e9f\/76db2be9fd27b1b9dfd7317820ac8c3c.png\" width=\"1600\" height=\"345\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/76d\/b2b\/e9f\/76db2be9fd27b1b9dfd7317820ac8c3c.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/76d\/b2b\/e9f\/76db2be9fd27b1b9dfd7317820ac8c3c.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0422\u0440\u0438 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0440\u0430\u0437\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u044c\u044e \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438. \u0420\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u043e\u0435: \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0442\u0435\u0441\u0442\u0430 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 SUT \u0433\u043b\u0430\u0437\u0430\u043c\u0438 \u0430\u0431\u043e\u043d\u0435\u043d\u0442\u0430, \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0438 \u0445\u043e\u0441\u0442\u0430 \u2014 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430. \u0411\u0435\u0437 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0438 \u0442\u0440\u0435\u0442\u044c\u0435\u0433\u043e \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0434\u0436\u0438\u0442\u0442\u0435\u0440 \u043e\u0442 \u0433\u043e\u043b\u043e\u0434\u0430\u044e\u0449\u0435\u0433\u043e \u043f\u043e CPU \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043d\u0435\u043e\u0442\u043b\u0438\u0447\u0438\u043c \u043e\u0442 \u0434\u0436\u0438\u0442\u0442\u0435\u0440\u0430 \u0410\u0422\u0421.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c73\/a34\/aaf\/c73a34aaf1a71a44b096b95dea6b0a79.png\" width=\"1137\" height=\"283\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/c73\/a34\/aaf\/c73a34aaf1a71a44b096b95dea6b0a79.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c73\/a34\/aaf\/c73a34aaf1a71a44b096b95dea6b0a79.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p>\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a<\/p>\n<\/th>\n<th>\n<p>\u041c\u043e\u0434\u0435\u043b\u044c<\/p>\n<\/th>\n<th>\n<p>\u0427\u0442\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442<\/p>\n<\/th>\n<th>\n<p>\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041c\u0435\u0442\u0440\u0438\u043a\u0438 \u0442\u0435\u0441\u0442\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">push, remote write<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>sip_*<\/code>, <code>rtp_*<\/code> \u0441 \u0442\u0435\u0433\u0430\u043c\u0438 <code>testid<\/code>, <code>pbx_version<\/code>, <code>scenario<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>-o experimental-prometheus-rw<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041f\u0440\u043e\u0446\u0435\u0441\u0441 k6<\/p>\n<\/td>\n<td>\n<p align=\"left\">pull, <code>\/metrics<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>process_*<\/code>, <code>go_*<\/code>, <code>xk6sip_network_*<\/code>, <code>xk6sip_calls_in_progress<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>sip.options({ metricsAddr })<\/code><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0425\u043e\u0441\u0442 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">pull<\/p>\n<\/td>\n<td>\n<p align=\"left\">CPU, \u043f\u0430\u043c\u044f\u0442\u044c, \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b<\/p>\n<\/td>\n<td>\n<p align=\"left\">windows_exporter \/ node-exporter<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041c\u0435\u0442\u0440\u0438\u043a\u0438 \u0442\u0435\u0441\u0442\u0430 \u0438\u0434\u0443\u0442 \u043f\u043e push: \u0442\u0435\u0441\u0442 \u0436\u0438\u0432\u0451\u0442 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u0438 pull-\u043c\u043e\u0434\u0435\u043b\u044c \u043f\u043e\u0442\u0435\u0440\u044f\u043b\u0430 \u0431\u044b \u0445\u0432\u043e\u0441\u0442 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e scrape. \u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0438 \u0445\u043e\u0441\u0442 \u2014 \u0434\u043e\u043b\u0433\u043e\u0436\u0438\u0432\u0443\u0449\u0438\u0435 \u0446\u0435\u043b\u0438, \u0434\u043b\u044f \u043d\u0438\u0445 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 scrape \u0440\u0430\u0437 \u0432 5 \u0441. \u041c\u0435\u0442\u0440\u0438\u043a\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0438 \u0445\u043e\u0441\u0442\u0430 \u043d\u0435 \u043d\u0435\u0441\u0443\u0442 <code>testid<\/code>, \u043a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u044f \u0441 \u043f\u0440\u043e\u0433\u043e\u043d\u043e\u043c \u2014 \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<h4>\u041f\u043e\u0447\u0435\u043c\u0443 native histograms \u0438 \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0438<\/h4>\n<p>\u041f\u0440\u0438 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0435 \u0432 Prometheus k6 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u0442\u0434\u0430\u0451\u0442 \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u043f\u0435\u0440\u0446\u0435\u043d\u0442\u0438\u043b\u0438 trend-\u043c\u0435\u0442\u0440\u0438\u043a \u0438 \u0434\u043e\u043b\u0438 rate-\u043c\u0435\u0442\u0440\u0438\u043a, \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u043d\u044b\u0435 \u0441 \u043d\u0430\u0447\u0430\u043b\u0430 \u0442\u0435\u0441\u0442\u0430. \u0418\u0437 \u043d\u0438\u0445 \u043d\u0435\u043b\u044c\u0437\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0437\u0430 \u043e\u043a\u043d\u043e: 10 \u043c\u0438\u043d\u0443\u0442 \u0434\u0435\u0433\u0440\u0430\u0434\u0430\u0446\u0438\u0438 \u043f\u043e\u0441\u043b\u0435 \u0447\u0430\u0441\u0430 \u043d\u043e\u0440\u043c\u044b \u043f\u043e\u0447\u0442\u0438 \u043d\u0435 \u0441\u0434\u0432\u0438\u0433\u0430\u044e\u0442 \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u043d\u044b\u0439 p95. \u041f\u043e\u044d\u0442\u043e\u043c\u0443:<\/p>\n<ul>\n<li>\n<p><strong>\u0412\u0440\u0435\u043c\u0435\u043d\u0430<\/strong> \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043a\u0430\u043a native histograms (<code>K6_FEATURES=native-histograms<\/code>) \u0438 \u0441\u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \u0437\u0430 \u0441\u043a\u043e\u043b\u044c\u0437\u044f\u0449\u0435\u0435 \u043e\u043a\u043d\u043e:<\/p>\n<\/li>\n<\/ul>\n<pre><code>histogram_quantile(0.95, sum(rate(k6_sip_call_setup_time_seconds{testid=~\"$testid\"}[$window])))<\/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>Native histogram \u2014 \u043e\u0434\u0438\u043d \u0440\u044f\u0434 \u043d\u0430 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044e \u043c\u0435\u0442\u043e\u043a \u0441 \u044d\u043a\u0441\u043f\u043e\u043d\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0431\u0430\u043a\u0435\u0442\u0430\u043c\u0438: \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u043d\u0435 \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0437\u0430\u0440\u0430\u043d\u0435\u0435, \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u0434\u0430\u043d\u043d\u044b\u0435, \u0438 \u0434\u0435\u0433\u0440\u0430\u0434\u0430\u0446\u0438\u044f \u0434\u043e \u0441\u0435\u043a\u0443\u043d\u0434 \u043d\u0435 \u0443\u043f\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0431\u0430\u043a\u0435\u0442, \u043a\u0430\u043a \u0443 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0441 <code>le<\/code>. \u0418\u0437 \u043d\u0435\u0451 <code>rate()<\/code> + <code>histogram_quantile()<\/code> \u0434\u0430\u044e\u0442 \u043f\u0435\u0440\u0446\u0435\u043d\u0442\u0438\u043b\u044c \u0437\u0430 \u043b\u044e\u0431\u043e\u0435 \u043e\u043a\u043d\u043e, \u0430 \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0441\u0443\u043c\u043c\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u2014 \u0433\u043e\u0442\u043e\u0432\u044b\u0435 p95 \u0440\u0430\u0437\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u043e\u0432 k6 \u0441\u043b\u043e\u0436\u0438\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f. \u0412\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0449\u0430\u044f\u0441\u044f \u0432 \u0441\u0442\u0430\u0440\u044b\u0445 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f <code>K6_PROMETHEUS_RW_TREND_AS_NATIVE_HISTOGRAM<\/code> \u0432 k6 v2 \u0443\u0441\u0442\u0430\u0440\u0435\u043b\u0430, \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u044b <code>K6_FEATURES=native-histograms<\/code>. Prometheus 3.x \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0438\u0445 \u0441 \u0444\u043b\u0430\u0433\u0430\u043c\u0438 <code>--web.enable-remote-write-receiver<\/code> \u0438 <code>--enable-feature=native-histograms<\/code>; \u0431\u0435\u0437 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0434\u0430\u0448\u0431\u043e\u0440\u0434 \u043f\u043e\u043a\u0430\u0436\u0435\u0442 \u043f\u0443\u0441\u0442\u044b\u0435 \u043f\u0430\u043d\u0435\u043b\u0438 \u0432\u0440\u0435\u043c\u0451\u043d.<\/p>\n<ul>\n<li>\n<p><strong>\u0414\u043e\u043b\u0438<\/strong> \u0441\u0442\u0440\u043e\u044f\u0442\u0441\u044f \u043f\u043e \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0430\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f: <code>sip_call_results{result, status}<\/code>, <code>sip_calls{phase}<\/code>, <code>rtp_legs{heard}<\/code>. Rate-\u043c\u0435\u0442\u0440\u0438\u043a\u0438 <code>sip_call_success<\/code> \u0438 <code>rtp_audio_heard<\/code> \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u043e\u0440\u043e\u0433\u043e\u0432 \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0435 \u0438 \u0438\u0442\u043e\u0433\u043e\u0432\u043e\u0433\u043e \u043e\u0442\u0447\u0451\u0442\u0430.<\/p>\n<\/li>\n<\/ul>\n<p>\u0418\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435: remote write \u0432 k6 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0447\u0451\u0442\u0447\u0438\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438. \u0414\u043b\u044f \u0441\u0435\u0440\u0438\u0439 \u0441 \u0440\u0435\u0434\u043a\u0438\u043c\u0438 \u0432\u0441\u043f\u043b\u0435\u0441\u043a\u0430\u043c\u0438 (REGISTER \u043d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435 \u0438 \u043f\u0440\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438) \u043d\u0430 \u043e\u043a\u043d\u043e \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u043e\u0434\u043d\u0430 \u0442\u043e\u0447\u043a\u0430, \u0438 <code>rate()<\/code> \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u0443\u0441\u0442\u043e\u0442\u0443. \u0422\u0430\u043a\u0438\u0435 \u043f\u0430\u043d\u0435\u043b\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u043d\u0430 \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u0445.<\/p>\n<p>\u041d\u0438\u0436\u0435 \u2014 \u0441\u043d\u0438\u043c\u043a\u0438 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430 \u0437\u0430 \u043e\u043a\u043d\u043e \u043f\u0440\u043e\u0433\u043e\u043d\u0430 15:19\u201315:30, <code>$window<\/code> = 1 \u043c\u0438\u043d\u0443\u0442\u0430.<\/p>\n<h3>\u041e\u0431\u0437\u043e\u0440: 12 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432<\/h3>\n<p>\u0412\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u043e\u0433\u043e\u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u0441\u043c\u043e\u0442\u0440\u044f\u0442 \u043d\u0430 12 \u043f\u043b\u0438\u0442\u043e\u043a \u0432\u0435\u0440\u0445\u043d\u0435\u0433\u043e \u0431\u043b\u043e\u043a\u0430. \u041a\u0430\u0436\u0434\u0430\u044f \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043d\u0430 \u043e\u0434\u0438\u043d \u0432\u043e\u043f\u0440\u043e\u0441: \u0438\u0434\u0451\u0442 \u043b\u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043a\u0430\u043a \u0437\u0430\u0434\u0443\u043c\u0430\u043d\u043e, \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442 \u043b\u0438 \u0437\u0432\u043e\u043d\u043a\u0438, \u0441\u043b\u044b\u0448\u0435\u043d \u043b\u0438 \u0433\u043e\u043b\u043e\u0441, \u0443\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043b\u0438 \u0410\u0422\u0421 \u0432 SLA. \u0415\u0441\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442 \u0441 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u043c\u0438 \u0438\u0437 \u0440\u0430\u0437\u0434\u0435\u043b\u0430 \u0432\u044b\u0448\u0435, \u0432 \u043d\u0438\u0436\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u0441\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f; \u0435\u0441\u043b\u0438 \u043a\u0430\u043a\u0430\u044f-\u0442\u043e \u043f\u043b\u0438\u0442\u043a\u0430 \u043e\u0442\u043a\u043b\u043e\u043d\u0438\u043b\u0430\u0441\u044c, \u043e\u043d\u0430 \u043f\u043e\u0434\u0441\u043a\u0430\u0436\u0435\u0442, \u043a\u0443\u0434\u0430 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435 \u2014 \u0432 \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e, \u043c\u0435\u0434\u0438\u0430 \u0438\u043b\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440. \u0412 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043d\u0438\u0436\u0435 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u2014 \u043a\u0430\u043a \u043e\u043d \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0438 \u0447\u0442\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0433\u043e\u043d.<\/p>\n<p>\u0412\u0435\u0440\u0445\u043d\u0438\u0439 \u0431\u043b\u043e\u043a \u2014 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0440\u0430\u043d\u043d\u0435\u0433\u043e \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f. \u0412\u0441\u0435 \u0434\u043e\u043b\u0438 \u0438 \u043f\u0435\u0440\u0446\u0435\u043d\u0442\u0438\u043b\u0438 \u0441\u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \u0437\u0430 <code>$window<\/code> \u2014 \u044d\u0442\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430 Grafana, \u0434\u043b\u0438\u043d\u0430 \u0441\u043a\u043e\u043b\u044c\u0437\u044f\u0449\u0435\u0433\u043e \u043e\u043a\u043d\u0430 (\u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0433\u043e\u043d\u0435 1 \u043c\u0438\u043d\u0443\u0442\u0430), \u0430 \u043d\u0435 \u0432\u0435\u0441\u044c \u0442\u0435\u0441\u0442. \u0422\u043e \u0435\u0441\u0442\u044c \u043a\u0430\u0436\u0434\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u043d\u0430 \u043f\u0430\u043d\u0435\u043b\u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u043c\u0438\u043d\u0443\u0442\u0443: CAPS \u2014 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u043e\u0441\u044c \u0437\u0430 \u044d\u0442\u0443 \u043c\u0438\u043d\u0443\u0442\u0443, p95 \u2014 \u043f\u043e \u0437\u0432\u043e\u043d\u043a\u0430\u043c \u044d\u0442\u043e\u0439 \u043c\u0438\u043d\u0443\u0442\u044b.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a71\/2d1\/f0d\/a712d1f0de4a099ab1196e8a81d76fca.png\" width=\"1600\" height=\"345\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/a71\/2d1\/f0d\/a712d1f0de4a099ab1196e8a81d76fca.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a71\/2d1\/f0d\/a712d1f0de4a099ab1196e8a81d76fca.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p>\u0418\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440<\/p>\n<\/th>\n<th>\n<p>\u0427\u0442\u043e \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438<\/p>\n<\/th>\n<th>\n<p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435<\/p>\n<\/th>\n<th>\n<p>\u041f\u0440\u043e\u0433\u043e\u043d<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">CAPS<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0432\u043e\u043d\u043a\u043e\u0432 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442\u0441\u044f \u2014 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0438\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>sum(rate(k6_sip_call_results_total[$window]))<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">3,1 (1,8\u20134,9)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Calls in progress<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u043e\u0432 \u0438\u0434\u0451\u0442 \u043f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>sip_calls{phase=\"answered\"} \u2212 sip_calls{phase=\"ended\"}<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">100<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">ASR<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u043e\u043b\u044f \u0437\u0432\u043e\u043d\u043a\u043e\u0432, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0442\u0432\u0435\u0442\u0438\u043b\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">answered \/ \u0432\u0441\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">100%<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">SEER (RFC 6076)<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u043e\u043b\u044f \u0437\u0432\u043e\u043d\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0410\u0422\u0421 \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u0431\u0435\u0437 \u0441\u0431\u043e\u044f: \u00ab\u0437\u0430\u043d\u044f\u0442\u043e\u00bb, \u00ab\u043d\u0435 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442\u00bb \u0438 \u043e\u0442\u043a\u0430\u0437 \u0430\u0431\u043e\u043d\u0435\u043d\u0442\u0430 \u0442\u043e\u0436\u0435 \u0441\u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \u0443\u0441\u043f\u0435\u0445\u043e\u043c \u0441\u0435\u0442\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">(200 + 480 + 486 + 600 + 603) \/ \u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u0431\u0435\u0437 3xx<\/p>\n<\/td>\n<td>\n<p align=\"left\">100%<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">One-way audio<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u043e\u043b\u044f \u0441\u0442\u043e\u0440\u043e\u043d \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u0430, \u0434\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435 \u0434\u043e\u0448\u0451\u043b \u0433\u043e\u043b\u043e\u0441 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043d\u0438\u043a\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>rtp_legs{heard=\"false\"}<\/code> \/ <code>rtp_legs<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">0%<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Dropped iterations<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0437\u0432\u043e\u043d\u043a\u043e\u0432 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u043d\u0435 \u0443\u0441\u043f\u0435\u043b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>k6_dropped_iterations_total<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Setup time p95<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0417\u0430 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0435\u0442\u0441\u044f \u0437\u0432\u043e\u043d\u043e\u043a \u2014 \u043e\u0442 \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u043e \u043e\u0442\u0432\u0435\u0442\u0430 \u0430\u0431\u043e\u043d\u0435\u043d\u0442\u0430; 95% \u0437\u0432\u043e\u043d\u043a\u043e\u0432 \u0443\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">INVITE \u2192 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u0442<\/p>\n<\/td>\n<td>\n<p align=\"left\">2,9 \u043c\u0441<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Setup within SLA<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u043e\u043b\u044f \u0437\u0432\u043e\u043d\u043a\u043e\u0432, \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0432\u0448\u0438\u0445\u0441\u044f \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u043f\u043e\u0440\u043e\u0433\u0430 SLA<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>histogram_fraction(0, $sla_setup, \u2026)<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">100% \u043f\u0440\u0438 SLA 300 \u043c\u0441<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">PDD within SLA<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u043e\u043b\u044f \u0437\u0432\u043e\u043d\u043a\u043e\u0432, \u0433\u0434\u0435 \u043f\u0430\u0443\u0437\u0430 \u043c\u0435\u0436\u0434\u0443 \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u043d\u043e\u043c\u0435\u0440\u0430 \u0438 \u0437\u0432\u043e\u043d\u043a\u043e\u043c \u0443 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0433\u043e (post-dial delay) \u043a\u043e\u0440\u043e\u0447\u0435 \u043f\u043e\u0440\u043e\u0433\u0430 SLA<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>histogram_fraction(0, $sla_pdd, \u2026)<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">100% \u043f\u0440\u0438 SLA 2 \u0441<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">ALOC<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0440\u0435\u0434\u043d\u044f\u044f \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>histogram_sum \/ histogram_count<\/code> \u043f\u043e <code>sip_call_duration<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">30,6 \u0441<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">First response p95<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041a\u0430\u043a \u0431\u044b\u0441\u0442\u0440\u043e \u0410\u0422\u0421 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442, \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430 \u0437\u0432\u043e\u043d\u043e\u043a; 95% \u0437\u0432\u043e\u043d\u043a\u043e\u0432 \u0443\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">INVITE \u2192 \u043f\u0435\u0440\u0432\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">1,1 \u043c\u0441<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Retransmissions<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 SIP \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0410\u0422\u0421 \u043d\u0435 \u043e\u0442\u0432\u0435\u0442\u0438\u043b\u0430 \u0432\u043e\u0432\u0440\u0435\u043c\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>sum(rate(k6_sip_retransmissions_total[$window]))<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><strong>ASR \u043f\u0440\u043e\u0442\u0438\u0432 SEER.<\/strong> ASR \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043f\u0440\u043e\u0444\u0438\u043b\u044f \u0442\u0440\u0430\u0444\u0438\u043a\u0430: \u00ab\u0437\u0430\u043d\u044f\u0442\u043e\u00bb \u0438 \u00ab\u043d\u0435 \u043e\u0442\u0432\u0435\u0442\u0438\u043b\u00bb \u0441\u043d\u0438\u0436\u0430\u044e\u0442 \u0435\u0433\u043e \u0431\u0435\u0437 \u0432\u0438\u043d\u044b \u0410\u0422\u0421. SEER \u0438\u0437 RFC 6076 \u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u043e\u0442\u043a\u0430\u0437 \u0430\u0431\u043e\u043d\u0435\u043d\u0442\u0430 \u0443\u0441\u043f\u0435\u0445\u043e\u043c \u0441\u0435\u0442\u0438 \u0438 \u043f\u0430\u0434\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442 404, 5xx \u0438 \u0442\u0430\u0439\u043c\u0430\u0443\u0442\u043e\u0432. \u0412 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0433\u043e\u043d\u0435 \u043e\u0431\u0430 \u043f\u043e 100%. \u041d\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u0440\u043e\u0433\u043e\u043d\u0435 \u0441 5% \u0437\u0432\u043e\u043d\u043a\u043e\u0432 \u043d\u0430 \u043d\u0435\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043d\u043e\u043c\u0435\u0440 \u0438 5% \u00ab\u0437\u0430\u043d\u044f\u0442\u043e\u00bb \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c ASR 84% \u0438 SEER 92%: \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u2014 \u044d\u0442\u043e 486, 404 \u043e\u0441\u0442\u0430\u043b\u0441\u044f \u0432 SEER \u043a\u0430\u043a \u043e\u0442\u043a\u0430\u0437 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438. \u041f\u0430\u0440\u0430 \u00abASR \u043f\u0430\u0434\u0430\u0435\u0442, SEER \u0441\u0442\u043e\u0438\u0442\u00bb \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u043f\u0440\u043e\u0444\u0438\u043b\u044c \u0430\u0431\u043e\u043d\u0435\u043d\u0442\u043e\u0432, \u043f\u0430\u0440\u0430 \u00ab\u043f\u0430\u0434\u0430\u044e\u0442 \u043e\u0431\u0430\u00bb \u2014 \u043d\u0430 \u0410\u0422\u0421.<\/p>\n<p><strong>ALOC<\/strong> \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0435 30 + E[U(0,1)] = 30,5 \u0441 (+0,1 \u0441 \u043d\u0430 BYE). \u041f\u0430\u0434\u0435\u043d\u0438\u0435 ALOC \u043f\u0440\u0438 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u2014 \u043f\u0440\u044f\u043c\u043e\u0439 \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0442\u043e\u0433\u043e, \u0447\u0442\u043e SUT \u0440\u0432\u0451\u0442 \u0441\u0435\u0441\u0441\u0438\u0438 (session timers, \u043b\u0438\u043c\u0438\u0442\u044b \u043a\u0430\u043d\u0430\u043b\u043e\u0432, \u0441\u0431\u043e\u0438 RTP-\u043f\u0440\u043e\u043a\u0441\u0438).<\/p>\n<p><strong>CAPS \u0441\u043a\u0430\u0447\u0435\u0442 \u043e\u0442 1,8 \u0434\u043e 4,9<\/strong> \u043f\u0440\u0438 \u0441\u0440\u0435\u0434\u043d\u0435\u043c 3,1. \u042d\u0442\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0437\u0430\u043a\u0440\u044b\u0442\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 <code>constant-vus<\/code>: 100 VU \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0430\u043b\u0438 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u044e\u0442 \u0437\u0432\u043e\u043d\u043a\u0438 \u0432\u043e\u043b\u043d\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0441\u043f\u043b\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0439 \u0434\u043e\u0431\u0430\u0432\u043a\u043e\u0439 \u043a \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0414\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043d\u0443\u0436\u043d\u0430 \u043e\u0442\u043a\u0440\u044b\u0442\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c (<code>constant-arrival-rate<\/code>), \u0433\u0434\u0435 CAPS \u0437\u0430\u0434\u0430\u043d \u0438 \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043e\u0442\u0432\u0435\u0442\u0430 SUT.<\/p>\n<h3>\u0421\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f<\/h3>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/209\/8b6\/10a\/2098b610acbd68dcee9ffee219bf7719.png\" width=\"1600\" height=\"953\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/209\/8b6\/10a\/2098b610acbd68dcee9ffee219bf7719.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/209\/8b6\/10a\/2098b610acbd68dcee9ffee219bf7719.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p>\u041f\u0430\u043d\u0435\u043b\u044c<\/p>\n<\/th>\n<th>\n<p>\u041c\u0435\u0442\u0440\u0438\u043a\u0430 \u0438 \u0442\u043e\u0447\u043a\u0430 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f<\/p>\n<\/th>\n<th>\n<p>\u041f\u0440\u043e\u0433\u043e\u043d<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Calls per second by final status \/ by class<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>sip_call_results{result, status}<\/code>, \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 INVITE; \u043a\u043b\u0430\u0441\u0441\u044b \u0447\u0435\u0440\u0435\u0437 <code>label_replace<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0442\u043e\u043b\u044c\u043a\u043e 200<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Call setup time<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>sip_call_setup_time<\/code>: \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 INVITE \u2192 200 OK, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0446\u0438\u043a\u043b 407 + \u043f\u043e\u0432\u0442\u043e\u0440 \u0441 credentials<\/p>\n<\/td>\n<td>\n<p align=\"left\">p50 1,9 \/ p95 2,9 \u043c\u0441<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Post-dial delay<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>sip_post_dial_delay<\/code>: INVITE \u2192 \u043f\u0435\u0440\u0432\u044b\u0439 18x<\/p>\n<\/td>\n<td>\n<p align=\"left\">p95 2,5 \u043c\u0441<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">INVITE routing time<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>sip_invite_delivery_time<\/code>: \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 INVITE \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c A \u2192 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c B<\/p>\n<\/td>\n<td>\n<p align=\"left\">p95 1,9 \u043c\u0441<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">INVITE first response time<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>sip_invite_first_response_time<\/code>: INVITE \u2192 \u043f\u0435\u0440\u0432\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438, \u043f\u043e \u0441\u044d\u043c\u043f\u043b\u0443 \u043d\u0430 \u043a\u0430\u0436\u0434\u0443\u044e \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e (407 \u0438 100 Trying)<\/p>\n<\/td>\n<td>\n<p align=\"left\">p95 1,1 \u043c\u0441<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">SIP retransmissions<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>sip_retransmissions{method, kind, status}<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Failed calls by status<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>increase(...[$__range])<\/code> \u043f\u043e <code>status<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">\u2014<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><strong>Routing time<\/strong> \u2014 \u043c\u0435\u0442\u0440\u0438\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u043c \u0441 \u0440\u0430\u0437\u043d\u0435\u0441\u0451\u043d\u043d\u044b\u043c\u0438 UAC \u0438 UAS: \u043e\u0431\u0435 \u043e\u0442\u043c\u0435\u0442\u043a\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u043d\u0438\u043c\u0430\u044e\u0442\u0441\u044f \u043e\u0434\u043d\u0438\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u043c, \u0431\u0435\u0437 \u0440\u0430\u0441\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0430 \u0447\u0430\u0441\u043e\u0432. \u042d\u0442\u043e \u0447\u0438\u0441\u0442\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438 SUT.<\/p>\n<h4>\u041f\u0435\u0440\u0432\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u0438 \u0440\u0435\u0442\u0440\u0430\u043d\u0441\u043c\u0438\u0441\u0441\u0438\u0438<\/h4>\n<p>\u041f\u043e RFC 3261 (17.1.1.2) \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0430\u044f INVITE-\u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f \u043f\u043e UDP \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u043f\u043e \u0442\u0430\u0439\u043c\u0435\u0440\u0443 A: \u0447\u0435\u0440\u0435\u0437 T1 = 500 \u043c\u0441, \u0437\u0430\u0442\u0435\u043c 1, 2, 4 \u0441 \u2014 \u0434\u043e \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043e\u0442\u0432\u0435\u0442\u0430 \u0438\u043b\u0438 \u0434\u043e \u0442\u0430\u0439\u043c\u0430\u0443\u0442\u0430 B = 64\u00b7T1. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0430\u043d\u0435\u043b\u044c \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043e\u0442\u0432\u0435\u0442\u0430 \u0438\u0434\u0451\u0442 \u0441 \u043f\u043e\u0440\u043e\u0433\u043e\u043c 500 \u043c\u0441: \u043f\u043e\u043a\u0430 p99 \u043d\u0438\u0436\u0435 T1, \u0410\u0422\u0421 \u0443\u0441\u043f\u0435\u0432\u0430\u0435\u0442 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0442\u044c \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438; \u0432\u044b\u0448\u0435 \u2014 \u043a\u0430\u0436\u0434\u044b\u0439 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u0443\u0434\u0432\u0430\u0438\u0432\u0430\u0435\u0442 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u043f\u043e\u0442\u043e\u043a INVITE. \u041f\u043e\u0440\u043e\u0433 \u043d\u0430 setup time \u0442\u0443\u0442 \u043d\u0435 \u0433\u043e\u0434\u0438\u0442\u0441\u044f: \u0432 \u043d\u0435\u0433\u043e \u0432\u0445\u043e\u0434\u0438\u0442 \u0432\u0440\u0435\u043c\u044f \u0434\u043e \u043e\u0442\u0432\u0435\u0442\u0430 \u0430\u0431\u043e\u043d\u0435\u043d\u0442\u0430, \u0430 \u0440\u0435\u0442\u0440\u0430\u043d\u0441\u043c\u0438\u0441\u0441\u0438\u0438 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0443\u0436\u0435 <code>100 Trying<\/code>.<\/p>\n<p>\u0420\u0435\u0442\u0440\u0430\u043d\u0441\u043c\u0438\u0441\u0441\u0438\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0441\u043b\u043e\u0439 sipgo, \u0430 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0438\u0445 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u0442: SIP-\u0441\u043e\u043a\u0435\u0442 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430 \u043e\u0431\u0451\u0440\u043d\u0443\u0442, \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0441 \u0442\u0435\u043c \u0436\u0435 Via branch, CSeq \u0438 \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u043e\u0439 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0440\u0435\u0442\u0440\u0430\u043d\u0441\u043c\u0438\u0441\u0441\u0438\u0435\u0439. \u0421\u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u044b (<code>kind=\"request\"<\/code>), \u0438 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u0442\u0432\u0435\u0442\u044b, \u043d\u0435 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0451\u043d\u043d\u044b\u0435 ACK (<code>kind=\"response\"<\/code>, \u0442\u0430\u0439\u043c\u0435\u0440 G).<\/p>\n<h4>\u0421\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0438<\/h4>\n<p>\u0412 \u0447\u0438\u0441\u0442\u043e\u043c \u043f\u0440\u043e\u0433\u043e\u043d\u0435 \u0435\u0451 \u043d\u0435\u0442, \u043d\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u043d\u0435\u0451 \u0431\u043b\u043e\u043a \u0438 \u0441\u043e\u0431\u0440\u0430\u043d. \u0422\u0438\u043f\u0438\u0447\u043d\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043d\u0430 SIP\/UDP:<\/p>\n<ol>\n<li>\n<p>\u0420\u0430\u0441\u0442\u0451\u0442 p99 setup time \u043f\u0440\u0438 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u043c p50 \u2014 \u0432 SUT \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0447\u0435\u0440\u0435\u0434\u044c.<\/p>\n<\/li>\n<li>\n<p>p99 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043e\u0442\u0432\u0435\u0442\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u043a 500 \u043c\u0441.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0440\u0435\u0442\u0440\u0430\u043d\u0441\u043c\u0438\u0441\u0441\u0438\u0438 INVITE: \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043d\u0430 SUT \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0432\u044b\u0448\u0435 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f 503 \/ 408, \u043f\u0430\u0434\u0430\u0435\u0442 SEER.<\/p>\n<\/li>\n<\/ol>\n<p>\u0428\u0430\u0433\u0438 1\u20133 \u0434\u0430\u044e\u0442 \u043f\u043e\u0442\u043e\u043b\u043e\u043a \u0410\u0422\u0421 \u0440\u0430\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u043e\u043d \u0441\u0442\u0430\u043d\u0435\u0442 \u0432\u0438\u0434\u0435\u043d \u043f\u043e \u043e\u0442\u043a\u0430\u0437\u0430\u043c. \u041d\u0430 \u0448\u0430\u0433\u0435 4 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u0436\u0435 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043b\u0430\u0432\u0438\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0438, \u0438 \u0441\u043d\u0438\u0436\u0435\u043d\u0438\u0435 CAPS \u0435\u0451 \u0441\u0440\u0430\u0437\u0443 \u043d\u0435 \u0432\u044b\u0432\u043e\u0434\u0438\u0442.<\/p>\n<h3>\u041c\u0435\u0434\u0438\u0430<\/h3>\n<p>\u0423\u0441\u043f\u0435\u0448\u043d\u0430\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0435 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442 \u0433\u043e\u043b\u043e\u0441: NAT, \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 SDP \u0438\u043b\u0438 \u0438\u0441\u0447\u0435\u0440\u043f\u0430\u043d\u0438\u0435 \u043f\u043e\u0440\u0442\u043e\u0432 \u043c\u0435\u0434\u0438\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0434\u0430\u044e\u0442 \u0437\u0432\u043e\u043d\u043e\u043a \u0441 200 OK \u0438 \u0442\u0438\u0448\u0438\u043d\u043e\u0439 \u0432 \u043e\u0434\u043d\u0443 \u0441\u0442\u043e\u0440\u043e\u043d\u0443. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043a\u0430\u0436\u0434\u044b\u0439 \u0437\u0432\u043e\u043d\u043e\u043a \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442 RTP \u0432 \u043e\u0431\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0430 \u043a\u0430\u0436\u0434\u043e\u0435 \u043f\u043b\u0435\u0447\u043e \u043f\u043e \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u0438 \u0437\u0432\u043e\u043d\u043a\u0430 \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442, \u0441\u043b\u044b\u0448\u0430\u043b\u043e \u043b\u0438 \u043e\u043d\u043e \u0434\u0440\u0443\u0433\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/671\/eb5\/615\/671eb56158775b170249b1873c384b88.png\" width=\"1600\" height=\"647\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/671\/eb5\/615\/671eb56158775b170249b1873c384b88.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/671\/eb5\/615\/671eb56158775b170249b1873c384b88.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p>\u041f\u0430\u043d\u0435\u043b\u044c<\/p>\n<\/th>\n<th>\n<p>\u041c\u0435\u0442\u0440\u0438\u043a\u0430<\/p>\n<\/th>\n<th>\n<p>\u041f\u0440\u043e\u0433\u043e\u043d<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">One-way audio<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>rtp_legs{heard=\"false\"}<\/code> \/ <code>rtp_legs<\/code>, \u043f\u043e \u043f\u043b\u0435\u0447\u0430\u043c<\/p>\n<\/td>\n<td>\n<p align=\"left\">0 \u0438\u0437 4000<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Jitter p95 by leg<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>rtp_jitter<\/code>, \u043e\u0446\u0435\u043d\u043a\u0430 interarrival jitter \u043f\u043e RFC 3550 (6.4.1), \u043f\u043e <code>direction<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">0,6 \u043c\u0441 \u043d\u0430 \u043e\u0431\u043e\u0438\u0445 \u043f\u043b\u0435\u0447\u0430\u0445<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">RTP packet loss<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>rtp_packets_lost<\/code> \/ (received + lost); \u043f\u043e\u0442\u0435\u0440\u0438 \u2014 \u043f\u043e \u0440\u0430\u0437\u0440\u044b\u0432\u0430\u043c sequence number<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">RTP packets per second<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>rtp_packets_sent<\/code>, <code>rtp_packets_received<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">9673 pps<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><strong>\u0421\u0432\u0435\u0440\u043a\u0430.<\/strong> \u0422\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u2014 10 000 pps. \u0418\u0437 31,25 \u0441 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u043c\u0435\u0434\u0438\u0430 \u0438\u0434\u0451\u0442 \u043e\u043a\u043e\u043b\u043e 30,6 \u0441 (ALOC), \u0442\u043e \u0435\u0441\u0442\u044c ~98% \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0447\u0442\u043e \u0434\u0430\u0451\u0442 ~9800 pps; \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u043e 9673. \u0417\u0430 \u0442\u0435\u0441\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e 6 119 611 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u043f\u0440\u0438\u043d\u044f\u0442\u043e 6 119 571. \u0421\u0447\u0451\u0442\u0447\u0438\u043a \u043f\u043e\u0442\u0435\u0440\u044c \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0443\u043b\u0435\u0432\u043e\u0439: 40 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043d\u0430\u0445\u043e\u0434\u0438\u043b\u0438\u0441\u044c \u0432 \u043f\u043e\u043b\u0451\u0442\u0435 \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 BYE \u0438 \u043f\u0440\u0438\u0448\u043b\u0438 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u044f \u043f\u043e\u0442\u043e\u043a\u0430, \u0440\u0430\u0437\u0440\u044b\u0432\u043e\u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043d\u0435 \u0431\u044b\u043b\u043e.<\/p>\n<p><strong>\u0424\u0430\u0437\u043e\u0432\u044b\u0439 \u0441\u0434\u0432\u0438\u0433.<\/strong> RTP-\u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u044e\u0442\u0441\u044f \u043f\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0438 \u043f\u043b\u0435\u0447\u0430, \u0438 \u043c\u0435\u0434\u0438\u0430-\u043f\u0430\u043d\u0435\u043b\u0438 \u043e\u0442\u0441\u0442\u0430\u044e\u0442 \u043e\u0442 \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430 ALOC: \u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0433\u043e\u043d\u0435 \u043d\u0430 ~30 \u0441. \u041a\u043e\u0440\u0440\u0435\u043b\u0438\u0440\u0443\u044f \u0432\u0441\u043f\u043b\u0435\u0441\u043a \u0434\u0436\u0438\u0442\u0442\u0435\u0440\u0430 \u0441 \u0441\u043e\u0431\u044b\u0442\u0438\u0435\u043c \u0432 \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043b\u0438 \u043d\u0430 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0435, \u0441\u0434\u0432\u0438\u0433\u0430\u0439\u0442\u0435 \u043c\u0435\u0434\u0438\u0430 \u043d\u0430\u0437\u0430\u0434 \u043d\u0430 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u0430.<\/p>\n<h3>\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0438 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439<\/h3>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/959\/d1f\/1d0\/959d1f1d03a2a2bd491388387c4029ea.png\" width=\"1600\" height=\"685\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/959\/d1f\/1d0\/959d1f1d03a2a2bd491388387c4029ea.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/959\/d1f\/1d0\/959d1f1d03a2a2bd491388387c4029ea.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<ul>\n<li>\n<p><strong>\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438<\/strong> \u0438\u0434\u0443\u0442 \u0432\u0441\u043f\u043b\u0435\u0441\u043a\u0430\u043c\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0430\u043d\u0435\u043b\u044c \u043d\u0430\u043a\u043e\u043f\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f: 200 \u2192 400 \u2192 600, \u043f\u043e \u0441\u0442\u0443\u043f\u0435\u043d\u044c\u043a\u0435 \u043d\u0430 \u0441\u0442\u0430\u0440\u0442 \u0438 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u0438 Expires 300 \u0441. \u0421\u043a\u043e\u043b\u044c\u043a\u043e 401 \u2014 \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u0436\u0435 200: \u043a\u0430\u0436\u0434\u0430\u044f \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 digest-\u0446\u0438\u043a\u043b. p95 \u043e\u0442\u0432\u0435\u0442\u0430 \u043d\u0430 REGISTER \u2014 \u043e\u043a\u043e\u043b\u043e 1 \u043c\u0441.<\/p>\n<\/li>\n<li>\n<p><strong>Failed requests by method<\/strong> \u2014 0 \u0438\u0437 7200 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. 401 \u0438 407 \u043d\u0435 \u0441\u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \u043e\u0448\u0438\u0431\u043a\u0430\u043c\u0438, \u0438\u043d\u0430\u0447\u0435 \u0434\u043e\u043b\u044f \u00ab\u043e\u0448\u0438\u0431\u043e\u043a\u00bb \u0431\u044b\u043b\u0430 \u0431\u044b 36% \u043d\u0430 \u0440\u043e\u0432\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435: 2600 challenge-\u043e\u0442\u0432\u0435\u0442\u043e\u0432 \u043d\u0430 1200 REGISTER, 4000 INVITE \u0438 2000 BYE.<\/p>\n<\/li>\n<li>\n<p><strong>Failed expectations<\/strong> \u2014 0 \u0438\u0437 8000 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a. \u042d\u0442\u043e \u043c\u0435\u0442\u0440\u0438\u043a\u0430 \u0443\u0440\u043e\u0432\u043d\u044f \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f: <code>call<\/code> \u2014 \u0437\u0432\u043e\u043d\u043e\u043a \u043d\u0435 \u043f\u0440\u0438\u0448\u0451\u043b \u0438\u043b\u0438 \u043f\u0440\u0438\u0448\u0451\u043b \u0441 \u0447\u0443\u0436\u0438\u043c \u0410\u041e\u041d, <code>heard<\/code> \u2014 \u043d\u0435\u0442 \u0437\u0432\u0443\u043a\u0430, <code>transferred<\/code> \u2014 \u043d\u0435 \u043f\u0440\u043e\u0448\u0451\u043b \u043f\u0435\u0440\u0435\u0432\u043e\u0434. \u0423\u0441\u043f\u0435\u0448\u043d\u044b\u0439 200 OK \u0441 \u0447\u0443\u0436\u0438\u043c \u0410\u041e\u041d \u0432\u0438\u0434\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0434\u0435\u0441\u044c.<\/p>\n<\/li>\n<li>\n<p><strong>Calls ending by who hung up<\/strong> \u2014 \u0432\u0441\u0435 <code>remote<\/code>: \u043c\u0435\u0442\u0440\u0438\u043a\u0430 \u043f\u0438\u0448\u0435\u0442\u0441\u044f \u0441 \u0441\u0442\u043e\u0440\u043e\u043d\u044b A, \u0430 BYE \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 B. \u0410\u043d\u043e\u043c\u0430\u043b\u0438\u044f \u2014 \u043d\u0435 \u0441\u0430\u043c <code>remote<\/code>, \u0430 \u0440\u0430\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0441\u043e \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u043c: \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u0435 <code>error<\/code> \/ <code>timeout<\/code> \u0438\u043b\u0438 \u043f\u0430\u0434\u0435\u043d\u0438\u0435 ALOC.<\/p>\n<\/li>\n<\/ul>\n<h3>\u0413\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440<\/h3>\n<p>\u041d\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u044b\u0439 \u0442\u0435\u0441\u0442 \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u0435\u043d, \u0435\u0441\u043b\u0438 \u0443\u0437\u043a\u0438\u043c \u043c\u0435\u0441\u0442\u043e\u043c \u0441\u0442\u0430\u043b \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440. \u0414\u043b\u044f VoIP \u044d\u0442\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043a\u043e\u0432\u0430\u0440\u043d\u043e: \u043f\u0440\u0438 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u0435 CPU \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a RTP \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u0430\u043a\u0435\u0442\u044b \u0441 \u043e\u043f\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u043c, \u0438 \u043f\u0440\u0438\u0451\u043c\u043d\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0435\u0442 \u044d\u0442\u043e \u043a\u0430\u043a \u0434\u0436\u0438\u0442\u0442\u0435\u0440 SUT. \u0411\u043b\u043e\u043a \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043d\u0443\u0436\u0435\u043d, \u0447\u0442\u043e\u0431\u044b \u0432\u0430\u043b\u0438\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0430\u043c \u0442\u0435\u0441\u0442.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/75e\/555\/4d4\/75e5554d4f0d33b96885027859d3e492.png\" width=\"1600\" height=\"962\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/75e\/555\/4d4\/75e5554d4f0d33b96885027859d3e492.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/75e\/555\/4d4\/75e5554d4f0d33b96885027859d3e492.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041c\u0435\u0442\u0440\u0438\u043a\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u043e\u0442\u0434\u0430\u0451\u0442 \u0441\u0430\u043c\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u043d\u0430 <code>metricsAddr<\/code>: \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 process- \u0438 Go-\u043a\u043e\u043b\u043b\u0435\u043a\u0442\u043e\u0440\u044b client_golang \u043f\u043b\u044e\u0441 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0438 \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0441\u043e\u043a\u0435\u0442\u043e\u0432 SIP \u0438 RTP.<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p>\u041f\u0430\u043d\u0435\u043b\u044c<\/p>\n<\/th>\n<th>\n<p>\u0427\u0442\u043e \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442<\/p>\n<\/th>\n<th>\n<p>\u041c\u0435\u0442\u0440\u0438\u043a\u0430<\/p>\n<\/th>\n<th>\n<p>\u041f\u0440\u043e\u0433\u043e\u043d<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Dropped iterations<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0432\u043e\u043d\u043a\u043e\u0432 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u043d\u0435 \u0443\u0441\u043f\u0435\u043b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u043e \u043f\u043b\u0430\u043d\u0443<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>k6_dropped_iterations_total<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">k6 process CPU<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e k6 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>rate(process_cpu_seconds_total{job=\"k6\"})<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">55% \u044f\u0434\u0440\u0430 (\u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c 63%)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Goroutines<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0427\u0438\u0441\u043b\u043e \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 \u0432\u043d\u0443\u0442\u0440\u0438 k6; \u0440\u043e\u0441\u0442 \u0431\u0435\u0437 \u0440\u043e\u0441\u0442\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u2014 \u0443\u0442\u0435\u0447\u043a\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>go_goroutines<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">~530, \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">k6 process memory<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0430\u043c\u044f\u0442\u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 k6<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>process_resident_memory_bytes<\/code>, <code>go_memstats_heap_inuse_bytes<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">RSS ~100 \u041c\u0411, heap 38\u201361 \u041c\u0411<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">k6 process network<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0442\u0440\u0430\u0444\u0438\u043a\u0430 k6 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442: \u0433\u043e\u043b\u043e\u0441 (RTP) \u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f (SIP)<\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>rate(xk6sip_network_bytes_total)<\/code> \u043f\u043e <code>proto<\/code>, <code>direction<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\">RTP 1,65\u20131,70 \u041c\u0411\/\u0441, SIP ~12 \u041a\u0411\/\u0441<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Machine CPU \/ memory<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u0438 \u043f\u0430\u043c\u044f\u0442\u0438 \u0432\u0441\u0435\u0433\u043e \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430-\u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">windows_exporter<\/p>\n<\/td>\n<td>\n<p align=\"left\">11% CPU, 11,2 \u0438\u0437 16 \u0413\u0411<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p><strong>\u0421\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u044c.<\/strong> \u0427\u0438\u0441\u043b\u043e \u0433\u043e\u0440\u0443\u0442\u0438\u043d \u0438 RSS \u0432\u044b\u0445\u043e\u0434\u044f\u0442 \u043d\u0430 \u043f\u043b\u0430\u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u0440\u0430\u0437\u0433\u043e\u043d\u0430 \u0438 \u043d\u0435 \u0440\u0430\u0441\u0442\u0443\u0442 \u0441 \u0447\u0438\u0441\u043b\u043e\u043c \u0437\u0430\u0432\u0435\u0440\u0448\u0451\u043d\u043d\u044b\u0445 \u0437\u0432\u043e\u043d\u043a\u043e\u0432, \u0430 heap \u0438\u0434\u0451\u0442 \u043f\u0438\u043b\u043e\u0439 \u0441\u0431\u043e\u0440\u043e\u043a \u043c\u0443\u0441\u043e\u0440\u0430 \u0431\u0435\u0437 \u0442\u0440\u0435\u043d\u0434\u0430 \u2014 \u0443\u0442\u0435\u0447\u0435\u043a \u0433\u043e\u0440\u0443\u0442\u0438\u043d \u0438 \u043f\u0430\u043c\u044f\u0442\u0438 \u043d\u0430 \u0437\u0432\u043e\u043d\u043e\u043a \u043d\u0435\u0442. \u0414\u043b\u044f soak-\u0442\u0435\u0441\u0442\u043e\u0432 \u044d\u0442\u043e \u043f\u0435\u0440\u0432\u043e\u0435, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c.<\/p>\n<p><strong>\u0421\u0432\u0435\u0440\u043a\u0430 \u0442\u0440\u0430\u0444\u0438\u043a\u0430.<\/strong> \u0420\u0430\u0441\u0447\u0451\u0442 \u2014 1,72 \u041c\u0411\/\u0441 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 UDP \u0432 \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443, \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u043e 1,65\u20131,70. <code>rtp in<\/code> \u0438 <code>rtp out<\/code> \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u0431\u0430 \u043f\u043b\u0435\u0447\u0430 \u0437\u0432\u043e\u043d\u043a\u0430 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u0435\u0442 \u043e\u0434\u0438\u043d \u043f\u0440\u043e\u0446\u0435\u0441\u0441. SIP \u2014 \u043c\u0435\u043d\u044c\u0448\u0435 1% \u0442\u0440\u0430\u0444\u0438\u043a\u0430.<\/p>\n<p><strong>Loopback \u043f\u0440\u043e\u0442\u0438\u0432 NIC.<\/strong> SUT \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043d\u0430 127.0.0.1, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u00abMachine network\u00bb \u0442\u0435\u0441\u0442\u0430 \u043d\u0435 \u0432\u0438\u0434\u0438\u0442: loopback-\u0442\u0440\u0430\u0444\u0438\u043a \u043d\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0447\u0435\u0440\u0435\u0437 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, \u0438 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0451\u0440 \u0445\u043e\u0441\u0442\u0430 \u0435\u0433\u043e \u043d\u0435 \u0441\u0447\u0438\u0442\u0430\u0435\u0442. \u0421\u0447\u0451\u0442\u0447\u0438\u043a\u0438 \u043d\u0430 \u0441\u043e\u043a\u0435\u0442\u0430\u0445 \u0432\u0438\u0434\u044f\u0442 \u0432\u0441\u0451. \u041f\u0440\u0438 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u0439 SUT \u043e\u0431\u0435 \u043f\u0430\u043d\u0435\u043b\u0438 \u0441\u043e\u0432\u043f\u0430\u0434\u0443\u0442 \u0441 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432 IP\/UDP (28 \u0431\u0430\u0439\u0442 \u043d\u0430 \u043f\u0430\u043a\u0435\u0442, +16% \u0434\u043b\u044f G.711 \u043f\u043e 20 \u043c\u0441). \u0420\u0430\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u044d\u0442\u043e\u0433\u043e \u2014 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u043d\u0430 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0435.<\/p>\n<p><strong>CPU.<\/strong> 55% \u044f\u0434\u0440\u0430 \u043d\u0430 200 RTP-\u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u0438 3 CAPS. \u042d\u0442\u043e \u0432\u044b\u0448\u0435, \u0447\u0435\u043c \u0432 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f (62% \u043d\u0430 1000 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 \u043d\u0430 Linux), \u0438 \u0440\u0430\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u043c\u043e: Windows, SUT \u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0445\u043e\u0441\u0442\u0435, \u043f\u043b\u044e\u0441 remote write \u0438 \u044d\u043a\u0441\u043f\u043e\u0440\u0442 \u043c\u0435\u0442\u0440\u0438\u043a \u0441\u0430\u043c\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430. \u0412\u044b\u0432\u043e\u0434 \u2014 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043d\u0443\u0436\u043d\u043e \u0441\u043d\u0438\u043c\u0430\u0442\u044c \u043d\u0430 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435, \u0430 \u043d\u0435 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442\u044c \u0441 \u0431\u0435\u043d\u0447\u043c\u0430\u0440\u043a\u0430.<\/p>\n<p><strong>\u041f\u0430\u043c\u044f\u0442\u044c \u0445\u043e\u0441\u0442\u0430.<\/strong> \u041f\u0435\u0440\u0432\u0430\u044f \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u043e\u043d\u0430 \u0431\u044b\u043b\u0430 \u043f\u0440\u0435\u0440\u0432\u0430\u043d\u0430 \u043d\u0430 4,5 \u043c\u0438\u043d\u0443\u0442\u0435 \u0438\u0437-\u0437\u0430 \u043d\u0435\u0445\u0432\u0430\u0442\u043a\u0438 RAM \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0435 \u043f\u0440\u0438 RSS k6 \u043e\u043a\u043e\u043b\u043e 100 \u041c\u0411. \u0418\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a\u043e\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u044e\u0442 \u043f\u0430\u043d\u0435\u043b\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0438 \u0445\u043e\u0441\u0442\u0430: \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441\u0442\u0430\u0431\u0438\u043b\u0435\u043d, \u0445\u043e\u0441\u0442 \u0443 \u043f\u043e\u0442\u043e\u043b\u043a\u0430. \u0412 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d-\u0438\u0441\u043f\u044b\u0442\u0430\u043d\u0438\u044f\u0445 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u0442\u043e\u044f\u0442\u044c \u043d\u0430 \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u043c \u0445\u043e\u0441\u0442\u0435.<\/p>\n<h3>\u0418\u0442\u043e\u0433\u0438<\/h3>\n<p>\u041a\u043e\u043d\u0432\u0435\u0439\u0435\u0440 \u043c\u0435\u0442\u0440\u0438\u043a \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u0440\u0430\u0441\u0447\u0451\u0442\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e \u0432\u0441\u0435\u043c \u043e\u0441\u044f\u043c:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p>\u0412\u0435\u043b\u0438\u0447\u0438\u043d\u0430<\/p>\n<\/th>\n<th>\n<p>\u0420\u0430\u0441\u0447\u0451\u0442<\/p>\n<\/th>\n<th>\n<p>\u0418\u0437\u043c\u0435\u0440\u0435\u043d\u043e<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">CAPS<\/p>\n<\/td>\n<td>\n<p align=\"left\">L\/W = 100 \/ 31 \u2248 3,2<\/p>\n<\/td>\n<td>\n<p align=\"left\">3,1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0417\u0432\u043e\u043d\u043a\u043e\u0432 \u0437\u0430 \u043f\u0440\u043e\u0433\u043e\u043d<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u2248 1930 + \u0434\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u0432 graceful stop<\/p>\n<\/td>\n<td>\n<p align=\"left\">2000<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0417\u0432\u043e\u043d\u043a\u043e\u0432 \u0432 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">100<\/p>\n<\/td>\n<td>\n<p align=\"left\">98,9 \u0432 \u0441\u0440\u0435\u0434\u043d\u0435\u043c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">ALOC<\/p>\n<\/td>\n<td>\n<p align=\"left\">30,5 \u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">30,6 \u0441<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">RTP pps<\/p>\n<\/td>\n<td>\n<p align=\"left\">~9800 \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u0441\u043a\u0432\u0430\u0436\u043d\u043e\u0441\u0442\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">9673<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">RTP-\u0442\u0440\u0430\u0444\u0438\u043a \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0443<\/p>\n<\/td>\n<td>\n<p align=\"left\">1,72 \u041c\u0411\/\u0441<\/p>\n<\/td>\n<td>\n<p align=\"left\">1,65\u20131,70 \u041c\u0411\/\u0441<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">REGISTER 200 OK<\/p>\n<\/td>\n<td>\n<p align=\"left\">200 \u00d7 3<\/p>\n<\/td>\n<td>\n<p align=\"left\">600<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041e\u0442\u043a\u0430\u0437\u044b, \u043f\u043e\u0442\u0435\u0440\u0438, one-way audio, \u0440\u0435\u0442\u0440\u0430\u043d\u0441\u043c\u0438\u0441\u0441\u0438\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<td>\n<p align=\"left\">0<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041f\u043e\u0440\u043e\u0433\u0438 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f: <code>sip_call_success<\/code> 100% (\u043f\u043e\u0440\u043e\u0433 &gt; 99%), <code>rtp_audio_heard<\/code> 100% (&gt; 99%), <code>sip_call_setup_time<\/code> p95 2,87 \u043c\u0441 (&lt; 500 \u043c\u0441).<\/p>\n<p>\u041c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u043d\u044b\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u2014 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0439 SUT \u043d\u0430 loopback, \u0430 \u043d\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0430 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d-\u0410\u0422\u0421. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043d\u0430 Windows \u0433\u0440\u0430\u043d\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u044c \u0447\u0430\u0441\u043e\u0432 Go \u043e\u043a\u043e\u043b\u043e 0,5 \u043c\u0441, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0443\u0431\u043c\u0438\u043b\u043b\u0438\u0441\u0435\u043a\u0443\u043d\u0434\u043d\u044b\u0435 \u043f\u0435\u0440\u0446\u0435\u043d\u0442\u0438\u043b\u0438 \u0437\u0434\u0435\u0441\u044c \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u043e\u0447\u043d\u044b\u0435. \u0426\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0433\u043e\u043d\u0430 \u2014 \u0432 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0434 \u0442\u0435\u0441\u0442\u043e\u043c \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b.<\/p>\n<h3>\u0412\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h3>\n<pre><code class=\"bash\">git clone https:\/\/github.com\/Dmitry-Fedotov-Dev\/xk6-sip &amp;&amp; cd xk6-sipxk6 build v2.3.0 --with github.com\/Dmitry-Fedotov-Dev\/xk6-sip=. --output k6docker compose -f monitoring\/docker-compose.yml up -d        # Linux: --profile linux-hostgo run .\/cmd\/testpbx -addr 127.0.0.1:5070 -users 200 -csv examples\/subscribers.csv &amp;K6_PROMETHEUS_RW_SERVER_URL=http:\/\/localhost:9091\/api\/v1\/write K6_FEATURES=native-histograms \\.\/k6 run -o experimental-prometheus-rw --tag testid=my-run --tag pbx_version=&lt;\u0432\u0435\u0440\u0441\u0438\u044f&gt; \\  -e VUS=100 -e HOLD=30 -e DURATION=10m -e SIP_METRICS_ADDR=127.0.0.1:6566 examples\/call.js<\/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>Grafana \u2014 http:\/\/localhost:3001, Prometheus \u2014 http:\/\/localhost:9091. \u041d\u0430 Windows \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0445\u043e\u0441\u0442\u0430 \u043e\u0442\u0434\u0430\u0451\u0442 windows_exporter \u0441 <code>--collectors.enabled=cpu,memory,net,os,system --web.listen-address=127.0.0.1:9182<\/code>. \u0414\u043b\u044f \u0441\u0432\u043e\u0435\u0439 \u0410\u0422\u0421 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e CSV \u0441 \u0435\u0451 \u0430\u0431\u043e\u043d\u0435\u043d\u0442\u0430\u043c\u0438 \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e <code>testpbx<\/code>.<\/p>\n<p>\u0414\u0430\u0448\u0431\u043e\u0440\u0434 \u043b\u0435\u0436\u0438\u0442 \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u043a\u0430\u043a JSON \u2014 <code>monitoring\/grafana\/dashboards\/xk6-sip.json<\/code> \u2014 \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f provisioning&#8217;\u043e\u043c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438. \u0412 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e Grafana \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u0435\u0441\u0442\u044c; \u043d\u0443\u0436\u0435\u043d \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0434\u0430\u043d\u043d\u044b\u0445 Prometheus \u0441 uid <code>prometheus<\/code>.<\/p>\n<h3>\u0412\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u044b: \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430<\/h3>\n<p>\u0412\u0441\u0451, \u0447\u0442\u043e \u0432\u044b\u0448\u0435, \u2014 \u0432\u0437\u0433\u043b\u044f\u0434 \u0441\u043d\u0430\u0440\u0443\u0436\u0438. \u0413\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0432\u0438\u0434\u0438\u0442, \u0447\u0442\u043e setup p99 \u0432\u044b\u0440\u043e\u0441 \u0432\u0442\u0440\u043e\u0435, \u043d\u043e \u043d\u0435 \u0432\u0438\u0434\u0438\u0442, \u043f\u043e\u0447\u0435\u043c\u0443. \u041f\u0440\u0438\u0447\u0438\u043d\u0430 \u0436\u0438\u0432\u0451\u0442 \u043d\u0430 \u0410\u0422\u0421, \u0438 \u0434\u043b\u044f \u043d\u0435\u0451 \u043d\u0443\u0436\u0435\u043d \u0441\u0432\u043e\u0439 \u043d\u0430\u0431\u043e\u0440 \u043c\u0435\u0442\u0440\u0438\u043a, \u0441\u043d\u044f\u0442\u044b\u0439 \u0432 \u0442\u043e\u0439 \u0436\u0435 \u0448\u043a\u0430\u043b\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u0441 \u0442\u043e\u0439 \u0436\u0435 \u043c\u0435\u0442\u043a\u043e\u0439 \u043f\u0440\u043e\u0433\u043e\u043d\u0430:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<th>\n<p>\u041a\u043b\u0438\u0435\u043d\u0442 (xk6-sip) \u0432\u0438\u0434\u0438\u0442<\/p>\n<\/th>\n<th>\n<p>\u0427\u0442\u043e \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0410\u0422\u0421<\/p>\n<\/th>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041f\u0435\u0440\u0432\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 INVITE \u0440\u0430\u0441\u0442\u0451\u0442 \u043a 500 \u043c\u0441, \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0440\u0435\u0442\u0440\u0430\u043d\u0441\u043c\u0438\u0441\u0441\u0438\u0438<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041e\u0447\u0435\u0440\u0435\u0434\u044c \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 SIP-\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0438 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439, \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043f\u043e\u0442\u043e\u043a\u043e\u0432 SIP-\u0441\u0442\u0435\u043a\u0430, \u043f\u043e\u0442\u0435\u0440\u0438 UDP \u0432 \u0431\u0443\u0444\u0435\u0440\u0435 \u0441\u043e\u043a\u0435\u0442\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Setup p99 \u0440\u0430\u0441\u0442\u0451\u0442 \u043f\u0440\u0438 \u0440\u043e\u0432\u043d\u043e\u043c p50<\/p>\n<\/td>\n<td>\n<p align=\"left\">CPU \u043f\u043e \u044f\u0434\u0440\u0430\u043c, \u0432\u0440\u0435\u043c\u044f \u043e\u0442\u0432\u0435\u0442\u0430 \u0411\u0414 \u0438 \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438, \u043f\u0430\u0443\u0437\u044b GC<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0417\u0432\u043e\u043d\u043a\u043e\u0432 \u0432 \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u0435 \u043c\u0435\u043d\u044c\u0448\u0435, \u0447\u0435\u043c answered \u2212 ended<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0427\u0438\u0441\u043b\u043e \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u043a\u0430\u043d\u0430\u043b\u043e\u0432 \u0438 \u0434\u0438\u0430\u043b\u043e\u0433\u043e\u0432, \u043b\u0438\u043c\u0438\u0442\u044b \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0439 \u0438 \u0442\u0440\u0430\u043d\u043a\u043e\u0432<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">One-way audio \u043f\u0440\u0438 \u0437\u0435\u043b\u0451\u043d\u043e\u043c ASR<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0435\u0441\u0441\u0438\u0438 \u0438 \u043f\u043e\u0440\u0442\u044b RTP-\u043f\u0440\u043e\u043a\u0441\u0438 \u0438\u043b\u0438 \u043c\u0435\u0434\u0438\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u0430, NAT, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0440\u0430\u043d\u0441\u043a\u043e\u0434\u0438\u043d\u0433\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u0420\u0430\u0441\u0442\u0451\u0442 \u0434\u043e\u043b\u044f <code>remote<\/code> \u0441\u0440\u0435\u0434\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0432\u0448\u0438\u0445<\/p>\n<\/td>\n<td>\n<p align=\"left\">Session timers, \u0442\u0430\u0439\u043c\u0430\u0443\u0442\u044b RTP \u043d\u0430 \u043c\u0435\u0434\u0438\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u0435, \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u044b \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">503 \u0438 480 \u043f\u043e\u0434 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0421\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0449\u0438\u0442\u044b \u043e\u0442 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0438, \u043f\u0440\u0435\u0434\u0435\u043b\u044b \u043f\u0443\u043b\u0430 \u043a\u0430\u043d\u0430\u043b\u043e\u0432, CPS-\u043b\u0438\u043c\u0438\u0442\u0435\u0440\u044b<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041f\u0440\u0430\u0432\u0438\u043b\u043e \u043e\u0434\u043d\u043e: \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0430\u044f \u043c\u0435\u0442\u0440\u0438\u043a\u0430 \u0433\u043e\u0432\u043e\u0440\u0438\u0442, <em>\u0447\u0442\u043e<\/em> \u0438 <em>\u043a\u043e\u0433\u0434\u0430<\/em> \u0441\u043b\u043e\u043c\u0430\u043b\u043e\u0441\u044c, \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u0430\u044f \u2014 <em>\u043f\u043e\u0447\u0435\u043c\u0443<\/em>. \u0415\u0441\u043b\u0438 \u043e\u0431\u0430 \u043d\u0430\u0431\u043e\u0440\u0430 \u043b\u0435\u0436\u0430\u0442 \u0432 \u043e\u0434\u043d\u043e\u043c Prometheus \u0441 \u043e\u0431\u0449\u0438\u043c <code>testid<\/code> \u0438 <code>pbx_version<\/code>, \u043f\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u043a\u043b\u0438\u043a\u0443 \u0432\u0438\u0434\u043d\u043e, \u043a\u0430\u043a\u043e\u0439 \u0440\u0435\u0441\u0443\u0440\u0441 \u0410\u0422\u0421 \u0443\u043f\u0451\u0440\u0441\u044f \u0432 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442, \u043a\u043e\u0433\u0434\u0430 \u043d\u0430 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0435 \u043f\u043e\u043f\u043b\u044b\u043b\u0430 \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f, \u2014 \u0438 \u0451\u043c\u043a\u043e\u0441\u0442\u044c \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0441\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u043a\u0430\u043a \u00ab\u0434\u0435\u0440\u0436\u0438\u0442 30 CAPS\u00bb, \u0430 \u043a\u0430\u043a \u00ab\u0434\u0435\u0440\u0436\u0438\u0442 30 CAPS, \u0443\u043f\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0432 CPU SIP-\u0441\u0442\u0435\u043a\u0430\u00bb.<\/p>\n<p>\u0421\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u0439 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0441\u0438\u043b\u044c\u043d\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0410\u0422\u0421 (Asterisk, FreeSWITCH, Kamailio\/OpenSIPS, \u043f\u0440\u043e\u043f\u0440\u0438\u0435\u0442\u0430\u0440\u043d\u044b\u0435 B2BUA), \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u0434\u0435\u0441\u044c \u043e\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0447\u0435\u0440\u0447\u0435\u043d. \u0415\u0441\u043b\u0438 \u0432\u044b \u0441\u0442\u0440\u043e\u0438\u0442\u0435 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0432\u043e\u0435\u0439 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0438\u0438 \u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u0432\u044f\u0437\u0430\u0442\u044c \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0441 \u043c\u0435\u0442\u0440\u0438\u043a\u0430\u043c\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0432 \u043e\u0434\u0438\u043d \u0434\u0430\u0448\u0431\u043e\u0440\u0434 \u2014 \u043f\u0438\u0448\u0438\u0442\u0435, \u044d\u0442\u043e \u043a\u0430\u043a \u0440\u0430\u0437 \u0442\u043e, \u0447\u0435\u043c \u044f \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c.<\/p>\n<h3>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0448\u0430\u0433<\/h3>\n<p>\u0417\u0430\u043a\u0440\u044b\u0442\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0441 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0447\u0438\u0441\u043b\u043e\u043c VU \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u044c \u043d\u0430 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0435, \u043d\u043e \u043d\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0442\u043e\u043b\u043e\u043a. \u041f\u043e \u0437\u0430\u043a\u043e\u043d\u0443 \u041b\u0438\u0442\u0442\u043b\u0430 \u043f\u0440\u0438 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c L = 100 \u0440\u043e\u0441\u0442 W \u0441\u0430\u043c \u0441\u043d\u0438\u0436\u0430\u0435\u0442 \u03bb: \u0435\u0441\u043b\u0438 \u0410\u0422\u0421 \u043d\u0430\u0447\u043d\u0451\u0442 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u043d\u0430 INVITE \u0437\u0430 2 \u0441 \u0432\u043c\u0435\u0441\u0442\u043e 3 \u043c\u0441, VU \u0434\u043e\u043b\u044c\u0448\u0435 \u0436\u0434\u0443\u0442, \u0438 CAPS \u043f\u0430\u0434\u0430\u0435\u0442 \u2014 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u043f\u043e\u0434\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c SUT. ASR \u0438 SEER \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043c\u043e\u0433\u0443\u0442 \u043e\u0441\u0442\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0437\u0435\u043b\u0451\u043d\u044b\u043c\u0438: \u0437\u0432\u043e\u043d\u043a\u043e\u0432 \u043c\u0435\u043d\u044c\u0448\u0435, \u043d\u043e \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442 \u0432\u0441\u0435.<\/p>\n<p>\u0422\u0430 \u0436\u0435 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0438\u0441\u043a\u0430\u0436\u0430\u0435\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0430. \u041f\u043e\u043a\u0430 VU \u0436\u0434\u0451\u0442 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0439 \u0437\u0432\u043e\u043d\u043e\u043a, \u043e\u043d \u043d\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439, \u0438 \u0437\u0432\u043e\u043d\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u0448\u043b\u0438\u0441\u044c \u0431\u044b \u043d\u0430 \u0445\u0443\u0434\u0448\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442, \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u0441\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u0438 \u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u0432 \u043f\u0435\u0440\u0446\u0435\u043d\u0442\u0438\u043b\u0438. \u042d\u0442\u043e coordinated omission: p99 \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u043b\u0443\u0447\u0448\u0435, \u0447\u0435\u043c \u0443\u0432\u0438\u0434\u0435\u043b\u0438 \u0431\u044b \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0430\u0431\u043e\u043d\u0435\u043d\u0442\u044b, \u2014 \u043e\u043d\u0438 \u0434\u0440\u0443\u0433 \u0434\u0440\u0443\u0433\u0430 \u043d\u0435 \u0436\u0434\u0443\u0442. \u041d\u0430 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0435 \u044d\u0442\u043e \u0432\u0438\u0434\u043d\u043e \u043a\u0430\u043a \u043f\u0440\u043e\u0441\u0430\u0434\u043a\u0430 CAPS \u043f\u0440\u0438 \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u043d\u043e\u043c \u0447\u0438\u0441\u043b\u0435 VU \u0438 calls in progress, \u0440\u0430\u0432\u043d\u043e\u043c \u0447\u0438\u0441\u043b\u0443 VU.<\/p>\n<p>\u0414\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043d\u0443\u0436\u043d\u0430 \u043e\u0442\u043a\u0440\u044b\u0442\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c: <code>ramping-arrival-rate<\/code> \u0441\u0442\u0443\u043f\u0435\u043d\u044f\u043c\u0438 \u0441 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u043f\u043e \u043f\u043e\u0440\u043e\u0433\u0443 (<code>abortOnFail<\/code>). \u0412 \u043d\u0435\u0439 CAPS \u0437\u0430\u0434\u0430\u0451\u0442 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440, \u0438 \u043f\u0440\u0438 \u0434\u0435\u0433\u0440\u0430\u0434\u0430\u0446\u0438\u0438 SUT \u0440\u0430\u0441\u0442\u0451\u0442 \u043d\u0435 \u043f\u0430\u0443\u0437\u0430, \u0430 \u0447\u0438\u0441\u043b\u043e \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0437\u0432\u043e\u043d\u043a\u043e\u0432 (L = \u03bbW) \u2014 \u043f\u043e\u043a\u0430 \u043d\u0435 \u043a\u043e\u043d\u0447\u0430\u0442\u0441\u044f <code>preAllocatedVUs<\/code> (dropped iterations) \u0438\u043b\u0438 \u043a\u0430\u043d\u0430\u043b\u044b \u0410\u0422\u0421. \u0418\u043c\u0435\u043d\u043d\u043e \u0432 \u0442\u0430\u043a\u043e\u043c \u043f\u0440\u043e\u0433\u043e\u043d\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u043f\u0430\u043d\u0435\u043b\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0434\u0435\u0441\u044c \u043e\u0441\u0442\u0430\u043b\u0438\u0441\u044c \u043f\u0443\u0441\u0442\u044b\u043c\u0438: \u043a\u043e\u0434\u044b \u043e\u0442\u043a\u0430\u0437\u043e\u0432, \u043f\u0435\u0440\u0432\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u0443 T1, \u0440\u0435\u0442\u0440\u0430\u043d\u0441\u043c\u0438\u0441\u0441\u0438\u0438, \u043f\u0430\u0434\u0435\u043d\u0438\u0435 SEER \u0438 ALOC.<\/p>\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\/1087004\/\">https:\/\/habr.com\/ru\/articles\/1087004\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0420\u0430\u0437\u0431\u0435\u0440\u0451\u043c, \u043a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u0430 observability \u0432 xk6-sip \u2014 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 k6, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0435 \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 VoIP\/SIP-\u0437\u0432\u043e\u043d\u043a\u043e\u0432: \u043e\u0442\u043a\u0443\u0434\u0430 \u0431\u0435\u0440\u0443\u0442\u0441\u044f \u043c\u0435\u0442\u0440\u0438\u043a\u0438, \u043a\u0430\u043a \u0438\u0437 \u043d\u0438\u0445 \u0441\u0442\u0440\u043e\u044f\u0442\u0441\u044f \u043f\u0430\u043d\u0435\u043b\u0438 \u0438 \u043a\u0430\u043a \u043f\u043e \u043d\u0438\u043c \u043e\u0442\u043b\u0438\u0447\u0438\u0442\u044c \u0434\u0435\u0433\u0440\u0430\u0434\u0430\u0446\u0438\u044e \u0410\u0422\u0421 \u043e\u0442 \u0434\u0435\u0433\u0440\u0430\u0434\u0430\u0446\u0438\u0438 \u0441\u0430\u043c\u043e\u0433\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430.\u0412\u0441\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0438 \u0446\u0438\u0444\u0440\u044b \u043e\u0442 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u043e\u043d\u0430 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0430: 100 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0437\u0432\u043e\u043d\u043a\u043e\u0432, 10 \u043c\u0438\u043d\u0443\u0442, 2000 \u0437\u0432\u043e\u043d\u043a\u043e\u0432, 6,1 \u043c\u043b\u043d RTP-\u043f\u0430\u043a\u0435\u0442\u043e\u0432. \u0414\u0430\u0448\u0431\u043e\u0440\u0434 \u2014 37 \u043f\u0430\u043d\u0435\u043b\u0435\u0439 \u0432 \u0448\u0435\u0441\u0442\u0438 \u0431\u043b\u043e\u043a\u0430\u0445; \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0431\u043b\u043e\u043a\u0430 \u043d\u0438\u0436\u0435 \u0435\u0441\u0442\u044c \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0434\u0430\u043d\u043d\u044b\u0445, \u0437\u0430\u043f\u0440\u043e\u0441, \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b.\u0413\u0440\u0430\u043d\u0438\u0446\u044b \u0441\u0442\u0430\u0442\u044c\u0438. \u0412\u0441\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043d\u0438\u0436\u0435 \u2014 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435: \u0438\u0445 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 xk6-sip \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0442\u0440\u0430\u0444\u0438\u043a\u0430, \u0438 \u043e\u043d\u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0410\u0422\u0421 \u0442\u0430\u043a, \u043a\u0430\u043a \u0435\u0451 \u0432\u0438\u0434\u044f\u0442 \u0430\u0431\u043e\u043d\u0435\u043d\u0442\u044b, \u043f\u043b\u044e\u0441 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u0430\u043c\u043e\u0433\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430. \u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b \u2014 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0410\u0422\u0421, \u0435\u0451 SIP-\u0441\u0442\u0435\u043a\u0430, \u043c\u0435\u0434\u0438\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u2014 \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0435 \u0437\u0430\u0442\u0440\u0430\u0433\u0438\u0432\u0430\u0435\u0442. \u041a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0442 \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441 \u00ab\u0447\u0442\u043e \u0441\u043b\u043e\u043c\u0430\u043b\u043e\u0441\u044c \u0438 \u043a\u043e\u0433\u0434\u0430\u00bb; \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441 \u00ab\u043f\u043e\u0447\u0435\u043c\u0443\u00bb \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430, \u043e \u043d\u0435\u0439 \u2014 \u0432 \u043a\u043e\u043d\u0446\u0435.\u041f\u0440\u043e\u0444\u0438\u043b\u044c \u0438 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u041f\u0440\u043e\u0433\u043e\u043d \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0434\u0432\u0443\u043c\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438. \u041f\u0435\u0440\u0432\u0430\u044f \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u0442 \u0442\u0435\u0441\u0442\u043e\u0432\u0443\u044e \u0410\u0422\u0421 testpbx \u043d\u0430 loopback \u0438 \u0437\u0430\u0432\u043e\u0434\u0438\u0442 \u0432 \u043d\u0435\u0439 200 \u0430\u0431\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0438\u0437 CSV. \u0412\u0442\u043e\u0440\u0430\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 k6 \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c xk6-sip: \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0443\u0445\u043e\u0434\u044f\u0442 \u0432 Prometheus \u0447\u0435\u0440\u0435\u0437 remote write, \u0430 \u0442\u0435\u0433\u0438 testid \u0438 pbx_version \u043f\u043e\u043c\u0435\u0447\u0430\u044e\u0442 \u043f\u0440\u043e\u0433\u043e\u043d, \u0447\u0442\u043e\u0431\u044b \u0434\u0430\u0448\u0431\u043e\u0440\u0434 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0433\u043e. \u0427\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0434\u0435\u043b\u0430\u0435\u0442 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u0438 \u043d\u0430 \u043a\u0430\u043a\u043e\u043c \u0441\u0442\u0435\u043d\u0434\u0435 \u043e\u043d \u0448\u0451\u043b \u2014 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043f\u043e\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438.testpbx -addr 127.0.0.1:5070 -users 200 -csv examples\/subscribers.csvK6_PROMETHEUS_RW_SERVER_URL=http:\/\/localhost:9091\/api\/v1\/write \\K6_FEATURES=native-histograms \\k6 run -o experimental-prometheus-rw \\  &#8212;tag testid=load-100x10m-2 &#8212;tag pbx_version=testpbx-0.4 \\  -e VUS=100 -e HOLD=30 -e DURATION=10m \\  -e SIP_METRICS_ADDR=127.0.0.1:6566 examples\/call.js\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439A \u2192 B, \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0410\u041e\u041d, isHeard() \u0432 \u043e\u0431\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440 30 \u0441 + U(0, 1) \u0441, BYE \u043e\u0442 B\u0418\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044cconstant-vus, 100 VU; \u043e\u0434\u0438\u043d VU \u2014 \u0434\u0432\u0430 \u0430\u0431\u043e\u043d\u0435\u043d\u0442\u0430 \u0438 \u043e\u0434\u0438\u043d \u0437\u0432\u043e\u043d\u043e\u043a \u0437\u0430 \u0440\u0430\u0437\u0410\u0431\u043e\u043d\u0435\u043d\u0442\u044b200, digest-\u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u043d\u0430 REGISTER (401) \u0438 INVITE (407), Expires 300 \u0441\u041c\u0435\u0434\u0438\u0430G.711 \u03bc-law, 20 \u043c\u0441, 50 pps \u043d\u0430 \u043f\u043b\u0435\u0447\u043eSUTtestpbx (\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 + B2BUA) \u043d\u0430 \u0442\u043e\u043c \u0436\u0435 \u0445\u043e\u0441\u0442\u0435, loopback\u0413\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440Windows 11, 16 \u0413\u0411 RAM, \u0431\u0435\u0437 \u0438\u0437\u043e\u043b\u044f\u0446\u0438\u0438 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u043a\u041f\u0435\u0440\u0435\u0434 \u0447\u0442\u0435\u043d\u0438\u0435\u043c \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430 \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u041f\u043e \u0437\u0430\u043a\u043e\u043d\u0443 \u041b\u0438\u0442\u0442\u043b\u0430 L = \u03bbW: \u043f\u0440\u0438 L = 100 \u0438 W \u2248 31 \u0441 (\u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440 + \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 + \u043f\u0430\u0443\u0437\u0430 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438) \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u03bb \u2248 3,2 CAPS \u0438 \u2248 1930 \u0437\u0432\u043e\u043d\u043a\u043e\u0432 \u0437\u0430 10 \u043c\u0438\u043d\u0443\u0442. RTP: 100 \u00d7 2 \u043f\u043b\u0435\u0447\u0430 \u00d7 50 pps = 10 000 pps, \u043f\u0440\u0438 172 \u0431\u0430\u0439\u0442\u0430\u0445 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 UDP (12 \u0431\u0430\u0439\u0442 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a RTP + 160 \u0431\u0430\u0439\u0442 G.711) \u044d\u0442\u043e 1,72 \u041c\u0411\/\u0441 \u0432 \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443. \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438: 200 \u043d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435 + \u0434\u0432\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0437\u0430 10 \u043c\u0438\u043d\u0443\u0442 = 600.\u0415\u0441\u043b\u0438 \u0434\u0430\u0448\u0431\u043e\u0440\u0434 \u043d\u0430 \u0447\u0438\u0441\u0442\u043e\u043c \u043f\u0440\u043e\u0433\u043e\u043d\u0435 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u044d\u0442\u0438 \u0447\u0438\u0441\u043b\u0430, \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440 \u043c\u0435\u0442\u0440\u0438\u043a \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0435\u043d, \u0438 \u0435\u0433\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0438\u044f\u043c \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0432 \u043f\u0440\u043e\u0433\u043e\u043d\u0435 \u0441 \u0434\u0435\u0433\u0440\u0430\u0434\u0430\u0446\u0438\u0435\u0439.\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0441\u0431\u043e\u0440\u0430 \u043c\u0435\u0442\u0440\u0438\u043a\u0422\u0440\u0438 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u0440\u0430\u0437\u043d\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u044c\u044e \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438. \u0420\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0438\u0430\u043b\u044c\u043d\u043e\u0435: \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0442\u0435\u0441\u0442\u0430 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 SUT \u0433\u043b\u0430\u0437\u0430\u043c\u0438 \u0430\u0431\u043e\u043d\u0435\u043d\u0442\u0430, \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0438 \u0445\u043e\u0441\u0442\u0430 \u2014 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430. \u0411\u0435\u0437 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0438 \u0442\u0440\u0435\u0442\u044c\u0435\u0433\u043e \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0434\u0436\u0438\u0442\u0442\u0435\u0440 \u043e\u0442 \u0433\u043e\u043b\u043e\u0434\u0430\u044e\u0449\u0435\u0433\u043e \u043f\u043e CPU \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u043d\u0435\u043e\u0442\u043b\u0438\u0447\u0438\u043c \u043e\u0442 \u0434\u0436\u0438\u0442\u0442\u0435\u0440\u0430 \u0410\u0422\u0421.\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u041c\u043e\u0434\u0435\u043b\u044c\u0427\u0442\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u041c\u0435\u0442\u0440\u0438\u043a\u0438 \u0442\u0435\u0441\u0442\u0430push, remote writesip_*, rtp_* \u0441 \u0442\u0435\u0433\u0430\u043c\u0438 testid, pbx_version, scenario-o experimental-prometheus-rw\u041f\u0440\u043e\u0446\u0435\u0441\u0441 k6pull, \/metricsprocess_*, go_*, xk6sip_network_*, xk6sip_calls_in_progresssip.options({ metricsAddr })\u0425\u043e\u0441\u0442 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u0430pullCPU, \u043f\u0430\u043c\u044f\u0442\u044c, \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044bwindows_exporter \/ node-exporter\u041c\u0435\u0442\u0440\u0438\u043a\u0438 \u0442\u0435\u0441\u0442\u0430 \u0438\u0434\u0443\u0442 \u043f\u043e push: \u0442\u0435\u0441\u0442 \u0436\u0438\u0432\u0451\u0442 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u0438 pull-\u043c\u043e\u0434\u0435\u043b\u044c \u043f\u043e\u0442\u0435\u0440\u044f\u043b\u0430 \u0431\u044b \u0445\u0432\u043e\u0441\u0442 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e scrape. \u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0438 \u0445\u043e\u0441\u0442 \u2014 \u0434\u043e\u043b\u0433\u043e\u0436\u0438\u0432\u0443\u0449\u0438\u0435 \u0446\u0435\u043b\u0438, \u0434\u043b\u044f \u043d\u0438\u0445 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 scrape \u0440\u0430\u0437 \u0432 5 \u0441. \u041c\u0435\u0442\u0440\u0438\u043a\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0438 \u0445\u043e\u0441\u0442\u0430 \u043d\u0435 \u043d\u0435\u0441\u0443\u0442 testid, \u043a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u044f \u0441 \u043f\u0440\u043e\u0433\u043e\u043d\u043e\u043c \u2014 \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438.\u041f\u043e\u0447\u0435\u043c\u0443 native histograms \u0438 \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0438\u041f\u0440\u0438 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0435 \u0432 Prometheus k6 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043e\u0442\u0434\u0430\u0451\u0442 \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u043f\u0435\u0440\u0446\u0435\u043d\u0442\u0438\u043b\u0438 trend-\u043c\u0435\u0442\u0440\u0438\u043a \u0438 \u0434\u043e\u043b\u0438 rate-\u043c\u0435\u0442\u0440\u0438\u043a, \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u043d\u044b\u0435 \u0441 \u043d\u0430\u0447\u0430\u043b\u0430 \u0442\u0435\u0441\u0442\u0430. \u0418\u0437 \u043d\u0438\u0445 \u043d\u0435\u043b\u044c\u0437\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0437\u0430 \u043e\u043a\u043d\u043e: 10 \u043c\u0438\u043d\u0443\u0442 \u0434\u0435\u0433\u0440\u0430\u0434\u0430\u0446\u0438\u0438 \u043f\u043e\u0441\u043b\u0435 \u0447\u0430\u0441\u0430 \u043d\u043e\u0440\u043c\u044b \u043f\u043e\u0447\u0442\u0438 \u043d\u0435 \u0441\u0434\u0432\u0438\u0433\u0430\u044e\u0442 \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u043d\u044b\u0439 p95. \u041f\u043e\u044d\u0442\u043e\u043c\u0443:\u0412\u0440\u0435\u043c\u0435\u043d\u0430 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043a\u0430\u043a native histograms (K6_FEATURES=native-histograms) \u0438 \u0441\u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \u0437\u0430 \u0441\u043a\u043e\u043b\u044c\u0437\u044f\u0449\u0435\u0435 \u043e\u043a\u043d\u043e:histogram_quantile(0.95, sum(rate(k6_sip_call_setup_time_seconds{testid=~&#187;$testid&#187;}[$window])))Native histogram \u2014 \u043e\u0434\u0438\u043d \u0440\u044f\u0434 \u043d\u0430 \u043a\u043e\u043c\u0431\u0438\u043d\u0430\u0446\u0438\u044e \u043c\u0435\u0442\u043e\u043a \u0441 \u044d\u043a\u0441\u043f\u043e\u043d\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0431\u0430\u043a\u0435\u0442\u0430\u043c\u0438: \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u043d\u0435 \u043f\u043e\u0434\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0437\u0430\u0440\u0430\u043d\u0435\u0435, \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u0434\u0430\u043d\u043d\u044b\u0435, \u0438 \u0434\u0435\u0433\u0440\u0430\u0434\u0430\u0446\u0438\u044f \u0434\u043e \u0441\u0435\u043a\u0443\u043d\u0434 \u043d\u0435 \u0443\u043f\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0431\u0430\u043a\u0435\u0442, \u043a\u0430\u043a \u0443 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0441 le. \u0418\u0437 \u043d\u0435\u0451 rate() + histogram_quantile() \u0434\u0430\u044e\u0442 \u043f\u0435\u0440\u0446\u0435\u043d\u0442\u0438\u043b\u044c \u0437\u0430 \u043b\u044e\u0431\u043e\u0435 \u043e\u043a\u043d\u043e, \u0430 \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0441\u0443\u043c\u043c\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u2014 \u0433\u043e\u0442\u043e\u0432\u044b\u0435 p95 \u0440\u0430\u0437\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u043e\u0432 k6 \u0441\u043b\u043e\u0436\u0438\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f. \u0412\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0449\u0430\u044f\u0441\u044f \u0432 \u0441\u0442\u0430\u0440\u044b\u0445 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f K6_PROMETHEUS_RW_TREND_AS_NATIVE_HISTOGRAM \u0432 k6 v2 \u0443\u0441\u0442\u0430\u0440\u0435\u043b\u0430, \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0433\u0438\u0441\u0442\u043e\u0433\u0440\u0430\u043c\u043c\u044b K6_FEATURES=native-histograms. Prometheus 3.x \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0438\u0445 \u0441 \u0444\u043b\u0430\u0433\u0430\u043c\u0438 &#8212;web.enable-remote-write-receiver \u0438 &#8212;enable-feature=native-histograms; \u0431\u0435\u0437 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0434\u0430\u0448\u0431\u043e\u0440\u0434 \u043f\u043e\u043a\u0430\u0436\u0435\u0442 \u043f\u0443\u0441\u0442\u044b\u0435 \u043f\u0430\u043d\u0435\u043b\u0438 \u0432\u0440\u0435\u043c\u0451\u043d.\u0414\u043e\u043b\u0438 \u0441\u0442\u0440\u043e\u044f\u0442\u0441\u044f \u043f\u043e \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0430\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f: sip_call_results{result, status}, sip_calls{phase}, rtp_legs{heard}. Rate-\u043c\u0435\u0442\u0440\u0438\u043a\u0438 sip_call_success \u0438 rtp_audio_heard \u043e\u0441\u0442\u0430\u044e\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u043e\u0440\u043e\u0433\u043e\u0432 \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0435 \u0438 \u0438\u0442\u043e\u0433\u043e\u0432\u043e\u0433\u043e \u043e\u0442\u0447\u0451\u0442\u0430.\u0418\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435: remote write \u0432 k6 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0447\u0451\u0442\u0447\u0438\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438. \u0414\u043b\u044f \u0441\u0435\u0440\u0438\u0439 \u0441 \u0440\u0435\u0434\u043a\u0438\u043c\u0438 \u0432\u0441\u043f\u043b\u0435\u0441\u043a\u0430\u043c\u0438 (REGISTER \u043d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435 \u0438 \u043f\u0440\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438) \u043d\u0430 \u043e\u043a\u043d\u043e \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u043e\u0434\u043d\u0430 \u0442\u043e\u0447\u043a\u0430, \u0438 rate() \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043f\u0443\u0441\u0442\u043e\u0442\u0443. \u0422\u0430\u043a\u0438\u0435 \u043f\u0430\u043d\u0435\u043b\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u043d\u0430 \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u0445.\u041d\u0438\u0436\u0435 \u2014 \u0441\u043d\u0438\u043c\u043a\u0438 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430 \u0437\u0430 \u043e\u043a\u043d\u043e \u043f\u0440\u043e\u0433\u043e\u043d\u0430 15:19\u201315:30, $window = 1 \u043c\u0438\u043d\u0443\u0442\u0430.\u041e\u0431\u0437\u043e\u0440: 12 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u0432\u0412\u043e \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u043e\u0433\u043e\u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u0441\u043c\u043e\u0442\u0440\u044f\u0442 \u043d\u0430 12 \u043f\u043b\u0438\u0442\u043e\u043a \u0432\u0435\u0440\u0445\u043d\u0435\u0433\u043e \u0431\u043b\u043e\u043a\u0430. \u041a\u0430\u0436\u0434\u0430\u044f \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u043d\u0430 \u043e\u0434\u0438\u043d \u0432\u043e\u043f\u0440\u043e\u0441: \u0438\u0434\u0451\u0442 \u043b\u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043a\u0430\u043a \u0437\u0430\u0434\u0443\u043c\u0430\u043d\u043e, \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442 \u043b\u0438 \u0437\u0432\u043e\u043d\u043a\u0438, \u0441\u043b\u044b\u0448\u0435\u043d \u043b\u0438 \u0433\u043e\u043b\u043e\u0441, \u0443\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043b\u0438 \u0410\u0422\u0421 \u0432 SLA. \u0415\u0441\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442 \u0441 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u043c\u0438 \u0438\u0437 \u0440\u0430\u0437\u0434\u0435\u043b\u0430 \u0432\u044b\u0448\u0435, \u0432 \u043d\u0438\u0436\u043d\u0438\u0435 \u0431\u043b\u043e\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u0441\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f; \u0435\u0441\u043b\u0438 \u043a\u0430\u043a\u0430\u044f-\u0442\u043e \u043f\u043b\u0438\u0442\u043a\u0430 \u043e\u0442\u043a\u043b\u043e\u043d\u0438\u043b\u0430\u0441\u044c, \u043e\u043d\u0430 \u043f\u043e\u0434\u0441\u043a\u0430\u0436\u0435\u0442, \u043a\u0443\u0434\u0430 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435 \u2014 \u0432 \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e, \u043c\u0435\u0434\u0438\u0430 \u0438\u043b\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440. \u0412 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043d\u0438\u0436\u0435 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u2014 \u043a\u0430\u043a \u043e\u043d \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u0438 \u0447\u0442\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0433\u043e\u043d.\u0412\u0435\u0440\u0445\u043d\u0438\u0439 \u0431\u043b\u043e\u043a \u2014 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0440\u0430\u043d\u043d\u0435\u0433\u043e \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f. \u0412\u0441\u0435 \u0434\u043e\u043b\u0438 \u0438 \u043f\u0435\u0440\u0446\u0435\u043d\u0442\u0438\u043b\u0438 \u0441\u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \u0437\u0430 $window \u2014 \u044d\u0442\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430 Grafana, \u0434\u043b\u0438\u043d\u0430 \u0441\u043a\u043e\u043b\u044c\u0437\u044f\u0449\u0435\u0433\u043e \u043e\u043a\u043d\u0430 (\u0432 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0433\u043e\u043d\u0435 1 \u043c\u0438\u043d\u0443\u0442\u0430), \u0430 \u043d\u0435 \u0432\u0435\u0441\u044c \u0442\u0435\u0441\u0442. \u0422\u043e \u0435\u0441\u0442\u044c \u043a\u0430\u0436\u0434\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u043d\u0430 \u043f\u0430\u043d\u0435\u043b\u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u043c\u0438\u043d\u0443\u0442\u0443: CAPS \u2014 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u043e\u0441\u044c \u0437\u0430 \u044d\u0442\u0443 \u043c\u0438\u043d\u0443\u0442\u0443, p95 \u2014 \u043f\u043e \u0437\u0432\u043e\u043d\u043a\u0430\u043c \u044d\u0442\u043e\u0439 \u043c\u0438\u043d\u0443\u0442\u044b.\u0418\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u0427\u0442\u043e \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u041f\u0440\u043e\u0433\u043e\u043dCAPS\u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0432\u043e\u043d\u043a\u043e\u0432 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442\u0441\u044f \u2014 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0438\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438sum(rate(k6_sip_call_results_total[$window]))3,1 (1,8\u20134,9)Calls in progress\u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u043e\u0432 \u0438\u0434\u0451\u0442 \u043f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441sip_calls{phase=&#187;answered&#187;} \u2212 sip_calls{phase=&#187;ended&#187;}100ASR\u0414\u043e\u043b\u044f \u0437\u0432\u043e\u043d\u043a\u043e\u0432, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0442\u0432\u0435\u0442\u0438\u043b\u0438answered \/ \u0432\u0441\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0438100%SEER (RFC 6076)\u0414\u043e\u043b\u044f \u0437\u0432\u043e\u043d\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0410\u0422\u0421 \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u0431\u0435\u0437 \u0441\u0431\u043e\u044f: \u00ab\u0437\u0430\u043d\u044f\u0442\u043e\u00bb, \u00ab\u043d\u0435 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442\u00bb \u0438 \u043e\u0442\u043a\u0430\u0437 \u0430\u0431\u043e\u043d\u0435\u043d\u0442\u0430 \u0442\u043e\u0436\u0435 \u0441\u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \u0443\u0441\u043f\u0435\u0445\u043e\u043c \u0441\u0435\u0442\u0438(200 + 480 + 486 + 600 + 603) \/ \u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u0431\u0435\u0437 3xx100%One-way audio\u0414\u043e\u043b\u044f \u0441\u0442\u043e\u0440\u043e\u043d \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u0430, \u0434\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435 \u0434\u043e\u0448\u0451\u043b \u0433\u043e\u043b\u043e\u0441 \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043d\u0438\u043a\u0430rtp_legs{heard=&#187;false&#187;} \/ rtp_legs0%Dropped iterations\u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0437\u0432\u043e\u043d\u043a\u043e\u0432 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u043d\u0435 \u0443\u0441\u043f\u0435\u043b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044ck6_dropped_iterations_total0Setup time p95\u0417\u0430 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0435\u0442\u0441\u044f \u0437\u0432\u043e\u043d\u043e\u043a \u2014 \u043e\u0442 \u043d\u0430\u0431\u043e\u0440\u0430 \u0434\u043e \u043e\u0442\u0432\u0435\u0442\u0430 \u0430\u0431\u043e\u043d\u0435\u043d\u0442\u0430; 95% \u0437\u0432\u043e\u043d\u043a\u043e\u0432 \u0443\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044fINVITE \u2192 \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u04422,9 \u043c\u0441Setup within SLA\u0414\u043e\u043b\u044f \u0437\u0432\u043e\u043d\u043a\u043e\u0432, \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0432\u0448\u0438\u0445\u0441\u044f \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u043f\u043e\u0440\u043e\u0433\u0430 SLAhistogram_fraction(0, $sla_setup, \u2026)100% \u043f\u0440\u0438 SLA 300 \u043c\u0441PDD within SLA\u0414\u043e\u043b\u044f \u0437\u0432\u043e\u043d\u043a\u043e\u0432, \u0433\u0434\u0435 \u043f\u0430\u0443\u0437\u0430 \u043c\u0435\u0436\u0434\u0443 \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u043d\u043e\u043c\u0435\u0440\u0430 \u0438 \u0437\u0432\u043e\u043d\u043a\u043e\u043c \u0443 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u043e\u0433\u043e (post-dial delay) \u043a\u043e\u0440\u043e\u0447\u0435 \u043f\u043e\u0440\u043e\u0433\u0430 SLAhistogram_fraction(0, $sla_pdd, \u2026)100% \u043f\u0440\u0438 SLA 2 \u0441ALOC\u0421\u0440\u0435\u0434\u043d\u044f\u044f \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u0430histogram_sum \/ histogram_count \u043f\u043e sip_call_duration30,6 \u0441First response p95\u041a\u0430\u043a \u0431\u044b\u0441\u0442\u0440\u043e \u0410\u0422\u0421 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442, \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430 \u0437\u0432\u043e\u043d\u043e\u043a; 95% \u0437\u0432\u043e\u043d\u043a\u043e\u0432 \u0443\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044fINVITE \u2192 \u043f\u0435\u0440\u0432\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u04381,1 \u043c\u0441Retransmissions\u0421\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 SIP \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0410\u0422\u0421 \u043d\u0435 \u043e\u0442\u0432\u0435\u0442\u0438\u043b\u0430 \u0432\u043e\u0432\u0440\u0435\u043c\u044fsum(rate(k6_sip_retransmissions_total[$window]))0ASR \u043f\u0440\u043e\u0442\u0438\u0432 SEER. ASR \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043f\u0440\u043e\u0444\u0438\u043b\u044f \u0442\u0440\u0430\u0444\u0438\u043a\u0430: \u00ab\u0437\u0430\u043d\u044f\u0442\u043e\u00bb \u0438 \u00ab\u043d\u0435 \u043e\u0442\u0432\u0435\u0442\u0438\u043b\u00bb \u0441\u043d\u0438\u0436\u0430\u044e\u0442 \u0435\u0433\u043e \u0431\u0435\u0437 \u0432\u0438\u043d\u044b \u0410\u0422\u0421. SEER \u0438\u0437 RFC 6076 \u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u043e\u0442\u043a\u0430\u0437 \u0430\u0431\u043e\u043d\u0435\u043d\u0442\u0430 \u0443\u0441\u043f\u0435\u0445\u043e\u043c \u0441\u0435\u0442\u0438 \u0438 \u043f\u0430\u0434\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442 404, 5xx \u0438 \u0442\u0430\u0439\u043c\u0430\u0443\u0442\u043e\u0432. \u0412 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0433\u043e\u043d\u0435 \u043e\u0431\u0430 \u043f\u043e 100%. \u041d\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u043e\u043c \u043f\u0440\u043e\u0433\u043e\u043d\u0435 \u0441 5% \u0437\u0432\u043e\u043d\u043a\u043e\u0432 \u043d\u0430 \u043d\u0435\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043d\u043e\u043c\u0435\u0440 \u0438 5% \u00ab\u0437\u0430\u043d\u044f\u0442\u043e\u00bb \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c ASR 84% \u0438 SEER 92%: \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u2014 \u044d\u0442\u043e 486, 404 \u043e\u0441\u0442\u0430\u043b\u0441\u044f \u0432 SEER \u043a\u0430\u043a \u043e\u0442\u043a\u0430\u0437 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438. \u041f\u0430\u0440\u0430 \u00abASR \u043f\u0430\u0434\u0430\u0435\u0442, SEER \u0441\u0442\u043e\u0438\u0442\u00bb \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u043f\u0440\u043e\u0444\u0438\u043b\u044c \u0430\u0431\u043e\u043d\u0435\u043d\u0442\u043e\u0432, \u043f\u0430\u0440\u0430 \u00ab\u043f\u0430\u0434\u0430\u044e\u0442 \u043e\u0431\u0430\u00bb \u2014 \u043d\u0430 \u0410\u0422\u0421.ALOC \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0435 30 + E[U(0,1)] = 30,5 \u0441 (+0,1 \u0441 \u043d\u0430 BYE). \u041f\u0430\u0434\u0435\u043d\u0438\u0435 ALOC \u043f\u0440\u0438 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u2014 \u043f\u0440\u044f\u043c\u043e\u0439 \u043f\u0440\u0438\u0437\u043d\u0430\u043a \u0442\u043e\u0433\u043e, \u0447\u0442\u043e SUT \u0440\u0432\u0451\u0442 \u0441\u0435\u0441\u0441\u0438\u0438 (session timers, \u043b\u0438\u043c\u0438\u0442\u044b \u043a\u0430\u043d\u0430\u043b\u043e\u0432, \u0441\u0431\u043e\u0438 RTP-\u043f\u0440\u043e\u043a\u0441\u0438).CAPS \u0441\u043a\u0430\u0447\u0435\u0442 \u043e\u0442 1,8 \u0434\u043e 4,9 \u043f\u0440\u0438 \u0441\u0440\u0435\u0434\u043d\u0435\u043c 3,1. \u042d\u0442\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u0437\u0430\u043a\u0440\u044b\u0442\u043e\u0439 \u043c\u043e\u0434\u0435\u043b\u0438 constant-vus: 100 VU \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0430\u043b\u0438 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u044e\u0442 \u0437\u0432\u043e\u043d\u043a\u0438 \u0432\u043e\u043b\u043d\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0441\u043f\u043b\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e\u0439 \u0434\u043e\u0431\u0430\u0432\u043a\u043e\u0439 \u043a \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0414\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043d\u0443\u0436\u043d\u0430 \u043e\u0442\u043a\u0440\u044b\u0442\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c (constant-arrival-rate), \u0433\u0434\u0435 CAPS \u0437\u0430\u0434\u0430\u043d \u0438 \u043d\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043e\u0442\u0432\u0435\u0442\u0430 SUT.\u0421\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f\u041f\u0430\u043d\u0435\u043b\u044c\u041c\u0435\u0442\u0440\u0438\u043a\u0430 \u0438 \u0442\u043e\u0447\u043a\u0430 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f\u041f\u0440\u043e\u0433\u043e\u043dCalls per second by final status \/ by classsip_call_results{result, status}, \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 INVITE; \u043a\u043b\u0430\u0441\u0441\u044b \u0447\u0435\u0440\u0435\u0437 label_replace\u0442\u043e\u043b\u044c\u043a\u043e 200Call setup timesip_call_setup_time: \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 INVITE \u2192 200 OK, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0446\u0438\u043a\u043b 407 + \u043f\u043e\u0432\u0442\u043e\u0440 \u0441 credentialsp50 1,9 \/ p95 2,9 \u043c\u0441Post-dial delaysip_post_dial_delay: INVITE \u2192 \u043f\u0435\u0440\u0432\u044b\u0439 18xp95 2,5 \u043c\u0441INVITE routing timesip_invite_delivery_time: \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 INVITE \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c A \u2192 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e\u043c Bp95 1,9 \u043c\u0441INVITE first response timesip_invite_first_response_time: INVITE \u2192 \u043f\u0435\u0440\u0432\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438, \u043f\u043e \u0441\u044d\u043c\u043f\u043b\u0443 \u043d\u0430 \u043a\u0430\u0436\u0434\u0443\u044e \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044e (407 \u0438 100 Trying)p95 1,1 \u043c\u0441SIP retransmissionssip_retransmissions{method, kind, status}0Failed calls by statusincrease(&#8230;[$__range]) \u043f\u043e status\u2014Routing time \u2014 \u043c\u0435\u0442\u0440\u0438\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u043c \u0441 \u0440\u0430\u0437\u043d\u0435\u0441\u0451\u043d\u043d\u044b\u043c\u0438 UAC \u0438 UAS: \u043e\u0431\u0435 \u043e\u0442\u043c\u0435\u0442\u043a\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u043d\u0438\u043c\u0430\u044e\u0442\u0441\u044f \u043e\u0434\u043d\u0438\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u043c, \u0431\u0435\u0437 \u0440\u0430\u0441\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0430 \u0447\u0430\u0441\u043e\u0432. \u042d\u0442\u043e \u0447\u0438\u0441\u0442\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438 SUT.\u041f\u0435\u0440\u0432\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u0438 \u0440\u0435\u0442\u0440\u0430\u043d\u0441\u043c\u0438\u0441\u0441\u0438\u0438\u041f\u043e RFC 3261 (17.1.1.2) \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0430\u044f INVITE-\u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f \u043f\u043e UDP \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u043f\u043e \u0442\u0430\u0439\u043c\u0435\u0440\u0443 A: \u0447\u0435\u0440\u0435\u0437 T1 = 500 \u043c\u0441, \u0437\u0430\u0442\u0435\u043c 1, 2, 4 \u0441 \u2014 \u0434\u043e \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043e\u0442\u0432\u0435\u0442\u0430 \u0438\u043b\u0438 \u0434\u043e \u0442\u0430\u0439\u043c\u0430\u0443\u0442\u0430 B = 64\u00b7T1. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0430\u043d\u0435\u043b\u044c \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043e\u0442\u0432\u0435\u0442\u0430 \u0438\u0434\u0451\u0442 \u0441 \u043f\u043e\u0440\u043e\u0433\u043e\u043c 500&#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-496189","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/496189","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=496189"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/496189\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=496189"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=496189"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=496189"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}