PingDirectory

The monitor backend

The server exposes its monitoring information under the cn=monitor entry.

Administrators can use various means to monitor the servers, including the PingDataMetrics server, through SNMP, the administrative console, JConsole, LDAP command-line tools, and the Periodic Stats Logger.

To display server component activity and state, use the bin/status tool.

To see the list of all monitor entries, use ldapsearch as in the following example.

$ bin/ldapsearch --hostname server1.example.com --port 1389 \
 --bindDN "uid=admin,dc=example,dc=com" --bindPassword secret \
 --baseDN "cn=monitor" "(objectclass=*)" cn

The following table describes a subset of the monitor entries.

Component Description

Active Operations

Provides information about the operations currently being processed by the server. Shows the number of operations, information on each operation, and the number of active persistent searches.

Backends

Provides general information about the state of a server backend, including the entry count. If the backend is a local database, there is a corresponding database environment monitor entry with information on cache usage and on-disk size.

Client Connections

Provides information about all client connections to the server. The client connection information contains a name followed by an equal sign and a quoted value, such as connID="15", connectTime="20100308223038Z" and so forth.

Connection Handlers

Provides information about the available connection handlers on the server, which includes the LDAP and LDIF connection handlers. These handlers are used to accept client connections and to read requests and send responses to those clients.

Disk Space Usage

Provides information about the disk space available to various components of the server.

General

Provides general information about the state of the server, including product name, vendor name, server version, etc.

Index

The monitor captures the number of keys preloaded, and counters for read/write/remove/open-cursor/read-for-search. These counters provide insight into how useful an index is for a given workload.

HTTP/HTTPS Connection Handler Statistics

Provides statistics about the interaction that the associated HTTP connection handler has had with its clients, including the number of connections accepted, average requests per connection, average connection duration, total bytes returned, and average processing time by status code.

JVM Stack Trace

Provides a stack trace of all threads processing within the Java virtual machine (JVM).

LDAP Connection Handler Statistics

Provides statistics about the interaction that the associated LDAP connection handler has had with its clients, including the number of connections established and closed, bytes read and written, LDAP messages read and written, operations initiated, completed, and abandoned, etc.

Processing Time Histogram

Categorizes operation processing times into a number of user-defined buckets of information, including the total number of operations processed, overall average response time in milliseconds (ms), number of processing times between 0ms and 1ms, and so forth.

System Information

Provides general information about the system and the JVM on which the server is running, including system host name, operation system, JVM architecture, Java home, Java version, and so forth.

Version

Provides information about the server version, including build ID, version, revision number, etc.

Work Queue

Provides information about the state of the PingDirectory server work queue, which holds requests until they can be processed by a worker thread, including the requests rejected, current work queue size, number of worker threads, and number of busy worker threads. The work queue configuration has a monitor-queue-time property set to true by default. This logs messages for new operations with a qtime attribute included in the log messages. Its value is expressed in milliseconds and represents the length of time that operations are held in the work queue.

A dedicated thread pool can be used for processing administrative operations. This thread pool enables diagnosis and corrective action if all other worker threads are processing operations. To request that operations use the administrative thread pool, using the ldapsearch command for example, use the --useAdministrativeSession option. The requester must have the use-admin-session privilege, which is included for root users. By default, eight threads are available for this purpose. This can be changed with the num-administrative-session-worker-threads property in the work queue configuration.