Skip to main content

smbmc-exporter

crates.io PyPI

Prometheus exporter for Supermicro BMC metrics, built on smbmc.

Installation

Any of:

cargo install smbmc-exporter
uv tool install smbmc-exporter      # or: pipx install smbmc-exporter

Static Linux binaries (x86_64 and aarch64) are attached to each GitHub release.

Usage

Options can be passed as flags or environment variables.

Flag Environment variable Default Description
--hostname SMBMC_HOSTNAME Address of the BMC web interface; https:// if no scheme given
--username SMBMC_USERNAME Username for the BMC web interface
--password SMBMC_PASSWORD Password for the BMC web interface
--password-file SMBMC_PASSWORD_FILE Read the password from a file instead
--insecure SMBMC_INSECURE false Accept the BMC's self-signed TLS certificate
--timeout SMBMC_TIMEOUT 30 Timeout for each request to the BMC, in seconds
--listen-port LISTEN_PORT 8000 Port for the daemon to listen on
--listen-addr LISTEN_ADDR 0.0.0.0 Address for the daemon to listen on
SMBMC_PASSWORD=secret smbmc-exporter --hostname https://192.168.1.1 --username ADMIN --insecure
curl http://localhost:8000/metrics

The BMC is queried on every scrape, and overlapping scrapes are serialised so a slow BMC isn't overwhelmed. Log verbosity is controlled with RUST_LOG (default info).

Metrics

Metrics are served in the OpenMetrics text format.

Metric Labels Description
smbmc_up 1 if the last scrape of the BMC succeeded
smbmc_collector_collect_seconds Histogram of time spent collecting from the BMC
smbmc_sensor_status id, name 1 if the sensor is present (and, for PSUs, not faulted)
smbmc_sensor_temperature_celsius id, name Temperature reading
smbmc_sensor_threshold_temperature_celsius id, type Temperature thresholds (LNR, LC, LNC, UNC, UC, UNR)
smbmc_sensor_voltage_volts id, name Voltage reading
smbmc_sensor_threshold_voltage_volts id, type Voltage thresholds
smbmc_sensor_fan_speed_rpm id, name Fan speed
smbmc_sensor_threshold_fan_speed_rpm id, type Fan speed thresholds
smbmc_sensor_power_supply_flag id, name, flag Power supply sensor event flags
smbmc_pmbus_status id 1 if the PSU slot is populated and enabled
smbmc_pmbus_info id, name Always 1; name is the PSU serial number
smbmc_pmbus_voltage_volts id, type PSU voltage (Input (AC), Output (DC))
smbmc_pmbus_current_amperes id, type PSU current (Input, Output)
smbmc_pmbus_power_watts id, type PSU power (Input, Output)
smbmc_pmbus_temperature_celsius id, type PSU temperatures (Input, Output)
smbmc_pmbus_fan_speed_rpm id, type PSU fan speeds (Input, Output)

See tests/fixtures/metrics.txt for example output.

Changes from 0.2 (Python)

Metric names and labels are unchanged, so existing dashboards keep working. The behavioural differences are:

  • Sensors the BMC reports as not present, and empty PSU slots, no longer export meaningless zero readings and thresholds; they still appear in smbmc_sensor_status / smbmc_pmbus_status with a value of 0.
  • A power supply sensor's status is 1 when presence is detected and no fault flag is set; previously any other flag (e.g. standby) also reported 0.
  • A failed scrape of the BMC returns smbmc_up 0 instead of an HTTP error.
  • smbmc_collector_collect_seconds is a histogram rather than a summary (_sum and _count are unchanged).
  • New: smbmc_up, smbmc_pmbus_info, smbmc_sensor_power_supply_flag, --password-file, --insecure, --timeout.
  • --hostname accepts a bare host (https:// is assumed) and is also available as --server.

License

GPL-3.0-only

Metadata

Release files for smbmc-exporter 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for smbmc-exporter 0.3.0
File Size Uploaded Provenance Actions
smbmc_exporter-0.3.0.tar.gz 40.7 kB Without provenance Details for smbmc_exporter-0.3.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for smbmc-exporter 0.3.0
File Actions
smbmc_exporter-0.3.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details for smbmc_exporter-0.3.0-py3-none-win_amd64.whl
smbmc_exporter-0.3.0-py3-none-musllinux_1_2_x86_64.whl Python 3 none Linux musl 1.2+ x86-64 Details for smbmc_exporter-0.3.0-py3-none-musllinux_1_2_x86_64.whl
smbmc_exporter-0.3.0-py3-none-musllinux_1_2_aarch64.whl Python 3 none Linux musl 1.2+ ARM64 Details for smbmc_exporter-0.3.0-py3-none-musllinux_1_2_aarch64.whl
smbmc_exporter-0.3.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details for smbmc_exporter-0.3.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
smbmc_exporter-0.3.0-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details for smbmc_exporter-0.3.0-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
smbmc_exporter-0.3.0-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details for smbmc_exporter-0.3.0-py3-none-macosx_11_0_arm64.whl
smbmc_exporter-0.3.0-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details for smbmc_exporter-0.3.0-py3-none-macosx_10_12_x86_64.whl

Total release size: 15.0 MB

Release files / smbmc_exporter-0.3.0.tar.gz

Download URL smbmc_exporter-0.3.0.tar.gz
Size 40.7 kB
Tags Source
SHA-256 checksum
How to use checksums
94de4d5ba6c79c1dcc696660100566c7ac69ea8cc9574fc11e4e37916e246223
BLAKE2b-256 checksum
How to use checksums
cf4cee89e21e981956dfe8eda1812da47b1d219df6006f33cf2f87b07e3a1068
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / smbmc_exporter-0.3.0-py3-none-win_amd64.whl

Download URL smbmc_exporter-0.3.0-py3-none-win_amd64.whl
Size 2.2 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
3b31214f0b6dfbc04b3893222d9ef7b7e1a8afed4beb7033a2174b6a1f0ebfe2
BLAKE2b-256 checksum
How to use checksums
ee9bdbb6d04f01863eb8e3bd015ed8213e32fc2cf1d4ba646ce825225c54e45c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / smbmc_exporter-0.3.0-py3-none-musllinux_1_2_x86_64.whl

Download URL smbmc_exporter-0.3.0-py3-none-musllinux_1_2_x86_64.whl
Size 2.3 MB
Tags Linux musl 1.2+ x86-64 Python 3
SHA-256 checksum
How to use checksums
8b14da56ab162a5a8753cee390135bdc65ccd61f6f1c2eb530fabf2eeb422b3d
BLAKE2b-256 checksum
How to use checksums
f294944b381dd6fb25154b216f586a9e0ba03151a0f8c68dafdd31ee6c63f900
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / smbmc_exporter-0.3.0-py3-none-musllinux_1_2_aarch64.whl

Download URL smbmc_exporter-0.3.0-py3-none-musllinux_1_2_aarch64.whl
Size 2.2 MB
Tags Linux musl 1.2+ ARM64 Python 3
SHA-256 checksum
How to use checksums
a428a8825f2656099a0ab9de14cb764b01def46267884c634bc5a6fcf533ad3c
BLAKE2b-256 checksum
How to use checksums
6384a4fc8f17aa991ff1b3f42a7e8335708765bfbf472331b58d786956fa2875
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / smbmc_exporter-0.3.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL smbmc_exporter-0.3.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 2.2 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
d89c6094fc4583e4b79acf3631f5dea5180004bd3aa44380aacfa5d52c60f5d2
BLAKE2b-256 checksum
How to use checksums
5ebb35fe4ad71590c8baa78785367074bf690a2c8334b3f8d6f428ed33c7b39c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / smbmc_exporter-0.3.0-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl

Download URL smbmc_exporter-0.3.0-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Size 2.1 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
532719805b3a18632a2647c14a81e7b0ed40d03aabe5cc5064074e3e74cbddc4
BLAKE2b-256 checksum
How to use checksums
b32f729ccf4ec8c5e02765790da0e677ea7b4bbac9624a9ba5b38a675cbbd253
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / smbmc_exporter-0.3.0-py3-none-macosx_11_0_arm64.whl

Download URL smbmc_exporter-0.3.0-py3-none-macosx_11_0_arm64.whl
Size 2.0 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ceca7a096e02155fb76971ef946f9a6996239e75a12842ceee9190c5655878b7
BLAKE2b-256 checksum
How to use checksums
89ddac0684d44da30b482c378f2289e10d1460ff1ae1a6db475774ca18e4cb8a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / smbmc_exporter-0.3.0-py3-none-macosx_10_12_x86_64.whl

Download URL smbmc_exporter-0.3.0-py3-none-macosx_10_12_x86_64.whl
Size 2.1 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
13d3c18de3f5ba74bfb8a918ff29f69d742fa9656cf622cdff5518906d414f07
BLAKE2b-256 checksum
How to use checksums
08409b4c17870507acfbcfab671911ac4d9a75bf63d0bbfa393dafaa03b4f243
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for smbmc-exporter 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page