Мне было любопытно, как я буду рассчитывать процент выполнения для определенных URL-адресов ... Например, когда выполняется varnishlog, вы получаете вывод информации о входящих HTTP-запросах в реальном времени.
Ниже отрывок с вырезанной информацией.
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 ...
Меня интересует RxURL
. В частности, у меня есть запросы, начинающиеся с:
Как бы вы выполнили команду, которая умеет считать:
и вывести эти числа в конце?
В настоящее время я выполняю varnishlog | grep "Hash" > requests.txt
,
А затем использую электронную таблицу Excel для очистки, подсчитываю и вычисляю процент.
Мне было любопытно, можно ли использовать AWK или скрипт для этого прямо на сервере.
varnishtop -i txurl
даже больше подходит, поскольку он отображает URL-адреса напрямую.
Вы можете использовать Varnishncsa [1] для создания журнала, подобного Apache (и, что еще лучше, отфильтрованного, если хотите), и воспользоваться преимуществами некоторых проверенных в бою скриптов [2] [3]
Получение нужных вам подсчетов в реальном времени (например, для следующих 100 запросов) тривиально:
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] Есть ли у вас какие-нибудь полезные скрипты awk и grep для разбора логов apache?