Sign inSign up

theo01/nerdqaxe-exporter

By theo01

Updated 2 days ago

Prometheus exporter for NerdQaxe++

Image
0

674

theo01/nerdqaxe-exporter repository overview

NerdQAxe exporter logo

nerdqaxe-exporter

Prometheus exporter for the NerdQAxe firmware.

It queries /api/system/info on the miner at each Prometheus scrape and exposes the result as metrics in base units (hashes/second, volts, amperes, watts, seconds, degrees Celsius). One exporter serves several miners: repeat --target and every device is queried in parallel on each scrape.

Source, full metric list and Grafana dashboard: github.com/TheoBrigitte/nerdqaxe-exporter.

Tags

TagDescription
latestLatest release
X.Y.ZA specific release, e.g. 0.1.0

Platforms: linux/amd64, linux/arm64, linux/arm/v7.

The image is built from distroless/static-debian13 and contains the exporter binary alone. It needs no capabilities, no volume and no writable filesystem.

Usage

$ docker run --rm -p 10055:10055 docker.io/theo01/nerdqaxe-exporter --target http://nerdqaxe.local
{"level":"info","target":"http://nerdqaxe.local","device_model":"NerdQAxe++","asic_model":"BM1370","hostname":"nerdqaxe","version":"V1.0.37.2-LTS","time":"2026-09-13T12:09:14Z","message":"device reachable"}
{"level":"info","address":":10055","path":"/metrics","targets":["http://nerdqaxe.local"],"time":"2026-09-13T12:09:14Z","message":"listening"}

Metrics are then served on http://localhost:10055/metrics.

Targets can also be given as a comma-separated list in NERDQAXE_TARGET, which suits Compose better than repeated flags:

services:
  nerdqaxe-exporter:
    image: docker.io/theo01/nerdqaxe-exporter:latest
    ports:
      - "10055:10055"
    environment:
      NERDQAXE_TARGET: http://miner1.local,http://miner2.local
    restart: unless-stopped

A device that cannot be queried at startup stops the exporter; once it is running, a device that stops answering is reported as nerdqaxe_up 0 and the others keep being exported.

.local names are resolved over mDNS, which a container does not do by default. Use the device IP address, or run with --network host.

Flags

FlagDefaultDescription
--target, -trequiredBase URL of a device, repeat for several devices, also read from NERDQAXE_TARGET as a comma-separated list
--timeout5sTimeout for a device query
--web.listen-address:10055Address to listen on for telemetry
--web.metrics-path/metricsPath under which to expose metrics
--log.levelinfoOnly log at or above this level: debug, info, warn, error
--log.formatjsonLog output format: json, console
--version, -VPrint the version and exit

Prometheus

Scrape config, unchanged by the number of devices, which the hostname and mac labels tell apart:

scrape_configs:
  - job_name: nerdqaxe
    static_configs:
      - targets: ["nerdqaxe-exporter:10055"]

License

MIT

Tag summary

Content type

Image

Digest

sha256:d79914f3f

Size

5.6 MB

Last updated

2 days ago

docker pull theo01/nerdqaxe-exporter