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
Rodando (ElasticSearch + Kibana) em 5 minutos
Instalação do Terminal Kitty (Mint/Ubuntu/Debian e Derivados)
Customizando o Grub no Fedora 33
Fazendo o Slackware desligar seu gabinete ATX
Ambiente Dev Local com Vagrant em 5 minutos
Leitura recomendada
Verificar quantos cores e processadores existem na máquina
Instalando Skype no Ubuntu 15.04
80 Comandos para o pinguim (parte 3)
Comando CUT usando delimitador TAB
Como renomear vários arquivos de MAIÚSCULO para minúsculo
Comentários
Nenhum comentário foi encontrado.