Simple Science

Ciência de ponta explicada de forma simples

# Informática# Engenharia de software

Nova Ferramenta Facilita Análise de Performance de Microserviços

Uma ferramenta de análise visual melhora a análise do desempenho de microserviços.

― 9 min ler


Ferramenta de DesempenhoFerramenta de Desempenhode Microserviços Lançadade desempenho de microserviços.Ferramenta inovadora melhora a análise
Índice

Analisar o Desempenho de Microserviços é um trampo complicado. Microserviços são serviços pequenos e independentes que trabalham juntos, muitas vezes se chamando para completar um pedido. Cada vez que um pedido passa pelo sistema, pode acionar várias chamadas para outros serviços localizados em diferentes servidores ou contêineres. Essas interações podem dificultar entender o desempenho.

As ferramentas atuais para rastrear e analisar microserviços usam principalmente visualizações chamadas swimlanes. Essas mostram pedidos individuais se movendo pelo sistema, ajudando a entender seu desempenho. No entanto, elas não conseguem capturar as tendências gerais de desempenho em todo o sistema com muitos pedidos.

Para resolver esse problema, apresentamos uma nova ferramenta de análise visual que ajuda a analisar o desempenho de múltiplos pedidos ao mesmo tempo. A ferramenta oferece uma variedade de visualizações interativas que destacam características comuns dos pedidos e como elas se relacionam com o desempenho geral.

Os Desafios do Desempenho dos Microserviços

Os microserviços mudaram a forma como o software é desenvolvido e implantado. Cada serviço opera de forma independente, com equipes separadas gerenciando seu ciclo de vida. Esse esquema permite atualizações mais rápidas, que é uma vantagem vital no mercado de hoje. Contudo, isso também traz desafios para manter um desempenho consistente.

Um grande problema é a complexidade desses sistemas. Métodos de garantia de desempenho, como testes antes do lançamento, muitas vezes se tornam difíceis de implementar por causa de tempo e recursos limitados. A pressão para entregar atualizações rapidamente pode levar as equipes a pularem checagens essenciais de desempenho.

Além disso, o desempenho dos microserviços pode variar com base em padrões de uso em tempo real, tornando difícil prever problemas de desempenho antes que eles ocorram. Mudanças frequentes no sistema e cargas de trabalho imprevisíveis podem levar a regressões de desempenho que pegam as equipes de surpresa.

Por causa desses desafios, o conceito de observabilidade ganhou interesse. Observabilidade permite que as equipes analisem logs, rastros e métricas para ter uma visão completa do desempenho do sistema. Ferramentas de rastreamento distribuído são amplamente usadas hoje para melhorar a observabilidade em sistemas de microserviços. Essas ferramentas rastreiam pedidos enquanto se movem pelo sistema, fornecendo assistência visual para analisar o desempenho.

No entanto, muitas ferramentas de rastreamento distribuído atuais têm recebido críticas por não serem efetivas na análise do desempenho geral. Muitas vezes, elas exigem que os usuários troquem entre diferentes ferramentas para várias análises. Essa troca pode se tornar complicada e demorada, dificultando uma rápida compreensão dos padrões de desempenho do sistema.

Apresentando a Ferramenta de Análise Visual

Nossa nova ferramenta foca em simplificar a análise de desempenho para sistemas de microserviços. Ela se baseia em ideias anteriores e oferece uma maneira fácil de ver como diferentes características dos pedidos se relacionam com o desempenho geral.

A ferramenta inclui dois componentes visuais principais: uma árvore e um histograma. A árvore mostra como os pedidos fluem através das várias chamadas de procedimento remoto (RPCS), enquanto o histograma apresenta a distribuição dos tempos de resposta para os pedidos.

Os usuários podem interagir com esses componentes para descobrir as características importantes de caminhos de execução específicos e como eles impactam o desempenho.

Componentes Visuais Explicados

A Visualização da Árvore

A árvore é projetada para dar uma visão detalhada dos fluxos de trabalho envolvidos nos pedidos. Cada nó na árvore representa uma chamada RPC, com as arestas mostrando como os pedidos se relacionam entre si.

Por exemplo, se um pedido envolve uma série de RPCs, ele será exibido na árvore com base nas conexões entre essas chamadas. Essa estrutura de árvore permite uma visão agregada de vários pedidos, facilitando ver quais caminhos são frequentemente usados e como eles se relacionam com o desempenho.

Para destacar RPCs que valem a pena investigar, a ferramenta usa codificação de cores para mostrar a variabilidade dos tempos de execução e a frequência das chamadas. Caminhos com maior variabilidade podem indicar um impacto maior no tempo de resposta geral.

O Componente do Histograma

O histograma exibe um gráfico padrão dos tempos de resposta de ponta a ponta para ajudar os usuários a verem o quadro geral de desempenho. Ele permite a identificação visual de padrões de desempenho, como modos que indicam comportamentos recorrentes.

Os usuários podem selecionar intervalos no histograma para focar em tempos de resposta específicos. Essa seleção atualizará o componente da árvore para mostrar como os caminhos de execução RPC se relacionam com esses tempos selecionados, destacando quaisquer discrepâncias nos tempos de resposta com base nos intervalos escolhidos.

Interação do Usuário com a Ferramenta

A ferramenta suporta dois tipos de análise: análise para frente e análise para trás.

Análise para Frente

Na análise para frente, os usuários começam com a visualização da árvore. Ao examinar os nós, eles podem identificar caminhos RPC que mostram variabilidade significativa em seus tempos de execução ou frequência de invocação. Os usuários podem clicar nesses nós para explorar como esses atributos se relacionam com os tempos de resposta gerais.

Quando um usuário seleciona um caminho RPC, a ferramenta gera um gráfico de barras que exibe a faixa de tempos de execução para aquele caminho. Essa visualização permite que os usuários vejam como comportamentos específicos de tempo de execução se correlacionam com o desempenho de ponta a ponta, ajudando a descobrir potenciais problemas de desempenho.

Análise para Trás

Na análise para trás, os usuários podem começar a partir do histograma. Eles escolhem um intervalo específico de tempos de resposta de ponta a ponta que querem analisar, o que então atualiza a árvore para mostrar discrepâncias no tempo de execução e frequência. Nós que mostram diferenças significativas nesses atributos em comparação com outros serão destacados.

Clicando nesses nós destacados, serão exibidos histogramas que comparam os tempos de execução para os pedidos selecionados com outros pedidos. Essa abordagem facilita ver como comportamentos de execução diferentes estão ligados a tempos de resposta específicos.

Arquitetura e Implementação da Ferramenta

A arquitetura subjacente da ferramenta envolve vários componentes.

  1. Coletor de Rastros: Coleta rastros do sistema de microserviços e os armazena em um Armazenamento de Rastros.
  2. Etapa de Pré-processamento: Este componente melhora a eficiência e organiza os dados coletados, preparando-os para análise na ferramenta.
  3. Aplicativo do Dashboard: O painel se conecta aos dados organizados e gera visualizações para os usuários.

A ferramenta suporta dados formatados a partir de ferramentas de rastreamento comuns e é construída usando tecnologias web para renderizar visualizações.

Avaliando a Ferramenta

Para entender quão eficaz a ferramenta é, fizemos uma avaliação minuciosa usando conjuntos de dados derivados de um sistema complexo de microserviços. Nosso objetivo era ver se a ferramenta poderia revelar efetivamente as relações entre atributos RPC e tempos de resposta gerais.

Geração de Conjuntos de Dados

Os conjuntos de dados vieram de um conhecido sistema de microserviços de código aberto que fornece um serviço de reservas. Geramos conjuntos de dados distintos, cada um simulando cenários que produziam diferentes características de desempenho.

Usamos duas abordagens principais para criar os conjuntos de dados:

  1. Injetando Problemas de Desempenho: Ao introduzir atrasos artificiais em RPCs específicos, pudemos observar como essas mudanças impactavam os tempos de resposta.
  2. Mudando Cargas de Trabalho: Variações nas cargas simularam diferentes tipos de interações de usuários, levando a flutuações de desempenho.

Análise Manual

Dois autores analisaram manualmente os conjuntos de dados usando a ferramenta. Eles focaram em quão bem ela ajudou a entender a relação entre atributos de pedidos e tempos de resposta. Ambos os autores tinham conhecimento prévio do sistema de microserviços, mas não estavam cientes das mudanças específicas feitas nos conjuntos de dados.

No geral, a ferramenta facilitou a análise de pedidos na maioria dos casos. Ela destacou efetivamente as relações entre os tempos de execução e os tempos de resposta em vários conjuntos de dados.

Resultados da Avaliação

Através da nossa avaliação, descobrimos que a ferramenta forneceu insights valiosos sobre o desempenho dos microserviços. Na maioria dos conjuntos de dados testados, foi fácil identificar RPCs afetados e suas correlações com os tempos de resposta gerais.

No entanto, em alguns conjuntos de dados, a análise se mostrou mais desafiadora, exigindo mais interação com a ferramenta.

Conclusão

A ferramenta de análise visual apresentada oferece uma solução promissora para analisar o desempenho de microserviços. Ela simplifica o processo de identificar e entender as relações entre os atributos dos pedidos e os tempos de resposta gerais, enquanto suporta vários tipos de análise.

Futuras melhorias se concentrarão em aumentar a eficiência da ferramenta e validá-la com dados do mundo real de sistemas de microserviços maiores. O objetivo é fazer desta ferramenta uma opção ideal para equipes que buscam melhorar suas capacidades de monitoramento e análise de desempenho de microserviços.

Fonte original

Título: VAMP: Visual Analytics for Microservices Performance

Resumo: Analysis of microservices' performance is a considerably challenging task due to the multifaceted nature of these systems. Each request to a microservices system might raise several Remote Procedure Calls (RPCs) to services deployed on different servers and/or containers. Existing distributed tracing tools leverage swimlane visualizations as the primary means to support performance analysis of microservices. These visualizations are particularly effective when it is needed to investigate individual end-to-end requests' performance behaviors. Still, they are substantially limited when more complex analyses are required, as when understanding the system-wide performance trends is needed. To overcome this limitation, we introduce vamp, an innovative visual analytics tool that enables, at once, the performance analysis of multiple end-to-end requests of a microservices system. Vamp was built around the idea that having a wide set of interactive visualizations facilitates the analyses of the recurrent characteristics of requests and their relation w.r.t. the end-to-end performance behavior. Through an evaluation of 33 datasets from an established open-source microservices system, we demonstrate how vamp aids in identifying RPC execution time deviations with significant impact on end-to-end performance. Additionally, we show that vamp can support in pinpointing meaningful structural patterns in end-to-end requests and their relationship with microservice performance behaviors.

Autores: Luca Traini, Jessica Leone, Giovanni Stilo, Antinisca Di Marco

Última atualização: 2024-04-22 00:00:00

Idioma: English

Fonte URL: https://arxiv.org/abs/2404.14273

Fonte PDF: https://arxiv.org/pdf/2404.14273

Licença: https://creativecommons.org/licenses/by/4.0/

Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.

Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.

Mais de autores

Artigos semelhantes