Calculando contagem e porcentagem para URL específico do Varnishlog

Calculando contagem e porcentagem para URL específico do Varnishlog

Eu estava curioso para saber como calcular uma porcentagem de execução para URLs específicos... Por exemplo, quando o vernizlog é executado, você obtém uma saída em tempo real para informações sobre solicitações HTTP recebidas.

Abaixo um trecho com algumas informações recortadas.

  46 ReqStart     c 
   46 RxRequest    c GET
   46 RxURL        c /cat?getParam
   46 RxProtocol   c HTTP/1.1
   46 RxHeader     c User-Agent: **************
   46 RxHeader     c Accept-Encoding: gzip
   46 RxHeader     c Host: myServer.org
   46 RxHeader     c Connection: Keep-Alive
   46 RxHeader     c Cookie: ********
   46 RxHeader     c Cookie2: ************
   46 VCL_call     c recv lookup
   46 VCL_call     c hash
   46 Hash         c /cat?getParam
   46 Hash         c myServer.org
   46 VCL_return   c hash
   46 VCL_call     c miss fetch
   46 Backend      c 90 default default
   ...
   46 ObjHeader    c Server: Apache-Coyote/1.1
   46 ObjHeader    c Content-Type: text/xml
   46 ObjHeader    c Content-Encoding: gzip
   46 ObjHeader    c Vary: Accept-Encoding
   46 ObjHeader    c Date: Thu, 05 Sep 2013 12:56:04 GMT
   46 Gzip         c u F - 1596 8098 80 80 12697
   46 VCL_call     c deliver deliver
   46 TxProtocol   c HTTP/1.1
   46 TxStatus     c 200
   46 TxResponse   c OK
   ...
   46 ReqEnd       c ...

O que me interessa é RxURL. Especificamente, tenho solicitações que começam com:

  • /gato?
  • /modelo?

Como você executaria um comando que pode contar:

  • número total de solicitações
  • número de solicitações começando com /cat
  • número de solicitações começando com /temp

e gerar esses números no final?

Atualmente, estou executando varnishlog | grep "Hash" > requests.txt,

E então utilizar uma planilha Excel para limpar, fazer minhas contagens e calcular a porcentagem.

Eu estava curioso para saber se o AWK ou um script poderia ser utilizado para fazer isso diretamente no servidor.

Atualizar

varnishtop -i txurlé ainda mais adequado porque exibe os URLS diretamente.

Responder1

Você pode usar Varnishncsa[1] para produzir um log "semelhante ao Apache" (e melhor ainda, um filtrado, se desejar) e aproveitar algumas vantagens de alguns scripts testados em batalha[2][3]

Obter as contagens desejadas em tempo real (para as próximas 100 solicitações, por exemplo) é trivial:

  • varnishncsa | head -n 100 | awk '{print $7}' | wc -l
  • varnishncsa | head -n 100 | awk '{print $7}' | grep /cat | wc -l
  • varnishncsa | head -n 100 | awk '{print $7}' | grep /temp | wc -l

[1]https://www.varnish-cache.org/docs/trunk/reference/varnishncsa.html

[2]Você tem algum script awk e grep útil para analisar logs do Apache?

[3]http://www.the-art-of-web.com/system/logs/#.Uin5AEBdXsh

informação relacionada