Sitemap

[Dica rápida] Métricas de Latência

3 min readNov 4, 2024

Veja neste post rápido os que são as métricas (…P90, P95 e P99)

Dando continuidade ao meu artigo: Entendendo métricas de latência e throughput, neste abordarei o que são as métricas de latência (…P90, P95 e P99) e como é importante medi-las.

Como já sabemos, as métricas de latência são fundamentais para avaliar o desempenho de aplicações e serviços. Elas ajudam a identificar a rapidez com que um sistema responde às requisições, fornecendo uma visão mais detalhada sobre a experiência do usuário e a saúde do sistema sob diferentes cargas.

Para nos auxiliar na análise e no monitoramento dessas métricas, ferramentas especializadas de observabilidade e monitoramento, como Datadog, New Relic e Prometheus, desempenham um papel crucial.

Elas possibilitam a coleta, visualização e análise dos percentis de latência em tempo real, ajudando as equipes a identificar e resolver problemas de desempenho de maneira proativa.

Para ficar mais claro, vamos imaginar o seguinte cenário:

Considere um sistema que recebe requisições ao longo do dia, com tempos de resposta que podem variar bastante — desde respostas quase instantâneas até atrasos mais significativos em momentos de maior carga ou problemas pontuais.

Por exemplo, ao analisar as latências das requisições de um sistema X nos temos:

[44ms, 72ms, 23ms, 62ms, 71ms, 72ms, 389ms, 697ms]

Retirando a média deles nós teriamos: 178,75ms.

Aqui é onde mora o problema, note que essa não seria uma realidade, pois a nossa aplicação esta retornando em alguns momentos menos de 100ms.

Note que embora a média seja uma métrica útil, ela pode mascarar a realidade quando há picos de latência. Isso ocorre porque valores extremamente altos podem distorcer a média, fazendo com que ela não reflita com precisão a experiência da maioria dos usuários.

Para resolver este problema nós podemos utilizar uma medida chamada percentil que consiste em ordenar uma amostra de forma crescente e dividir ela em 100 partes, cada uma com uma porcentagem dos dados aproximadamente igual.

Para ficar mais claro, vamos retornar no nosso exemplo anterior, onde obtemos a média de 178,75ms, vejamos como extrair os percentis destes temos:

Primeiro vamos ordenar os valores: [23, 44, 62, 71, 72, 72, 389, 697]

Agora, vejamos como analisar o P50 e P90:

  • P50: descartamos 50% (em ordem) dos valores da amostra e recuperamos o primeiro valor que “sobra”, ou seja, nosso P50 = 72ms
  • P90: descartamos 90% (em ordem) dos valores da amostra e recuperamos o primeiro valor que “sobra”, no caso o P90 = 697ms

A seguir temos uma imagem retornando alguns dos percentis para uma chamada em uma aplicação X:

Mas qual seria a vantagem de se utilizar percentil?

Pegando o percentil 90 como exemplo, nos podemos constatar que em 90% das amostras se encontram abaixo desse valor, e apenas 10% excedem esse limite.

Por exemplo, se o P90 de uma latência é de 697 ms, isso significa que 90% dos usuários têm uma experiência com tempos de resposta de até 697 ms, enquanto apenas 10% enfrenta tempos superiores a esse valor.

Por esse motivo essa métrica é muito utilizada em dashboards de monitoramento :)

Bom, com isso finalizo mais este artigo, espero que tenham gostado e até a próxima pessoal.

--

--

No responses yet