Cómo enviar métricas de GPU a Cloud Monitoring

Si tu clúster tiene nodos que usan GPUs de NVIDIA, puedes supervisar el uso, el rendimiento y el estado de la GPU configurando el clúster para que envíe métricas del administrador de GPU del centro de datos de NVIDIA (DCGM) a Cloud Monitoring. Esta solución usa Google Cloud Managed Service para Prometheus para recopilar métricas de NVIDIA DCGM.

Esta página está destinada a administradores de TI y operadores que administran el ciclo de vida de la infraestructura tecnológica subyacente. Para obtener más información sobre los roles comunes y las tareas de ejemplo a las que hacemos referencia en el contenido de Google Cloud , consulta Tareas y roles comunes de los usuarios de GKE Enterprise.

Antes de comenzar

Para usar Google Cloud Managed Service para Prometheus y recopilar métricas de DCGM, tu implementación de Google Distributed Cloud debe cumplir con los siguientes requisitos:

Configura un recurso PodMonitoring

Configurar un recurso PodMonitoring para que Google Cloud Managed Service para Prometheus recopile las métricas exportadas. Si tienes problemas para instalar una aplicación o un exportador debido a políticas restringidas de la organización o de seguridad, te recomendamos que consultes la documentación de código abierto a fin de obtener asistencia.

Para transferir los datos de métrica que emite el pod del exportador de DCGM (nvidia-dcgm-exporter), Google Cloud Managed Service para Prometheus usa la recopilación de objetivos. La recopilación de objetivos y la transferencia de métricas se configuran mediante los recursos personalizados de Kubernetes. El servicio administrado usa recursos personalizados de PodMonitoring.

Un recurso personalizado de PodMonitoring recopila objetivos solo en el espacio de nombres en el que se implementa. Para recopilar objetivos en varios espacios de nombres, implementa el mismo recurso personalizado de PodMonitoring en cada espacio de nombres.

  1. Crea un archivo de manifiesto con la siguiente configuración:

    La sección selector del manifiesto especifica que se seleccionó el Pod del exportador de DCGM, nvidia-dcgm-exporter, para la supervisión. Este pod se implementa cuando instalas el operador de GPU de NVIDIA.

    apiVersion: monitoring.googleapis.com/v1
    kind: PodMonitoring
    metadata:
      name: dcgm-gmp
    spec:
      selector:
        matchLabels:
          app: nvidia-dcgm-exporter
      endpoints:
      - port: metrics
        interval: 30s
    
  2. Implementa el recurso personalizado PodMonitoring:

    kubectl apply -n NAMESPACE -f FILENAME --kubeconfig KUBECONFIG
    

    Reemplaza lo siguiente:

    • NAMESPACE: Es el espacio de nombres en el que implementas el recurso personalizado de PodMonitoring.

    • FILENAME: Es la ruta de acceso del archivo de manifiesto para el recurso personalizado PodMonitoring.

    • KUBECONFIG: Es la ruta del archivo kubeconfig del clúster.

  3. Para verificar que el recurso personalizado PodMonitoring esté instalado en el espacio de nombres deseado, ejecuta el siguiente comando:

    kubectl get podmonitoring -n NAMESPACE --kubeconfig KUBECONFIG
    

    El resultado debería ser similar al siguiente:

    NAME       AGE
    dcgm-gmp   3m37s
    

Verifica la configuración

Puedes usar el Explorador de métricas para verificar que configuraste correctamente el exportador de DCGM. Cloud Monitoring puede tardar uno o dos minutos en transferir las métricas.

Para verificar que se hayan transferido las métricas, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página  Explorador de métricas:

    Ir al Explorador de métricas

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.

  2. Usa el lenguaje de consulta de Prometheus (PromQL) para especificar los datos que se mostrarán en el gráfico:

    1. En la barra de herramientas del panel del compilador de consultas, haz clic en < > PromQL.

    2. Ingresa tu consulta en el editor de consultas. Por ejemplo, para representar gráficamente la cantidad promedio de segundos que las CPUs pasaron en cada modo durante la última hora, usa la siguiente consulta:

      DCGM_FI_DEV_GPU_UTIL{cluster="CLUSTER_NAME", namespace="NAMESPACE"}
      

    Reemplaza lo siguiente:

    • CLUSTER_NAME: Es el nombre del clúster con nodos que usan GPUs.

    • NAMESPACE: Es el espacio de nombres en el que implementaste el recurso personalizado de PodMonitoring.

    Para obtener más información sobre el uso de PromQL, consulta PromQL en Cloud Monitoring.