Skip to main content
/admin/traffic отвечает на два вопроса, на которые не отвечают сигналы аномалий. Обнаружение аномалий отвечает на вопрос «на кого стоит посмотреть». Здесь — какой узел заполняется и кто потребил больше всех, и то и другое выгружается.

Здесь ничего не хранится

Remnawave авторитетен для трафика, узлов и подключений. В этом репозитории нет таблицы для узла и нигде нет колонки для байта, потраченного клиентом: сверка записывает статус, срок, лимит трафика и лимит устройств — и намеренно не потребление. Поэтому обе половины этого экрана читаются из панели на каждом запросе, и истории нет. Её хранение было бы первым шагом к тому, чтобы у Omniflow появилось мнение о трафике, — а это ровно та граница, которую держит решение 0004. Что Omniflow добавляет — единственное, что может: связку. Идентификатор пользователя Remnawave, разрешённый в клиента, который им владеет, и ссылку на его профиль.

Узлы

Отсортированы по нагрузке: сначала узлы с лимитом, по близости к нему, затем безлимитные по абсолютному расходу. Вопрос — «какой узел заполняется», и ответ должен быть сверху. Узел без лимита не показывает долю заполнения вместо 0%. Он не может заполняться, а отрисовка нуля отсортировала бы его среди пустых, тогда как ему вообще не место в этом списке.
Панель, не отдающая список узлов, сообщает об этом. nodesReported становится false, и экран показывает причину: маршрут не поддерживается, до панели не достучались или подключение к Remnawave не настроено.В этом различии всё дело. Пустая таблица узлов и «мы не смогли спросить» выглядят одинаково и означают противоположные вещи, а страница нулей для установки, с узлами которой всё в порядке, хуже честного отсутствия.Декодируются только те поля, которые Omniflow рисует, и панель, опустившая одно из них, оставляет ноль, а не роняет запрос. Если ваша версия панели формирует список узлов иначе, этот раздел деградирует, а остальная страница не затрагивается — проверьте это на собственной панели, а не по этой странице.

Самые активные пользователи

Пятьдесят крупнейших потребителей текущего цикла, с расходом за всё время рядом с цифрой цикла. Оба, потому что «за месяц» и «за всё время» — разные вопросы, и второй объясняет первый. Ранжирование говорит, как далеко оно посмотрело. Найти самых активных значит просмотреть всех пользователей, а панель отдаёт их страницами по пятьсот; отчёт останавливается после десяти страниц. Если он не дошёл до конца, экран сообщает, что рейтинг покрывает просмотренных пользователей из общего числа, которое сообщает панель. Усечённый рейтинг, поданный как полный, хуже отсутствия рейтинга. Пользователь, которого Omniflow не создавал, читается как «не связан», а не как ошибка. Кто-то завёл его прямо в панели или импорт не запускался — и то и другое реальные состояния.

Выгрузка

GET /v1/panel/reports/traffic/export возвращает один CSV с колонкой section — node и consumer. Байты выгружаются без масштабирования. Гигабайт для одних читателей — 1000³, для других 1024³, и выбор одного варианта в выгрузке делает файл неверным для второй половины. Экран рисует двоичные единицы и подписывает их как таковые (ГиБ, а не ГБ), потому что применяемое преобразование делит на 1024, и называть это гигабайтом означало бы ошибиться на семь процентов на таком масштабе — достаточно, чтобы арифметика оператора перестала сходиться со счётом хостера.

Права

Оба маршрута требуют customers.read. Значимая половина называет клиентов и их потребление; цифры по узлам — менее чувствительная половина и идут вместе с ней.

Смежные страницы

Интеграция с Remnawave

Какие маршруты вызывает Omniflow и что делает адаптер, когда одного из них нет.

Владение данными

Какая система авторитетна для каждой категории данных.

Контроль рисков

Сигналы аномалий, включая метрику трафика, и для чего они вместо этого.

Отчёты о продажах и платежах

Что продано и дошли ли деньги.