Enviar métricas de GPU para o Cloud Monitoring

Se o cluster tiver nós que usam NVIDIA GPUs, você poderá monitorar a utilização, o desempenho e a integridade da GPU configurando o cluster para enviar métricas do NVIDIA Data Center GPU Manager (DCGM) ao Cloud Monitoring. Essa solução usa o Google Cloud Managed Service para Prometheus para coletar métricas do NVIDIA DCGM.

Esta página é destinada a administradores de TI e operadores responsáveis por gerenciar o ciclo de vida de infraestruturas de tecnologia. Para saber mais sobre papéis comuns e tarefas de exemplo referenciados no Google Cloud conteúdo, consulte Funções e tarefas comuns do GKE.

Antes de começar

Para usar o Google Cloud Managed Service para Prometheus para coletar métricas do DCGM, a implantação do Google Distributed Cloud precisa atender aos seguintes requisitos:

Configurar um recurso do PodMonitoring

Configure um recurso do PodMonitoring para que Google Cloud Managed Service para Prometheus colete as métricas exportadas. Se você estiver com problemas para instalar um aplicativo ou exportador devido a políticas restritivas de segurança ou da organização, recomendamos consultar a documentação de código aberto para receber suporte.

Para ingerir os dados de métrica emitidos pelo pod do exportador do DCGM (nvidia-dcgm-exporter), o Google Cloud Managed Service para Prometheus usa a extração de destino. A extração de destino e a ingestão de métricas são configuradas usando recursos personalizados do Kubernetes. O serviço gerenciado usa PodMonitoring recursos personalizados.

Um recurso personalizado do PodMonitoring extrai destinos apenas no namespace em que ele é implantado. Para extrair destinos em vários namespaces, implante o mesmo recurso personalizado do PodMonitoring em cada namespace.

  1. Crie um arquivo de manifesto com a seguinte configuração:

    A seção selector no manifesto especifica que o pod do exportador do DCGM, nvidia-dcgm-exporter, está selecionado para monitoramento. Esse pod é implantado quando você instala o Operador de 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. Implante o recurso personalizado do PodMonitoring:

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

    Substitua:

    • NAMESPACE: o namespace em que você está implantando o recurso personalizado do PodMonitoring.

    • FILENAME: o caminho do arquivo de manifesto para o recurso personalizado do PodMonitoring.

    • KUBECONFIG: o caminho do arquivo kubeconfig do cluster.

  3. Para verificar se o recurso personalizado do PodMonitoring está instalado no namespace pretendido, execute o seguinte comando:

    kubectl get podmonitoring -n NAMESPACE --kubeconfig KUBECONFIG
    

    A saída será parecida com esta:

    NAME       AGE
    dcgm-gmp   3m37s
    

Verificar a configuração

Use o Metrics Explorer para verificar se você configurou corretamente o exportador do DCGM. Pode levar um ou dois minutos para que o Cloud Monitoring ingira as métricas.

Para verificar se as métricas foram transferidas, faça o seguinte:

  1. No Google Cloud console, acesse a  páginaMetrics Explorer:

    Acesse o Metrics Explorer

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoring.

  2. Use a linguagem de consulta do Prometheus (PromQL) para especificar os dados que serão exibidos no gráfico:

    1. Na barra de ferramentas do painel do criador de consultas, clique em < > PromQL.

    2. Insira sua consulta no editor de consultas. Por exemplo, para gerar um gráfico sobre o número médio de segundos que as CPUs gastaram em cada modo na última hora, use a seguinte consulta:

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

    Substitua:

    • CLUSTER_NAME: o nome do cluster com nós que estão usando GPUs.

    • NAMESPACE: o namespace em que você implantou o recurso personalizado do PodMonitoring.

    Para mais informações sobre como usar PromQL, consulte PromQL no Cloud Monitoring.