Configurar a coleta de métricas


Este documento descreve como configurar o Google Kubernetes Engine (GKE) para enviar métricas ao Cloud Monitoring. No Cloud Monitoring, as métricas podem ser preenchidas com painéis personalizados, gerar alertas, criar objetivos de nível de serviço ou ser buscadas por serviços de monitoramento de terceiros usando a API Cloud Monitoring.

O GKE oferece várias fontes de métricas:

  • Métricas do sistema: métricas de componentes essenciais do sistema, descrevendo recursos de baixo nível, como CPU, memória e armazenamento.
  • Google Cloud Managed Service para Prometheus: permite monitorar e receber alertas sobre cargas de trabalho usando o Prometheus, sem precisar gerenciá-lo e operá-lo manualmente em grande escala.
  • Pacotes de métricas de observabilidade:

    • Métricas do plano de controle: métricas exportadas de determinados componentes do plano de controle, como o servidor de APIs e o programador.
    • Kube State Metrics: um conjunto selecionado de métricas exportadas do serviço de estado do kube, usado para monitorar o estado de objetos do Kubernetes, como pods, implantações e muito mais. Para o conjunto de métricas incluídas, consulte Usar o Kube State Metrics.

      O pacote do Kube State é uma solução gerenciada. Se você precisar de maior flexibilidade, por exemplo, se precisar coletar outras métricas ou gerenciar intervalos de raspagem de dados ou raspar outros recursos, desative o pacote, se ele estiver ativado, e implante sua própria instância do serviço do Kube State Metrics de código aberto. Para mais informações, consulte a documentação do exportador do Google Cloud Managed Service para Prometheus para o Kube State Metrics.

    • cAdvisor/Kubelet: um conjunto selecionado de métricas do cAdvisor e do Kubelet. Para o conjunto de métricas incluídas, consulte Usar métricas do cAdvisor/Kubelet.

      O pacote cAdvisor/Kubelet é uma solução gerenciada. Se você precisar de maior flexibilidade, por exemplo, se precisar coletar outras métricas ou gerenciar intervalos de raspagem de dados ou raspar outros recursos, desative o pacote, se ele estiver ativado, e implante sua própria instância do serviço de métricas do cAdvisor/Kubelet de código aberto.

    • Métricas do NVIDIA Data Center GPU Manager (DCGM): métricas do DCGM que fornecem uma visão abrangente da integridade, do desempenho e da utilização da GPU.

Métricas do sistema

Quando um cluster é criado, o GKE, por padrão, coleta algumas métricas emitidas por componentes do sistema.

Você tem a opção de enviar ou não métricas do seu cluster do GKE para o Cloud Monitoring. Se você optar por enviar métricas para o Cloud Monitoring, precisará enviar métricas do sistema.

Todas as métricas do sistema do GKE são ingeridas no Cloud Monitoring com o prefixo kubernetes.io.

Preços

O Cloud Monitoring não cobra pela ingestão de métricas do sistema do GKE. Para mais informações, consulte preços do Cloud Monitoring.

Como configurar a coleta de métricas do sistema

Para ativar a coleta de métricas do sistema, transmita o valor SYSTEM para a flag --monitoring dos comandos gcloud container clusters create ou gcloud container clusters update.

Para desativar a coleta de métricas do sistema, use o valor NONE para a flag --monitoring. Se a coleta de métricas do sistema estiver desativada, informações básicas, como uso de CPU, uso da memória e uso de disco, não estarão disponíveis para um cluster ao visualizar métricas de observabilidade.

No caso dos clusters do Autopilot do GKE, não é possível desativar a coleta de métricas do sistema.

Consulte Observabilidade do GKE para saber mais detalhes sobre a integração do Cloud Monitoring com o GKE.

Para configurar a coleta de métricas do sistema usando o Terraform, consulte o bloco monitoring_config no registro do Terraform para google_container_cluster. Para informações gerais sobre como usar o Google Cloud com o Terraform, consulte Terraform com o Google Cloud.

Lista de métricas do sistema

As métricas do sistema incluem métricas de componentes essenciais do sistema que são importantes para o Kubernetes. Para ver uma lista dessas métricas, consulte Métricas do sistema do GKE.

Se ativar o Cloud Monitoring para o cluster, não será possível desativar o monitoramento do sistema (--monitoring=SYSTEM).

Registros ativados por padrão no GKE Enterprise

Na tabela a seguir, uma marca de seleção ) indica quais métricas são ativados por padrão quando você cria e registra um novo cluster em um projeto com o GKE Enterprise ativado:

Nome da métrica Piloto automático Standard
Sistema
Servidor de API
Programador
Controller Manager
Volume permanente (armazenamento)
Pods
Implantação
StatefulState
DaemonSet
HorizonalPodAutoscaler
cAdvisor
Kubelet
Conferir as métricas do NVIDIA Data Center GPU Manager (DCGM)

Todos os clusters registrados em um projeto com o GKE Enterprise ativado podem usar os pacotes de métricas do plano de controle, Kube State Metrics e métricas do cAdvisor/kubelet sem cobranças extras. Caso contrário, essas métricas geram cobranças do Cloud Monitoring.

Solução de problemas de métricas do sistema

Se as métricas do sistema não estiverem disponíveis no Cloud Monitoring conforme o esperado, consulte Resolver problemas com as métricas do sistema.

Pacote: métricas do plano de controle

É possível configurar um cluster do GKE para enviar determinadas métricas emitidas pelo servidor da API Kubernetes, pelo programador e pelo gerenciador do controlador para o Cloud Monitoring.

Para mais informações, consulte Coletar e conferir métricas do plano de controle.

Pacote: métricas de estado do Kube

É possível configurar um cluster do GKE para enviar um conjunto selecionado de métricas de estado do kube no formato do Prometheus para o Cloud Monitoring. Esse pacote de Kube State Metrics inclui métricas de pods, implantações, StatefulSets, DaemonSets, recursos HorizontalPodAutoscaler, volumes permanentes e declarações de volume permanente.

Para mais informações, consulte Coletar e visualizar métricas do Kube State Metrics.

Pacote: métricas do cAdvisor/Kubelet

É possível configurar um cluster do GKE para enviar um conjunto selecionado de métricas de cAdvisor/Kubelet no formato do Prometheus para o Cloud Monitoring. O conjunto selecionado de métricas é um subconjunto do grande conjunto de métricas do cAdvisor/Kubelet integrado a todas as implantações do Kubernetes por padrão. O cAdvisor/Kubelet selecionado foi projetado para fornecer as métricas mais úteis, reduzindo o volume de ingestão e os custos associados.

Para mais informações, consulte Coletar e visualizar métricas do cAdvisor/Kubelet.

Pacote: métricas do NVIDIA Data Center GPU Manager (DCGM)

É possível monitorar a utilização, o desempenho e a integridade da GPU configurando o GKE para que envie métricas do NVIDIA Data Center GPU Manager (DCGM) ao Cloud Monitoring.

Para mais informações, consulte Coletar e conferir as métricas do NVIDIA Data Center GPU Manager (DCGM).

Desativar pacotes de métricas

É possível desativar o uso de pacotes de métricas no cluster. Talvez você queira desativar determinados pacotes para reduzir custos ou se estiver usando um mecanismo alternativo para coletar as métricas, como o Google Cloud Managed Service para Prometheus e um exportador.

Console

Para desativar a coleta de métricas da guia Detalhes do cluster, faça o seguinte:

  1. No Console do Google Cloud, acesse a página de clusters do Kubernetes:

    Acesse Clusters do Kubernetes

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

  2. Clique no nome do cluster.

  3. Na linha Recursosdenominada Cloud Monitoring, clique no ícone Editar.

  4. No menu suspenso Componentes, limpe os componentes de métrica que você quer desativar.

  5. Clique em OK.

  6. Clique em Salvar alterações.

gcloud

  1. Abra uma janela do terminal com o SDK Google Cloud e a Google Cloud CLI instalados. Uma maneira de fazer isso é usando o Cloud Shell.

  2. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  3. Chame o comando gcloud container clusters update e transmita um conjunto atualizado de valores para a flag --monitoring. O conjunto de valores fornecidos à flag --monitoring substitui qualquer configuração anterior.

    Por exemplo, para desativar a coleta de todas as métricas, exceto as do sistema, execute o seguinte comando:

    gcloud container clusters update CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --enable-managed-prometheus \
        --monitoring=SYSTEM
    

    Esse comando desativa a coleta de todos os pacotes de métricas configurados anteriormente.

Terraform

Para configurar a coleta de métricas do DCGM usando o Terraform, consulte o bloco monitoring_config no registro do Terraform para google_container_cluster. Para informações gerais sobre como usar o Google Cloud com o Terraform, consulte Terraform com o Google Cloud.

Como entender a fatura do Monitoring

É possível usar o Cloud Monitoring para identificar o plano de controle ou as métricas de estado do kube que estão gravando o maior número de amostras. Essas métricas estão contribuindo mais para seus custos. Depois de identificar as métricas mais caras, é possível modificar as configurações de verificação para filtrá-las de maneira adequada.

A página Gerenciamento de métricas do Cloud Monitoring fornece informações que podem ajudar a controlar o valor gasto em métricas sujeitas a cobrança, sem afetar a observabilidade. A página Gerenciamento de métricas mostra as seguintes informações:

  • Volumes de ingestão para faturamento baseado em byte e amostra, em domínios de métricas e para métricas individuais.
  • Dados sobre rótulos e cardinalidade de métricas.
  • Número de leituras de cada métrica.
  • Uso de métricas em políticas de alertas e painéis personalizados.
  • Taxa de erros de gravação de métrica.

Você também pode usar o Gerenciamento de métricas para excluir métricas desnecessárias, eliminando o custo de ingestão delas.

Para visualizar a página Gerenciamento de métricas, faça o seguinte:

  1. No console do Google Cloud, acesse a página  Gerenciamento de métricas:

    Acesse os Gerenciamento de métricas

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

  2. Na barra de ferramentas, selecione a janela de tempo. Por padrão, a página Gerenciamento de métricas exibe informações sobre as métricas coletadas no dia anterior.

Para mais informações sobre a página Gerenciamento de métricas, consulte Ver e gerenciar o uso de métricas.

Para identificar quais métricas do plano de controle ou de estado do kube têm o maior número de amostras sendo ingeridas, faça o seguinte:

  1. No console do Google Cloud, acesse a página  Gerenciamento de métricas:

    Acesse os Gerenciamento de métricas

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

  2. Na visão geral Amostras faturáveis ingeridas, clique em Visualizar gráficos.

  3. Localize o gráfico Ingestão de volume de namespace e clique em  Mais opções de gráfico.

  4. No campo Métrica, verifique se o recurso e a métrica a seguir estão selecionados:
    Metric Ingestion Attribution e Samples written by attribution id.

  5. Na página Filtros, faça o seguinte:

    1. No campo Rótulo, verifique se o valor é attribution_dimension.

    2. No campo Comparação, verifique se o valor é = (equals).

    3. No campo Valor, selecione cluster.

  6. Desmarque a configuração Agrupar por.

  7. Se quiser, filtre apenas determinadas métricas. Por exemplo, todas as métricas do servidor da API de plano de controle incluem "apiserver" como parte do nome da métrica, e as métricas de pod do estado do kube incluem "kube_pod" como parte do nome da métrica. Assim, é possível filtrar por métricas que contêm essas strings:

    • Clique em Adicionar filtro.

    • No campo Identificador, selecione metric_type.

    • No campo Comparação, selecione =~ (equals regex).

    • No campo Valor, insira .*apiserver.* ou .*kube_pod.*.

  8. Opcionalmente, agrupe o número de amostras ingeridas por região ou projeto do GKE:

    • Clique em Agrupar por.

    • Verifique se metric_type está selecionado.

    • Para agrupar por região do GKE, selecione location.

    • Para agrupar por projeto, selecione project_id.

    • Clique em OK.

  9. Opcionalmente, agrupe o número de amostras ingeridas por nome do cluster do GKE:

    • Clique em Agrupar por.

    • Para agrupar pelo nome do cluster do GKE, verifique se attribution_dimension e attribution_id estão selecionados.

    • Clique em OK.

  10. Para conferir o volume de ingestão de cada uma das métricas, alterne para Tabela de gráficos ambos, selecione Ambos. A tabela mostra o volume ingerido de cada métrica na coluna Valor.

    Clique no cabeçalho da coluna Valor duas vezes para classificar as métricas por volume de ingestão decrescente.

Essas etapas mostram as métricas com a maior taxa de amostras ingeridas no Cloud Monitoring. Como as métricas nos pacotes de observabilidade são cobradas de acordo com o número de amostras ingeridas, preste atenção às métricas com a maior taxa de ingestão de amostras.

Outras métricas

Além das métricas do sistema e dos pacotes de métricas descritos neste documento, as métricas do Istio também estão disponíveis para clusters do GKE. Para informações sobre preços, consulte Preços do Cloud Monitoring.

Métricas disponíveis

A tabela a seguir indica os valores compatíveis com a sinalização --monitoring para os comandos create e atualizar.

Origem valor --monitoring Métricas coletadas
Nenhum NONE Nenhuma métrica enviada ao Cloud Monitoring, nenhum agente de coleta de métricas instalado no cluster Esse valor não é compatível com clusters do Autopilot.
Sistema SYSTEM Métricas de componentes essenciais do sistema necessárias ao Kubernetes. Para uma lista completa das métricas, consulte Métricas do Kubernetes.
Servidor de API API_SERVER Métricas de kube-apiserver. Para uma lista completa das métricas, consulte Métricas do servidor de API.
Programador SCHEDULER Métricas de kube-scheduler. Para uma lista completa das métricas, consulte métricas do programador.
Controller Manager CONTROLLER_MANAGER Métricas de kube-controller-manager. Para uma lista completa das métricas, consulte Métricas do Gerenciador de Controladores.
Volume permanente (armazenamento) STORAGE Métricas de armazenamento de kube-state-metrics. Inclui métricas para volume permanente e declarações de volume permanente. Para conferir uma lista completa das métricas, consulte Métricas de armazenamento.
Pod POD Métricas do pod de kube-state-metrics. Para uma lista completa das métricas, consulte Métricas dee pods.
Implantação DEPLOYMENT Métricas de implantação de kube-state-metrics. Para conferir uma lista completa das métricas, consulte Métricas de implantação.
StatefulSet STATEFULSET Métricas de StatefulSet de kube-state-metrics. Para uma lista completa das métricas, consulte métricas StatefulSet.
DaemonSet DAEMONSET Métricas de DaemonSet de kube-state-metrics. Para uma lista completa das métricas, consulte métricas de DaemonSet.
HorizonalPodAutoscaler HPA Métricas de HPA de kube-state-metrics. Consulte uma lista completa de métricas do HorizonalPodAutoscaler.
cAdvisor CADVISOR Métricas do cAdvisor do pacote de métricas do cAdvisor/Kubelet. Para uma lista completa das métricas, consulte Métricas do cAdvisor.
Kubelet KUBELET Métricas do Kubelet do cAdvisor/Kubelet Para conferir uma lista completa das métricas, consulte Métricas do Kubelet.
Conferir as métricas do NVIDIA Data Center GPU Manager (DCGM) DCGM Métricas do NVIDIA Data Center GPU Manager (DCGM).

Além disso, é possível coletar métricas no estilo do Prometheus expostas por qualquer carga de trabalho do GKE usando o Google Cloud Managed Service para Prometheus, que permite monitorar e alertar sobre suas cargas de trabalho com o Prometheus sem precisar gerenciar e operar manualmente o Prometheus em grande escala.

A seguir