Recolha e veja métricas do cAdvisor/Kubelet

Esta página descreve como configurar um cluster do Google Kubernetes Engine (GKE) para enviar um conjunto organizado de métricas do cAdvisor/Kubelet para o Cloud Monitoring através do Google Cloud Managed Service for Prometheus. Esta página também descreve como estas métricas são formatadas quando são escritas no Monitoring e como consultar métricas.

O conjunto selecionado de métricas é um subconjunto do conjunto de métricas cAdvisor/Kubelet incorporadas em cada implementação do Kubernetes por predefinição e inclui métricas relacionadas com a redução do volume de carregamento e dos custos associados.

Antes de começar

Antes de começar, certifique-se de que realizou as seguintes tarefas:

  • Ative a API Google Kubernetes Engine.
  • Ative a API Google Kubernetes Engine
  • Se quiser usar a CLI gcloud para esta tarefa, instale-a e, em seguida, inicialize-a. Se instalou anteriormente a CLI gcloud, execute gcloud components update para obter a versão mais recente.

Requisitos

Para recolher métricas do cAdvisor/Kubelet, o seu cluster do GKE tem de cumprir os seguintes requisitos:

  • O cluster tem de estar a executar a versão 1.29.3-gke.1093000 ou posterior do GKE. Os pacotes cAdvisor/Kubelet são ativados por predefinição quando cria um cluster que executa a versão 1.29.3-gke.1093000 ou posterior.
  • O cluster tem de ter as métricas do sistema ativadas.
  • O cluster tem a recolha gerida do Google Cloud Managed Service for Prometheus ativada. A recolha gerida do Google Cloud Managed Service for Prometheus está ativada por predefinição para novos clusters.

Configurar a recolha de métricas do cAdvisor/Kubelet

Pode ativar as métricas do cAdvisor/Kubelet num cluster do GKE existente através da Google Cloud consola, da CLI gcloud ou do Terraform.

Consola

Para configurar as métricas do cAdvisor/Kubelet a partir do 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. Na caixa de diálogo Editar monitorização na nuvem apresentada, confirme que a opção Ativar monitorização na nuvem está selecionada.

  5. No menu pendente Componentes, selecione os componentes cAdvisor/Kubelet a partir dos quais quer recolher métricas:

    • cAdvisor
    • Kubelet
  6. Clique em OK.

  7. Clique em Guardar alterações.

gcloud

Atualize o cluster para recolher métricas:

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

Substitua o seguinte:

O conjunto de valores fornecido ao parâmetro monitoring substitui qualquer definição anterior.

Terraform

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

Formato da métrica

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

Exportar a partir do Cloud Monitoring

As métricas do cAdvisor/Kubelet podem ser exportadas do Cloud Monitoring através da API Cloud Monitoring. Uma vez que todas as métricas do cAdvisor/Kubelet são carregadas através do Google Cloud Managed Service for Prometheus, as métricas do cAdvisor/Kubelet podem ser consultadas através da linguagem de consulta do Prometheus (PromQL). Também podem ser consultados através da linguagem de consulta de monitorização (MQL).

Consultar métricas

Quando consulta métricas do cAdvisor/Kubelet, o nome que usa depende de estar a usar o PromQL ou funcionalidades baseadas no Cloud Monitoring, como o MQL ou o Explorador de métricas, a interface orientada por menus.

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

  • Nome da métrica PromQL: quando usa o PromQL nas páginas do Cloud Monitoring da Google Cloud consola ou nos campos PromQL da API Cloud Monitoring, use o nome da métrica PromQL.
  • Nome da métrica do Cloud Monitoring Quando usar outras funcionalidades do Cloud Monitoring, use o nome da métrica do Cloud Monitoring nas tabelas abaixo. Este nome tem de ter o prefixo prometheus.googleapis.com/, que foi omitido das entradas na tabela.

Métricas do cAdvisor

Os nomes das métricas do Cloud Monitoring nesta tabela têm de ter o prefixo prometheus.googleapis.com/. Esse prefixo foi omitido das entradas na tabela.

Nome da métrica PromQL
Nome da métrica do Cloud Monitoring
Kind, Type, Unit
Recursos monitorizados
Versão do GKE obrigatória
Descrição
Etiquetas
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 aplicação decorridos. Amostrada 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íodos limitados. Amostrada 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 da CPU cumulativo consumido. Amostrada 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 contentor neste sistema de ficheiros. Amostrada 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. Amostrada 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. Amostrada 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. Amostrada 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 contentor neste sistema de ficheiros. Amostrada 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 passados a escrever. Amostrada 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 escritos. Amostrada 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. Amostrada a cada 30 segundos.

diskIO
container_memory_rss
container_memory_rss/gauge
GAUGEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
Tamanho do RSS. Amostrada 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. Amostrada 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. Amostrada 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 rejeitados durante a receção. Amostrada 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. Amostrada 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. Amostrada 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 rejeitados durante a transmissão. Amostrada 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. Amostrada a cada 30 segundos.

network

Métricas do Kubelet

Os nomes das métricas do Cloud Monitoring nesta tabela têm de ter o prefixo prometheus.googleapis.com/. Esse prefixo foi omitido das entradas na tabela.

Nome da métrica PromQL
Nome da métrica do Cloud Monitoring
Kind, Type, Unit
Recursos monitorizados
Versão do GKE obrigatória
Descrição
Etiquetas
kubelet_certificate_manager_server_ttl_seconds
kubelet_certificate_manager_server_ttl_seconds/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Indicador do TTL (tempo de vida) mais curto do certificado de serviço do Kubelet. O valor é expresso em segundos até à expiração do certificado (negativo se já tiver expirado). Se o certificado de publicação for inválido ou não for usado, o valor é +INF. Amostrada 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. Amostrada 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 voltar a listar agrupamentos no PLEG. Amostrada 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 agrupamento. Discriminado por tipo de operação: criar, atualizar ou sincronizar. Amostrada a cada 30 segundos.

operation_type
kubelet_running_containers
kubelet_running_containers/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Número de contentores em execução atualmente. Amostrada 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 uma sandbox de pods em execução. Amostrada 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. Amostrada 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. Amostrada 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. Amostrada 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 inodos no volume. Amostrada 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 inodos livres no volume. Amostrada 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 inodos usados no volume. Amostrada 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. Amostrada a cada 30 segundos.

namespace
persistentvolumeclaim