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:
-
No Console do Google Cloud, acesse a página de clusters do Kubernetes:
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Kubernetes Engine.
Clique no nome do cluster.
Na linha Recursosdenominada Cloud Monitoring, clique no ícone Editar.
Na caixa de diálogo Editar o Cloud Monitoring, confirme se Ativar o Cloud Monitoring está selecionado.
No menu suspenso Componentes, selecione os componentes do cAdvisor/Kubelet de que você quer coletar métricas:
- cAdvisor
- Kubelet
Clique em OK.
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:
CLUSTER_NAME
: o nome do cluster existente.COMPUTE_LOCATION
: o local do Compute Engine do cluster.
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
|
|
CUMULATIVE , DOUBLE , 1
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
|
|
CUMULATIVE , DOUBLE , 1
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
|
|
CUMULATIVE , DOUBLE , s
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
|
|
GAUGE , DOUBLE , By
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
|
|
CUMULATIVE , DOUBLE , 1
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
|
|
CUMULATIVE , DOUBLE , By
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
|
|
CUMULATIVE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , By
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
|
|
CUMULATIVE , DOUBLE , s
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
|
|
CUMULATIVE , DOUBLE , By
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
|
|
CUMULATIVE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , By
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
|
|
GAUGE , DOUBLE , By
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
|
|
CUMULATIVE , DOUBLE , By
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
|
|
CUMULATIVE , DOUBLE , 1
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
|
|
CUMULATIVE , DOUBLE , 1
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
|
|
CUMULATIVE , DOUBLE , By
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
|
|
CUMULATIVE , DOUBLE , 1
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
|
|
CUMULATIVE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , 1
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
|
|
CUMULATIVE , DISTRIBUTION , s
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
|
|
CUMULATIVE , DISTRIBUTION , s
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
|
|
GAUGE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , 1
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
|
|
CUMULATIVE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , 1
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
|
|
GAUGE , DOUBLE , 1
prometheus_target 1.29.3-gke.1093000 |
Número de bytes usados no volume. Amostras coletadas a cada 30 segundos.namespace
persistentvolumeclaim
|