http://www.perlmonks.org?node_id=1041287

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?