org.w3c.jigsaw.http
Class httpdStatistics

java.lang.Object
  |
  +--org.w3c.jigsaw.http.httpdStatistics

public class httpdStatistics
extends java.lang.Object

This class maintains server wide statistics about hits. This class should probably be coded as a resource itself, and made accessible through a specific HTTPResource. I am just having fun for the time being.


Field Summary
protected  long r_max
          The maximum processing time in ms.
protected  long r_min
          The min processing time in ms.
protected  httpd server
           
protected  long start_time
          The date at which the server was started (ms since Java epoch).
protected  long t_bytes
          The total number of emited bytes.
protected  long t_hits
          The total number of hits.
protected  long t_req
          The total time spent in processing requests in ms.
protected  java.net.URL u_max
          The URL that has been processed the slowest.
protected  java.net.URL u_min
          The URL that has been processed the fastest.
 
Method Summary
 long getEmittedBytes()
          Get the total number of bytes emited.
 int getFreeThreadCount()
          Get the number of free threads in the server.
 long getHitCount()
          Get the total number of hits.
 int getIdleThreadCount()
          Get the number of idle threads in the server.
 long getMaxRequestTime()
          Get the max request processing time.
 java.net.URL getMaxRequestURL()
          Get the URL of the request that took the longest time to be processed.
 long getMeanRequestTime()
          Get the mean request processing time.
 long getMinRequestTime()
          Get the min request processing time.
 java.net.URL getMinRequestURL()
          Get the URL of the request that took the smallest time to be processed.
 int getServerLoad()
          Get the current server load.
 long getStartTime()
          Get the time at which the server was started.
 int getTotalThreadCount()
          Get the total number of client threads.
protected  void updateStatistics(Client client, Request request, Reply reply, int nbytes, long duration)
          Update the current statistics with the given request.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

server

protected httpd server

r_min

protected long r_min
The min processing time in ms.

u_min

protected java.net.URL u_min
The URL that has been processed the fastest.

r_max

protected long r_max
The maximum processing time in ms.

u_max

protected java.net.URL u_max
The URL that has been processed the slowest.

t_hits

protected long t_hits
The total number of hits.

t_bytes

protected long t_bytes
The total number of emited bytes.

t_req

protected long t_req
The total time spent in processing requests in ms.

start_time

protected long start_time
The date at which the server was started (ms since Java epoch).
Method Detail

updateStatistics

protected void updateStatistics(Client client,
                                Request request,
                                Reply reply,
                                int nbytes,
                                long duration)
Update the current statistics with the given request.
Parameters:
client - The client that processed the request.
request - The request that has been processed.
nbytes - The number of emited bytes in reply's body.
duration - The processing time of the request.

getServerLoad

public int getServerLoad()
Get the current server load.
Returns:
A number between 1 and 4.

getFreeThreadCount

public int getFreeThreadCount()
Get the number of free threads in the server.
Returns:
The number of threads ready to server client requests.

getIdleThreadCount

public int getIdleThreadCount()
Get the number of idle threads in the server. Idle threads are the threads ready to accept more requests on a given connection.
Returns:
The number of idle threads.

getTotalThreadCount

public int getTotalThreadCount()
Get the total number of client threads.
Returns:
The total number of created threads.

getHitCount

public long getHitCount()
Get the total number of hits.
Returns:
The total number of processed requests since the server is up.

getMeanRequestTime

public long getMeanRequestTime()
Get the mean request processing time.
Returns:
The average time to process a request.

getMaxRequestTime

public long getMaxRequestTime()
Get the max request processing time.
Returns:
A long giving the maximum duration for a request.

getMaxRequestURL

public java.net.URL getMaxRequestURL()
Get the URL of the request that took the longest time to be processed.
Returns:
A String giving the URL of the corresponding request, or null if no request has been processed yet.

getMinRequestTime

public long getMinRequestTime()
Get the min request processing time.
Returns:
A long giving the minimum request processing time.

getMinRequestURL

public java.net.URL getMinRequestURL()
Get the URL of the request that took the smallest time to be processed.
Returns:
A String giving the URL of the corresponding request, or null if no request has been processed yet.

getEmittedBytes

public long getEmittedBytes()
Get the total number of bytes emited.
Returns:
A long giving the total number of bytes emited by the server. This count that not include the reply's header, but only the reply's body (or entity size).

getStartTime

public long getStartTime()
Get the time at which the server was started.
Returns:
A number of milliseconds since java epoch, giving the date at which the server started.