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

Publicado por Leonardo Berbert Gomes em 16/07/2020

[ Hits: 4.370 ]

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

Busca de string em intervalos de logs

Kitty Terminal - Instalação de Temas

Instalando o Terraform (Ubuntu/Mint/Debian e Derivados)

Rodando (ElasticSearch + Kibana) em 5 minutos

Backup dos arquivos em determinado diretório

Leitura recomendada

Comandos básicos para usar no seu Linux

Debian 6.x e CentOS 6.x - Instalando módulo para chipset Realtek RTL8111/8168B

LSOF: Quem está ouvindo aí no seu Linux?

Como instalar o plugin flash no Debian

Ativar tecla Num Lock na inicialização do Linux

  

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