Observability: otimizar cargas de trabalho com o Universal Profiling
Visão geral
Introdução ao Elastic Observability
Conheça o Elastic Observability e tenha uma visão geral de como ingerir, visualizar e analisar logs de clientes das suas aplicações usando o Elastic Cloud. Saiba como modernizar as aplicações e adote a nuvem com confiança.
Vamos começar
Crie uma conta do Elastic Cloud
Depois de acessar cloud.elastic.co e criar uma conta, siga este vídeo para saber como executar sua primeira solução da Elastic em qualquer uma das mais de 50 regiões compatíveis globalmente.
Após a conclusão da implantação, na guia Observability, selecione Optimize my workloads with Universal Profiling (Otimizar minhas cargas de trabalho com o Universal Profiling).
Agora você deverá adicionar seus dados para começar. Selecione Set up Universal Profiling (Configurar o Universal Profiling).
Se esta for a primeira vez que você usa o Universal Profiling Agent, deverá configurá-lo. Basta seguir as instruções abaixo.
Abaixo está um exemplo de execução dos comandos acima no cluster do AKS do Microsoft Azure.
Quando os dados começarem a aparecer, navegue até Stacktraces em Universal Profiling no menu à esquerda. Ao visualizar os traces da stack, é possível ver o que está consumindo mais tempo. Passe o cursor do mouse sobre o gráfico para ver o padrão de onda dos threads individualmente.
A visualização stacktraces mostra gráficos de stacktrace agrupados por threads, hosts, implantações do Kubernetes e containers. Ela pode ser usada para detectar picos inesperados de CPU em threads e detalhar um intervalo de tempo menor para investigar mais detalhadamente com um flamegraph.
Você começará a ver os dados em cerca de três minutos ou menos. Confira este blog para obter mais informações sobre como ler traces de stack.
Como trabalhar com o Elastic Observability
Analise os flamegraphs
Em seguida, navegue até Flamegraphs em Universal Profiling no menu à esquerda. Essencialmente, a criação de perfil e os flamegraphs são sinônimos. Ela representa, conforme você lê da esquerda para a direita, qual é o código mais caro ou a função mais cara.
A página de flamegraphs é onde você provavelmente passará mais tempo, especialmente ao depurar e otimizar. Recomendamos que você use este blog para identificar gargalos de desempenho e oportunidades de otimização com flamegraphs. Os três elementos-condições principais a serem procurados são largura, hierarquia e altura.
- Faça a varredura horizontalmente da esquerda para a direita, concentrando-se na largura para funções com uso intensivo de CPU.
- Examine verticalmente para verificar a stack e identificar gargalos.
- Procure stacks muito grandes para identificar possíveis complexidades no código.
Para começar a explorar, recomenda-se limitar a um thread, host, implantação ou container específico. Basta inserir na barra de busca.
OBSERVAÇÃO: o Elastic Universal Profiling é a única solução de criação de perfil contínua do setor que fornece visibilidade de linguagem mista, do kernel ao código nativo e às linguagens de programação de alto nível, sem exigir símbolos de depuração no host.
Ao analisar o gráfico, observe que, quanto mais longa a linha, mais tempo ela leva em termos de tempo de CPU. Se você selecionar uma das linhas, verá um submenu com ainda mais detalhes. Função é a linha de código que foi executada no momento. Você também verá outros detalhes importantes, como Total CPU (CPU total), Annualized CO2 (CO2 anualizado) e Annualized dollar cost (Custo em dólar anualizado).
Compare o código antes e depois das alterações
Os flamegraphs diferenciais permitem comparar o código antes e depois das alterações, antes de enviá-lo para produção. O turquesa representa melhoria e o vermelho representa regressão.
Na imagem abaixo, você vê que o container otimizado é melhor com base na cor.
Se você selecionar a seta suspensa em Gained overall performance (Desempenho geral obtido), poderá ver os valores gerais de melhorias.
Em seguida, se você selecionar o ícone Swap sides (Trocar de lado) (o ícone entre os containers sendo comparados com setas apontando para direções opostas), verá que reverter para o código do container anterior à otimização resultará em uma regressão.
Se você selecionar a seta suspensa em Lost overall performance (Desempenho geral perdido), poderá ver os valores gerais de regressão.
Em seguida, se você selecionar Go to monitor (Ir para o monitor), obterá imediatamente alguns insights gerais. Esses gráficos começarão a ser criados à medida que mais testes forem realizados, mas você poderá ver rapidamente a disponibilidade, a duração da execução dos testes e o cronograma, e também poderá detalhar o gráfico em cascata. Para detalhar, clique no ícone em View test run (Ver execução do teste).
Próximas etapas
Agradecemos o tempo dedicado à coleta e análise de logs com o Elastic Cloud. Se você está conhecendo a Elastic, não deixe de fazer uma avaliação gratuita de 14 dias.
Além disso, ao iniciar sua jornada com a Elastic, entenda alguns componentes operacionais, de segurança e de dados que você deve gerenciar como usuário ao fazer a implantação no seu ambiente.
Recursos sobre Observability
- Explore a galeria de demonstrações de observabilidade
- Comece a coletar e analisar seus logs
- Comece a monitorar o desempenho da sua aplicação (APM/rastreamento)
- Comece a monitorar seus hosts
- Comece a monitorar os clusters do Kubernetes
- Comece a criar um monitor sintético