Forum Discussion

7 Replies

  • Colin_Walker_12's avatar
    Colin_Walker_12
    Historic F5 Account
    I've not done any extensive testing, and certainly not side-by-side tests to compare the two, but from what I understand and my limited experience with the add-on, it seems pretty reliable.

     

     

    What do you mean by "close to http watch"? I'm not quite sure in what way you're comparing the two.

     

     

    Colin
  • Http watch is currently used in two ways

     

    1)Application Performance measuring tool with and without bigip in the field for Proof Of Concept(POC)

     

    2)and as a Trouble shooting tool for web application when developing iRules

     

     

    Http watch is not a free tool and hence most of the end users/partner SE cannot use this and relies on F5 FSE for the same

     

     

    Where I wanted to check if firebug can be an alternative to HTTP watch

     

     

  • Mike_Lowell_108's avatar
    Mike_Lowell_108
    Historic F5 Account
    I haven't tried Firebug. As an alternative for HttpWatch, "Live HTTP Headers" seems popular. My favorite is "Tamper Data" (I don't actually use it for tampering, simply for it's presentation of the data). Tamper Data has a mode to generate Gantt charts at least vaguely similar to Firebug.

     

     

    IBM Page Detailer seems to still be available for download, too, if the charting stuff is all you're after.

     

     

    On the general topic of measuring web page performance using FireFox, I suggest checking out iMacros (in particular the "Stopwatch" example), or for less formal performance measurement, Fasterfox includes a page load timer in the status bar which I've found to be handy.

     

     

    Last but not least, if you find a customer that wants to keep a close eye on their performance in a more formal way, services like Gomez or Keynote can definitely generate some pretty reports. :) They also have 'on demand' modes where you just type in a URL for one-off testing (if you have an account with them...).
  • Some additional ideas...

     

     

    Fiddler (www.fiddlertool.com) is a free interception proxy which allows you to get pretty complete details on HTTP requests sent by the browser through it. You can get some performance stats as well. If you want to modify requests, you can use a free interception proxy like BURP (www.portswigger.net). BURP allows you to modify any component of an HTTP request, whereas TamperData only allows you to change POST parameters/values.

     

     

    Aaron
  • Mike_Lowell_108's avatar
    Mike_Lowell_108
    Historic F5 Account
    These kind of tools are very nice for some things, but I don't use them very often. I guess I'm fortunate in that I tend to have more than 1 BIG-IP nearby so I can use another BIG-IP as the proxy to collect stats and modify traffic. :)

     

     

    I have an iRule that logs essentially every major iRule parameter during the events I commonly use. It breaks out the traffic by protocol (Ethernet, IP, TCP, HTTP) so it can be somewhat vaguely readable while presenting a bunch of data. The primary use is for debugging so it outputs everything at every step -- more than just stats (the MAC addresses and IP's and ports at every stage...since they can definitely change if you're using tricky iRules!).

     

     

    I've pasted a partial example of the output. This shows just the HTTP_RESPONSE event, but the same sort of stuff is printed in every event it's available

     

     

    -------- START: rule_log_requests --------

     

     

    client { 172.16.100.254:54622 -> 172.16.100.100:80 }

     

    server { 172.16.200.250:54622 -> 172.16.200.1:80 }

     

    ethernet { 00:50:56:c0:00:03 -> 00:50:56:83:0a:f4 tag 50 qos 0 }

     

    *200 1.1 - REDIR 0, Content-Length 1456, Transfer-Encoding

     

    *TCP MSS(1460) BW(0) RTT(2748) OFFSET(0)

     

    *IP TOS 0, HOPS 0, TTL 64, PKTS_IN 3, PKTS_OUT 3, BYTES_IN 1654, BYTES_OUT 353

     

    *HTTP HOST , KEEPALIVE 1, REQ_NUM 1

     

    -------- END: rule_log_requests --------

     

     

     

    For monitoring type stuff I tend to use time-conditional iRule log statements (i.e. "this request is taking too long") like the example in Code Share / forums. Or for counter-type stuff (like bucketizing stats) I've found the stats profile stuff to be pretty handy.

     

     

    Below is an example with stats profiles that does buckets for file type (cached/not cached) and "visitors" based on a lame cookie check. The same sort of thing works for buckets of response time, size, etc.

     

     

    ----- START: my_stats_irule -----

     

    profile stats my_stats_profile {

     

    defaults from stats

     

    field1 cfm

     

    field2 htm

     

    field3 asp

     

    field4 img

     

    field5 css

     

    field6 js

     

    field7 pdf

     

    field8 swf

     

    field9 other

     

    field10 cache_cfm

     

    field11 cache_htm

     

    field12 cache_asp

     

    field13 cache_img

     

    field14 cache_css

     

    field15 cache_js

     

    field16 cache_pdf

     

    field17 cache_swf

     

    field18 cache_other

     

    field19 visitors

     

    }

     

     

    rule my_stats_irule {

     

    when HTTP_REQUEST {

     

    switch -glob [HTTP::path] {

     

    "*.cfm" { STATS::incr my_stats_profile cfm }

     

    "*.html" -

     

    "*.htm" { STATS::incr my_stats_profile htm }

     

    "/" -

     

    "*.aspx" -

     

    "*.asp" { STATS::incr my_stats_profile asp }

     

    "*.jpeg" -

     

    "*.jpg" -

     

    "*.gif" { STATS::incr my_stats_profile img }

     

    "*.css" { STATS::incr my_stats_profile css }

     

    "*.js" { STATS::incr my_stats_profile js }

     

    "*.pdf" { STATS::incr my_stats_profile pdf }

     

    "*.swf" { STATS::incr my_stats_profile swf }

     

    default { STATS::incr my_stats_profile other }

     

    }

     

    set needs_cookie 1

     

    if { [HTTP::cookie exists "myCNT"] } {

     

    set needs_cookie 0

     

    }

     

    }

     

    when HTTP_RESPONSE {

     

    if { $needs_cookie == 1 } {

     

    STATS::incr my_stats_profile visitors

     

    HTTP::cookie insert name "myCNT" value "1"

     

    }

     

    }

     

    when CACHE_REQUEST {

     

    switch -glob [HTTP::uri] {

     

    "*.cfm" { STATS::incr my_stats_profile cache_cfm }

     

    "*.html" -

     

    "*.htm" { STATS::incr my_stats_profile cache_htm }

     

    "/" -

     

    "*.aspx" -

     

    "*.asp" { STATS::incr my_stats_profile cache_asp }

     

    "*.jpeg" -

     

    "*.jpg" -

     

    "*.gif" { STATS::incr my_stats_profile cache_img }

     

    "*.css" { STATS::incr my_stats_profile cache_css }

     

    "*.js" { STATS::incr my_stats_profile cache_js }

     

    "*.pdf" { STATS::incr my_stats_profile cache_pdf }

     

    "*.swf" { STATS::incr my_stats_profile cache_swf }

     

    default { STATS::incr my_stats_profile cache_other }

     

    }

     

    }

     

    }

     

    ----- END: my_stats_irule -----

     

     

    For everything else there's tcpdump with offline analysis through tcptrace. :)
  • Colin_Walker_12's avatar
    Colin_Walker_12
    Historic F5 Account
    Very nice. Thanks Mike, I'm sure that'll be handy to more than one person. Feel like adding it to the codeshare? If not, I will, if you don't mind. ;)

     

     

    Colin
  • Colin_Walker_12's avatar
    Colin_Walker_12
    Historic F5 Account
    Added a non-stats profile enabled version: http://devcentral.f5.com/wiki/default.aspx/iRules/In_Depth_Traffic_Analysis_via_iRule.html

     

     

    Thanks much Mike. That's going to come in handy. ;)

     

     

    Colin