feat(observability): add DCGM nvidia-exporter for GPU metrics
This commit is contained in:
19
compose.yml
19
compose.yml
@@ -599,6 +599,25 @@ services:
|
|||||||
start_period: 30s
|
start_period: 30s
|
||||||
restart: unless-stopped
|
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:
|
promtail:
|
||||||
image: grafana/promtail:latest
|
image: grafana/promtail:latest
|
||||||
container_name: promtail
|
container_name: promtail
|
||||||
|
|||||||
@@ -59,3 +59,18 @@ class TestCadvisor:
|
|||||||
# rootfs, sys, /dev/disk needed for resource introspection
|
# rootfs, sys, /dev/disk needed for resource introspection
|
||||||
assert any(s == "/" for s in sources)
|
assert any(s == "/" for s in sources)
|
||||||
assert any(s == "/sys" 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)
|
||||||
|
|||||||
Reference in New Issue
Block a user