Coletar e visualizar métricas do cAdvisor/Kubelet


Nesta página, descrevemos como configurar um cluster do Google Kubernetes Engine (GKE) para enviar um conjunto selecionado de métricas do cAdvisor/Kubelet ao Cloud Monitoring usando o Google Cloud Managed Service para Prometheus. Esta página também descreve como essas métricas são formatadas quando são gravadas no Monitoring e como consultar métricas.

O conjunto de métricas selecionado é um subconjunto do conjunto de métricas cAdvisor/Kubelet integrado a todas as implantações do Kubernetes por padrão e inclui métricas relacionadas à redução do volume de ingestão e custos associados.

Antes de começar

Antes de começar, verifique se você realizou as tarefas a seguir:

  • Ativar a API Google Kubernetes Engine.
  • Ativar a API Google Kubernetes Engine
  • Se você quiser usar a Google Cloud CLI para essa tarefa, instale e, em seguida, inicialize a CLI gcloud. Se você instalou a CLI gcloud anteriormente, instale a versão mais recente executando gcloud components update.

Requisitos

Para coletar métricas do cAdvisor/Kubelet, seu cluster do GKE precisa atender aos seguintes requisitos:

  • O cluster precisa estar executando o GKE versão 1.29.3-gke.1093000 ou posterior.
  • O cluster precisa ter métricas do sistema ativadas. As métricas do sistema são ativadas por padrão quando você cria um cluster executando a versão 1.29.3-gke.1093000 ou posterior.
  • O cluster tem a coleta gerenciada do Google Cloud Managed Service para Prometheus ativada. A coleta gerenciada é ativada por padrão quando você cria um cluster executando a versão 1.29.3-gke.1093000 ou posterior.

Como configurar a coleção de métricas do cAdvisor/Kubelet

É possível ativar as métricas do cAdvisor/Kubelet em um cluster atual do GKE usando o console do Google Cloud, a gcloud CLI ou o Terraform.

Console

Para configurar as métricas do cAdvisor/Kubelet na 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. Na caixa de diálogo Editar o Cloud Monitoring, confirme se Ativar o Cloud Monitoring está selecionado.

  5. No menu suspenso Componentes, selecione os componentes do cAdvisor/Kubelet de que você quer coletar métricas:

    • cAdvisor
    • Kubelet
  6. Clique em OK.

  7. Clique em Salvar alterações.

gcloud

Atualize o cluster para coletar métricas:

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

Substitua:

O conjunto de valores fornecidos à flag monitoring substitui qualquer configuração anterior.

Terraform

Para configurar a coleção de métricas do cAdvisor/Kubelet 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.

Formato da métrica

Todas as métricas do cAdvisor/Kubelet do Kubernetes gravadas no Cloud Monitoring usam o tipo de recurso prometheus_target. Cada nome de métrica é prefixado com prometheus.googleapis.com/ e tem um sufixo indicando o tipo de métrica do Prometheus, como /gauge, /histogram ou /counter. Caso contrário, cada nome de métrica será idêntico ao nome da métrica exposto pelo Kubernetes de código aberto.

Como exportar do Cloud Monitoring

As métricas do cAdvisor/Kubelet podem ser exportadas do Cloud Monitoring usando a API Cloud Monitoring. Como todas as métricas do cAdvisor/Kubelet são ingeridas usando o Google Cloud Managed Service para Prometheus, é possível consultá-las usando a linguagem de consulta do Prometheus (PromQL). Elas também podem ser consultadas usando a linguagem de consulta do Monitoring (MQL).

Métricas de consulta

Quando você consulta as métricas do cAdvisor/Kubelet, o nome usado depende do uso dos recursos baseados no PromQL ou Cloud Monitoring, como o MQL ou o Metrics Explorer interface de menu do Google Analytics.

As tabelas de métricas do cAdvisor/Kubelet a seguir mostram duas versões de cada nome de métrica:

  • Nome da métrica do PromQL: ao usar o PromQL em páginas do Cloud Monitoring do console do Google Cloud ou em campos do PromQL do API Cloud Monitoring, use o nome da métrica do PromQL.
  • Nome da métrica do Cloud Monitoring: ao usar outros recursos do Monitoring, use o nome de métrica do Cloud Monitoring nas tabelas abaixo. Esse nome precisa ser prefixado com prometheus.googleapis.com/, que foi omitido das entradas na tabela.

Métricas do cAdvisor

Os nomes das métricas do Cloud Monitoring nesta tabela precisam ser prefixados com prometheus.googleapis.com/. Esse prefixo foi omitido das entradas na tabela.

Nome da métrica do PromQL
Nome da métrica do Cloud Monitoring
Tipo, Classe, Unidade
Recursos monitorados
Versão obrigatória do GKE
Descrição
Rótulos
container_cpu_cfs_periods_total
container_cpu_cfs_periods_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Número de intervalos do período de restrição decorridos Amostras coletadas a cada 30 segundos.

cpu
container_cpu_cfs_throttled_periods_total
container_cpu_cfs_throttled_periods_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Número de intervalos de período limitados. Amostras coletadas a cada 30 segundos.

cpu
container_cpu_usage_seconds_total
container_cpu_usage_seconds_total/counter
CUMULATIVEDOUBLEs
prometheus_target
1.29.3-gke.1093000
Tempo de CPU cumulativo consumido. Amostras coletadas a cada 30 segundos.

cpu
container_fs_limit_bytes
container_fs_limit_bytes/gauge
GAUGEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Número de bytes que podem ser consumidos pelo contêiner neste sistema de arquivos. Amostras coletadas a cada 30 segundos.

disk
container_fs_read_seconds_total
container_fs_read_seconds_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Contagem cumulativa de leituras concluídas. Amostras coletadas a cada 30 segundos.

diskIO
container_fs_reads_bytes_total
container_fs_reads_bytes_total/counter
CUMULATIVEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Contagem cumulativa de bytes lidos. Amostras coletadas a cada 30 segundos.

diskIO
container_fs_reads_total
container_fs_reads_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Contagem cumulativa de leituras concluídas. Amostras coletadas a cada 30 segundos.

diskIO
container_fs_usage_bytes
container_fs_usage_bytes/gauge
GAUGEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Número de bytes consumidos pelo contêiner neste sistema de arquivos. Amostras coletadas a cada 30 segundos.

disk
container_fs_write_seconds_total
container_fs_write_seconds_total/counter
CUMULATIVEDOUBLEs
prometheus_target
1.29.3-gke.1093000
Contagem cumulativa de segundos gastos na gravação. Amostras coletadas a cada 30 segundos.

diskIO
container_fs_writes_bytes_total
container_fs_writes_bytes_total/counter
CUMULATIVEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Contagem cumulativa de bytes gravados. Amostras coletadas a cada 30 segundos.

diskIO
container_fs_writes_total
container_fs_writes_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Contagem cumulativa de gravações concluídas. Amostras coletadas a cada 30 segundos.

diskIO
container_memory_rss
container_memory_rss/gauge
GAUGEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Tamanho do RSS. Amostras coletadas a cada 30 segundos.

memory
container_memory_working_set_bytes
container_memory_working_set_bytes/gauge
GAUGEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Conjunto de trabalho atual. Amostras coletadas a cada 30 segundos.

memory
container_network_receive_bytes_total
container_network_receive_bytes_total/counter
CUMULATIVEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Contagem cumulativa de bytes recebidos. Amostras coletadas a cada 30 segundos.

network
container_network_receive_packets_dropped_total
container_network_receive_packets_dropped_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Contagem cumulativa de pacotes descartados durante o recebimento. Amostras coletadas a cada 30 segundos.

network
container_network_receive_packets_total
container_network_receive_packets_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Contagem cumulativa de pacotes recebidos. Amostras coletadas a cada 30 segundos.

network
container_network_transmit_bytes_total
container_network_transmit_bytes_total/counter
CUMULATIVEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Contagem cumulativa de bytes transmitidos. Amostras coletadas a cada 30 segundos.

network
container_network_transmit_packets_dropped_total
container_network_transmit_packets_dropped_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Contagem cumulativa de pacotes descartados durante a transmissão. Amostras coletadas a cada 30 segundos.

network
container_network_transmit_packets_total
container_network_transmit_packets_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Contagem cumulativa de pacotes transmitidos. Amostras coletadas a cada 30 segundos.

network

Métricas do Kubelet

Os nomes das métricas do Cloud Monitoring nesta tabela precisam ser prefixados com prometheus.googleapis.com/. Esse prefixo foi omitido das entradas na tabela.

Nome da métrica do PromQL
Nome da métrica do Cloud Monitoring
Tipo, Classe, Unidade
Recursos monitorados
Versão obrigatória do GKE
Descrição
Rótulos
kubelet_certificate_manager_server_ttl_seconds
kubelet_certificate_manager_server_ttl_seconds/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Medidor do TTL (vida útil) mais curto do certificado de exibição do Kubelet. O valor está em segundos até a expiração do certificado (negativo se já tiver expirado). Se o certificado de exibição for inválido ou não utilizado, o valor será +INF. Amostras coletadas a cada 30 segundos.

 
kubelet_node_name
kubelet_node_name/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
O nome do nó. A contagem é sempre 1. Amostras coletadas a cada 30 segundos.

node
kubelet_pleg_relist_duration_seconds
kubelet_pleg_relist_duration_seconds/histogram
CUMULATIVEDISTRIBUTIONs
prometheus_target
1.29.3-gke.1093000
Duração em segundos para listar pods novamente no PLEG. Amostras coletadas a cada 30 segundos.

 
kubelet_pod_worker_duration_seconds
kubelet_pod_worker_duration_seconds/histogram
CUMULATIVEDISTRIBUTIONs
prometheus_target
1.29.3-gke.1093000
Duração em segundos para sincronizar um único pod. Dividido por tipo de operação: criar, atualizar ou sincronizar. Amostras coletadas a cada 30 segundos.

operation_type
kubelet_running_containers
kubelet_running_containers/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Número de contêineres em execução no momento. Amostras coletadas a cada 30 segundos.

container_state
kubelet_running_pods
kubelet_running_pods/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Número de pods que têm um sandbox de pod em execução. Amostras coletadas a cada 30 segundos.

 
kubelet_runtime_operations_total
kubelet_runtime_operations_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Número cumulativo de operações de tempo de execução por tipo de operação. Amostras coletadas a cada 30 segundos.

operation_type
kubelet_volume_stats_available_bytes
kubelet_volume_stats_available_bytes/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Número de bytes disponíveis no volume. Amostras coletadas a cada 30 segundos.

namespace
persistentvolumeclaim
kubelet_volume_stats_capacity_bytes
kubelet_volume_stats_capacity_bytes/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Capacidade em bytes do volume. Amostras coletadas a cada 30 segundos.

namespace
persistentvolumeclaim
kubelet_volume_stats_inodes
kubelet_volume_stats_inodes/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Número máximo de inodes no volume. Amostras coletadas a cada 30 segundos.

namespace
persistentvolumeclaim
kubelet_volume_stats_inodes_free
kubelet_volume_stats_inodes_free/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Número de inodes livres no volume. Amostras coletadas a cada 30 segundos.

namespace
persistentvolumeclaim
kubelet_volume_stats_inodes_used
kubelet_volume_stats_inodes_used/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Número de inodes usados no volume. Amostras coletadas a cada 30 segundos.

namespace
persistentvolumeclaim
kubelet_volume_stats_used_bytes
kubelet_volume_stats_used_bytes/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Número de bytes usados no volume. Amostras coletadas a cada 30 segundos.

namespace
persistentvolumeclaim