GPU monitoring
There are two complementary sources of GPU metrics.
h2oGPTe models pod metrics​
Each models pod serves Prometheus metrics at /metrics-prometheus on its service port (8000 by default). Besides jobs_queue_size, it reports one series per GPU visible to the pod, labelled with gpu (index), uuid and name:
| Metric | Unit |
|---|---|
h2ogpte_gpu_utilization_percent | % |
h2ogpte_gpu_memory_used_bytes | bytes |
h2ogpte_gpu_memory_total_bytes | bytes |
h2ogpte_gpu_temperature_celsius | °C |
Values are read with nvidia-smi and cached for 10 seconds. On a pod without a GPU, or when nvidia-smi fails, the GPU series are omitted and the rest of the endpoint still works.
If you run the Prometheus Operator (for example through kube-prometheus-stack), enable the ServiceMonitor in the Helm chart:
models:
serviceMonitor:
enabled: true
interval: 30s
# Match the serviceMonitorSelector of your Prometheus, if it has one.
labels:
release: kube-prometheus-stack
It scrapes the models pods and, when modelsHeavy.enabled is set, the heavy GPU tier too. This gives a per-pod view: which models pod is using which GPU, and how much.
Node-level metrics with DCGM​
For the full set of NVIDIA DCGM metrics (SM clocks, power draw, XID errors, NVLink bandwidth and more), use the dcgm-exporter that ships with the NVIDIA GPU Operator. The GPU Operator Helm chart deploys it through dcgmExporter.enabled and can create its own ServiceMonitor with dcgmExporter.serviceMonitor.enabled=true (check the default of your operator version with helm show values nvidia/gpu-operator). See NVIDIA's guide Integrating GPU Telemetry into Kubernetes and the dcgm-exporter project for details. Metrics such as DCGM_FI_DEV_GPU_UTIL and DCGM_FI_DEV_FB_USED are then available in the same Prometheus.
The h2oGPTe Helm chart does not deploy dcgm-exporter itself.
- Submit and view feedback for this page
- Send feedback about Enterprise h2oGPTe to cloud-feedback@h2o.ai