Configure a recolha de métricas

Este documento descreve como configurar o Google Kubernetes Engine (GKE) para enviar métricas para o Cloud Monitoring. As métricas no Cloud Monitoring podem preencher painéis de controlo personalizados, gerar alertas, criar objetivos ao nível do serviço> ou ser obtidas por serviços de monitorização de terceiros através da API Cloud Monitoring.

O GKE fornece várias origens de métricas:

  • Métricas do sistema: métricas de componentes essenciais do sistema que descrevem recursos de baixo nível, como a CPU, a memória e o armazenamento.
  • Google Cloud Managed Service for Prometheus: permite-lhe monitorizar e receber alertas sobre as suas cargas de trabalho, usando o Prometheus, sem ter de gerir e operar manualmente o Prometheus em grande escala.
  • Pacotes de métricas de observabilidade:

    • Métricas do plano de controlo: métricas exportadas de determinados componentes do plano de controlo, como o servidor da API e o programador.
    • Métricas de estado do Kube: um conjunto organizado de métricas exportadas do serviço kube state, usado para monitorizar o estado de objetos do Kubernetes, como pods, implementações e muito mais. Para o conjunto de métricas incluídas, consulte o artigo Use kube state metrics.

      O pacote kube state é uma solução gerida. Se precisar de maior flexibilidade, por exemplo, se precisar de recolher métricas adicionais ou gerir intervalos de recolha ou recolher outros recursos, pode desativar o pacote, se estiver ativado, e implementar a sua própria instância do serviço de métricas de estado do kube de código aberto. Para mais informações, consulte a documentação do exportador do Managed Service for Prometheus do Google Cloud para métricas de estado do Kube.

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

      O pacote cAdvisor/Kubelet é uma solução gerida. Se precisar de maior flexibilidade, por exemplo, se precisar de recolher métricas adicionais ou gerir intervalos de extração ou extrair outros recursos, pode desativar o pacote, se estiver ativado, e implementar a sua própria instância dos serviços de métricas cAdvisor/Kubelet de código aberto.

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

Também pode configurar a monitorização automática de aplicações para determinadas cargas de trabalho.

Métricas do sistema

Quando é criado um cluster, o GKE recolhe por predefinição determinadas métricas emitidas pelos componentes do sistema.

Pode optar por enviar ou não métricas do seu cluster do GKE para o Cloud Monitoring. Se optar por enviar métricas para o Cloud Monitoring, tem de enviar métricas do sistema.

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

Preços

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

Configurar a recolha de métricas do sistema

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

Para desativar a recolha de métricas do sistema, use o valor NONE para a flag --monitoring. Se a recolha de métricas do sistema estiver desativada, as informações básicas, como a utilização da CPU, a utilização da memória e a utilização do disco, não estão disponíveis para um cluster quando vê as métricas de observabilidade.

Para clusters do GKE Autopilot, não pode desativar a recolha de métricas do sistema.

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

Para configurar a recolha de métricas do sistema através do Terraform, consulte o bloco monitoring_config no registo do Terraform para google_container_cluster. Para informações gerais sobre a utilização do 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 importantes para o Kubernetes. Para ver uma lista destas métricas, consulte o artigo Métricas do sistema do GKE.

Se ativar o Cloud Monitoring para o seu cluster, não pode desativar a monitorização do sistema (--monitoring=SYSTEM).

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

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

Pacote: métricas do plano de controlo

Pode configurar um cluster do GKE para enviar determinadas métricas emitidas pelo servidor da API Kubernetes, pelo programador e pelo gestor do controlador para o Cloud Monitoring.

Para mais informações, consulte o artigo Recolha e veja métricas do plano de controlo.

Pacote: Kube state metrics

Pode configurar um cluster do GKE para enviar um conjunto organizado de métricas de estado do kube no formato Prometheus para o Cloud Monitoring. Este pacote de métricas de estado do kube inclui métricas para Pods, Deployments, StatefulSets, DaemonSets, recursos HorizontalPodAutoscaler, volumes persistentes, reivindicações de volumes persistentes e JobSets.

Para mais informações, consulte o artigo Recolha e veja métricas de estado do Kube.

Pacote: métricas cAdvisor/Kubelet

Pode configurar um cluster do GKE para enviar um conjunto organizado de métricas do cAdvisor/Kubelet no formato Prometheus para o Cloud Monitoring. O conjunto organizado de métricas é um subconjunto do grande conjunto de métricas cAdvisor/Kubelet incorporadas em cada implementação do Kubernetes por predefinição. O cAdvisor/Kubelet organizado foi concebido para fornecer as métricas mais úteis, reduzindo o volume de carregamento e os custos associados.

Para mais informações, consulte o artigo Recolha e veja métricas do cAdvisor/Kubelet.

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

Pode monitorizar a utilização, o desempenho e o estado da GPU configurando o GKE para enviar métricas do NVIDIA Data Center GPU Manager (DCGM) para o Cloud Monitoring.

Para mais informações, consulte o artigo Recolha e veja métricas do NVIDIA Data Center GPU Manager (DCGM).

Desative pacotes de métricas

Pode desativar a utilização de pacotes de métricas no cluster. Pode querer desativar determinados pacotes para reduzir os custos ou se estiver a usar um mecanismo alternativo para recolher as métricas, como o serviço gerido do Google Cloud para o Prometheus e um exportador.

Consola

Para desativar a recolha de métricas no separador Detalhes do cluster, faça o seguinte:

  1. Na Google Cloud consola, aceda à página Clusters do Kubernetes:

    Aceda a Clusters do Kubernetes

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

  2. Clique no nome do cluster.

  3. Na linha Funcionalidades com a etiqueta Cloud Monitoring, clique no ícone Editar.

  4. No menu pendente Componentes, desmarque os componentes de métricas que quer desativar.

  5. Clique em OK.

  6. Clique em Guardar alterações.

gcloud

  1. Abra uma janela de terminal com o SDK Cloud da Google e a CLI Google Cloud instalados. Uma forma de o fazer é usar a 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 à flag --monitoring. O conjunto de valores fornecido ao indicador --monitoring substitui qualquer definição anterior.

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

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

    Este comando desativa a recolha de todos os pacotes de métricas configurados anteriormente.

Terraform

Para configurar a recolha de métricas com o Terraform, consulte o bloco monitoring_config no registo do Terraform para google_container_cluster. Para informações gerais sobre a utilização do Google Cloud com o Terraform, consulte Terraform com o Google Cloud.

Compreender a fatura do Monitoring

Pode usar o Cloud Monitoring para identificar o plano de controlo ou as métricas de estado do kube que estão a escrever o maior número de amostras. Estas métricas são as que mais contribuem para os seus custos. Depois de identificar as métricas mais caras, pode modificar as configurações de extração para filtrar estas métricas adequadamente.

A página Gestão de métricas do Cloud Monitoring fornece informações que podem ajudar a controlar o valor gasto em métricas faturáveis sem afetar a observabilidade. A página Gestão de métricas apresenta as seguintes informações:

  • Volumes de carregamento para a faturação baseada em bytes e em amostras, em domínios de métricas e para métricas individuais.
  • Dados sobre as etiquetas e a cardinalidade das métricas.
  • Número de leituras para cada métrica.
  • Utilização de métricas em políticas de alerta e painéis de controlo personalizados.
  • Taxa de erros de escrita de métricas.

Também pode usar a página Gestão de métricas para excluir métricas desnecessárias, eliminando o custo da respetiva ingestão.

Para ver a página Gestão de métricas, faça o seguinte:

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

    Aceda a Gestão de métricas

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

  2. Na barra de ferramentas, selecione o intervalo de tempo. Por predefinição, a página Gestão de métricas apresenta informações sobre as métricas recolhidas no dia anterior.

Para mais informações sobre a página Gestão de métricas, consulte o artigo Veja e faça a gestão da utilização de métricas.

Para identificar que métricas do plano de controlo ou do estado do kube têm o maior número de amostras carregadas, faça o seguinte:

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

    Aceda a Gestão de métricas

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

  2. No cartão de dados Exemplos faturáveis carregados, clique em Ver gráficos.

  3. Localize o gráfico Namespace Volume Ingestion e, de seguida, clique em  Mais opções do gráfico.

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

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

    1. No campo Etiqueta, verifique se o valor é attribution_dimension.

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

    3. No campo Valor, selecione cluster.

  6. Limpe a definição Agrupar por.

  7. Opcionalmente, filtre apenas determinadas métricas. Por exemplo, as métricas do servidor da API do plano de controlo incluem "apiserver" como parte do nome da métrica, e as métricas do pod de estado do kube incluem "kube_pod" como parte do nome da métrica, pelo que pode filtrar métricas que contenham essas strings:

    • Clique em Adicionar filtro.

    • No campo Etiqueta, selecione metric_type.

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

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

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

    • Clique em Agrupar por.

    • Certifique-se de que metric_type está selecionado.

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

    • Para agrupar por projeto, selecione project_id.

    • Clique em OK.

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

    • Clique em Agrupar por.

    • Para agrupar por nome do cluster do GKE, certifique-se de que attribution_dimension e attribution_id estão selecionados.

    • Clique em OK.

  10. Para ver o volume de carregamento de cada uma das métricas, no botão de ativação/desativação com a etiqueta Gráfico Tabela Ambos, selecione Ambos. A tabela mostra o volume carregado para cada métrica na coluna Valor.

    Clique duas vezes no cabeçalho da coluna Valor para ordenar as métricas por volume de carregamento decrescente.

Estes passos mostram as métricas com a taxa mais elevada de amostras carregadas no Cloud Monitoring. Uma vez que as métricas nos pacotes de observabilidade são cobrados pelo número de amostras carregadas, preste atenção às métricas com a maior taxa de amostras carregadas.

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 ver informações de preços, consulte os preços do Cloud Monitoring.

Métricas disponíveis

A tabela seguinte indica os valores suportados para a flag --monitoring para os comandos create e update.

Origem Valor --monitoring Métricas recolhidas
Nenhum NONE Não foram enviadas métricas para o Cloud Monitoring; não existe nenhum agente de recolha de métricas instalado no cluster. Este valor não é suportado para clusters do Autopilot.
Sistema SYSTEM Métricas de componentes essenciais do sistema necessárias para o Kubernetes. Para ver uma lista completa das métricas, consulte Métricas do Kubernetes.
Servidor da API API_SERVER Métricas de kube-apiserver. Para uma lista completa das métricas, consulte Métricas do servidor da API.
Agendador SCHEDULER Métricas de kube-scheduler. Para ver uma lista completa das métricas, consulte Métricas do programador.
Gestor de controladores CONTROLLER_MANAGER Métricas de kube-controller-manager. Para ver uma lista completa das métricas, consulte Métricas do gestor do controlador.
Volume persistente (armazenamento) STORAGE Métricas de armazenamento de kube-state-metrics. Inclui métricas para o volume persistente e as reivindicações de volume persistente. Para ver uma lista completa das métricas, consulte Métricas de armazenamento.
Agrupamento POD Métricas de pods de kube-state-metrics. Para ver uma lista completa das métricas, consulte Métricas de pods.
Implementação DEPLOYMENT Métricas de implementação de kube-state-metrics. Para ver uma lista completa das métricas, consulte Métricas de implementação.
StatefulSet STATEFULSET Métricas do StatefulSet de kube-state-metrics. Para ver uma lista completa das métricas, consulte Métricas do StatefulSet.
DaemonSet DAEMONSET Métricas do DaemonSet de kube-state-metrics. Para ver uma lista completa das métricas, consulte Métricas do DaemonSet.
HorizonalPodAutoscaler HPA Métricas de HPA de kube-state-metrics. Consulte uma lista completa das métricas do HorizonalPodAutoscaler.
cAdvisor CADVISOR Métricas do cAdvisor do pacote de métricas cAdvisor/Kubelet. Para ver uma lista completa das métricas, consulte Métricas do cAdvisor.
Kubelet KUBELET Métricas do Kubelet do cAdvisor/Kubelet Para uma lista completa das métricas, consulte Métricas do Kubelet.
Métricas do NVIDIA Data Center GPU Manager (DCGM) DCGM As métricas do NVIDIA Data Center GPU Manager (DCGM).

Também pode recolher métricas ao estilo do Prometheus expostas por qualquer carga de trabalho do GKE usando o Google Cloud Managed Service for Prometheus, que lhe permite monitorizar e receber alertas sobre as suas cargas de trabalho, usando o Prometheus, sem ter de gerir e operar manualmente o Prometheus em grande escala.

O que se segue?