Realize uma monitorização proativa com o Cloud Monitoring


Reagir a problemas depois de ocorrerem pode provocar períodos de inatividade. Para manter um sistema resiliente no Google Kubernetes Engine (GKE), tem de identificar potenciais problemas antes de afetarem os seus utilizadores.

Use esta página para monitorizar proativamente o seu ambiente do GKE com o Cloud Monitoring através da monitorização de indicadores essenciais de desempenho, da visualização de tendências e da configuração de alertas para detetar problemas, como o aumento das taxas de erro ou as restrições de recursos.

Estas informações são importantes para os administradores e os operadores da plataforma responsáveis por garantir o estado, a fiabilidade e a eficiência do ambiente do GKE. Também ajuda os programadores de aplicações a compreender o desempenho da respetiva app em condições reais, detetar regressões em implementações e obter estatísticas para otimização. Para mais informações sobre as funções comuns e as tarefas de exemplo que referimos no conteúdo, consulte o artigo Funções e tarefas comuns do utilizador do GKE. Google Cloud

Reveja métricas úteis

O GKE envia automaticamente um conjunto de métricas para o Cloud Monitoring. As secções seguintes indicam algumas das métricas mais importantes para a resolução de problemas:

Para ver uma lista completa de métricas do GKE, consulte o artigo Métricas do sistema do GKE.

Métricas de desempenho e de saúde do contentor

Comece por usar estas métricas quando suspeitar de um problema com uma app específica. Estas métricas ajudam a monitorizar o estado da sua app, incluindo descobrir se um contentor está a ser reiniciado com frequência, a ficar sem memória ou a ser limitado por limites da CPU.

Métrica Descrição Importância da resolução de problemas
kubernetes.io/container/cpu/limit_utilization A fração do limite da CPU que está atualmente em utilização na instância. Este valor pode ser superior a 1, uma vez que um contentor pode ter autorização para exceder o respetivo limite de CPU. Identifica a limitação da CPU. Os valores elevados podem levar a uma degradação do desempenho.
kubernetes.io/container/memory/limit_utilization A fração do limite de memória que está atualmente em utilização na instância. Este valor não pode exceder 1. Monitoriza o risco de erros OutOfMemory (OOM).
kubernetes.io/container/memory/used_bytes Memória real consumida pelo contentor em bytes. Monitoriza o consumo de memória para identificar potenciais fugas de memória ou risco de erros de falta de memória.
kubernetes.io/container/memory/page_fault_count Número de falhas de página, discriminadas por tipo: principais e secundárias. Indica uma pressão significativa na memória. As falhas de página importantes significam que a memória está a ser lida a partir do disco (troca), mesmo que os limites de memória não sejam atingidos.
kubernetes.io/container/restart_count Número de vezes que o contentor foi reiniciado. Realça potenciais problemas, como falhas de apps, configurações incorretas ou esgotamento de recursos através de um número elevado ou crescente de reinícios.
kubernetes.io/container/ephemeral_storage/used_bytes Utilização de armazenamento efémero local em bytes. Monitoriza a utilização temporária do disco para evitar despejos de pods devido ao armazenamento temporário cheio.
kubernetes.io/container/cpu/request_utilization A fração da CPU pedida que está atualmente em utilização na instância. Este valor pode ser superior a 1, uma vez que a utilização pode exceder o pedido. Identifica pedidos de CPU com aprovisionamento excessivo ou insuficiente para ajudar a otimizar a atribuição de recursos.
kubernetes.io/container/memory/request_utilization A fração da memória pedida que está atualmente em utilização na instância. Este valor pode ser superior a 1, uma vez que a utilização pode exceder o pedido. Identifica pedidos de memória com aprovisionamento excessivo ou insuficiente para melhorar o agendamento e evitar erros de falta de memória.

Desempenho do nó e métricas de saúde

Examine estas métricas quando precisar de diagnosticar problemas com a infraestrutura do GKE subjacente. Estas métricas são cruciais para compreender o estado geral e a capacidade dos seus nós, ajudando a investigar se o nó está em mau estado ou sob pressão, ou se o nó tem memória suficiente para agendar novos pods.

Métrica Descrição Importância da resolução de problemas
kubernetes.io/node/cpu/allocatable_utilization A fração da CPU atribuível que está atualmente em utilização na instância. Indica se a soma da utilização de pods está a sobrecarregar os recursos de CPU disponíveis do nó.
kubernetes.io/node/memory/allocatable_utilization A fração da memória atribuível que está atualmente em utilização na instância. Este valor não pode exceder 1, uma vez que a utilização não pode exceder os bytes de memória alocáveis. Sugere que o nó não tem memória para agendar novos pods ou para os pods existentes funcionarem, especialmente quando os valores são elevados.
kubernetes.io/node/status_condition (BETA) Condição de um nó a partir do campo de condição de estado do nó. Comunica condições de saúde dos nós, como Ready, MemoryPressure ou DiskPressure.
kubernetes.io/node/ephemeral_storage/used_bytes Bytes de armazenamento efémero local usados pelo nó. Ajuda a evitar falhas de arranque ou despejos de pods através da apresentação de avisos sobre a utilização elevada do armazenamento efémero.
kubernetes.io/node/ephemeral_storage/inodes_free Número livre de nós de índice (inodes) no armazenamento efémero local. Monitoriza o número de inodes livres. A falta de inodos pode interromper as operações, mesmo que haja espaço em disco disponível.
kubernetes.io/node/interruption_count (BETA) As interrupções são despejos de infraestruturas do sistema enquanto o cliente tem o controlo dessa infraestrutura. Esta métrica é a contagem atual de interrupções por tipo e motivo. Explica por que motivo um nó pode desaparecer inesperadamente devido a despejos do sistema.

Métricas de desempenho e estado dos pods

Estas métricas ajudam a resolver problemas relacionados com a interação de um Pod com o respetivo ambiente, como rede e armazenamento. Use estas métricas quando precisar de diagnosticar Pods com início lento, investigar potenciais problemas de conectividade de rede ou gerir proativamente o armazenamento para evitar falhas de escrita devido a volumes completos.

Métrica Descrição Importância da resolução de problemas
kubernetes.io/pod/network/received_bytes_count Número cumulativo de bytes recebidos pelo Pod através da rede. Identifica atividade de rede invulgar (alta ou baixa) que pode indicar problemas na app ou na rede.
kubernetes.io/pod/network/policy_event_count (BETA) Alteração no número de eventos de políticas de rede observados no plano de dados. Identifica problemas de conetividade causados por políticas de rede.
kubernetes.io/pod/volume/utilization A fração do volume que está a ser usada atualmente pela instância. Este valor não pode ser superior a 1, uma vez que a utilização não pode exceder o espaço de volume total disponível. Permite a gestão proativa do espaço de volume através de um aviso quando a utilização elevada (a aproximar-se de 1) pode levar a falhas de gravação.
kubernetes.io/pod/latencies/pod_first_ready (BETA) A latência de arranque ponto a ponto do pod (desde o estado "Criado" do pod até ao estado "Pronto"), incluindo as obtenções de imagens. Diagnostica Pods com arranque lento.

Visualize métricas com o Explorador de métricas

Para visualizar o estado do seu ambiente do GKE, crie gráficos com base em métricas com o Explorador de métricas.

Para usar o Explorador de métricas, conclua os seguintes passos:

  1. Na Google Cloud consola, aceda à página Explorador de métricas.

    Aceda ao Metrics Explorer

  2. No campo Métricas, selecione ou introduza a métrica que quer inspecionar.

  3. Veja os resultados e observe as tendências ao longo do tempo.

Por exemplo, para investigar o consumo de memória de Pods num espaço de nomes específico, pode fazer o seguinte:

  1. Na lista Selecionar uma métrica, escolha a métrica kubernetes.io/container/memory/used_bytes e clique em Aplicar.
  2. Clique em Adicionar filtro e selecione namespace_name.
  3. Na lista Valor, selecione o espaço de nomes que quer investigar.
  4. No campo Agregação, selecione Soma > pod_name e clique em OK. Esta definição apresenta uma linha de série cronológica separada para cada Pod.
  5. Clique em Guardar gráfico.

O gráfico resultante mostra a utilização de memória de cada Pod ao longo do tempo, o que pode ajudar a identificar visualmente os Pods com um consumo de memória invulgarmente elevado ou em pico.

O explorador de métricas oferece uma grande flexibilidade na forma de construir as métricas que quer ver. Para mais informações sobre as opções avançadas do explorador de métricas, consulte o artigo Crie gráficos com o explorador de métricas na documentação do Cloud Monitoring.

Crie alertas para a deteção proativa de problemas

Para receber notificações quando algo corre mal ou quando as métricas violam determinados limites, configure políticas de alerta no Cloud Monitoring.

Por exemplo, para configurar uma política de alertas que lhe envia uma notificação quando o limite de CPU do contentor for superior a 80% durante cinco minutos, faça o seguinte:

  1. Na Google Cloud consola, aceda à página Alertas.

    Aceder a Alertas

  2. Clique em Criar política.

  3. Na caixa Selecionar uma métrica, filtre por CPU limit utilization e, de seguida, selecione a seguinte métrica: kubernetes.io/container/cpu/limit_utilization.

  4. Clique em Aplicar.

  5. Deixe o campo Adicionar um filtro em branco. Esta definição aciona um alerta quando qualquer cluster viola o seu limite.

  6. Na secção Transformar dados, faça o seguinte:

    1. Na lista Janela de deslocamento, selecione 1 minuto. Esta definição significa que o Google Cloud calcula um valor médio a cada minuto.
    2. Na lista Função de janela móvel, selecione média.

      Ambas as definições calculam a média da utilização do limite da CPU para cada contentor a cada minuto.

  7. Clique em Seguinte.

  8. Na secção Configurar alerta, faça o seguinte:

    1. Para Tipo de condição, selecione Limite.
    2. Para Acionador de alerta, selecione Qualquer série cronológica viola.
    3. Para Posição do limite, selecione Acima do limite.
    4. Em Valor limite, introduza 0.8. Este valor representa o limite de 80% que quer monitorizar.
    5. Clique em Opções avançadas.
    6. Na lista Janela de novo teste, selecione 5 min. Esta definição significa que o alerta é acionado apenas se a utilização da CPU permanecer acima de 80% durante um período contínuo de cinco minutos, o que reduz os falsos alarmes de picos breves.
    7. No campo Nome da condição, atribua um nome descritivo à condição.
    8. Clicar em Seguinte.
  9. Na secção Configure as notificações e finalize o alerta, faça o seguinte:

    1. Na lista Canais de notificação, selecione o canal onde quer receber o alerta. Se não tiver um canal, clique em Gerir canais de notificações para criar um.
    2. No campo Nomeie a política de alerta, atribua à política um nome claro e descritivo.
    3. Deixe todos os outros campos com os respetivos valores predefinidos.
    4. Clicar em Seguinte.
  10. Reveja a política e, se tudo parecer correto, clique em Criar política.

Para saber mais sobre as formas adicionais de criar alertas, consulte a vista geral dos alertas na documentação do Cloud Monitoring.

O que se segue?