Fully-featured free and open-source metrics collection plugin for Minecraft servers
UnifiedMetrics is a fully-featured free and open-source metrics collection plugin for Minecraft servers. This project is licensed under GNU LGPLv3.
Dashboard included out-of-box! Click here for live preview!
Features
- Platform-agnostic & compatible with popular platforms. Get the same metrics and features on any supported platform.
- Monitor your server in real-time with Prometheus/InfluxDB and provided Grafana dashboards.
- High performance metric collection. Low to none performance impact on the server's performance.
- Free and open-source. The code is free and open for anyone to audit and contribute to.
Compatibility
Server:
- 1.8+ Spigot servers (includes Spigot-based forks)
- 1.16+ Fabric servers
- Minestom
- Velocity
- BungeeCord
Metrics:
- Prometheus
- InfluxDB
Getting started
Read the wiki for instructions on how to get started.
Metrics
Table of metrics (click to show)
Collector | Description | Platform | Default |
---|---|---|---|
systemGc | Garbage collection duration and freed bytes | All | true |
systemMemory | Memory used, committed, max and init | All | true |
systemProcess | CPU load, seconds, and process start time | All | true |
systemThread | Current, daemon, started, and peak thread count | All | true |
events | Login, join, quit, chat, and ping event counter | All | true |
server | Plugins count and player counts | All | true |
tick | Tick duration histogram | Bukkit, Minestom | true |
world | World entities, players, and chunks count | Bukkit, Minestom | true |
Building from source
Instructions (click to show)
Requirements:
- JDK 8+ (16+ for Fabric, 17+ for Minestom)
- Git (Optional)
To build UnifiedMetrics, you need to obtain the source code first. You can download the source from GitHub or use the Git CLI.
$ git clone https://github.com/Cubxity/UnifiedMetrics && cd UnifiedMetrics
Open a terminal in the cloned directory and run the following command. The following command will build all subprojects.
$ ./gradlew assemble -x signArchives
-x signArchives
is required to skip signing, unless you have signing set up
To build a specific subproject, you can prefix it with the subproject path. For example:
$ ./gradlew :unifiedmetrics-platform-bukkit:assemble -x signArchives
The output artifacts can be found in subproject/build/libs
.
API
Instructions (click to show)
Examples
Example plugins can be found under examples directory.
Gradle (Kotlin)
repositories {
mavenCentral()
maven("https://s01.oss.sonatype.org/content/repositories/snapshots/")
}
dependencies {
// ...
compileOnly("dev.cubxity.plugins", "unifiedmetrics-api", "0.3.3-SNAPSHOT")
}
Usage
Add :unifiedmetrics-api
as a dependency (compileOnly/provided). Prefer using platform's service manager if possible.
import dev.cubxity.plugins.metrics.api.UnifiedMetricsProvider
/* ... */
val api = UnifiedMetricsProvider.get()
Sponsors
Bloom Host has kindly provided UnifiedMetrics with development servers. Bloom has server splitting built-in, which makes it extremely easy to build your monitoring stack. Get high performance servers at Bloom by using this link.