• Monitoreo Avanzado de GPUs con DCGM-Exporter, Prometheus y Grafana
blog-thumb

Introducción

¿Sabías que cada GPU de tu entorno puede generar datos valiosos? Si se analizan correctamente, estas métricas pueden optimizar el rendimiento, reducir costos y acelerar decisiones estratégicas.

El DCGM-Exporter de NVIDIA permite extraer métricas detalladas de GPUs, integrándose fácilmente con Prometheus y Grafana para dashboards inteligentes y visualizaciones en tiempo real.


Por qué importa monitorear tus GPUs

Muchas empresas pierden oportunidades por no seguir correctamente sus recursos de GPU. Con un monitoreo estratégico, puedes:

  • Detectar cuellos de botella de rendimiento antes de que afecten la producción.
  • Optimizar el uso de recursos y reducir costos.
  • Tomar decisiones basadas en datos, no en suposiciones.
  • Monitorear múltiples clusters de forma centralizada.

El verdadero valor surge cuando logras centralizar métricas y transformarlas en insights accionables.


Lo que descubrirás en este post

Aquí aprenderás, paso a paso:

  1. Configurar rápidamente el DCGM-Exporter en Docker
  2. Hacer deploy en Kubernetes usando Helm Chart
  3. Integrar métricas al Prometheus central
  4. Visualizar dashboards poderosos en Grafana

Todo esto con enfoque en transformar métricas crudas en información estratégica para tu negocio.


Ejecutando DCGM-Exporter en Docker

Para correr el DCGM-Exporter rápidamente en una máquina con GPU:

docker run -d --gpus all --cap-add SYS_ADMIN --rm -p 9400:9400 \
  nvcr.io/nvidia/k8s/dcgm-exporter:4.4.1-4.5.2-ubuntu22.04

Probar el endpoint de métricas:

curl localhost:9400/metrics

Salida esperada:

# HELP DCGM_FI_DEV_SM_CLOCK SM clock frequency (in MHz).
# TYPE DCGM_FI_DEV_SM_CLOCK gauge
DCGM_FI_DEV_SM_CLOCK{gpu="0",UUID="GPU-604ac76c-d9cf-xxx"} 139

Deploy de DCGM-Exporter en Kubernetes

NVIDIA mantiene un Helm Chart oficial para instalar el DCGM-Exporter en clusters Kubernetes:

helm repo add gpu-helm-charts https://nvidia.github.io/dcgm-exporter/helm-charts
helm repo update
helm install --generate-name gpu-helm-charts/dcgm-exporter

Verificar el pod:

kubectl get pods -l "app.kubernetes.io/name=dcgm-exporter" -n default

Acceder a métricas localmente:

kubectl port-forward svc/dcgm-exporter 8080:9400
curl http://127.0.0.1:8080/metrics

Configurando Prometheus Local en Docker

Agrega un job de scrape para recolectar métricas de DCGM-Exporter en prometheus.yml:

scrape_configs:
  - job_name: "dcgm-exporter"
    static_configs:
      - targets: ["host.docker.internal:9400"]

Usa host.docker.internal en Docker Desktop (Windows/Mac). En Linux, reemplaza con la IP de la máquina host.

Reinicia Prometheus:

docker run -d --name prometheus --network=host \
  -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \
  prom/prometheus

Ahora tus métricas de DCGM-Exporter serán recolectadas correctamente.


Integración con Grafana

NVIDIA ofrece un dashboard oficial para visualizar las métricas:

Solo importa el JSON en Grafana y empieza a explorar insights en tiempo real.

Para aprovechar todo el potencial de tus datos, envía las métricas de Prometheus local a un Prometheus central, que se comunica directamente con Grafana, permitiendo:

  • Visualizaciones precisas y en tiempo real.
  • Insights accionables para decisiones estratégicas.
  • Monitoreo simplificado de múltiples clusters.

¿Quieres saber más o implementar esta integración en tu entorno? ¡Contáctanos y transforma tus métricas en decisiones inteligentes!


Conclusión

Con DCGM-Exporter, es posible monitorear GPUs en entornos on-premise o clusters Kubernetes, integrando de forma sencilla con Prometheus y Grafana.