Skip to content

TickScope 1.1.0

Choose a tag to compare

@gzimbric gzimbric released this 07 Aug 04:26
· 54 commits to main since this release

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 percentilesmc_mspt_ms at 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 typemc_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.

Full documentation in the README · also on Modrinth.