smbmc-exporter
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_statuswith a value of0. - A power supply sensor's status is
1when presence is detected and no fault flag is set; previously any other flag (e.g. standby) also reported0. - A failed scrape of the BMC returns
smbmc_up 0instead of an HTTP error. smbmc_collector_collect_secondsis a histogram rather than a summary (_sumand_countare unchanged).- New:
smbmc_up,smbmc_pmbus_info,smbmc_sensor_power_supply_flag,--password-file,--insecure,--timeout. --hostnameaccepts 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)
| 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)
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.