Вход

VPN Telemetry

📘 Как читать эту аналитику (памятка) — нажми, чтобы развернуть
  • 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ПричиныКомментарий