8.2 Using cn=monitor for Monitoring

eDirectory provides an LDAP search method for monitoring the current state of an eDirectory server. eDirectory records useful performance metrics and server state information for eDirectory subsystems and background processes such as Threadpool, Connection Table, DClient, DS Agent, Background Processes, and LDAP Server as an entry with the base DN of cn=monitor. You can obtain the statistics from the server by issuing a search request with a search base of cn=monitor and use this information for monitoring your eDirectory environment.

IMPORTANT:cn=monitor is a virtual object and does not actually reside in the eDirectory tree. You can use this method for monitoring eDirectory through LDAP interfaces.

eDirectory subsystems are registered as data producers within the monitoring framework. Table 8-1 lists the registered data producers in eDirectory. The framework gathers real time data from all the registered data producers and shares it with the requestor of the data, who are the consumers of this data. The monitoring framework dynamically generates and returns objects in response to search requests in the cn=monitor subtree. Each object contains information about a particular aspect of the server. Some objects serve as containers for other objects and are used to construct a hierarchy of objects, where cn=monitor is the most superior object. You can use LDAP clients to access information provided by the monitoring framework, subject to access and other controls, such as LDAP server specific information or connection-specific information. eDirectory restricts this search request only to users with write rights to the NDSRightsToMonitor attribute on the NCP server object.

You can access data from all the registered data producers with ldapsearch or with any general-purpose LDAP browser.

To view the monitoring data from all the registered data producers, use the ldapsearch command:

ldapsearch -h <SrvIP> -p <port> -D <user dn> -w <password> -s sub -b cn=monitor

NOTE:eDirectory does not support data filtering on cn=monitor search. For some background processes that are scheduled to run recursively, eDirectory displays these processes multiple times as scheduled in the cn=monitor search response. For example, SkulkerWorkerProc.

8.2.1 Viewing the Monitoring Statistics

ldapsearch returns data from all the registered data producers in LDAP format using cn=monitor as a base. The LDAP server also acts as a data consumer in the LDAP object format.

Table 8-1 lists the data producers and the corresponding parameters containing the monitoring statistics. There could be additional data producers when other products are configured with eDirectory.

Table 8-1 Data Producers and Monitoring Statistics Parameters

Data Producers

Monitoring Statistics Parameters

Agent

  • Background Process

  • Partition

  • System State

DHOST

The following DHOST processes and connection information is monitored:

  • Inbound connections

  • Thread pool information

    • ThreadsSpawned

    • ThreadsDied

    • ThreadsIdle

    • ThreadsWorkers

    • ThreadPeakWorkers

    • ThreadPoolReadyQueueItems

    • ThreadPoolReadyQueueMaxWaitTime

    • ThreadMinWaitTime

    • ThreadMaxWaitTime

DClient

  • Outbound context

  • Outbound connection

LDAP

  • Binding

  • Incoming operations

  • Outgoing operations

  • Traffic volume

Record Manager

  • CacheFault Looks

  • Cache Faults

  • Current Size,Hits

  • Hit Looks

  • Item Cached

  • Maximum size

  • OldVersionCachedCount

  • OldVersionCachedSize

  • DIb Size

  • Checkpoint thread

When you issue a search request with a search base of cn=monitor, the monitoring framework dynamically generates and returns objects in response to the search request in the cn=monitor subtree as listed in Table 8-2.

Table 8-2 Objects Monitored by cn=monitor Search

Object Name

Description

cn=Monitor

Root level object for monitoring data.

cn=Agent,cn=Monitor

Provides information about Directory Service agent.

cn=BackGroundProcInterval,cn=Agent,cn=Monitor

Provides information about background process. (is this any specific process or in general all b/g processes)

cn=ARC resolve timer thread,cn=BackGroundProcInterval,cn=Agent,cn=Monitor

Provides information about advanced referral costing background process.

cn=BacklinkProc,cn=BackGroundProcInterval,cn=Agent,cn=Monitor

Provides information about backlinker background process.

cn=CPU Usage monitor,cn=BackGroundProcInterval,cn=Agent,cn=Monitor

Provides information about CPU usage background process.

cn=CheckBacklinks,cn=BackGroundProcInterval,cn=Agent,cn=Monitor

Provides information about checking the backlinker background process.

cn=CheckExtRefProc,cn=BackGroundProcInterval,cn=Agent,cn=Monitor

Provides information about checking external reference background process.

cn=ExtRefRefreshProc,cn=BackGroundProcInterval,cn=Agent,cn=Monitor

Provides information about refresh external references background process.

cn=Janitor,cn=BackGroundProcInterval,cn=Agent,cn=Monitor

Provides information about Janitor background process.

cn=RunLimberUp,cn=BackGroundProcInterval,cn=Agent,cn=Monitor

Provides information about schedule limber background process.

cn=Limber,cn=BackGroundProcInterval,cn=Agent,cn=Monitor

Provides information about Limber (connectivity check) background process.

cn=HiConvergenceHeartBeat,cn=BackGroundProcInterval,cn=Agent,cn=Monitor

Provides information about schedule skulker background process.

cn=ObitProc,cn=BackGroundProcInterval,cn=Agent,cn=Monitor

Provides information about Obituary background process.

cn=PartitionPurgeProcess,cn=BackGroundProcInterval,cn=Agent,cn=Monitor

Provides information about partition purger background process.

cn=Predicate Statistics Update,cn=BackGroundProcInterval,cn=Agent,cn=Monitor

Provides information about predicate statistics update background process.

cn=RNRAdvertise,cn=BackGroundProcInterval,cn=Agent,cn=Monitor

Provides information about advertise service address background process.

cn=RefreshBinderyContext,cn=BackGroundProcInterval,cn=Agent,cn=Monitor

Provides information about refresh bindery background process.

cn=Repair Inactive Replicas,cn=BackGroundProcInterval,cn=Agent,cn=Monitor

Provides information about repair inactive replicas background process.

cn=SchemaProc,cn=BackGroundProcInterval,cn=Agent,cn=Monitor

Provides information about schema sync background process.

cn=SkulkerProc,cn=BackGroundProcInterval,cn=Agent,cn=Monitor

Provides information about synchronization background process.

cn=SkulkerWorkerProc,cn=BackGroundProcInterval,cn=Agent,cn=Monitor

Provides information about synchronization background process.

cn=Partition,cn=Agent,cn=Monitor

Provides information about all user partitions on the server. Multiple values of the same attribute denote multiple partitions.

cn=Status,cn=Agent,cn=Monitor

Provides information about server status.

cn=DHOST,cn=Monitor

Provides information about DHOST subsystems.

cn=InBoundConnection,cn=DHOST,cn=Monitor

Provides information about inbound connection table information.

cn=ThreadPool,cn=DHOST,cn=Monitor

Provides information about DHOST Threadpool statistics.

cn=Dclient,cn=Monitor

Provides information about server-side DClient.

cn=OutBoundConnection,cn=Dclient,cn=Monitor

Provides information about outbound connection table information.

cn=OutBoundContext,cn=Dclient,cn=Monitor

Provides information about outbound context table information.

cn=LDAP,cn=Monitor

Provides information on LDAP server.

cn=LDAPStatistics,cn=LDAP,cn=Monitor

Provides information about LDAP server statistics.

cn=Bindings,cn=LDAPStatistics,cn=LDAP,cn=Monitor

Provides information about binding statistics on LDAP server.

cn=IncomingOperations,cn=LDAPStatistics,cn=LDAP,cn=Monitor

Provides information about incoming operation statistics on LDAP server.

cn=OutgoingOperations,cn=LDAPStatistics,cn=LDAP,cn=Monitor

Provides information about outgoing operations statistics on LDAP server.

cn=TrafficVolume,cn=LDAPStatistics,cn=LDAP,cn=Monitor

Provides information about LDAP server traffic volume statistics.

cn=RecordManager,cn=Monitor

Provides information about FLAIM database.

cn=Size,cn=RecordManager,cn=Monitor

Provides information about size information of the FLAIM database.

cn=CheckPointThreadData,cn=RecordManager,cn=Monitor

Provides information about check point thread.

cn=CacheStatistics,cn=RecordManager,cn=Monitor

Provides information about FLAIM database cache statistics.

cn=CacheFaultLooks,cn=CacheStatistics,cn=RecordManager,cn=Monitor

Provides cache fault looks information.

cn=CacheFaults,cn=CacheStatistics,cn=RecordManager,cn=Monitor

Provides cache fault information.

cn=HitLooks,cn=CacheStatistics,cn=RecordManager,cn=Monitor

Provides cache hit looks information.

cn=Hits,cn=CacheStatistics,cn=RecordManager,cn=Monitor

Provides cache hits information.

cn=ItemsCached,cn=CacheStatistics,cn=RecordManager,cn=Monitor

Provides number of items cached information.

cn=OldVersionCachedCount,cn=CacheStatistics,cn=RecordManager,cn=Monitor

Provides old version cached item count information.

cn=MaximumSize,cn=CacheStatistics,cn=RecordManager,cn=Monitor

Provides maximum cache size information.

cn=CurrentSize,cn=CacheStatistics,cn=RecordManager,cn=Monitor

Provides current cache size information.

cn=OldVersionCachedSize,cn=CacheStatistics,cn=RecordManager,cn=Monitor

Provides old version cached size information.

Each object contains information about a particular aspect of the server, such as a connection or a thread. Table 8-3 lists the attributes that hold the monitoring statistics.

Table 8-3 Attributes Monitoring Statistics

Attribute

Description

BackgroundProcScheduled

Next scheduled time for the background process. Multiple values denote that the background process is scheduled multiple times.

BackgroundProcStartTime

Next start time for the background process. Multiple values denote that the background process is running multiple times.

PerishableData

The amount of data not synced out to any other server (denoted in seconds).

OBIT_NEWRDN_PURGEABLE

Number of NEWRDN obituaries in purgeable state.

OBIT_NEWRDN_OK_TO_PURGE

Number of NEWRDN obituaries in ok to purge state.

OBIT_NEWRDN_NOTIFIED

Number of NEWRDN obituaries in notified state.

OBIT_NEWRDN_ISSUED

Number of NEWRDN obituaries in issued state.

OBIT_MOVED_PURGEABLE

Number of moved obituaries in purgeable state.

OBIT_MOVED_OK_TO_PURGE

Number of moved obituaries in ok to purge state.

OBIT_MOVED_NOTIFIED

Number of moved obituaries in notified state.

OBIT_MOVED_ISSUED

Number of moved obituaries in issued state.

OBIT_DEAD_PURGEABLE

Number of dead obituaries in purgeable state.

OBIT_DEAD_OK_TO_PURGE

Number of dead obituaries in ok to purge state.

OBIT_DEAD_NOTIFIED

Number of dead obituaries in notified state.

OBIT_DEAD_ISSUED

Number of dead obituaries in issued state.

OBIT_COUNT_FROM_DATABASE_INDEX

Total obituary count.

MaxRingDelta

Maximum amount of data not synchronized between any two servers in the replica ring (denoted in seconds).

ChangeCacheCount

Current change cache count on the partition.

eDirectoryUpTime

Number of seconds since server has been running.

eDirectorySystemCurrTime

Current system time of the server.

eDirectoryAgentVersion

Current Directory Server agent version.

MaxInBoundConnection

Maximum inbound connection.

InBoundConnectionCount

Current inbound connection count.

ThreadsWorkers

Number of worker threads in Threadpool.

ThreadsSpawned

Number of threads spawned.

ThreadsIdle

Number of threads idle.

ThreadsDied

Number of threads died.

ThreadWaitingQueuePeakItems

Maximum number of threads in the waiting queue.

ThreadWaitingQueueItems

Current number of threads in the waiting queue.

ThreadPoolReadyQueueMaxWaitTime

Maximum wait time for thread in ReadyQueue.

ThreadPoolReadyQueueItems

Current number of threads in ReadyQueue.

ThreadPeakWorkers

Maximum number of pool workers.

ThreadMinWaitTime

Minimum thread wait time before getting scheduled.

ThreadMaxWaitTime

Maximum thread wait time before getting scheduled.

TotalOpenOutBoundConnection

Current open outbound connection count.

RefusedOutBoundConnection

Refused outbound connection count.

MaxOutBoundConnection

Maximum outbound connection count.

TotalOutBoundContextCount

Maximum outbound context count.

ActiveOutBoundContextCount

Current outbound context count.

unAuthBinds

Number of unauthenticated/anonymous bind requests received.

strongAuthBinds

Number of bind requests that were authenticated using SASL and X.500 strong authentication procedures. This includes the binds that were authenticated using external authentication procedures.

simpleAuthBinds

Number of bind requests that were authenticated using simple authentication procedures where the password is sent over the wire in encrypted or clear text format.

bindSecurityErrors

Number of bind requests that have been rejected due to inappropriate authentication or invalid credentials.

wholeSubtreeSearchOps

Number of whole subtree search requests received.

searchOps

Number of search requests (baseObject searches, oneLevel searches, and whole subtree searches) received.

removeEntryOps

Number of removeEntry requests received.

readOps

Number of read requests received.

oneLevelSearchOps

Number of oneLevel search requests received.

modifyRDNOps

Number of modifyRDN requests received.

modifyEntryOps

Number of modifyEntry requests received.

listOps

Number of list requests received.

inOps

Number of requests received from client.

extendedOps

Number of extended operations.

compareOps

Number of compare requests received.

addEntryOps

Number of addEntry requests received.

abandonOps

Number of LDAP abandoned requests.

referrals

Number of referrals returned in response to requests for operations.

chainings

Number of operations forwarded by this eDirectory server to other eDirectory servers.

outBytes

Outgoing traffic, in bytes, on the interface. This includes responses to client and eDirectory servers as well as requests to other eDirectory servers.

inBytes

Incoming traffic, in bytes, on the interface. This includes requests from client as well as responses from other eDirectory servers.

Total

Total item count in FLAIM cache.

EntryCache

Total item count in entry cache.

BlockCache

Total item count in block cache.

TotalSize

Total item size in FLAIM cache.

EntryCacheSize

Total item size in entry cache.

BlockCacheSize

Total item size in block cache.

CheckPointThreadWritingDataBlocks

0 denotes that checkpoint is not writing dirty blocks. 1 denotes that the checkpoint is writing dirty blocks.

CheckPointThreadStartTime

Checkpoint thread start time. Look at this value only if checkpoint thread is running.

CheckPointThreadLogBlocksWritten

Number of log blocks written.

CheckPointThreadIsRunning

0 denotes that the checkpoint is not running. 1 denotes that checkpoint thread is running.

CheckPointThreadIsForced

Denotes whether checkpoint was forced.

CheckPointThreadForceStartTime

Checkpoint forced start time. Look at this value only if checkpoint is forced started.

CheckPointThreadDirtyCacheBlocks

Number of dirty cache blocks.

CheckPointThreadDataBlocksWritten

Number of dirty blocks written.

CheckPointThreadBlockSize

Current block size.

TotalDIBSize

Total FLAIM database size.

DIBStreamFileSize

Total stream files size.

DIBRollBackFileSize

Total roll back files size.

DIBRflmFileSize

Total roll forward log files size.

DIBFileSize

Total DIB files size.

A sample LDAP search output is below.

# LDAPv3
# base <cn=monitor> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
# BackGroundProcInterval, Agent, Monitor
dn: cn=BackGroundProcInterval,cn=Agent,cn=Monitor
slowSyncInterval: 1800
fastSyncInterval: 5
ServerStateUpThreshold: 1800
JanitorInterval: 120
HeartBeatSkulkInterval: 3600
FlatCleaningInterval: 43200
DRLInterval: 60
BacklinkInterval: 46800
objectclass: Top
objectclass: extensibleObject
# .GOOD-ONE., Partition, Agent, Monitor
dn: cn=.GOOD-ONE.,cn=Partition,cn=Agent,cn=Monitor
ChangeCacheCount: 0
objectclass: Top
objectclass: extensibleObject
# InBoundConnection, DHOST, Monitor
dn: cn=InBoundConnection,cn=DHOST,cn=Monitor
MaxInBoundConnection: 256
InBoundConnectionCount: 20
objectclass: Top
objectclass: extensibleObject
# ThreadPool, DHOST, Monitor
dn: cn=ThreadPool,cn=DHOST,cn=Monitor
ThreadsWorkers: 37
Monitoring
ThreadsSpawned: 3572
ThreadsIdle: 7
ThreadsDied: 3535
ThreadWaitingQueuePeakItems: 24
ThreadWaitingQueueItems: 20
ThreadPoolReadyQueueMaxWaitTime: 574529
ThreadPoolReadyQueueItems: 0
ThreadPeakWorkers: 90
ThreadMinWaitTime: 2
ThreadMaxWaitTime: 16394616
objectclass: Top
objectclass: extensibleObject
# OutBoundConnection, Dclient, Monitor
dn: cn=OutBoundConnection,cn=Dclient,cn=Monitor
TotalOpenOutBoundConnection: 17
RefusedOutBoundConnection: 0
MaxOutBoundConnection: 4294967295
objectclass: Top
objectclass: extensibleObject
# OutBoundContext, Dclient, Monitor
dn: cn=OutBoundContext,cn=Dclient,cn=Monitor
TotalOutBoundContextCount: 256
objectclass: Top
objectclass: extensibleObject
# Bindings, LDAPStatistics, LDAP, Monitor
dn: cn=Bindings,cn=LDAPStatistics,cn=LDAP,cn=Monitor
unAuthBinds: 6908
strongAuthBinds: 0
simpleAuthBinds: 4433475
bindSecurityErrors: 0
objectclass: Top
objectclass: extensibleObject
# IncomingOperations, LDAPStatistics, LDAP, Monitor
dn: cn=IncomingOperations,cn=LDAPStatistics,cn=LDAP,cn=Monitor
wholeSubtreeSearchOps: 4426462
searchOps: 4426462
removeEntryOps: 0
readOps: 0
oneLevelSearchOps: 0
modifyRDNOps: 0
modifyEntryOps: 4
listOps: 0
inOps: 8901739
extendedOps: 0
compareOps: 0
addEntryOps: 5
abandonOps: 0
objectclass: Top
objectclass: extensibleObject
# OutgoingOperations, LDAPStatistics, LDAP, Monitor
dn: cn=OutgoingOperations,cn=LDAPStatistics,cn=LDAP,cn=Monitor
referrals: 0
chainings: 0
objectclass: Top
objectclass: extensibleObject
# TrafficVolume, LDAPStatistics, LDAP, Monitor
dn: cn=TrafficVolume,cn=LDAPStatistics,cn=LDAP,cn=Monitor
outBytes: 326809576
inBytes: 380249498
objectclass: Top
objectclass: extensibleObject
Monitoring
# CacheFaultLooks, RecordManager, Monitor
dn: cn=CacheFaultLooks,cn=RecordManager,cn=Monitor
TotalSize: 2699
EntryCacheSize: 2539
BlockCacheSize: 160
objectclass: Top
objectclass: extensibleObject
# CacheFaults, RecordManager, Monitor
dn: cn=CacheFaults,cn=RecordManager,cn=Monitor
TotalSize: 1948
EntryCacheSize: 1788
BlockCacheSize: 160
objectclass: Top
objectclass: extensibleObject
# CurrentSize, RecordManager, Monitor
dn: cn=CurrentSize,cn=RecordManager,cn=Monitor
TotalSize: 4849664
EntryCacheSize: 3866624
BlockCacheSize: 983040
objectclass: Top
objectclass: extensibleObject
# HitLooks, RecordManager, Monitor
dn: cn=HitLooks,cn=RecordManager,cn=Monitor
TotalSize: 656418775
EntryCacheSize: 489811630
BlockCacheSize: 166607145
objectclass: Top
objectclass: extensibleObject
# Hits, RecordManager, Monitor
dn: cn=Hits,cn=RecordManager,cn=Monitor
TotalSize: 449815580
EntryCacheSize: 283226835
BlockCacheSize: 166588745
objectclass: Top
objectclass: extensibleObject
# ItemsCached, RecordManager, Monitor
dn: cn=ItemsCached,cn=RecordManager,cn=Monitor
TotalSize: 1865
EntryCacheSize: 1691
BlockCacheSize: 174
objectclass: Top
objectclass: extensibleObject
# MaximumSize, RecordManager, Monitor
dn: cn=MaximumSize,cn=RecordManager,cn=Monitor
TotalSize: 200015872
EntryCacheSize: 100007972
BlockCacheSize: 100007900
objectclass: Top
objectclass: extensibleObject
# OldVersionCachedCount, RecordManager, Monitor
dn: cn=OldVersionCachedCount,cn=RecordManager,cn=Monitor
TotalSize: 7
EntryCacheSize: 3
BlockCacheSize: 4
objectclass: Top
objectclass: extensibleObject
# OldVersionCachedSize, RecordManager, Monitor
dn: cn=OldVersionCachedSize,cn=RecordManager,cn=Monitor
Monitoring
TotalSize: 21376
EntryCacheSize: 4448
BlockCacheSize: 16928
objectclass: Top
objectclass: extensibleObject
# search result
search: 2
result: 0 Success
# numResponses: 20
# numEntries: 19