Envie métricas de GPU para o Cloud Monitoring

Se o seu cluster tiver nós que usam GPUs NVIDIA, pode monitorizar a utilização, o desempenho e o estado das GPUs configurando o cluster para enviar métricas do NVIDIA Data Center GPU Manager (DCGM) para o Cloud Monitoring. Esta solução usa o serviço gerido do Google Cloud para o Prometheus para recolher métricas do NVIDIA DCGM.

Esta página destina-se a administradores de TI e operadores que gerem o ciclo de vida da infraestrutura tecnológica subjacente. Para saber mais sobre as funções comuns e exemplos de tarefas a que fazemos referência no conteúdo, consulte o artigo Funções e tarefas comuns do utilizador do GKE. Google Cloud

Antes de começar

Para usar o serviço gerido do Google Cloud para o Prometheus para recolher métricas do DCGM, a sua implementação do Google Distributed Cloud tem de cumprir os seguintes requisitos:

Configure um recurso PodMonitoring

Configure um recurso PodMonitoring para o Google Cloud Managed Service for Prometheus para recolher as métricas exportadas. Se estiver com problemas na instalação de uma aplicação ou de um exportador devido a políticas organizacionais ou de segurança restritivas, recomendamos que consulte a documentação de código aberto para receber apoio técnico.

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

Um recurso personalizado PodMonitoring extrai alvos no espaço de nomes em que está implementado apenas. Para extrair dados de destinos em vários namespaces, implemente o mesmo recurso personalizado PodMonitoring em cada namespace.

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

    A secção selector no manifesto especifica que o pod do exportador DCGM, nvidia-dcgm-exporter, está selecionado para monitorização. Este pod é implementado quando instala o operador de GPU da 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. Implemente o recurso personalizado PodMonitoring:

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

    Substitua o seguinte:

    • NAMESPACE: o espaço de nomes no qual está a implementar o recurso personalizado PodMonitoring.

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

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

  3. Valide se o recurso personalizado PodMonitoring está instalado no espaço de nomes pretendido. Para tal, execute o seguinte comando:

    kubectl get podmonitoring -n NAMESPACE --kubeconfig KUBECONFIG
    

    O resultado deve ser semelhante ao seguinte:

    NAME       AGE
    dcgm-gmp   3m37s
    

Valide a configuração

Pode usar o Explorador de métricas para verificar se configurou corretamente o exportador do DCGM. O Cloud Monitoring pode demorar um ou dois minutos a carregar as suas métricas.

Para verificar se as métricas são carregadas, faça o seguinte:

  1. Na Google Cloud consola, aceda à página  Explorador de métricas:

    Aceda ao Metrics Explorer

    Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Monitorização.

  2. Use a linguagem de consulta do Prometheus (PromQL) para especificar os dados a apresentar no gráfico:

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

    2. Introduza a consulta no editor de consultas. Por exemplo, para criar um gráfico do número médio de segundos que as CPUs passaram em cada modo na última hora, use a seguinte consulta:

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

    Substitua o seguinte:

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

    • NAMESPACE: o espaço de nomes no qual implementou o recurso personalizado PodMonitoring.

    Para mais informações sobre a utilização do PromQL, consulte o artigo PromQL no Cloud Monitoring.