Medindo o tempo de resposta de cada step de API/SITE no terminal

Publicado por Leonardo Berbert Gomes em 16/07/2020

[ Hits: 411 ]

Blog: https://www.linkedin.com/in/leoberbert

 


Medindo o tempo de resposta de cada step de API/SITE no terminal



Quem nunca precisou medir o tempo de resposta de uma API ou SITE em cada step? Nesta dica vamos aprender como fazer isso de uma forma bem simples utilizando o comando curl.

Na linha de comando abaixo eu também utilizei a linguagem Perl para exibir o momento em que a consulta é realizada:

curl -L -o /dev/null -s -w " time_namelookup: %{time_namelookup}\n time_connect: %{time_connect}\n time_pretransfer: %{time_pretransfer}\n time_redirect: %{time_redirect}\n time_starttransfer: %{time_starttransfer}\n time_total: %{time_total}\n" http://www.terra.com.br | perl -pe 'use POSIX strftime; print strftime "%d/%m/%Y %H:%M:%S;", localtime'

16/07/2020 10:07:27; time_namelookup: 0,000001
16/07/2020 10:07:27; time_connect: 0,188000
16/07/2020 10:07:27; time_pretransfer: 0,750000
16/07/2020 10:07:27; time_redirect: 0,625000
16/07/2020 10:07:27; time_starttransfer: 1,422000
16/07/2020 10:07:27; time_total: 2,047000


Abaixo um descritivo do que cada campo representa:
  • time_namelookup - Tempo em segundos desde o início da transação até a resolução do nome ser concluída.
  • time_connect - Tempo em segundos desde o início da transação até a conexão TCP com o host ser concluída.
  • time_pretransfer - Tempo em segundos desde o início da transação até a transferência do arquivo começar.
  • time_redirect - Tempo em segundos para todas as etapas de redirecionamento.
  • time_starttransfer - Tempo em segundos desde o início da transação até a transferência do primeiro byte.
  • time_total - Tempo total em segundos que durou toda a operação.

Suponhamos que eu precise deixar o comando acima rodando de x em x tempo para ficar coletando diariamente para identificar algum momento de gargalo em meu SITE ou API. Eu poderia fazer um simples shell script para isso, conforme mostrado abaixo:

#!/bin/bash

while true ;
do
date=$(date '+%Y-%m-%d')
curl -L -o /dev/null -s -w " time_namelookup: %{time_namelookup}\n time_connect: %{time_connect}\n time_pretransfer: %{time_pretransfer}\n time_redirect: %{time_redirect}\n time_starttransfer: %{time_starttransfer}\n time_total: %{time_total}\n" http://www.terra.com.br | perl -pe 'use POSIX strftime; print strftime "%d/%m/%Y %H:%M:%S;", localtime' >> metrica_resp_site_$date.log
sleep 3
done

O simples script acima ficará coletando a cada 3 segundos e gravará a informação no arquivo "metrica_resp_site_2020-07-16.log".

Espero que essa dica seja útil.

[]'s leoberbert

Outras dicas deste autor

kind - Desenvolvimento Local com Kubernetes

Criando Templates no VIM

Convertendo hexadecimal para texto

Habilitando sintaxe no VIM para o logstash

sys_diag - Diagnóstico completo do Solaris

Leitura recomendada

Apagando arquivos sem dono com o find

Mostrar apenas as linhas não comentadas de um arquivo

Comandos para agilizar o uso do terminal

Verificar o tempo de execução de um comando

Comandos e dicas importantes

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts