В мониторинге серверов: Как рассчитать процент заполненности сервера игроками и правильно выбрать цвет статуса (зеленый/красный) в зависимости от онлайна?
Мониторинг игровых серверов — важная часть любой панели управления или сайта с отображением статусов. Чтобы корректно отображать заполненность сервера и выбирать нужный цвет индикатора, нужно понимать базовую логику расчётов.
## Расчёт процента заполненности
Формула проста:
percent = (current_players / max_players) * 100
Например, если на сервере 45 игроков из 100 максимальных:
percent = (45 / 100) * 100 = 45%
Важно учитывать крайние случаи:
— Если `max_players = 0`, деление на ноль вызовет ошибку — добавьте проверку.
— Если сервер недоступен (offline), процент не вычисляется — статус отдельный.
Пример на Python:
python
def get_fill_percent(current, maximum):
if maximum == 0:
return 0
return round((current / maximum) * 100, 1)
## Логика выбора цвета статуса
Стандартная трёхцветная схема, принятая в большинстве мониторингов:
| Процент заполненности | Цвет | Смысл |
|—|—|—|
| 0% | Серый | Сервер пустой |
| 1–60% | Зелёный | Много свободных мест |
| 61–85% | Жёлтый | Сервер заполняется |
| 86–99% | Красный | Почти полный |
| 100% | Тёмно-красный / Пурпурный | Сервер полон |
Пример реализации на Python:
python
def get_status_color(percent):
if percent == 0:
return ‘gray’
elif percent <= 60:
return 'green'
elif percent <= 85:
return 'yellow'
elif percent max_players` при технических сбоях. Добавьте ограничение: `percent = min(percent, 100)`.
**4. Для веб-интерфейса** удобно использовать CSS-классы:
javascript
function getColorClass(percent) {
if (percent === 0) return ‘status-gray’;
if (percent <= 60) return 'status-green';
if (percent <= 85) return 'status-yellow';
return 'status-red';
}
Такой подход обеспечивает наглядный и информативный мониторинг игровых серверов с корректным отображением статуса в реальном времени.
