Getting started
VaniaMetrics comes in two parts: the core, a plugin that serves /metrics over HTTP, and collectors, one small plugin per integration. Install the core first, then add collectors only for the plugins you run.
Install the core
Drop the jar for your platform into its folder and restart the server.
| Platform | Jar | Folder | Tested on |
|---|---|---|---|
| Paper | vania-metrics-bukkit-0.6.0.jar | plugins/ | Paper 1.21.11-132 |
| Purpur | vania-metrics-bukkit-0.6.0.jar | plugins/ | Purpur 1.21.11-2568 |
| Folia | vania-metrics-bukkit-0.6.0.jar | plugins/ | Folia 1.21.11-14 |
| Spigot | vania-metrics-bukkit-0.6.0.jar | plugins/ | Spigot 1.21.11 (4598) |
| CraftBukkit | vania-metrics-bukkit-0.6.0.jar | plugins/ | CraftBukkit 1.21.11 (4598) |
| Sponge | vania-metrics-sponge-0.6.0.jar | mods/ | SpongeVanilla 1.21.10-17.0.0 |
| Velocity | vania-metrics-velocity-0.6.0.jar | plugins/ | Velocity 3.5.1 (615) and 4.2.1 (32) |
| BungeeCord | vania-metrics-bungee-0.6.0.jar | plugins/ | BungeeCord build 2096 |
| Waterfall | vania-metrics-bungee-0.6.0.jar | plugins/ | Waterfall 1.21 (615) |
| Geyser | vania-metrics-geyser-0.6.0.jar | extensions/ | Geyser Standalone 2.11.3 (1246) |
One Bukkit jar covers the whole family: the optional APIs of Paper (tick times, world counters, client brands) are probed at startup, and Folia gets region schedulers instead of the main thread. A metric a platform cannot provide is left out, never faked: see where each one is published in the metrics reference.
Check the endpoint
curl http://localhost:9940/metrics# HELP mc_build_info Always 1. The version is in the labels, the Prometheus idiom for publishing a string.
# TYPE mc_build_info gauge
mc_build_info{version="0.6.0",platform="paper",server_version="1.21.11-132-c5eb079 (MC: 1.21.11)",server="lobby"} 1
# HELP mc_server_players_online Online players.
# TYPE mc_server_players_online gauge
mc_server_players_online 12
…Scrape it with Prometheus
scrape_configs:
- job_name: minecraft
scrape_interval: 5s
static_configs:
- targets: ['mc.example.com:9940']Five seconds
Tick metrics move fast: a 15 s interval smooths away the lag spikes you want to see. Scraping costs the server next to nothing — values that are expensive to compute are refreshed in the background, never during a scrape.
If you set a token (http.token), add it to the job:
authorization:
credentials: your-tokenAdd collectors
Each collector is a separate jar that goes next to the core and next to the plugin it measures — say vania-metrics-collector-luckperms-0.6.1.jar next to LuckPerms. It does nothing without its target plugin, and never takes the core down with it.
The collectors overview lists all of them; the compatibility matrix shows where each one has been tested.
Next
- Configuration: the port, a token, what to collect, per-player detail.
- Metrics: every family, its labels and where it is published.