TickScope 1.1.0
First public release.
A Prometheus exporter for Minecraft Paper servers in a 28 KB jar with zero runtime dependencies — no Spring, no Micrometer, nothing shaded. Drop it in plugins/, scrape http://127.0.0.1:9101/metrics, graph it in Grafana.
Highlights
- Exact tick percentiles —
mc_mspt_msat avg/min/max/p50/p95/p99, computed from Paper's raw per-tick nanosecond array rather than estimated from buckets. TPS caps at 20 and hides everything below it; MSPT does not. - Per-world counts — entities, tile entities, chunks and players, from Paper's O(1) counters.
- Entities by type —
mc_world_entities_by_type{world,type}, for finding what is actually piling up. - JVM and process — heap and non-heap memory, threads, GC cycles and time per collector, process and system CPU.
- Player event counters — login, join, quit, chat, death. Counters rather than gauges, so nothing is missed between scrapes.
- Its own overhead, reported as
mc_collection_duration_seconds— typically 2–3 ms.
Scrapes never touch the server thread: collection runs on a scheduler task and publishes an immutable snapshot that the HTTP handler serialises.
Requirements
Paper 26.2+, Java 25+. Purpur works. Plain Spigot and Bukkit do not, and Folia is not supported.
Docker
Set bind-address: "0.0.0.0" and restrict on the publish side with ports: ["127.0.0.1:9101:9101"]. Binding to loopback inside the container makes the port unreachable even with a correct -p mapping.