Como calcular pedidos médios por segundo usando awk ou sed em logs do Apache

2

Estou tentando calcular a média de solicitações por segundo para um período de tempo específico dos meus logs do Apache.

Eu consegui limitar os resultados ao período em que estou interessado, além de calcular as solicitações por segundo, mas não consigo calcular a média. Aqui está o que eu tenho até agora:

paste "/var/log/apache2/access.log" "/var/log/apache2/access.log.1" | awk ' $4>"[10/Feb/2013:16:48:00" && $4<"[10/Feb/2013:17:15:00" {gsub(/\[/,"");print $4} ' | sort | uniq -c

Alguém poderia me orientar na direção certa? Eu mencionei sed ou awk, mas estou feliz em usar outra coisa.

Felicidades

    
por Fred 14.02.2013 / 11:10

1 resposta

0

Como você já sabe como obter suas solicitações por segundo, precisa decidir o que sua "média" representa; ou seja, pedidos médios durante um período de 60 segundos, ou 5 minutos, ou 15, ou o que não. Supondo que seja mais de 60 segundos, você pode ter seu script existente acrescentado, a cada segundo, a um registro de métricas. Então, outro script, a cada segundo, em um loop, executa o seguinte:

# tail -n 60 | awk '{total = total + $1}END{print total}' / 60 | bc -l

Isso gerará as solicitações médias por segundo, durante um período de 60 segundos. Para fazer isso em 5 minutos:

# tail -n 300  | awk '{total = total + $1}END{print total}' / 300 | bc -l

Se precisar de mais esclarecimentos, sinta-se à vontade para comentar.

    
por 14.02.2013 / 21:14

Tags