Este artigo é o primeiro de muitos que virão para falar a respeito do tema performance. Irei também apresentar algumas ferramentas para mostrar na prática como funciona e algumas soluções de problemas. Para padronizar as métricas do nível de satisfação do usuário e inciar uma analise de performance é fundamental falar sobre Apdex.
O Apdex (Application Performance Index) é um padrão aberto da indústria para medir o desempenho de aplicativos de software. Sua finalidade é medir o nível satisfação do usuário, especificando um padrão para analisar e relatar o grau em que o desempenho médio atende às expectativas do usuário.
Apdex classifica níveis de tempo de resposta em:
Satisfeito: O usuário é totalmente produtivo. O tempo de resposta da aplicação é menor ou igual ao tempo (T) definido como aceitável.
Tolerante: O usuário nota atraso de desempenho em respostas, mas continua o processo. Se enquadra nesse nível tempos de respostas maiores que T e menores ou iguais a 4T.
Frustrado: O desempenho com um tempo de resposta maior que 4T segundos é inaceitável e os usuários podem abandonar o processo.
Vamos analisar uma aplicação da qual foi definido um tempo de resposta de 1.2 segundos, por exemplo:
Nível | Intervalo | Tempo de Resposta |
---|---|---|
Satisfeito | T ou menos | 1.2 segundos |
Tolerante | >T, <= 4T | Entre 1.2 e 4.8 segundos |
Frustrado | > 4T | Mais que 4.8 segundos |
A pontuação no Apdex varia entre 0 e 1, sendo 0 a pior pontuação ou seja 100% de frustração no tempo de resposta e 1 é o melhor cenário possível, 100% de satisfação no tempo de resposta.
Durante um período de 2 minutos, um host processa 200 solicitações. Foi definido um limite do Apdex de T = 0,5 segundos (500ms).
Cenário:
A pontuação Apdex resultante é 0,9: (170 + (20/2)) / 200 = 0,9.
Uma forma para monitorar o nível de Apdex seria utilizando uma ferramenta de APM, eu irei abordar nos próximos artigos essas ferramentas com mais detalhes. Para exemplificar de forma rápida, será mostrado a seguir o funcionamento da análise de Apdex em ferramentas como DataDog APM e DynaTrace APM.
O exemplo a seguir mostra um gráfico de monitoramento de Apdex da ferramenta da DataDog, como podemos observar na imagem a seguir, foi ajustado o valor T = 0.5s, Ficando a critério do administrador a possibilidade de definir o seu próprio limite de Apdex.
A solução de APM da Dynatrace, tem algumas funcionalidades bem interessantes. Uma delas é a visualização geral do nível de Apdex, conforme observado nas imagens abaixo.
Outro ponto interessante da ferramenta da Dynatrace é a possibilidade de ver o Apdex agrupado por área geográfica ou por funcionalidade, conforme exemplificado a seguir.
A utilização do Apdex é uma excelente prática para o acompanhamento periódico do nível de satisfação do usuário e consequentemente a qualidade do serviço. É um bom termômetro para observar o impacto de determinas ações tanto negociais quanto a novas implementações na aplicação. E o ponto mais importante é que utilizando esse padrão de medida alinhado com uma boa solução de APM, você poderá identificar na estrutura do seu projeto todos os pontos críticos que estão afetando a performance.
Nos próximos artigos explicarei melhor o que é APM, as metodologias utilizadas e um tutorial de como instalar e fazer as primeiras melhorias de performance.
https://www.datadoghq.com/apm/
https://www.dynatrace.com/platform/application-performance-management/
http://apdex.org/overview.html
https://docs.newrelic.com/docs/apm/new-relic-apm/apdex/apdex-measuring-user-satisfaction