-
Notifications
You must be signed in to change notification settings - Fork 2
6. Custom dashboards
Vincenzo Reina edited this page May 5, 2025
·
6 revisions
- Bukkit Server Metrics: TPS, memory, disk space, entities, chunks
- Bukkit Players and Ping: Player count and ping statistics
- Velocity System Metrics: Memory and disk usage
- Velocity Players and Ping: Player count and ping statistics
- In Grafana, click "+ New Dashboard"
- Click "Add visualization"
- Select "InfluxDB_v2_Flux" data source
- Create a basic query:
from(bucket: "metrics_db")
|> range(start: v.timeRangeStart)
|> filter(fn: (r) => r._measurement == "minecraft_stats")
|> filter(fn: (r) => r._field == "your_metric_here")
|> filter(fn: (r) => r.server == "your-server-name")
- TPS:
tps_1m
,tps_5m
,tps_15m
- World data:
entities_count
,loaded_chunks
- Memory:
used_memory
,available_memory
- Disk:
total_disk_space
,usable_disk_space
- Players:
players_online
- Ping:
min_ping
,max_ping
,avg_ping
from(bucket: "metrics_db")
|> range(start: v.timeRangeStart)
|> filter(fn: (r) => r._measurement == "minecraft_stats")
|> filter(fn: (r) => r._field == "tps_1m")
|> filter(fn: (r) => r.server == "bed1")
from(bucket: "metrics_db")
|> range(start: v.timeRangeStart)
|> filter(fn: (r) => r._measurement == "minecraft_stats")
|> filter(fn: (r) => r._field == "players_online")
|> filter(fn: (r) => r.server == "velocity1")
from(bucket: "metrics_db")
|> range(start: v.timeRangeStart)
|> filter(fn: (r) => r._measurement == "minecraft_stats")
|> filter(fn: (r) => r._field == "used_memory")
|> filter(fn: (r) => r.server == "bed1")
from(bucket: "metrics_db")
|> range(start: v.timeRangeStart)
|> filter(fn: (r) => r._measurement == "minecraft_stats")
|> filter(fn: (r) => r._field == "avg_ping")
|> filter(fn: (r) => r.server == "velocity1")
To show metrics from multiple servers:
- Add dashboard variable named "server"
- In queries, replace server name with:
${server}
Example with variable:
from(bucket: "metrics_db")
|> range(start: v.timeRangeStart)
|> filter(fn: (r) => r._measurement == "minecraft_stats")
|> filter(fn: (r) => r._field == "players_online")
|> filter(fn: (r) => r.server == "${server}")