У меня неправильно отображается онлайн пользователей в панели, почему?

Статья содержит исчерпывающие ответы на вопросы по поводу отображения онлайна в панели.


Главная страница панели.

На ней мы найдём вот такую статистку:

В ней мы увидем статистку по пользователям панели. Речь идёт о пользователях, что созданы во вкладке Пользователи.

  • В сети - онлайн пользователей за последние 30 секунд.
  • Сегодня - онлайн пользователей за последние сутки.
  • На этой неделе - онлайн пользователей за последнюю неделю.
  • Никогда - пользователи, которые никогда не подключались.
Как считаются эти данные?

Сначала панелью происходит опрос статистики всех нод раз в 15 секунд. Панель смотрит, если downlink + uplink байт трафика пользователя на любой из нод не меньше чем USER_USAGE_IGNORE_BELOW_BYTES байт, то у пользователя обновляется online_at на текущее время.
Для каждого пользователя переменная online_at записывается в таблицу user_traffic.
Переменные В сети, Сегодня, На этой неделе и Никогда считаются следующим образом:

onlineNow → onlineAt >= NOW() - 30 секунд
lastDay → onlineAt >= NOW() - 1 день
lastWeek → onlineAt >= NOW() - 1 неделя
neverOnline → onlineAt IS NULL

[!info]
Вы можете задать USER_USAGE_IGNORE_BELOW_BYTES в .env докер контейнера панели.
По умолчанию её значение равно 0.
Задать вы можете от 0 до 1048576 (1 МБ).

Там же на главной странице, мы можем найти такое:


Всего онлайн на нодах это отдельный счётчик, не связанный напрямую с В сети из пункта Онлайн.
Высчитывается почти таким же образом, как и Онлайн В сети.
Для каждой ноды берётся количество пользователей с трафиком не меньше USER_USAGE_IGNORE_BELOW_BYTES из последнего цикла опроса (каждые 15 секунд, но:

[!attention]
В отличие от В сети, один пользователь панели может быть посчитан несколько раз, если он активен на нескольких нодах одновременно.

TTL ключа в Redis, из которого берётся информация - 16 секунд, поэтому если нода не опрашивалась дольше 16 секунд, её вклад в сумму обнуляется.


Ноды.

Пользователи онлайн

image
Тоже самое, что и Всего онлайн на нодах на главной странице.

Карточка ноды

image
Человечки на карточке Ноды, это то же самое значение из Redis, что используется для Всего онлайн на нодах на главной странице, только не суммированное, а отдельно для каждой ноды.

4 Likes