
- NestJS
- React
- Monitoring
- SSE
Как понять, что число ещё живое?
57
Сегодня закончил панель мониторинга сервера. В ней около десяти экранов: ресурсы, проекты, контейнеры, сервисы, безопасность, трафик, живые логи и развёртывание.
Панель снимает новое измерение каждые две секунды. И здесь появилась неожиданная проблема: числа обновляются, но поскольку меняются они тихо, человек, смотрящий на экран, не понимает — данные свежие или страница зависла. Особенно когда сервер простаивает: все числа остаются прежними, и экран выглядит мёртвым.
Для этого я добавил отдельный индикатор. Он каждую секунду считает, сколько секунд прошло с последнего измерения. Пока поток жив, число остаётся маленьким. Если поток оборвётся, число начнёт расти и сразу бросится в глаза.
Ещё одно исправление касалось таймеров. При чтении списка запланированных задач системы некоторые колонки слипались, потому что внутри них есть пробелы — вроде «2 минуты назад» или длинной даты. Разбивать по колонкам было ненадёжно.
Решение: я получил список другой командой и запросил значения каждого таймера отдельно. Там поля именованные, и спутать их невозможно.
Основной принцип панели — она только читает. Она ничего не меняет. Так что даже если панель взломают, повлиять через неё на сервер не получится.