Skip to main content

BlackCraft Exporter

License Issues PyPI Version Docker

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

  1. Install poetry
  2. Get the repository, run poetry install inside
  3. 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, bedrock
  • target: The address to the Minecraft server
  • timeout: (optional) The maximum request timeout in seconds, including all steps inside probing. Default: 10
  • mimic: (optional, java only) Override the hostname and port in the handshake packet. By default, the target parameter will be used
  • proxy: (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:1081 or socks5://user:password@127.0.0.1:1080
  • max_attempts: (optional) The maximum probe attempts, including retries. Note that each attempt has the timeout of timeout / 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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

blackcraft_exporter-0.1.7.tar.gz (19.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

blackcraft_exporter-0.1.7-py3-none-any.whl (23.4 kB view details)

Uploaded Python 3

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

Hashes for blackcraft_exporter-0.1.7.tar.gz
Algorithm Hash digest
SHA256 dd57900d6148847da788f563288ec95e2fe46774076412c97b8f3b63dfcf301c
MD5 b327d4212c056145c8c22f9982569ec3
BLAKE2b-256 64aa92b72c515d8e21ebae003183e9225a0e71464790ca343b59da967e9d442e

See more details on using hashes here.

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

Hashes for blackcraft_exporter-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 8a5c862fe7cf50bef14ca26a3d68ce36d565b8d6bf5b74a2861bb6115e329db5
MD5 b4ac218cc42a7a1ed628e9baa003f0e2
BLAKE2b-256 eb7a42fd74f00d736026b37e5164c89baa3ca4b99d144ba9489490939194dfa4

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.7 This release

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page