
UnifiedMetrics: Monitor Your Minecraft Server in Real-Time
Cubxity/UnifiedMetrics
Fully-featured metrics collection agent for Minecraft servers. Supports Prometheus and InfluxDB. Dashboard included out-of-box.
View on GitHub ↗So you've got a Minecraft server running and something's wrong - lag spikes, mysterious slowdowns, crashes you can't explain. The problem? You're flying blind. You notice performance drops, but you've no idea what's actually causing them. UnifiedMetrics fixes that by collecting real-time server metrics and feeding them into dashboards you can actually read. It's free, open-source, and practically invisible to your server performance.
What UnifiedMetrics Actually Does
UnifiedMetrics is a plugin that quietly monitors your Minecraft server and sends that data to Prometheus or InfluxDB. So it tracks memory usage, garbage collection pauses, CPU load, player counts, entity spawning, chunk loads, tick duration - basically everything that affects server health. The data flows into Grafana, where you get beautiful dashboards showing exactly what's happening right now.
The plugin itself is lean. Built in Kotlin, it doesn't spawn a dozen threads or monopolize your CPU. It just sits there collecting metrics and shipping them off, using almost no resources. And you get a pre-built Grafana dashboard included, not some generic thing you've to customize from scratch.
Why Server Monitoring Actually Matters
Most server admins run completely blind. Lag happens, and you guess at the cause. Was it a plugin eating CPU? Too many mobs? A player's redstone contraption going haywire? You restart things hoping it fixes it. That's not strategy, that's superstition.
Real-time metrics change everything. You see memory climbing in real time. Most players watch garbage collection cycles. Folks who try this count concurrent players and correlate player logins with CPU spikes. When something breaks, you don't debug for an hour - you look at the metrics and see exactly when and why performance tanked.
And if you're running multiple servers? UnifiedMetrics works on Spigot, Fabric, BungeeCord, Velocity, and Minestom. Same metrics, same dashboard concept, different platforms. Your entire network gets the same visibility.
Installation is Straightforward
For Spigot servers, grab the JAR and drop it in your plugins folder:
# Download the latest release
wget https://github.com/Cubxity/UnifiedMetrics/releases/download/v0.3.8/unifiedmetrics-platform-bukkit-0.3.8.jar
# Move to plugins
mv unifiedmetrics-platform-bukkit-0.3.8.jar /path/to/server/plugins/
# Restart and the config generates automatically
On startup, UnifiedMetrics creates a config file. You point it at your Prometheus or InfluxDB instance, set how often it scrapes (default is reasonable), and you're done. The plugin doesn't write to disk or need a database - it just pushes data to your metrics backend. That keeps things fast and simple.
Fabric, BungeeCord, and Velocity have their own builds. Minestom too, if you're into that. All the installation patterns are basically the same: download, drop in the right folder, configure once, forget about it.
What You Actually Get to Monitor
The metrics are thoughtfully selected. System level: memory (used, max, committed), garbage collection time and freed bytes, CPU load, thread count, process uptime. Server level: plugin count, player logins, quits, chat messages, ping events. World level (on Bukkit and Minestom): entity counts, loaded chunks, players per world, tick duration histograms.
Think about what that means in practice. If a player like adderall_abuser builds a massive mob farm, you can see entity count climbing and chunk load spikes in your dashboard. If adding a plugin tanks garbage collection, you see it immediately. Memory leaks show up before they crash your server at 3 AM.
The dashboard is built specifically for Minecraft. Pie charts of players across worlds, histograms of tick duration over time, gauges showing memory pressure. It's not generic monitoring software pretending to understand Minecraft - it actually does.
Gotchas and Things to Know Before Starting
First thing: Prometheus and InfluxDB aren't one-click installs. If you've never run metrics infrastructure, there's a setup curve. You need to understand scrape intervals, retention, time-series concepts. The documentation walks you through it, but it's not trivial. Budget an hour to get the whole stack running if you're new.
Second: performance impact scales with your scrape interval. Default settings (one data point every 30 seconds) are basically invisible. Crank it to every second and you'll notice overhead. Don't do that unless you specifically need per-second granularity.
YAML config syntax will bite you. Indentation matters. If your config is wrong, the plugin silently fails to connect. Triple-check it before assuming the whole thing is broken.
And here's something worth knowing: on extremely high-population servers (400+ concurrent players), metric collection itself adds a measurable tick cost during collection cycles. It's still tiny - we're talking single-digit milliseconds - but if you're already maxed out on performance, it's worth considering. One server running with players like ironmouse reported it was negligible, but experimentation matters.
Compatibility Across Versions and Platforms
Spigot 1.8+, Fabric 1.16+, BungeeCord any version, Velocity, and Minestom. If you're running anything standard, you're covered. The project updates regularly - the latest release (0.3.8) has dependency updates and bug fixes, showing active maintenance.
Backend support is either Prometheus or InfluxDB. Prometheus is simpler if you're new to metrics. InfluxDB gives you fancier time-series features. Either way, UnifiedMetrics speaks both fluently.
A quick note on licensing: it's LGPL-3.0. That means the code is free, you can audit it, and if you modify it you need to share your changes back. For any server operator, that just means it's free and you control the code.
How It Compares to Other Approaches
Some servers just use simple TPS monitoring plugins that log tick rates to a file. Works, but it's not queryable or real-time. Others write custom monitoring using Paper's API, but that requires coding knowledge.
ELK stack (Elasticsearch, Logstash, Kibana) is another option for log analysis, but that's overkill if all you want is metrics dashboards. More complex to set up, more infrastructure to maintain. Monitoring solutions like players testuser have used in other communities exist, but many cost money or are proprietary. UnifiedMetrics is free, open-source (534 stars on GitHub means it's actually battle-tested), and actively developed. You get real-time visibility without vendor lock-in.
Some large networks use paid monitoring services, but you lose code visibility and pay per server. If you're comfortable running your own Prometheus instance, UnifiedMetrics is better.
Real-World Example Setup
Here's roughly how you'd wire this up for a medium-sized server network. Install UnifiedMetrics on your main server and any backend servers. Point them all at a central Prometheus instance running on a separate machine. Set Prometheus to scrape every 30 seconds. Drop the Grafana dashboard JSON (included in the project docs) into your Grafana instance. Now you've got a single pane of glass showing all your servers.
One player, joakim2tusen, mentioned in a server setup guide that once they had metrics running, they started noticing patterns they'd never seen before - like how player login surges correlated with specific mod malfunctions. Having data changes how you debug.
The coolest part is that once you've got the infrastructure in place, adding a new server is trivial. Drop the plugin in, update the config, done. The whole network is visible in one dashboard.
When You Might Not Need This
If you're running a tiny vanilla server with five friends, metrics are overkill. You'll notice lag immediately and restarting fixes most things.
If you're not comfortable managing Prometheus and InfluxDB infrastructure, this adds operational burden. You need to keep those services running, backed up, updated. It's not fire-and-forget.
And if your server is already maxed out CPU-wise, adding metrics collection (even if it's lightweight) might not be a good idea. Performance tuning should come first.
But for any medium-to-large server, any network, or any operator who wants to actually understand what's happening under the hood, UnifiedMetrics is genuinely impressive. Players like housecz_zero running established communities have found that visibility changes everything about how they manage their servers.


