Agora que você sabe como identificar pontos de falha no seu sistema, é hora de passar para a próxima camada do processo de resolução de problemas. Digamos que você foi notificado de que há um problema com a infraestrutura subjacente que dá suporte aos aplicativos de uma equipe. Com base nas habilidades de Diagnosticar falha do aplicativo com dados do host, você aprenderá uma maneira de comparar dados para poder tomar uma decisão sobre a alocação de recursos.
Objetivos
Neste tutorial, você aprenderá como:
- Solucionar problemas de um host de alerta com CPU alta
- Tomar uma decisão orientada por dados sobre a alocação de recursos
Investigue um aumento repentino na CPU
Determine se há algum problema com seus recursos
Vamos supor que você não tenha nenhum contexto adicional sobre a natureza da interrupção. O primeiro passo é determinar se uma mudança pode ser correlacionada aos recursos. Comece na página de resumo e avalie seus dados relacionados a recursos: CPU, uso de memória e utilização de disco.
Usando esta captura de tela como exemplo, você pode inferir que:
host-tower-portland
tem um incidente de alerta crítico.Na tabela de resumo, você pode ver que a CPU está funcionando a 99,84%.
Os gráficos métricos mostram que esse comportamento está em andamento há pelo menos 30 minutos.
Como esse comportamento é inesperado, você desejará se aprofundar nesse host específico.
Correlacione seus dados
Após clicar em um host, uma nova página de resumo aparece com dados específicos desse host. Neste estágio, você está tentando elaborar os padrões identificados na página de resumo. Vamos ver se podemos correlacionar a porcentagem de CPU com quaisquer outros dados específicos de host-tower-portland
.
Como estamos lidando com a porcentagem de CPU, queremos determinar se o problema está relacionado ao aplicativo ou à máquina. Para fazer isso, compare a tabela Processes running com Latest events na barra lateral. Esta etapa elimina a ambiguidade se um problema está ocorrendo ou não porque uma alteração foi feita diretamente na máquina ou se um processo está esgotando recursos.
Com base nesta captura de tela:
O uso da CPU está quente e estável perto de 100%.
Nenhum evento relatado nos últimos 30 minutos, aproximadamente quando a alteração ocorreu pela primeira vez. Se houvesse relatórios de eventos, você procuraria alguma alteração no arquivo de configuração da máquina ou verificaria se alguém entrou na máquina para fazer alterações diretamente.
Há um processo
ruby
usando até 77,34% da sua CPU.Como você correlacionou a porcentagem de CPU com um processo, você pode concluir que um aplicativo está consumindo seus recursos, e não o problema vindo do próprio host.
Determine se você deve alocar mais recursos para esse aplicativo
Um problema relacionado com recursos nem sempre significa que a solução consiste em aprovisionar mais recursos. Existem vários motivos para CPU alta, mas esses dois grandes são:
O aplicativo está executando um processo redundante que está causando picos de CPU. Se for esse o caso, você deve entrar em contato com a equipe proprietária sobre a otimização desse aplicativo.
Mais usuários finais estão acessando esse componente e adicionando estresse ao seu sistema. Se for esse o caso, você deverá provisionar mais recursos para atender a essa carga.
Se olharmos a página de resumo de
host-tower-portland
, podemos identificar qual cenário se aplica a esta situação correlacionando padrões de séries temporais entre diferentes gráficos. Vamos comparar o tráfego da rede com a sua infraestrutura métrica.Nesse caso, você espera que o gráfico
Network traffic
tenha uma tendência semelhante aos seus gráficos métricos para uso de CPU, uso de memória e assim por diante.
Se seus recursos estiverem relacionados a problemas de aplicativos em vez de carga, então a série temporal de sua rede apresentará uma tendência normal, ou seja, sem picos ou quedas.
No entanto, se a carga for a causa da alta CPU, você notará que a série temporal da rede reflete as tendências em outros gráficos métricos.
Vamos comparar nossos CPU usage e Network traffic:
Se a carga estiver sobrecarregando seu sistema, o tráfego de rede mostrará um aumento paralelo aos seus gráficos métricos.
Você também pode notar uma diminuição lenta do tráfego ao longo do tempo após um pico. Isso ocorre porque os recursos estão acabando e fazendo com que esses processos parem. Em outras palavras, se os recursos disponíveis não puderem suportar a demanda, o tráfego de rede poderá ser acelerado e causar uma diminuição constante.
O tráfego de rede, entretanto, apresenta comportamento consistente. O comportamento geral não parece mudar com o tempo à medida que os recursos se esgotam. Em vez disso, a série temporal mostra altos e baixos regulares.
Isso indica que o problema está realmente no aplicativo, e não no aplicativo que precisa de mais recursos para atender à carga.
Neste caso, você não alocaria recursos adicionais para o aplicativo. Em vez disso, entre em contato com a equipe proprietária e recomende que eles otimizem o processo Ruby problemático.
Compartilhe com a equipe
Ao fazer recomendações a outras equipes, você deseja que todos analisem os mesmos dados. Isto garante que quando são tomadas decisões sobre potenciais alterações, essas decisões são baseadas nos mesmos dados utilizados na resolução de problemas.
Nas etapas anteriores, aplicamos a consulta de filtro para exibir conjuntos específicos de hosts relacionados a um problema. Isso atualiza os dados da página de resumo, que você pode salvar para outras equipes.
Determine quantos dados a outra equipe pode precisar para realizar seu trabalho. Talvez existam conjuntos de hosts que devam ser considerados ou talvez eles precisem apenas de uma fatia de dados de exemplo.
Crie um filtro que exiba apenas os dados relevantes. Para simplificar, a visualização salva inclui um host do filtro
hostname = host-tower-portland
. Uma outra possibilidade é filtrar por nomes de aplicativos ou talvez por status de alerta.Dê um nome à visualização e clique em Save.
Depois de criar uma visualização de dados, é hora de salvá-la para que outras equipes possam pesquisá-la. Quando eles estão resolvendo problemas no comportamento do próprio aplicativo, eles podem encontrar a visualização pesquisando no dropdown.
Qual é o próximo?
Até agora, cobrimos como usar dados de infraestrutura para solucionar um incidente relacionado a recursos. Abordamos como reduzir o escopo de milhares de hosts para um conjunto de hosts e, em seguida, correlacionar os dados para tomar uma decisão. O próximo documento mostra como criar dashboard personalizado usando métrica de infraestrutura.