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

Publicado por Leonardo Berbert Gomes em 16/07/2020

[ Hits: 4.373 ]

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

Awk - Uma poderosa ferramenta de análise

Habilitando sintaxe no VIM para o logstash

Habilitando Parallel Downloading do Pacman no ArchLinux

Alacritty - Instalação no Debian e derivados

Ambiente Dev Local com Vagrant em 5 minutos

Leitura recomendada

Imprimindo com múltiplas páginas em uma mesma folha

Alias para atualizar apt e flatpak

Limpando a cache DNS (Red Hat / Suse / CentOS)

Exibindo determinada linha de um arquivo no terminal

Montar imagem ISO para abrir VLC

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts