开源软件名称(OpenSource Name):sladkoff/minecraft-prometheus-exporter开源软件地址(OpenSource Url):https://github.com/sladkoff/minecraft-prometheus-exporter开源编程语言(OpenSource Language):Java 100.0%开源软件介绍(OpenSource Introduction):Minecraft Prometheus ExporterA Bukkit plugin which exports Minecraft server stats for Prometheus. If you're running multiple Minecraft servers behind a BungeeCord proxy, you might also be interested in Bungeecord Prometheus Exporter for additional metrics! Quick StartDrop the prometheus-exporter.jar into your Bukkit plugins directory and start your Minecraft server. After startup, the Prometheus metrics endpoint should be available at The metrics port can be customized in the plugin's config.yml (a default config will be created after the first use). Plugin configHere's a default config with annotations. # Note that the HTTP server binds to localhost by default.
# If your Prometheus runs on another host or inside a Kubernetes cluster
# set this to any reachable IP or 0.0.0.0 to listen on all interfaces.
host: localhost
# The port can be changed in case it conflicts with any other application.
port: 9940
# Metrics can be enabled individually. Metrics which are disabled
# by default may have a performance impact on your server.
# See the rest of the README for more information.
enable_metrics:
jvm_threads: true
jvm_gc: true
players_total: true
entities_total: true
living_entities_total: true
loaded_chunks_total: true
jvm_memory: true
players_online_total: true
tps: true
tick_duration_average: true
tick_duration_median: true
tick_duration_min: false
tick_duration_max: true
player_online: false
player_statistic: false Prometheus configAdd the following job to the Single server- job_name: 'minecraft'
static_configs:
- targets: ['localhost:9940']
labels:
server_name: 'my-awesome-server' Multiple serversYou can use labels in your Prometheus scrape configuration to distinguish between multiple servers: - job_name: 'minecraft'
static_configs:
- targets: ['localhost:9940']
labels:
server_name: 'server1'
- targets: ['localhost:9939']
labels:
server_name: 'server2' Import Grafana Dashboard
Available metricsThese are the stats that are currently exported by the plugin.
Player metrics (experimental!)There is an option to export per-player statistics like the number of blocks mined, mobs killed, items used, etc. The amount of data stored in Prometheus can dramatically increase when this is enabled as individual time-series will be generated for each player that has ever been seen on the server. The statistic collection may also have an impact on the Minecraft server performance for bigger servers but it has not been measured or tested. On the other hand this should be quite safe for small private servers with limited players. You can enable the experimental player export in the config.yaml. enable_metrics:
player_online: true
player_statistic: true This will enable the additional metrics.
There's a sample dashboard available to get you started. Collect metrics about your own pluginYou can easily collect metrics about your own plugin. Include the Prometheus dependency<dependency>
<groupId>io.prometheus</groupId>
<artifactId>simpleclient_common</artifactId>
<version>...</version>
</dependency> Collect metricsThis pseudo code shows how you would count invocations of a plugin command. public class MyPluginCommand extends PluginCommand {
// Register your counter
private Counter commandCounter = Counter.build()
.name("mc_my_plugin_command_invocations_total")
.help("Counter for my plugin command invocations")
.register();
@Override
public boolean execute(CommandSender sender, String commandLabel, String[] args) {
// Increment your counter;
commandCounter.inc();
// Do other stuff
return true;
}
} |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论