Nvidia GPU exporter for prometheus, using nvidia-smi binary to gather metrics.
Warning
Maintenance Status: I get that it can be frustrating not to hear back about the stuff you've brought up or the changes you've suggested. But honestly, for over a year now, I've hardly had any time to keep up with my personal open-source projects, including this one. I am still committed to keep this tool working and slowly move it forward, but please bear with me if I can't tackle your fixes or check out your code for a while. Thanks for your understanding.
There are many Nvidia GPU exporters out there however they have problems such as not being maintained, not providing pre-built binaries, having a dependency to Linux and/or Docker, targeting enterprise setups (DCGM) and so on.
This is a simple exporter that uses nvidia-smi(.exe) binary to collect, parse and export metrics.
This makes it possible to run it on Windows and get GPU metrics while gaming - no Docker or Linux required.
This project is based on a0s/nvidia-smi-exporter. However, this one is written in Go to produce a single, static binary.
If you are a gamer who's into monitoring, you are in for a treat.
- Will work on any system that has
nvidia-smi(.exe)?binary - Windows, Linux, MacOS... No C bindings required - Doesn't even need to run the monitored machine: can be configured to execute
nvidia-smicommand remotely - No need for a Docker or Kubernetes environment
- Auto-discovery of the metric fields
nvidia-smican expose (future-compatible) - Optional per-process GPU metrics: see which process uses how much GPU memory
- Comes with its own Grafana dashboard
You can use the official Grafana dashboard to see your GPU metrics in a nicely visualized way.
See INSTALL.md for details.
Release artifacts are signed so you can check they came from this project's release pipeline:
- The
checksums.txtfile attached to each release is signed with GPG (checksums.txt.asc), which covers every binary, archive and package. - The container images and the Helm chart are signed keyless with cosign, tied to the release workflow's identity.
See INSTALL.md for the exact verification commands, and the chart README for the chart.
See CONFIGURE.md for details.
See METRICS.md for details.
See CONTRIBUTING.md for details.
The exporter parses nvidia-smi output, which differs across GPU models, driver
versions and operating systems. If you have hardware that isn't covered yet
(datacenter cards, MIG, multi-GPU, Windows/WSL2, brand-new drivers...), you can
help a lot by capturing your nvidia-smi output with one command:
./internal/captures/collect.sh # add --load for an under-load sample tooIt needs only nvidia-smi, bash, and the standard core utilities (awk,
sed, ...), runs read-only, and masks identifiers (GPU UUID, serial, hostname)
by default. It writes one .txt file: commit it and open a PR, or attach it to
an issue. See internal/captures/README.md.
