ServerScope — netdata-in-Minecraft: per-region TPS/MSPT metrics, Fabric HUD, Grafana panel
Find a file
ekaii 32887b8533
Some checks failed
Build / build-plugin (push) Successful in 50s
Build Mod / build-mod (push) Successful in 58s
Release / release (push) Has been cancelled
Initial public release
2026-07-15 01:34:20 +02:00
.forgejo/workflows Initial public release 2026-07-15 01:34:20 +02:00
mod Initial public release 2026-07-15 01:34:20 +02:00
netdata Initial public release 2026-07-15 01:34:20 +02:00
panel Initial public release 2026-07-15 01:34:20 +02:00
plugin Initial public release 2026-07-15 01:34:20 +02:00
.gitignore Initial public release 2026-07-15 01:34:20 +02:00
LICENSE Initial public release 2026-07-15 01:34:20 +02:00
README.md Initial public release 2026-07-15 01:34:20 +02:00

ServerScope — netdata-style metrics for Minecraft

Detailed observability for Folia/Luminol Minecraft servers: per-region TPS/MSPT/chunks/players/entities and whole-host CPU/RAM/network/disk — surfaced four ways:

  1. Server plugin (plugin/) — a Folia-safe metric collector; exposes GET /metrics (Prometheus format) + GET /api/json, and pushes live snapshots to the client mod.
  2. Fabric client mod (mod/) — an in-game, netdata-style HUD overlay + full panel (sparklines, gauges, region table, host stats). Dormant unless the server runs the plugin.
  3. netdata module (netdata/) — a go.d Prometheus collector so netdata charts the MC server next to host metrics.
  4. Web panel (panel/) — Prometheus + Grafana with dashboards-as-code (overview / per-region / host / JVM).

Layout

plugin/   Folia/Luminol Paper plugin (Gradle + JDK 25 + Shadow)
mod/      Fabric client mod (Loom + Mojmap)
netdata/  go.d Prometheus collector config
panel/    Prometheus scrape config + Grafana provisioning & dashboards

Build

# Plugin (no host JDK needed)
docker run --rm -v "$PWD/plugin:/project" -w /project gradle:9.4.1-jdk25 \
  gradle clean shadowJar --no-daemon
# -> plugin/build/libs/ServerScope-<version>.jar

# Fabric client mod
docker run --rm -v "$PWD/mod:/project" -w /project gradle:9.6.1-jdk25 \
  gradle clean build --no-daemon

CI (.forgejo/workflows/) builds the same artifacts on a self-hosted runner.

Deploy

  1. Drop the plugin JAR into your server's plugins/ directory and start the server. It listens on 0.0.0.0:9940 by default (see plugin/src/main/resources/config.yml).
  2. Scrape it with Prometheus (panel/) or netdata (netdata/), then view the Grafana dashboard.
  3. Optionally install the Fabric client mod for the in-game HUD.

See each subdirectory's README.md for details. Configuration values that reference secrets (basic-auth hashes, Grafana admin password) are read from environment variables — never commit them.

License

MIT — see LICENSE.