Forum Discussion
HTTP REQUEST Event timelines -
I'm trying to troubleshoot what I suspect is a client issue by using some creative iRuling -
We're currently using a basic iRule to write a timestamp on the inbound leg, and a timestamp on the outbound leg.
when HTTP_REQUEST {
set http_request_time [clock clicks -milliseconds]
set request_log_line "\
[HTTP::request_num],\
[IP::remote_addr],\
[HTTP::method],\
[HTTP::uri]\,
[HTTP::host],\
[LB::server]\
"
}
when HTTP_RESPONSE {
set http_response_time [ clock clicks -milliseconds ]
log local0.info "$request_log_line,\
[HTTP::status],\
[expr $http_response_time - $http_request_time]"
}
However, research indicates that may be a little deceptive in the case where a client has a SLOW internet connection, since the 'HTTP_REQUEST' event is "Triggered when the system fully parses a complete client request header (that is, the method, URI, version, and all headers, not including the body)."
Similarly, the HTTP_RESPONSE event is "Triggered when the system parses all of the response status and header lines from the server response."
So... I guess my question is whehter or not there is an event that occurs when all the body data for a POST is collected ?
Even more basic... does it matter ? Does the BigIP make a load balancing decision based on the info it receives in a HTTP_REQUEST and open the connection based on that, then sit and wait until it has collected the POST data or 'stream' the POST data to the virtual server ?
In our case, we suspect that a client has a slow connection, or crappy routing. So, an initial connection is made but that it takes a long time (several seconds) to send the complete POST request through to IIS, where it is processed by our app fairly quickly.
Logging indicates that our app processes in sub-second times, but that for some specific clients, the overall tranasction time (measured at the LB by the iRule above) takes SUBSTANTIALLY longer than it should, or than other clients' transactions do.
Thanks for any insights !
- hoolio
Cirrostratus
Hi Randy,So... I guess my question is whehter or not there is an event that occurs when all the body data for a POST is collected ?
Even more basic... does it matter ? Does the BigIP make a load balancing decision based on the info it receives in a HTTP_REQUEST and open the connection based on that, then sit and wait until it has collected the POST data or 'stream' the POST data to the virtual server ?
In our case, we suspect that a client has a slow connection, or crappy routing. So, an initial connection is made but that it takes a long time (several seconds) to send the complete POST request through to IIS, where it is processed by our app fairly quickly.
Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com