feat(observability): add DCGM nvidia-exporter for GPU metrics

This commit is contained in:
kert
2026-05-01 10:43:38 -04:00
parent c7d75cc52d
commit f6dd2f6b33
2 changed files with 34 additions and 0 deletions

View File

@@ -599,6 +599,25 @@ services:
start_period: 30s
restart: unless-stopped
nvidia-exporter:
image: nvcr.io/nvidia/k8s/dcgm-exporter:3.3.9-3.6.1-ubuntu22.04
container_name: nvidia-exporter
networks:
- observability
runtime: nvidia
environment:
- DCGM_EXPORTER_NO_HOSTNAME=1
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
cap_add:
- SYS_ADMIN
restart: unless-stopped
promtail:
image: grafana/promtail:latest
container_name: promtail

View File

@@ -59,3 +59,18 @@ class TestCadvisor:
# rootfs, sys, /dev/disk needed for resource introspection
assert any(s == "/" for s in sources)
assert any(s == "/sys" for s in sources)
class TestNvidiaExporter:
def test_nvidia_exporter_present(self):
svcs = _services()
assert "nvidia-exporter" in svcs
def test_nvidia_runtime(self):
svc = _services()["nvidia-exporter"]
assert svc.get("runtime") == "nvidia"
def test_nvidia_gpu_reservation(self):
svc = _services()["nvidia-exporter"]
devices = svc["deploy"]["resources"]["reservations"]["devices"]
assert any(d.get("driver") == "nvidia" for d in devices)