Enviar métricas da GPU para o Cloud Monitoring

Se o cluster tiver nós que usam GPUs NVIDIA, será possível 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 que gerenciam o ciclo de vida da infraestrutura de tecnologia subjacente. Para saber mais sobre papéis comuns e tarefas de exemplo referenciados no conteúdo Google Cloud , consulte Funções e tarefas de usuário comuns do GKE Enterprise.

Antes de começar

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

Configurar um recurso do PodMonitoring

Configure um recurso PodMonitoring para o Google Cloud Managed Service para Prometheus a fim de coletar 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 captura de destino. A raspagem de destino e a ingestão de métricas são configuradas usando recursos personalizados do Kubernetes. O serviço gerenciado usa recursos personalizados do PodMonitoring.

Um recurso personalizado do PodMonitoring raspa os destinos no namespace em que ele é implantado. Para extrair objetivos 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, é 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 PodMonitoring.

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

    • KUBECONFIG: o caminho do arquivo kubeconfig para o cluster.

  3. Para verificar se o recurso personalizado 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 Console do Google Cloud, acesse a página do  Metrics Explorer:

    Acesse o Metrics explorer

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

  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 PodMonitoring.

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