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
Convertendo hexadecimal para texto
Extraindo informações do Oracle Database com logstash
Acessando Gmail pelo celular
Grafana - Alterando imagem da tela de login
Instalação do Docker no Linux Mint 20
Leitura recomendada
Comando CLS do Windows no Linux
Recuperar arquivos do Windows usando um LiveCD do Ubuntu Linux
Criando backup tar multi-volume usando FIFO
Como gravar imagem ISO em DVD via linha de comando
Iniciando uma segunda interface gráfica no Linux
Comentários
Nenhum coment�rio foi encontrado.