User Performance Monitoring
51Degrees provides bandwidth monitoring abilities to allow developers to cater different speed connections. Please note that bandwidth monitoring is only available for Enterprise users. Lite users will get a null returned for each Attribute.
To do this the FODBW construction has to be called from core.js at the beginning of the page:
<html> <head> <title> Test Page </title> <script src= "/51D/core.js" type= "text/javascript" ></script> <script> new FODBW(); </script> ...
This creates a cookie with a time stamp that the server can then use to measure how quickly responses are received. The API creates 5 request attributes that can be accessed from the request object in a Servlet with the getAttribute method :
protected void processRequest ( HttpServletRequest request , HttpServletResponse response ) throws ServletException , IOException { ... Long value = ( Long ) request . getAttribute ( "51D_LastResponseTime" ); ...
Note that if the FODBW hasn't been run, not enough bandwidth data has been collected getAttribute method will return null.
This table describes all the attributes created by bandwidth monitoring:
Attribute | Type | Description |
---|---|---|
51D_LastResponseTime | long | The time taken for the web page to start rendering after the user initiated the request in milliseconds. May return -1 if there is not enough data to calculate this. |
51D_LastCompletionTime | long | The time taken for the web page to complete rendering after the user initiated the request in milliseconds. |
51D_AverageResponseTime | long | The average time taken for the page to start rendering, in milliseconds, after the user initiated the request during the previous 5 minutes. |
51D_AverageCompletionTime | long | The average time taken for the page to complete rendering, in milliseconds, after the user initiated the request during the previous 5 minutes. |
51D_AverageBandwidth | int | The effective average bandwidth of the connection as measured by the amount of HTML data sent and received, measure in bytes/seconds. The value will vary from a network level inspection as it does not include the TCP or HTTP overhead. It should be used as a guide to the available effective bandwidth. The time values are of more practical use to developers. |
These values are good guides, but note they should not be treated as completely accurate. Their accuracy gets better over time and when used on larger pages. Small pages have a much higher margin of error.