Realizar monitoramento proativo com o Cloud Monitoring

Reagir a problemas depois que eles ocorrem pode levar a inatividade. Para manter um sistema resiliente no Google Kubernetes Engine (GKE), é necessário identificar possíveis problemas antes que eles afetem seus usuários.

Use esta página para monitorar proativamente seu ambiente do GKE com o Cloud Monitoring, rastreando indicadores de desempenho principais, visualizando tendências e configurando alertas para detectar problemas como taxas de erros crescentes ou restrições de recursos.

Essas informações são importantes para administradores e operadores de plataforma responsáveis por garantir a integridade, a confiabilidade e a eficiência do ambiente do GKE. Elas também ajudam os desenvolvedores de aplicativos a entender o desempenho do app em condições reais, detectar regressões em implantações e receber insights para otimização. Para mais informações sobre as funções comuns e exemplos de tarefas que referenciamos no Cloud de Confiance by S3NS content, consulte Funções e tarefas comuns do usuário do GKE.

Analisar métricas úteis

O GKE envia automaticamente um conjunto de métricas para o Cloud Monitoring. As seções a seguir listam algumas das métricas mais importantes para a solução de problemas:

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

Métricas de desempenho e integridade do contêiner

Comece com essas métricas quando suspeitar de um problema com um app específico. Elas ajudam a monitorar a integridade do app, incluindo a descoberta de se um contêiner está sendo reiniciado com frequência, ficando sem memória ou sendo limitado por limites de CPU.

Métrica Descrição Importância da solução de problemas
kubernetes.io/container/cpu/limit_utilization A fração do limite de CPU em uso na instância atualmente. Esse valor pode ser maior que 1, já que um contêiner pode exceder o limite de CPU. Identifica a limitação da CPU. Valores altos podem levar à degradação do desempenho.
kubernetes.io/container/memory/limit_utilization A fração do limite de memória em uso na instância atualmente. Esse valor não pode ser maior que 1. Monitora o risco de erros OutOfMemory (OOM).
kubernetes.io/container/memory/used_bytes Memória real consumida pelo contêiner em bytes. Rastreia o consumo de memória para identificar possíveis vazamentos de memória ou risco de erros OOM.
kubernetes.io/container/memory/page_fault_count Número de falhas da página, separadas por tipo: principais e secundárias. Indica pressão significativa da memória. Falhas de página principais significam que a memória está sendo lida 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 contêiner foi reiniciado. Destaca possíveis problemas, como apps com falhas, configurações incorretas ou esgotamento de recursos, por meio de um número alto ou crescente de reinicializações.
kubernetes.io/container/ephemeral_storage/used_bytes Uso do armazenamento temporário local em bytes. Monitora o uso do disco temporário para evitar remoções de pods devido ao armazenamento temporário completo.
kubernetes.io/container/cpu/request_utilization A fração da CPU solicitada que está em uso na instância atualmente. Esse valor pode ser maior que 1 porque o uso pode exceder a solicitação. Identifica solicitações de CPU super ou subprovisionadas para ajudar a otimizar a alocação de recursos.
kubernetes.io/container/memory/request_utilization A fração da memória solicitada que está em uso na instância atualmente. Esse valor pode ser maior que 1 porque o uso pode exceder a solicitação. Identifica solicitações de memória super ou subprovisionadas para melhorar o agendamento e evitar erros OOM.

Métricas de desempenho e integridade do nó

Examine essas métricas quando precisar diagnosticar problemas com a infraestrutura do GKE. Essas métricas são essenciais para entender a integridade e a capacidade geral dos nós, ajudando a investigar se o nó está com problemas ou sob pressão ou se ele tem memória suficiente para agendar novos pods.

Métrica Descrição Importância da solução de problemas
kubernetes.io/node/cpu/allocatable_utilization A fração da CPU alocável que está em uso na instância atualmente. Indica se a soma do uso do pod está sobrecarregando os recursos de CPU disponíveis do nó.
kubernetes.io/node/memory/allocatable_utilization A fração da memória alocável que está em uso na instância atualmente. Esse valor não pode ser maior que 1, já que o uso não pode ultrapassar os bytes de memória alocáveis. Sugere que o nó não tem memória para agendar novos pods ou para que os pods atuais funcionem, especialmente quando os valores são altos.
kubernetes.io/node/status_condition (BETA) Condição de um nó do campo de condição de status do nó. Informa condições de integridade do nó, como Ready, MemoryPressure ou DiskPressure.
kubernetes.io/node/ephemeral_storage/used_bytes Bytes de armazenamento temporário local usados pelo nó. Ajuda a evitar falhas ou remoções de inicialização de pods, fornecendo avisos sobre o uso alto do armazenamento temporário.
kubernetes.io/node/ephemeral_storage/inodes_free Número livre de nós de índice (inodes) no armazenamento temporário local. Monitora o número de inodes livres. A falta de inodes pode interromper as operações, mesmo que o espaço em disco esteja disponível.
kubernetes.io/node/interruption_count (BETA) As interrupções são remoções de infraestrutura do sistema enquanto o cliente está no controle dessa infraestrutura. Essa métrica é a contagem atual de interrupções por tipo e motivo. Explica por que um nó pode desaparecer inesperadamente devido a remoções do sistema.

Métricas de desempenho e integridade do pod

Essas métricas ajudam a resolver problemas relacionados à interação de um pod com o ambiente, como rede e armazenamento. Use essas métricas quando precisar diagnosticar pods de inicialização lenta, investigar possíveis problemas de conectividade de rede ou gerenciar proativamente o armazenamento para evitar falhas de gravação de volumes completos.

Métrica Descrição Importância da solução de problemas
kubernetes.io/pod/network/received_bytes_count Número acumulado de bytes recebidos pelo pod na rede. Identifica atividades de rede incomuns (altas ou baixas) que podem indicar problemas de app ou de rede.
kubernetes.io/pod/network/policy_event_count (BETA) Mudança no número de eventos de política de rede vistos no plano de dados. Identifica problemas de conectividade causados por políticas de rede.
kubernetes.io/pod/volume/utilization A fração do volume que está sendo usada atualmente pela instância. Este valor não pode ser maior que 1, já que o uso não pode ultrapassar o espaço de volume total disponível. Permite o gerenciamento proativo do espaço de volume, avisando quando a utilização alta (próxima de 1) pode levar a falhas de gravação.
kubernetes.io/pod/latencies/pod_first_ready (BETA) A latência de inicialização de ponta a ponta do pod (de `Created` a `Ready`), incluindo extrações de imagem. Diagnostica pods de inicialização lenta.

Visualizar métricas com o Metrics Explorer

Para visualizar o estado do ambiente do GKE, crie gráficos com base em métricas com o Metrics Explorer.

Para usar o Metrics Explorer, siga estas etapas:

  1. No Cloud de Confiance console do, acesse a página do Metrics Explorer.

    Acessar o Metrics Explorer

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

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

Por exemplo, para investigar o consumo de memória de pods em um namespace específico, faça 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 namespace que você quer investigar.
  4. No campo Agregação, selecione Soma > pod_name e clique em OK. Essa configuração mostra uma linha de série temporal separada para cada pod.
  5. Clique em Salvar gráfico.

O gráfico resultante mostra o uso da memória de cada pod ao longo do tempo, o que pode ajudar a identificar visualmente os pods com uso da memória excepcionalmente alto ou crescente.

O Metrics Explorer tem muita flexibilidade na forma de construir as métricas que você quer visualizar. Para mais informações sobre as opções avançadas do Metrics Explorer, consulte Criar gráficos com o Metrics Explorer na documentação do Cloud Monitoring.

Criar alertas para detecção proativa de problemas

Para receber notificações quando algo der errado ou quando as métricas violarem determinados limites, configure políticas de alertas no Cloud Monitoring.

Por exemplo, para configurar uma política de alertas que notifica você quando o limite de CPU do contêiner estiver acima de 80% por cinco minutos, faça o seguinte:

  1. No Cloud de Confiance console, acesse a página Alertas.

    Acessar o alerta

  2. Clique em Criar política.

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

  4. Clique em Aplicar.

  5. Deixe o campo Adicionar um filtro em branco. Essa configuração aciona um alerta quando qualquer cluster viola o limite.

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

    1. Na lista Janela contínua, selecione 1 minuto. Essa configuração significa que Cloud de Confiance calcula um valor médio a cada minuto.
    2. Na lista Função de janela contínua, selecione média.

      Essas duas configurações calculam a média de utilização do limite de CPU para cada contêiner a cada minuto.

  7. Clique em Próxima.

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

    1. Em Tipo de condição, selecione Limite.
    2. Em Gatilho de alerta, selecione Qualquer violação de série temporal.
    3. Em Posição do limite, selecione Acima do limite.
    4. Em Valor do limite, insira 0.8. Esse valor representa o limite de 80% que você quer monitorar.
    5. Clique em Opções avançadas.
    6. Na lista Janela de novo teste, selecione 5 min. Essa configuração significa que o alerta será acionado somente se a utilização da CPU permanecer acima de 80% por um período contínuo de cinco minutos, o que reduz alarmes falsos de picos breves.
    7. No campo Nome da condição, dê um nome descritivo à condição.
    8. Clique em Próxima.
  9. Na seção Configurar as notificações e finalizar o alerta , faça o seguinte:

    1. Na lista Canais de notificação, selecione o canal em que você quer receber o alerta. Se você não tiver um canal, clique em Gerenciar canais de notificação para criar um.
    2. No campo Nome da política de alertas, dê à política um nome claro e descritivo.
    3. Não mude os valores padrão dos outros campos.
    4. Clique em Próxima.
  10. Analise sua política e, se tudo estiver correto, clique em Criar política.

Para saber mais sobre as outras maneiras de criar alertas, consulte Visão geral de alertas na documentação do Cloud Monitoring.

A seguir