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

Publicado por Leonardo Berbert Gomes em 16/07/2020

[ Hits: 4.342 ]

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

Já pensou em adquirir adesivos grátis do Rundeck?

Baixando arquivos por extensões com o wget

Instalação do Terminal Kitty (Mint/Ubuntu/Debian e Derivados)

Rundeck - alterando a senha de admin

Executar shutdown com usuário comum em 5 etapas

Leitura recomendada

Comando CUT usando delimitador TAB

Gravar CD ou DVD via linha de comando

Comando para remover marca d'água textual em PDF

Exemplos de uso do comando SCP

Programando o seu Linux para desligar automaticamente

  

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