Azur has asked for the wisdom of the Perl Monks concerning the following question:
I've got a website using the reverse proxy Varnish. I want to find objects which take more than X seconds to serve. Varnishlog is a small app which on-the-fly outputs Varnish's log, like this:
... 11 SessionOpen c 123.234.56.78 63618 123.234.56.89:80 11 RxURL c /example.php 11 RxHeader c Host: 123.234.56.89 11 RxHeader c User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; r +v:22.0) Gecko/20100101 Firefox/22.0 11 RxHeader c Accept-Language: en-US,en;q=0.5 11 RxHeader c Accept-Encoding: gzip, deflate 11 ReqEnd c 1832330560 1372436083.710740089 1372436083.711302 +519 0.000174284 0.000352383 0.000210047 ...
The interesting line is the ReqEnd one, the fifth group of digits (0.000352383) is the time in seconds it took to serve the object. Searching the net I found this command, which is supposed to extract entries which have taken more than 10 seconds to load:
varnishlog -o -i Backend,RxURL,ReqEnd,RxHeader | perl -ne 'BEGIN { $/= + "";} print if (/ReqEnd(?:[\sc]+)\d+\s\d+.\d+\s+\d+.\d+\s+\d+.\d+\s+( +\d+.\d+)/ and $1 > 10.0)'
...but it outputs nothing. Can someone help me find the problem with that command?
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Extracting time from a log
by toolic (Bishop) on Jun 28, 2013 at 17:02 UTC | |
by Azur (Initiate) on Jun 28, 2013 at 18:14 UTC | |
by Lawliet (Curate) on Jun 28, 2013 at 18:50 UTC | |
by Azur (Initiate) on Jul 01, 2013 at 11:14 UTC |
Back to
Seekers of Perl Wisdom