Volver al ranking

utkuozdemir/nvidia_gpu_exporter

Go

Nvidia GPU exporter for prometheus using nvidia-smi binary

prometheusprometheus-exporternvidia-gpunvidianvidia-smimonitoringaicryptocurrencygamingllmllm-traininginference
Crecimiento de estrellas
Estrellas
1.5k
Forks
149
Crecimiento semanal
Issues
7
5001k1.5k
jun 2021feb 2023nov 2024jul 2026
ArtefactosGo Modulesgo get github.com/utkuozdemir/nvidia_gpu_exporter
README

nvidia_gpu_exporter

build codecov Go Report Card Latest GitHub release GitHub license GitHub all releases Docker Pulls

Nvidia GPU exporter for prometheus, using nvidia-smi binary to gather metrics.


[!WARNING] Heads up: this is a side project I maintain in my spare time. I might take a long time to look at issues or PRs, or not get to them at all. Sorry in advance, and thanks for understanding.


Introduction

This is a simple exporter that uses the nvidia-smi(.exe) binary to collect, parse and export metrics. Since it only needs nvidia-smi, it also works on Windows - no Docker or Linux required.

It can also skip nvidia-smi and read the metrics straight from the NVIDIA Management Library (NVML). This mode is experimental and exposes some things nvidia-smi cannot provide, like per-MIG-instance metrics and XID error counters; see CONFIGURE.md.

This project is based on a0s/nvidia-smi-exporter. However, this one is written in Go to produce a single, static binary.

Use cases

  • Consumer and prosumer GPUs (GeForce/RTX), where the datacenter tooling exposes little and nvidia-smi is often the only uniform source of utilization, memory, power and temperature
  • Small Kubernetes clusters, edge boxes and homelabs that want GPU metrics without installing the NVIDIA GPU Operator stack
  • Virtualized or restricted setups (vGPU guests, MIG slices, locked-down containers) where the deeper GPU counters are not exposed but nvidia-smi still answers
  • Mixed fleets of old and new cards that need one exporter that behaves the same everywhere
  • Gaming rigs, for watching your GPU stats on a dashboard while you play

If you run datacenter cards on Kubernetes with the GPU Operator already installed, DCGM-exporter is probably the better fit; this exporter aims at the cases above.

Highlights

  • 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-smi command remotely
  • Auto-discovery of the metric fields nvidia-smi can expose (future-compatible)
  • Optional per-process GPU metrics: see which process uses how much GPU memory
  • Optional background collection: run nvidia-smi on a timer instead of on every scrape
  • Comes with its own Grafana dashboard

Try it without a GPU

Demo mode serves realistic synthetic metrics, including the NVML-only families, with no GPU, driver or even Linux required:

nvidia_gpu_exporter --collect.backend demo

By default it simulates two H200 GPUs with fluctuating values, a MIG topology and an XID error history. The simulated setup is configurable; see CONFIGURE.md.

Visualization

You can use the official Grafana dashboard to see your GPU metrics in a nicely visualized way.

Here's how it looks: Grafana dashboard

For machines with more than one GPU there is a companion overview dashboard that compares all GPUs of a node side by side and drills down into the single-GPU dashboard above. Import it from the JSON file, or enable grafanaDashboard in the Helm chart to get both dashboards provisioned.

Grafana overview dashboard

Installation

You can install it from plain binaries, deb/rpm packages, winget, Docker images or the Helm chart. See INSTALL.md for details.

Verifying releases

Release artifacts are signed so you can check they came from this project's release pipeline:

  • The checksums.txt file 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.

Configuration

See CONFIGURE.md for details.

Metrics

See METRICS.md for details.

Contributing

See CONTRIBUTING.md for details.

Help wanted: contribute a GPU capture

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 too

It 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.

Star History

Star History Chart
Repositorios relacionados
bregman-arie/devops-exercises

Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, Virtualization. DevOps Interview Questions

PythonPyPIOtherdevopsaws
83.3k19.8k
netdata/netdata

The fastest path to AI-powered full stack observability, even for lean teams.

GoGo ModulesGNU General Public License v3.0monitoringdocker
netdata.cloud
79.8k6.5k
grafana/grafana

The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.

TypeScriptnpmGNU Affero General Public License v3.0grafanamonitoring
grafana.com
75.7k14.3k
prometheus/prometheus

The Prometheus monitoring system and time series database.

GoGo ModulesApache License 2.0monitoringmetrics
prometheus.io
65.2k10.7k
SigNoz/signoz

SigNoz is an open-source, OpenTelemetry-native observability platform for your team and their AI agents. Get logs, metrics, and traces in one tool with features like APM, distributed tracing, log management, infra monitoring, etc. Combined with SigNoz MCP and a native AI teammate (in SigNoz Cloud) it helps you build more resilient apps.

TypeScriptnpmOtherobservabilityapplication-monitoring
signoz.io
31.4k2.4k
grafana/loki

Like Prometheus, but for logs.

GoGo ModulesGNU Affero General Public License v3.0lokigrafana
grafana.com/oss/loki
28.6k4.1k
openfaas/faas

OpenFaaS - Serverless Functions Made Simple

GoGo ModulesOtherfunctions-as-a-servicefunctions
openfaas.com
26.2k2k
apache/skywalking

APM, Application Performance Monitoring System

JavaMavenApache License 2.0skywalkingobservability
skywalking.apache.org
24.9k6.6k
jina-ai/serve

☁️ Build multimodal AI applications with cloud-native stack

PythonPyPIApache License 2.0neural-searchcloud-native
jina.ai/serve
21.9k2.2k
openobserve/openobserve

Open source observability platform for logs, metrics, traces, frontend monitoring, pipelines and LLM observability. A sophisticated, simple and highly performant alternative to Datadog, Splunk, and Elasticsearch with 140x lower storage costs and single binary deployment.

TypeScriptnpmGNU Affero General Public License v3.0logsmetrics
openobserve.ai
20.3k953
milanm/DevOps-Roadmap

DevOps Roadmap for 2026. with learning resources

Apache License 2.0awsazure
newsletter.techworld-with-milan.com
19.9k3.4k
VictoriaMetrics/VictoriaMetrics

VictoriaMetrics: fast, cost-effective monitoring solution and time series database

GoGo ModulesApache License 2.0tsdbprometheus
victoriametrics.com
17.4k1.7k