{% extends "layout.twig" %} {% block content %}

Дашборд

Добавить
Серверов

{{ stats.total_servers }}

Онлайн

{{ stats.servers_with_metrics }}

Предупреждения

{{ stats.warnings }}

Критические

{{ stats.criticals }}

{% if groups|length == 0 %}

Серверы пока не добавлены

Добавить сервер
{% else %} {% for groupName, group in groups %} {% set groupSlug = groupName|lower|replace({' ': '-'}) %}
{{ groupName }} {{ group.servers|length }}
{% for server in group.servers %}
{% if server.status == 'online' %} {% elseif server.status == 'warning' %} {% else %} {% endif %} {{ server.name }}
{% if server.active_alerts > 0 %} {{ server.active_alerts }} {% endif %}
{% if server.latest_metrics['cpu_load'] is defined %} {% set cpu_val = server.latest_metrics['cpu_load'].value %} {% set cpu_t = server.thresholds['cpu_load']|default(null) %} {% if cpu_t %} {% set cpu_color_icon = cpu_val >= cpu_t.critical ? 'text-danger' : (cpu_val >= cpu_t.warning ? 'text-warning' : 'text-success') %} {% else %} {% set cpu_color_icon = cpu_val > 80 ? 'text-danger' : (cpu_val > 60 ? 'text-warning' : 'text-success') %} {% endif %} {{ cpu_val }}% {% endif %} {% if server.latest_metrics['ram_used'] is defined %} {% set ram_val = server.latest_metrics['ram_used'].value %} {% set ram_t = server.thresholds['ram_used']|default(null) %} {% if ram_t %} {% set ram_color_icon = ram_val >= ram_t.critical ? 'text-danger' : (ram_val >= ram_t.warning ? 'text-warning' : 'text-success') %} {% else %} {% set ram_color_icon = ram_val > 80 ? 'text-danger' : (ram_val > 60 ? 'text-warning' : 'text-success') %} {% endif %} {{ ram_val }}% {% endif %} {% set disk_metric = server.latest_metrics['disk_used_root'] ?? server.latest_metrics['disk_used'] ?? null %} {% if disk_metric is not null %} {% set disk_val = disk_metric.value %} {% set disk_t = server.thresholds['disk_used_root']|default(null) %} {% if disk_t %} {% set disk_color_icon = disk_val >= disk_t.critical ? 'text-danger' : (disk_val >= disk_t.warning ? 'text-warning' : 'text-success') %} {% else %} {% set disk_color_icon = disk_val > 90 ? 'text-danger' : (disk_val > 75 ? 'text-warning' : 'text-success') %} {% endif %} {{ disk_val }}% {% endif %}
{% if server.latest_metrics['uptime'] is defined %}
{% set uptime_sec = server.latest_metrics['uptime'].value %} {% if uptime_sec >= 86400 %} {{ (uptime_sec / 86400)|round(0, 'floor') }}д {{ ((uptime_sec % 86400) / 3600)|round(0, 'floor') }}ч {% elseif uptime_sec >= 3600 %} {{ (uptime_sec / 3600)|round(0, 'floor') }}ч {{ ((uptime_sec % 3600) / 60)|round(0, 'floor') }}м {% else %} {{ (uptime_sec / 60)|round(0, 'floor') }}м {% endif %}
{% endif %}
{% if server.last_metrics_at %} {{ server.last_metrics_at|date('H:i') }} {% else %} — {% endif %}
{% endfor %}
{% endfor %} {% endif %} {% endblock %}