https://github.com/cubxity/unifiedmetrics
Fully-featured metrics collection agent for Minecraft servers. Supports Prometheus and InfluxDB. Dashboard included out-of-box.
https://github.com/cubxity/unifiedmetrics
api bukkit folia grafana grafana-dashboard hacktoberfest influxdb metrics metrics-collection minecraft minestom-extension monitoring prometheus prometheus-exporter spigot velocity
Last synced: 10 months ago
JSON representation
Fully-featured metrics collection agent for Minecraft servers. Supports Prometheus and InfluxDB. Dashboard included out-of-box.
- Host: GitHub
- URL: https://github.com/cubxity/unifiedmetrics
- Owner: Cubxity
- License: lgpl-3.0
- Created: 2021-01-18T15:43:11.000Z (about 5 years ago)
- Default Branch: dev/0.3.x
- Last Pushed: 2025-03-31T16:34:28.000Z (10 months ago)
- Last Synced: 2025-04-01T03:26:11.476Z (10 months ago)
- Topics: api, bukkit, folia, grafana, grafana-dashboard, hacktoberfest, influxdb, metrics, metrics-collection, minecraft, minestom-extension, monitoring, prometheus, prometheus-exporter, spigot, velocity
- Language: Kotlin
- Homepage:
- Size: 6.7 MB
- Stars: 465
- Watchers: 2
- Forks: 44
- Open Issues: 26
-
Metadata Files:
- Readme: README.md
- License: COPYING
Awesome Lists containing this project
README

[](COPYING.LESSER)
[](https://github.com/Cubxity/UnifiedMetrics/actions)
[](https://search.maven.org/search?q=g:dev.cubxity.plugins%20a:unifiedmetrics-api)
[](https://discord.gg/kDDhqJmPpA)
UnifiedMetrics is a fully-featured free and open-source metrics collection plugin for Minecraft servers. This project is
licensed under [GNU LGPLv3](COPYING.LESSER).
[](https://unifiedmetrics-demo.cubxity.dev)
*Dashboard [included](https://docs.cubxity.dev/docs/unifiedmetrics/guides/grafana) out-of-box!*
Click [here](https://unifiedmetrics-demo.cubxity.dev) 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](https://docs.cubxity.dev/docs/unifiedmetrics/intro) 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 |
## Special Thanks
[Bloom Host](https://billing.bloom.host/aff.php?aff=9) 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](https://billing.bloom.host/aff.php?aff=9).
[](https://billing.bloom.host/aff.php?aff=9)
YourKit supports open source projects with innovative and intelligent tools for monitoring and profiling Java and .NET
applications. YourKit is the creator of [YourKit Java Profiler](https://www.yourkit.com/java/profiler/),
[YourKit .NET Profiler](https://www.yourkit.com/.net/profiler/),
and [YourKit YouMonitor](https://www.yourkit.com/youmonitor/).
[](https://www.yourkit.com/)
## 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.
```bash
$ 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.
```bash
$ ./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:
```bash
$ ./gradlew :unifiedmetrics-platform-bukkit:assemble -x signArchives
```
The output artifacts can be found in `subproject/build/libs`.
## API
[](https://search.maven.org/search?q=g:dev.cubxity.plugins%20a:unifiedmetrics-api)

Instructions (click to show)
### Examples
Example plugins can be found under [examples](examples) directory.
### Gradle (Kotlin)
```kotlin
repositories {
mavenCentral()
// Snapshots repository (only required for -SNAPSHOT versions)
maven("https://s01.oss.sonatype.org/content/repositories/snapshots/")
}
```
```kotlin
dependencies {
// Replace this with the desired version
compileOnly("dev.cubxity.plugins", "unifiedmetrics-api", "0.3.6")
}
```
### Usage
Add `:unifiedmetrics-api` as a dependency (compileOnly/provided). Prefer using platform's service manager if possible.
```kotlin
import dev.cubxity.plugins.metrics.api.UnifiedMetricsProvider
/* ... */
val api = UnifiedMetricsProvider.get()
```