
UnifiedMetrics
UnifiedMetrics - бесплатный плагин для сбора метрик на серверах Minecraft. Поддерживает Prometheus и InfluxDB, включает готовые дашборды Grafana. Мониторинг TPS, памяти, событий и не только.
UnifiedMetrics - это open-source плагин для серверов Minecraft, который собирает всё, что нужно для нормального мониторинга. Если ты админ и хочешь видеть реальную картину: сколько памяти жрёт сервер, какие лаги, когда GC чистит мусор, и сколько игроков заходит в пике - это то, что надо.
Плагин работает на большинстве популярных платформ: Spigot (и его форки) с версии 1.8, Fabric 1.16+, Minestom, Velocity, BungeeCord. Так что подойдёт и для классических серверов, и для современных модных сборок.
Что внутри
- Готовые дашборды Grafana - не надо ничего рисовать самому, всё уже идёт из коробки.
- Сбор метрик через Prometheus или InfluxDB. Выбирай, что ближе.
- Минимальное влияние на производительность - плагин написан так, чтобы не грузить сервер лишний раз. По факту нагрузка почти незаметна.
- Открытый исходный код (GNU LGPLv3) - можно глянуть, что он там собирает, и при желании допилить под себя.
Какие метрики собирает
Плагин умеет собирать практически всё, что может пригодиться админу:
| Коллектор | Описание | Платформа | По умолч. |
|---|---|---|---|
| systemGc | Длительность GC и объём освобождённой памяти | Все | true |
| systemMemory | Использование, выделенная, максимальная и начальная память | Все | true |
| systemProcess | Загрузка CPU, время работы процесса | Все | true |
| systemThread | Количество потоков (текущих, daemon, запущенных, пик) | Все | true |
| events | События: вход, выход, чат, пинг и т.п. | Все | true |
| server | Количество плагинов и игроков | Все | true |
| tick | Гистограмма длительности тиков | Bukkit, Minestom | true |
| world | Количество сущностей, игроков и чанков в мире | Bukkit, Minestom | true |
Сразу видно, где узкое место. Например, если tick сильно плавает - значит сервер не справляется с нагрузкой.
Как начать использовать
Ознакомьтесь с вики-страницей для инструкций по установке и настройке.
Сборка из исходников (если хочется собрать самому):
Требования: JDK 8+ (16+ для Fabric, 17+ для Minestom), Git (опционально)
Сначала клонируем репозиторий:
git clone https://github.com/Cubxity/UnifiedMetrics && cd UnifiedMetrics
Потом собираем:
./gradlew assemble -x signArchives
Для конкретной платформы, например Bukkit:
./gradlew :unifiedmetrics-platform-bukkit:assemble -x signArchives
Готовые jar-файлы будут лежать в subproject/build/libs.
API для разработчиков
Если ты пишешь свой плагин и хочешь получать метрики из UnifiedMetrics, можно подключить API.
Gradle (Kotlin DSL):
repositories {
mavenCentral()
maven("https://s01.oss.sonatype.org/content/repositories/snapshots/")
}
dependencies {
compileOnly("dev.cubxity.plugins", "unifiedmetrics-api", "0.3.3-SNAPSHOT")
}
Использование в коде:
import dev.cubxity.plugins.metrics.api.UnifiedMetricsProvider
/* ... */
val api = UnifiedMetricsProvider.get()
Примеры плагинов с использованием API можно найти в папке examples.
Зачем это вообще нужно
По факту, без нормального мониторинга админ летает вслепую. UnifiedMetrics даёт полную картину: видно, когда память начинает заканчиваться, когда GC фризит сервер, какие миры тяжелее всего. Это must-have для любого серьёзного сервера, особенно если у тебя много игроков или модов. Бесплатно, open-source, легко ставится. Скачать плагин UnifiedMetrics и начать мониторинг - дело пары минут.
