Forum Discussion

Aimee_2452's avatar
Icon for Nimbostratus rankNimbostratus
Aug 11, 2011

F5s and page load times

I'm looking for a way to harvest page load times for a pool of webservers, ie. the total time it takes to complete a wget from the load balancer to a webserver. Is this doable with a custom Health Monitor and/or an iRule?



This is to do with informing a third party GTM system about load on our resources -- they'd like an XML object, fetch-able by HTTP or HTTPS, that includes an integer value to indicate current load. Now, since the resources in question are webservers, we'd like to use page load times to calculate that load value. Basically, we need a page load time for each node in a pool then we need to average those values to come up with an average page load time for the pool. Once we've got that value, we can build the XML object and make it accessible by HTTP(S).




Building an XML object and making it available by HTTP(S) can be done fairly easily with an iRule, but it's the harvesting page load times that I'm stuck on. Currently, I'm thinking of an EAV monitor (possibly a bash script with a timed wget?) to fetch page load time for each node, but from there I'm not sure how to aggregate the values -- perhaps write them to a file that the iRule can use as an external file data group?






2 Replies

  • Hi Aimee,



    Do you want to do all of this calculation to provide GTM with metrics to select the best server? Why not just have the provider GTM poll the LTM or servers to do this?



    If you did want LTM to send an HTTP/S request to each server, you could use an external monitor. The monitor could write the output to a datagroup using bigpipe or tmsh which is read by an iRule on a virtual server. It seems like a lot of string and duct tape to use though.



  • To provide GTM with metrics to select the best datacenter -- but the GTM wants a "load object" which is just a file that reports the current load on a datacenter (I suppose it doesn't strictly have to be HTTP/S). And the GTM doesn't have access to poll each individual webserver, it only has access to the BigIP LTM we have sitting in front of the webservers.



    So we can get the LTM to provide this "load object" on request, with some arbitrary load value, but that wouldn't be entirely useful. We'd like to calculate the load value based on page load times of webservers but we can't figure out a way to do this without, as you said, a lot of string and duct tape. Maybe the BigIP LTM isn't suited for this kind of thing -- are we better off doing all this on some other server and just using the LTM to pass requests for the "load object" to that server?