diff --git a/agent.py b/agent.py index c8792d0..64dd166 100755 --- a/agent.py +++ b/agent.py @@ -166,6 +166,10 @@ def get_metrics(): } result.update(disk_metrics) + # Аптайм сервера (в секундах) + import time + result['uptime'] = int(time.time() - psutil.boot_time()) + # Метрики использования сети net_metrics = get_network_metrics() result.update(net_metrics) diff --git a/src/Controllers/DashboardController.php b/src/Controllers/DashboardController.php index 14d1784..5ab3d0f 100755 --- a/src/Controllers/DashboardController.php +++ b/src/Controllers/DashboardController.php @@ -20,24 +20,36 @@ class DashboardController public function index(Request $request, Response $response, $args) { - // Получаем статистику $stats = $this->serverModel->getStats(); - - // Получаем список серверов со статусами для цветных карточек $servers = $this->serverModel->getServersWithStatus(); - // Загружаем пороги для каждого сервера - foreach ($servers as &$server) { - $t = $this->serverModel->getThresholds($server['id']); - $server['thresholds'] = $t; - file_put_contents('/tmp/thresholds_debug.log', "Server {$server['id']}: " . json_encode($t) . "\n", FILE_APPEND); + $groups = []; + $noGroupServers = []; + + foreach ($servers as $server) { + if (empty($server['group_name'])) { + $noGroupServers[] = $server; + } else { + $groups[$server['group_name']]['name'] = $server['group_name']; + $groups[$server['group_name']]['color'] = $server['group_color'] ?? '#6c757d'; + $groups[$server['group_name']]['icon'] = $server['group_icon'] ?? 'fa-server'; + $groups[$server['group_name']]['servers'][] = $server; + } + } + + if (!empty($noGroupServers)) { + $groups['Без группы'] = [ + 'name' => 'Без группы', + 'color' => '#6c757d', + 'icon' => 'fa-server', + 'servers' => $noGroupServers + ]; } - unset($server); $templateData = [ 'title' => 'Дашборд мониторинга', 'stats' => $stats, - 'servers' => $servers + 'groups' => $groups ]; return $this->twig->render($response, 'dashboard.twig', $templateData); diff --git a/templates/dashboard.twig b/templates/dashboard.twig index 5351c3c..39238f0 100755 --- a/templates/dashboard.twig +++ b/templates/dashboard.twig @@ -1,275 +1,235 @@ {% extends "layout.twig" %} {% block content %} -
Всего серверов
+ +С метриками
+Предупреждения
+Критические
+{{ server.description }}
- {% endif %} - -Добавьте первый сервер, чтобы начать мониторинг
- - Добавить первый сервер - -