Envoyer des métriques GPU à Cloud Monitoring

Si votre cluster comporte des nœuds qui utilisent des GPU NVIDIA, vous pouvez surveiller l'utilisation, les performances et l'état des GPU en configurant le cluster pour qu'il envoie des métriques du gestionnaire GPU de centre de données (DCGM) NVIDIA à Cloud Monitoring. Cette solution utilise Google Cloud Managed Service pour Prometheus pour collecter des métriques à partir de NVIDIA DCGM.

Cette page s'adresse aux administrateurs et opérateurs informatiques qui gèrent le cycle de vie de l'infrastructure technologique sous-jacente. Pour en savoir plus sur les rôles courants et les exemples de tâches que nous citons dans le contenu Google Cloud , consultez la section Rôles utilisateur et tâches courantes de l'utilisateur dans GKE Enterprise.

Avant de commencer

Pour utiliser Google Cloud Managed Service pour Prometheus afin de collecter des métriques à partir de DCGM, votre déploiement Google Distributed Cloud doit répondre aux exigences suivantes:

Configurer une ressource PodMonitoring

Configurez une ressource PodMonitoring pour Google Cloud Managed Service pour Prometheus afin de collecter les métriques exportées. Si vous rencontrez des difficultés pour installer une application ou un exportateur en raison de règles de sécurité ou d'organisation restrictives, nous vous recommandons de consulter la documentation Open Source pour obtenir de l'aide.

Pour ingérer les données de métriques émises par le pod de l'exportateur DCGM (nvidia-dcgm-exporter), Google Cloud Managed Service pour Prometheus utilise le scraping cible. Le scraping et l'ingestion des métriques cibles sont configurés à l'aide des ressources personnalisées Kubernetes. Le service géré utilise des ressources personnalisées PodMonitoring.

Une ressource personnalisée PodMonitoring ne scrape les cibles que dans l'espace de noms dans lequel elle est déployée. Pour scraper des cibles dans plusieurs espaces de noms, déployez la même ressource personnalisée PodMonitoring dans chaque espace de noms.

  1. Créez un fichier manifeste avec la configuration suivante:

    La section selector du fichier manifeste spécifie que le pod d'exportation DCGM, nvidia-dcgm-exporter, est sélectionné pour la surveillance. Ce pod est déployé lorsque vous installez l'opérateur GPU 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. Déployez la ressource personnalisée PodMonitoring:

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

    Remplacez les éléments suivants :

    • NAMESPACE: espace de noms dans lequel vous déployez la ressource personnalisée PodMonitoring.

    • FILENAME: chemin d'accès au fichier manifeste de la ressource personnalisée PodMonitoring.

    • KUBECONFIG: chemin d'accès au fichier kubeconfig du cluster.

  3. Pour vérifier que la ressource personnalisée PodMonitoring est installée dans l'espace de noms prévu, exécutez la commande suivante:

    kubectl get podmonitoring -n NAMESPACE --kubeconfig KUBECONFIG
    

    Le résultat doit ressembler à ce qui suit :

    NAME       AGE
    dcgm-gmp   3m37s
    

Vérifier la configuration

Vous pouvez utiliser l'explorateur de métriques pour vérifier que vous avez correctement configuré l'exportateur DCGM. L'ingestion de vos métriques par Cloud Monitoring peut prendre une ou deux minutes.

Procédez comme suit pour vérifier que les métriques ont bien été ingérées :

  1. Dans la console Google Cloud, accédez à la page  Explorateur de métriques :

    Accéder à l'explorateur de métriques

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Monitoring.

  2. Utilisez le langage de requête Prometheus (PromQL) pour spécifier les données à afficher dans le graphique:

    1. Dans la barre d'outils du volet du générateur de requêtes, cliquez sur < > PromQL.

    2. Saisissez une requête dans l'éditeur de requête. Par exemple, pour représenter graphiquement le nombre moyen de secondes que les processeurs passent dans chaque mode au cours de l'heure passée, utilisez la requête suivante:

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

    Remplacez les éléments suivants :

    • CLUSTER_NAME: nom du cluster avec des nœuds qui utilisent des GPU.

    • NAMESPACE: espace de noms dans lequel vous avez déployé la ressource personnalisée PodMonitoring.

    Pour en savoir plus sur l'utilisation de PromQL, consultez la page PromQL dans Cloud Monitoring.