org.opends.server.protocols.ldap
Class LDAPStatistics

java.lang.Object
  extended by java.lang.Thread
      extended by org.opends.server.api.DirectoryThread
          extended by org.opends.server.api.MonitorProvider<MonitorProviderCfg>
              extended by org.opends.server.protocols.ldap.LDAPStatistics
All Implemented Interfaces:
java.lang.Runnable

public class LDAPStatistics
extends MonitorProvider<MonitorProviderCfg>

This class defines a data structure that will be used to keep track of various metrics related to LDAP communication that the server has conducted. The statistics that will be tracked include:



This class may also be used in a hierarchical form if it is desirable to get specific and general statistics at the same time (e.g., information about the interaction with a specific client or aggregated for all clients).


Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
LDAPStatistics(java.lang.String instanceName)
          Creates a new instance of this class with no parent.
LDAPStatistics(java.lang.String instanceName, LDAPStatistics parent)
          Creates a new instance of this class with the specified parent.
 
Method Summary
 void clearStatistics()
          Clears any statistical information collected to this point.
 long getAbandonRequests()
          Retrieves the number of abandon requests that have been received.
 long getAddRequests()
          Retrieves the number of add requests that have been received.
 long getAddResponses()
          Retrieves the number of add responses that have been sent.
 long getBindRequests()
          Retrieves the number of bind requests that have been received.
 long getBindResponses()
          Retrieves the number of bind responses that have been sent.
 long getBytesRead()
          Retrieves the number of bytes that have been received from clients.
 long getBytesWritten()
          Retrieves the number of bytes that have been written to clients.
 long getCompareRequests()
          Retrieves the number of compare requests that have been received.
 long getCompareResponses()
          Retrieves the number of compare responses that have been sent.
 long getConnectionsClosed()
          Retrieves the number of client connections that have been closed.
 long getConnectionsEstablished()
          Retrieves the number of client connections that have been established.
 long getDeleteRequests()
          Retrieves the number of delete requests that have been received.
 long getDeleteResponses()
          Retrieves the number of delete responses that have been sent.
 long getExtendedRequests()
          Retrieves the number of extended requests that have been received.
 long getExtendedResponses()
          Retrieves the number of extended responses that have been sent.
 long getMessagesRead()
          Retrieves the number of LDAP messages that have been received from clients.
 long getMessagesWritten()
          Retrieves the number of LDAP messages that have been written to clients.
 long getModifyDNRequests()
          Retrieves the number of modify DN requests that have been received.
 long getModifyDNResponses()
          Retrieves the number of modify DN responses that have been sent.
 long getModifyRequests()
          Retrieves the number of modify requests that have been received.
 long getModifyResponses()
          Retrieves the number of modify responses that have been sent.
 java.util.ArrayList<Attribute> getMonitorData()
          Retrieves a set of attributes containing monitor data that should be returned to the client if the corresponding monitor entry is requested.
 java.lang.String getMonitorInstanceName()
          Retrieves the name of this monitor provider.
 long getOperationsAbandoned()
          Retrieves the number of operations that have been abandoned by clients.
 long getOperationsCompleted()
          Retrieves the number of operations for which the server has completed processing.
 long getOperationsInitiated()
          Retrieves the number of operations that have been initiated by clients.
 LDAPStatistics getParent()
          Retrieves the parent statistics tracker that will also be updated whenever this tracker is updated.
 long getSearchRequests()
          Retrieves the number of search requests that have been received.
 long getSearchResultEntries()
          Retrieves the number of search result entries that have been sent.
 long getSearchResultReferences()
          Retrieves the number of search result references that have been sent.
 long getSearchResultsDone()
          Retrieves the number of search result done messages that have been sent.
 long getUnbindRequests()
          Retrieves the number of unbind requests that have been received.
 long getUpdateInterval()
          Retrieves the length of time in milliseconds that should elapse between calls to the updateMonitorData() method.
 void initializeMonitorProvider(MonitorProviderCfg configuration)
          Initializes this monitor provider based on the information in the provided configuration entry.
 void updateAbandonedOperation()
          Updates the appropriate set of counters to indicate that an operation was abandoned without sending a response to the client.
 void updateBytesRead(int bytesRead)
          Updates the appropriate set of counters to indicate that the specified number of bytes have been read by the client.
 void updateConnect()
          Updates the appropriate set of counters to indicate that a new connection has been established.
 void updateDisconnect()
          Updates the appropriate set of counters to indicate that a connection has been closed.
 void updateMessageRead(LDAPMessage message)
          Updates the appropriate set of counters based on the provided message that has been read from the client.
 void updateMessageWritten(LDAPMessage message, int bytesWritten)
          Updates the appropriate set of counters based on the provided message that has been written to the client.
 void updateMonitorData()
          Performs any processing periodic processing that may be desired to update the information associated with this monitor.
 
Methods inherited from class org.opends.server.api.MonitorProvider
finalizeMonitorProvider, getMonitorObjectClass, isConfigurationAcceptable, run
 
Methods inherited from class org.opends.server.api.DirectoryThread
getAssociatedTask, getCreationStackTrace, getDebugProperties, getParentThread, setAssociatedTask
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

LDAPStatistics

public LDAPStatistics(java.lang.String instanceName)
Creates a new instance of this class with no parent.

Parameters:
instanceName - The name for this monitor provider instance.

LDAPStatistics

public LDAPStatistics(java.lang.String instanceName,
                      LDAPStatistics parent)
Creates a new instance of this class with the specified parent.

Parameters:
instanceName - The name for this monitor provider instance.
parent - The parent object that should also be updated whenever this class is updated. It may be null if there should not be a parent.
Method Detail

initializeMonitorProvider

public void initializeMonitorProvider(MonitorProviderCfg configuration)
                               throws ConfigException
Initializes this monitor provider based on the information in the provided configuration entry.

Specified by:
initializeMonitorProvider in class MonitorProvider<MonitorProviderCfg>
Parameters:
configuration - The configuration to use to initialize this monitor provider.
Throws:
ConfigException - If an unrecoverable problem arises in the process of performing the initialization.

getMonitorInstanceName

public java.lang.String getMonitorInstanceName()
Retrieves the name of this monitor provider. It should be unique among all monitor providers, including all instances of the same monitor provider.

Specified by:
getMonitorInstanceName in class MonitorProvider<MonitorProviderCfg>
Returns:
The name of this monitor provider.

getUpdateInterval

public long getUpdateInterval()
Retrieves the length of time in milliseconds that should elapse between calls to the updateMonitorData() method. A negative or zero return value indicates that the updateMonitorData() method should not be periodically invoked.

Specified by:
getUpdateInterval in class MonitorProvider<MonitorProviderCfg>
Returns:
The length of time in milliseconds that should elapse between calls to the updateMonitorData() method.

updateMonitorData

public void updateMonitorData()
Performs any processing periodic processing that may be desired to update the information associated with this monitor. Note that best-effort attempts will be made to ensure that calls to this method come getUpdateInterval() milliseconds apart, but no guarantees will be made.

Specified by:
updateMonitorData in class MonitorProvider<MonitorProviderCfg>

getMonitorData

public java.util.ArrayList<Attribute> getMonitorData()
Retrieves a set of attributes containing monitor data that should be returned to the client if the corresponding monitor entry is requested.

Specified by:
getMonitorData in class MonitorProvider<MonitorProviderCfg>
Returns:
A set of attributes containing monitor data that should be returned to the client if the corresponding monitor entry is requested.

clearStatistics

public void clearStatistics()
Clears any statistical information collected to this point.


updateConnect

public void updateConnect()
Updates the appropriate set of counters to indicate that a new connection has been established.


updateDisconnect

public void updateDisconnect()
Updates the appropriate set of counters to indicate that a connection has been closed.


updateBytesRead

public void updateBytesRead(int bytesRead)
Updates the appropriate set of counters to indicate that the specified number of bytes have been read by the client.

Parameters:
bytesRead - The number of bytes read by the client.

updateMessageRead

public void updateMessageRead(LDAPMessage message)
Updates the appropriate set of counters based on the provided message that has been read from the client.

Parameters:
message - The message that was read from the client.

updateMessageWritten

public void updateMessageWritten(LDAPMessage message,
                                 int bytesWritten)
Updates the appropriate set of counters based on the provided message that has been written to the client.

Parameters:
message - The message that was written to the client.
bytesWritten - The size of the message written in bytes.

updateAbandonedOperation

public void updateAbandonedOperation()
Updates the appropriate set of counters to indicate that an operation was abandoned without sending a response to the client.


getConnectionsEstablished

public long getConnectionsEstablished()
Retrieves the number of client connections that have been established.

Returns:
The number of client connections that have been established.

getConnectionsClosed

public long getConnectionsClosed()
Retrieves the number of client connections that have been closed.

Returns:
The number of client connections that have been closed.

getBytesRead

public long getBytesRead()
Retrieves the number of bytes that have been received from clients.

Returns:
The number of bytes that have been received from clients.

getBytesWritten

public long getBytesWritten()
Retrieves the number of bytes that have been written to clients.

Returns:
The number of bytes that have been written to clients.

getMessagesRead

public long getMessagesRead()
Retrieves the number of LDAP messages that have been received from clients.

Returns:
The number of LDAP messages that have been received from clients.

getMessagesWritten

public long getMessagesWritten()
Retrieves the number of LDAP messages that have been written to clients.

Returns:
The number of LDAP messages that have been written to clients.

getOperationsInitiated

public long getOperationsInitiated()
Retrieves the number of operations that have been initiated by clients.

Returns:
The number of operations that have been initiated by clients.

getOperationsCompleted

public long getOperationsCompleted()
Retrieves the number of operations for which the server has completed processing.

Returns:
The number of operations for which the server has completed processing.

getOperationsAbandoned

public long getOperationsAbandoned()
Retrieves the number of operations that have been abandoned by clients.

Returns:
The number of operations that have been abandoned by clients.

getAbandonRequests

public long getAbandonRequests()
Retrieves the number of abandon requests that have been received.

Returns:
The number of abandon requests that have been received.

getAddRequests

public long getAddRequests()
Retrieves the number of add requests that have been received.

Returns:
The number of add requests that have been received.

getAddResponses

public long getAddResponses()
Retrieves the number of add responses that have been sent.

Returns:
The number of add responses that have been sent.

getBindRequests

public long getBindRequests()
Retrieves the number of bind requests that have been received.

Returns:
The number of bind requests that have been received.

getBindResponses

public long getBindResponses()
Retrieves the number of bind responses that have been sent.

Returns:
The number of bind responses that have been sent.

getCompareRequests

public long getCompareRequests()
Retrieves the number of compare requests that have been received.

Returns:
The number of compare requests that have been received.

getCompareResponses

public long getCompareResponses()
Retrieves the number of compare responses that have been sent.

Returns:
The number of compare responses that have been sent.

getDeleteRequests

public long getDeleteRequests()
Retrieves the number of delete requests that have been received.

Returns:
The number of delete requests that have been received.

getDeleteResponses

public long getDeleteResponses()
Retrieves the number of delete responses that have been sent.

Returns:
The number of delete responses that have been sent.

getExtendedRequests

public long getExtendedRequests()
Retrieves the number of extended requests that have been received.

Returns:
The number of extended requests that have been received.

getExtendedResponses

public long getExtendedResponses()
Retrieves the number of extended responses that have been sent.

Returns:
The number of extended responses that have been sent.

getModifyRequests

public long getModifyRequests()
Retrieves the number of modify requests that have been received.

Returns:
The number of modify requests that have been received.

getModifyResponses

public long getModifyResponses()
Retrieves the number of modify responses that have been sent.

Returns:
The number of modify responses that have been sent.

getModifyDNRequests

public long getModifyDNRequests()
Retrieves the number of modify DN requests that have been received.

Returns:
The number of modify DN requests that have been received.

getModifyDNResponses

public long getModifyDNResponses()
Retrieves the number of modify DN responses that have been sent.

Returns:
The number of modify DN responses that have been sent.

getSearchRequests

public long getSearchRequests()
Retrieves the number of search requests that have been received.

Returns:
The number of search requests that have been received.

getSearchResultEntries

public long getSearchResultEntries()
Retrieves the number of search result entries that have been sent.

Returns:
The number of search result entries that have been sent.

getSearchResultReferences

public long getSearchResultReferences()
Retrieves the number of search result references that have been sent.

Returns:
The number of search result references that have been sent.

getSearchResultsDone

public long getSearchResultsDone()
Retrieves the number of search result done messages that have been sent.

Returns:
The number of search result done messages that have been sent.

getUnbindRequests

public long getUnbindRequests()
Retrieves the number of unbind requests that have been received.

Returns:
The number of unbind requests that have been received.

getParent

public LDAPStatistics getParent()
Retrieves the parent statistics tracker that will also be updated whenever this tracker is updated.

Returns:
The parent statistics tracker, or null if there is none.