📘 Как читать эту аналитику (памятка) — нажми, чтобы развернуть
- success% по серверу — доля успешных подключений с точки зрения клиента. Низкий у конкретной ноды = проблема ноды/сети до неё, а не приложения. Это ловит кейс «в панели нода зелёная, а люди не подключаются».
- Есть «Подключение к ноде», но нет «Первого байта» → соединение встаёт, но сервер не отвечает данными. Классический признак битой/перегруженной ноды или неверного порта.
- Вероятные причины — это эвристика по тексту ошибки, не диагноз. Группируют «почему»: refused / timeout / unreachable = нода/порт/сеть; tls / mitm = конфиг reality или DPI у пользователя; dns = хост снят с DNS или блокировка резолвера. Всегда сверяйся с полным текстом ошибки (клик по строке).
- Сервер (нода) — это адрес:порт, который клиент реально набирал (из его xray-конфига). Приходит внутри события, поэтому известен даже когда коннект не удался.
- Клик по строке ошибки → полный текст + другие ошибки того же устройства рядом по времени (понять: разовый сбой или шторм у юзера).
- «Сессия завершена» с ненулевым трафиком = юзер реально пользовался VPN. Нулевой downlink = подключился, но данные не пошли.
- Чтобы увидеть «не мог подключиться, а потом смог»: по одному устройству идут dial_error → затем dial_ok/first_byte позже. По серверу это видно как рост success% во времени.
Что означают колонки:
| Термин | Что это |
|---|---|
| OK | Число успешных дозвонов до сервера (TCP-коннект установлен). Количество. |
| Ошибок | Число неудачных дозвонов до сервера. |
| Успех, % | OK / (OK + Ошибок) × 100 — доля удачных попыток. Процент, а не количество. |
| 1-й байт | Сколько раз сервер реально прислал данные (ответил), а не просто принял коннект. |
| avg мс | Среднее время от дозвона до первого байта — как быстро нода отвечает. Меньше = лучше. |
| Сессия | Одно VPN-подключение: коннект → дисконнект (не открытие/закрытие аппа). Длительность и трафик — глобальные (в карточках сверху), не по серверам. |
| Тихий сбой | Сессия, где был успешный дозвон (dial_ok), но 0 полученных байт: коннект встал, а данные не пошли — «подключено, а интернета нет». Отличается от «вообще не подключился» (те тоже с 0 трафика, но без dial_ok — они видны в ошибках). Карточка считает именно «подключился-но-мёртв». |
| Вероятная причина | Догадка по тексту ошибки (эвристика), не диагноз. Сверяйся с полным текстом — клик по строке. |
Серверы (ноды) — успех подключений с точки зрения клиента
| Сервер | Ядро | Дозвон | Доставка | OK | Ошибок | 1-й байт | лучш. мс |
|---|
«Дозвон» = OK/(OK+Ошибок) — соединение установилось. «Доставка» = 1-й байт/OK — через него реально пошли данные; низкая доставка при высоком дозвоне = нода принимает коннект и молчит. «лучш. мс» — не средняя задержка: ядро схлопывает пачку дозвонов в один отчёт с минимумом по пачке, так что это лучший случай.
Последние ошибки — фильтры ниже влияют только на этот список; клик по строке — подробности
Фильтр:
| Время | Сервер | Вероятная причина | Устройство | Сеть | Попыток | Ошибка |
|---|
📘 Почему здесь три цифры доступности, а не одна — нажми, чтобы развернуть
- По попыткам = OK/(OK+Ошибок). Это то, что исторически называли «доступностью». Считает дозвоны, а не людей: рабочая сессия даёт ~1200 успехов просто потому, что через неё идёт трафик, а одно зациклившееся устройство — сотни тысяч ошибок (41% всех ошибок за сутки дают 1% устройств).
- Доставка = «1-й байт»/OK. Дозвон удался ≠ туннель работает. На проде у gRPC это ~94%, а у Reality ~19%: четыре из пяти «успешных» дозвонов не принесли ни байта, и все они считались доступностью.
- Обслужено = устройства, которым нода хоть раз ответила, из всех, кто до неё дозванивался. Считается по объединению HLL, а не по сумме ok+err — эти множества пересекаются (кто провалился и потом прошёл, лежит в обоих), поэтому ok/(ok+err) не является долей и занижает результат примерно на 11 пунктов.
- Ноды не прячутся под порогом. Если попыток мало, скрывается только процент — строка со счётчиками остаётся. Прежний порог выбрасывал из среднего 389 нод, суммарный успех которых был 24%: сломанный хвост исчезал именно потому, что сломан.
- «кл.» — провалы с причиной unreachable: у устройства нет сети. Телеметрия вешает их на ноду, потому что не знает, чья это сеть.
- Мусор исключён из метрик, но показан отдельно: 0.0.0.0:1 (сломанный конфиг клиента, ~24% всех ошибок) и auto (имя селектора sing-box, не хост). Порты вне 443/208x — это эфемерные порты пула адресов, они собраны в отдельный транспорт «прочие».
Доступность во времени — 5-минутные точки, gRPC и Reality раздельно
Расхождение линий = проблема транспорта, а не парка: единая средняя такое схлопывает.
Транспорты
| Транспорт | Нод | OK | Ошибок | По попыткам | Доставка |
|---|
Ноды — клик по строке: причины и сырые ошибки за то же окно
Фильтр:
| Нода | Тр. | Online | По попыткам | Доставка | Обслужено | Устройств | OK | Ошибок | Провалы/ч |
|---|
Фильтр:
Причины — сколько раз отметили за период
| Причина | Кол-во |
|---|
Один ответ может содержать несколько причин, поэтому сумма может быть больше числа ответов.
Чекбоксы диалога — что видит пользователь; применяется при следующем показе
| Ключ | Текст | Порядок | Вкл |
|---|
Существующий ключ обновляется (текст/порядок). Для встроенных причин приложение показывает свой перевод; для добавленных — этот текст как есть. Выключенная причина скрывается из диалога, история ответов сохраняется.
Ответы — клик по строке для подробностей
| Время | Устройство | Модель | ОС | Версия | IP | Причины | Комментарий |
|---|