Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re: Extracting time from a log

by toolic (Bishop)
on Jun 28, 2013 at 17:02 UTC ( [id://1041288]=note: print w/replies, xml ) Need Help??


in reply to Extracting time from a log

The problem is that 0.000352383 (which is stored in $1) is not greater than 10.0. You should also escape all the periods because they have special meaning in regexes (perlre).

Replies are listed 'Best First'.
Re^2: Extracting time from a log
by Azur (Initiate) on Jun 28, 2013 at 18:14 UTC
    1) Yes, that output was just an example of the log format. There are several pages which take 2-3 seconds, but even changing 10.0 to 1 or 0 result in no output. 2)Thank you, I thought as much. However, the command doesn't work any better with the periods escaped:  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 > 1.0)'
      but even changing 10.0 to 1 or 0 result in no output

      I beg to differ:

      $ echo " 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" | perl -ne 'BEGIN { $/="";} +print if (/ReqEnd(?:[\sc]+)\d+\s\d+\.\d+\s+\d+\.\d+\s+\d+\.\d+\s+(\d+ +\.\d+)/ and $1 > 0)'

      Output:

      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

      I changed the 10.0 to 0 and it outputted successfully. Perhaps you are overlooking something?

        Yes, clearly I must be, if you get output from that line, because I do not.

        I do get output if I enter...

        varnishlog -o -i Backend,RxURL,ReqEnd,RxHeader

        ...and when I enter...

        ls | perl -ne 'BEGIN { $/= "";} print'

        ...but not when I enter...

         varnishlog -o -i Backend,RxURL,ReqEnd,RxHeader | perl -ne 'BEGIN { $/= "";} print'

        So both parts of the command work individually, but not together!

        Any suggestions as to what I'm missing would be most welcome.

        EDIT: Solved it by redirecting the output to a textfile, then grepping the textfile. Still interested in finding out why the Perl command didn't work.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1041288]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others pondering the Monastery: (4)
As of 2024-03-29 12:01 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found