A blackbox_exporter-like prober for Minecraft
Project description
BlackCraft Exporter
A blackbox_exporter-like prober for Minecraft
To run
BlackCraft Exporter requires no configuration file and can be started with no extra argument
By default, it will listen on tcp 0.0.0.0:9165. Run with --help argument to see all available CLI arguments
with PyPI
[!IMPORTANT] BlackCraft Exporter is a standalone application and has strict version requirements for its dependent Python packages. It's highly suggested to install it with pipx, or install it in a dedicated venv environment
BlackCraft Exporter is available on PyPI: blackcraft_exporter as a regular python package. It requires Python >= 3.11 to run
You can install it with pipx:
pipx install blackcraft_exporter
Then you should be able to run it using the blackcraft_exporter command (make sure your pipx binary $PATH has been set correctly)
$ blackcraft_exporter --version
BlackCraft Exporter v0.1.7
$ blackcraft_exporter
41832 2025-03-16 09:10:18.367 - INFO: Starting BlackCraft Exporter v0.1.7
41832 2025-03-16 09:10:18.367 - INFO: Started server process [41832]
41832 2025-03-16 09:10:18.368 - INFO: Waiting for application startup.
41832 2025-03-16 09:10:18.368 - INFO: Application startup complete.
41832 2025-03-16 09:10:18.368 - INFO: Uvicorn running on http://0.0.0.0:9165 (Press CTRL+C to quit)
with docker
BlackCraft Exporter is available on DockerHub: fallenbreath/blackcraft_exporter
docker run --rm -p 9165/tcp fallenbreath/blackcraft_exporter
manual installation
- Install poetry
- Get the repository, run
poetry installinside - Run
python -m blackcraft_exporter
To use
Basic usage
Just like the blackbox exporter, you need to send an HTTP GET request to the /probe endpoint
to get the metrics of the target Minecraft server
curl http://localhost:9165/probe?type=java&target=mc.example.com
Query parameters:
type: The type of the Minecraft server. Options:java,bedrocktarget: The address to the Minecraft servertimeout: (optional) The maximum request timeout in seconds, including all steps inside probing. Default:10mimic: (optional, java only) Override the hostname and port in the handshake packet. By default, thetargetparameter will be usedproxy: (optional, java only) If provided, connect to the server using the given proxy address- Supported http, socks4, socks5 proxy. See the python-socks library for more information
- The address syntax is something like
http://127.0.0.1:1081orsocks5://user:password@127.0.0.1:1080
max_attempts: (optional) The maximum probe attempts, including retries. Note that each attempt has the timeout oftimeout / max_attempts. Default:1
Prometheus
Example config for Minecraft Java Edition:
scrape_configs:
- job_name: blackcraft # Can be any name you want
metrics_path: /probe
params:
type: [ java ] # Set type to java
static_configs:
- targets:
- 192.168.1.1 # IP only
- 192.168.1.1:25566 # IP with port
- mc.example.com # Hostname only. SRV is supported
- mc.example.com:25566 # Hostname with port
relabel_configs:
- source_labels: [ __address__ ]
target_label: __param_target
- target_label: __address__
replacement: localhost:9165 # Your BlackCraft Exporter's hostname:port
Example config with more flexible control on the targets
scrape_configs:
- job_name: blackcraft # Can be any name you want
metrics_path: /probe
static_configs:
- targets:
- labels:
instance: 'My Java Server' # Its disabled name in grafana
type: 'java'
targets: [ 'mc.example.com' ]
- labels:
instance: 'My Bedrock Server'
type: 'bedrock'
targets: [ 'bedrock.example.com:25566' ]
relabel_configs:
- source_labels: [ type ] # maps the "type" label into the query parameter
target_label: __param_type
- source_labels: [ __address__ ]
target_label: __param_target
- target_label: __address__
replacement: localhost:9165 # Your BlackCraft Exporter's hostname:port
Grafana
Example dashboard for BlackCraft Exporter: https://grafana.com/grafana/dashboards/22915
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file blackcraft_exporter-0.1.7.tar.gz.
File metadata
- Download URL: blackcraft_exporter-0.1.7.tar.gz
- Upload date:
- Size: 19.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.1 CPython/3.11.12 Linux/6.11.0-1013-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd57900d6148847da788f563288ec95e2fe46774076412c97b8f3b63dfcf301c
|
|
| MD5 |
b327d4212c056145c8c22f9982569ec3
|
|
| BLAKE2b-256 |
64aa92b72c515d8e21ebae003183e9225a0e71464790ca343b59da967e9d442e
|
File details
Details for the file blackcraft_exporter-0.1.7-py3-none-any.whl.
File metadata
- Download URL: blackcraft_exporter-0.1.7-py3-none-any.whl
- Upload date:
- Size: 23.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.1 CPython/3.11.12 Linux/6.11.0-1013-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a5c862fe7cf50bef14ca26a3d68ce36d565b8d6bf5b74a2861bb6115e329db5
|
|
| MD5 |
b4ac218cc42a7a1ed628e9baa003f0e2
|
|
| BLAKE2b-256 |
eb7a42fd74f00d736026b37e5164c89baa3ca4b99d144ba9489490939194dfa4
|