-
Notifications
You must be signed in to change notification settings - Fork 5
Monitoring
Полный мониторинг системы: GPU, CPU, RAM, диски, Docker контейнеры, сеть, процессы и логи.
Видимость: Скрыта в режиме
cloudи для ролиweb.
Страница мониторинга использует SystemMonitor (system_monitor.py) для сбора данных через nvidia-smi, psutil и Docker CLI. Данные обновляются в реальном времени через SSE с fallback на polling.
| Метрика | Описание | Источник |
|---|---|---|
| Utilization | Загрузка GPU (%) | nvidia-smi |
| VRAM Usage | Использование видеопамяти (MB) | nvidia-smi |
| Temperature | Температура (°C) | nvidia-smi |
| Power Draw | Потребление энергии (W) | nvidia-smi |
| Fan Speed | Скорость вентилятора (%) | nvidia-smi |
Графики на Chart.js, история за 5 минут (60 точек с интервалом 5 сек).
| Поле | Описание |
|---|---|
| Название | NVIDIA RTX 3060 и т.д. |
| Driver | Версия драйвера NVIDIA |
| Compute Capability | CC версия (напр. 8.6) |
| PCIe | Поколение и ширина шины |
| Memory | Total / Used / Free (MB) |
Fallback: если nvidia-smi недоступен, данные берутся через PyTorch (torch.cuda).
| Метрика | Описание |
|---|---|
| Model | Модель процессора |
| Cores | Физические / логические ядра |
| Frequency | Текущая / максимальная частота (MHz) |
| Usage | Общая загрузка (%) |
| Per-core | Загрузка каждого ядра |
| Temperature | Температура CPU (coretemp/k10temp) |
| Load Average | 1m / 5m / 15m |
| Метрика | Описание |
|---|---|
| RAM | Total / Used / Free / Available (GB) + процент |
| Swap | Total / Used (GB) + процент |
Для каждого раздела (без squashfs/tmpfs/snap):
| Поле | Описание |
|---|---|
| Device |
/dev/sda1 и т.д. |
| Mount | Точка монтирования |
| Type | Файловая система (ext4, xfs) |
| Usage | Total / Used / Free (GB) + процент |
Система автоматически отслеживает состояние бот-процессов (Telegram, WhatsApp) через периодический task bot-process-watcher (интервал 30с, регистрируется в TaskRegistry).
| Параметр | Значение |
|---|---|
| Интервал проверки | 30 секунд |
| Initial delay | 15 секунд |
| Max auto-restart | 3 попытки |
| Backoff | 10с → 20с → 30с |
| Сброс счётчика | После uptime > 60с |
При обнаружении завершённого процесса публикуется BotProcessDied через EventBus:
-
Аудит — запись
process_diedс exit_code и uptime (см. Audit#process_died) - Auto-restart — перезапуск при crash (exit_code ≠ 0) с backoff
- Graceful stop (exit_code = 0) — только логирование, без перезапуска
Если Docker доступен — таблица всех контейнеров:
| Поле | Описание |
|---|---|
| Name | Имя контейнера |
| Image | Docker образ |
| Status | Running / Exited / Created |
| CPU | Использование CPU (%) |
| Memory | Использование RAM (MB / лимит) |
| Ports | Проброшенные порты |
| Uptime | Время работы |
Для каждого физического интерфейса (без lo/docker/veth):
| Поле | Описание |
|---|---|
| Interface | Имя (eth0, ens3) |
| IP | IPv4 адрес |
| MAC | MAC адрес |
| Traffic | Sent / Received (MB) |
| Packets | Sent / Received |
| Status | Up / Down |
Топ-10 процессов по CPU + RAM:
| Поле | Описание |
|---|---|
| PID | ID процесса |
| Name | Имя |
| CPU | Использование CPU (%) |
| Memory | Использование RAM (%) и MB |
| Status | Running / Sleeping / Zombie |
| Command | Командная строка (первые 100 символов) |
| Поле | Описание |
|---|---|
| Hostname | Имя хоста |
| OS | ОС и версия ядра |
| Uptime | Время работы системы |
| Boot Time | Время последней загрузки |
| Режим | Поведение |
|---|---|
| SSE (предпочтительно) | Мгновенные обновления через /admin/monitor/gpu/stream
|
| Polling (fallback) | Запрос каждые 5 секунд к /admin/monitor/gpu
|
Переключение автоматическое: SSE → при ошибке → polling.
| Endpoint | Описание |
|---|---|
GET /admin/monitor/gpu |
GPU статистика |
GET /admin/monitor/gpu/stream |
SSE поток GPU |
GET /admin/monitor/health |
Компонентный health check |
GET /admin/monitor/metrics |
Метрики запросов |
GET /admin/monitor/errors |
Последние ошибки |
POST /admin/monitor/metrics/reset |
Сброс счётчиков |
GET /admin/monitor/system |
Полный статус (GPU + CPU + RAM + Disk + Docker + Network + Processes) |