19.2 Monitoring Identity Manager

The following sections describe the components and the data that can be monitored:

19.2.1 Monitoring Job Statistics

Jobs are administrative functions that can be scheduled for processing at some future date or on a recurring basis. You can monitor the configuration details of jobs at driver set and driver level such as job CN, status of a job, and when a job is scheduled to run.

To view information about the jobs configured in Identity Manager, perform a search on the following entry:

cn=job_stats,cn=idm,cn=monitor

To view information about all jobs configured at a driver set level, perform a search on the following entries:

cn=driverset,cn=job_stats,cn=idm,cn=monitor

To view information about a specific job configured at a driver set level, perform a search on the following entry:

cn=<Name of the job>,cn=driverset,cn=job_stats,cn=idm,cn=monitor

For example, cn=StatisticsJob,cn=driverset,cn=job_stats,cn=idm,cn=monitor

To view information about jobs configured for all drivers in a driver set, perform a search on the following entry:

cn=drivers,cn=job_stats,cn=idm,cn=monitor

To view information about jobs configured for a driver, perform a search on the following entry:

cn=<Name of the driver>,cn=drivers,cn=job_stats,cn=idm,cn=monitor

To view information about a specific job configured for a driver, perform a search on the following entry:

cn=<CN of the job>,cn=<CN of the driver>,cn=drivers,cn=job_stats,cn=idm,cn=monitor

A sample LDAP search output is below. The search displays nextScheduledRun timestamp in the epoch format.

dn: cn=StatisticsJob,cn=DriverSet,cn=JOB_STATS,cn=IDM,cn=Monitor
nextScheduledRun:1485631800
configuration: enabled
status: stopped
containment: DirXML-DriverSet
JobDN: CN=StatisticsJob,CN=driverset1,O=system
objectclass: Top
objectclass: extensibleObject

dn: cn=PermissionOnboarding,cn=Active Directory Driver,cn=drivers,cn=JOB_STATS,cn=IDM,cn=Monitor
nextScheduledRun: 0
configuration: enabled
status: stopped
containment: DirXML-Driver
JobDN: CN=PermissionOnboarding,CN=Active Directory Driver,CN=driverset1,O=system
objectclass: Top
objectclass: extensibleObject

In this example, nextScheduledRun: 0 means that the job is not scheduled to run.

19.2.2 Monitoring JVM Statistics

You can monitor the current state of the JVM such as memory, thread, runtime, class loader, and garbage collection. This information helps you debug or troubleshoot Java issues such as threading, classpath, and memory buildup. To view this information, perform a search operation on the following entry:

cn=jvm_stats,cn=idm,cn=monitor

You can view your operating system’s information such as name, version, architecture, processors, and the load it can take. To monitor this information, perform a search operation on the following entry:

cn=operating_system_stats,cn=jvm_stats,cn=idm,cn=monitor

For information about the current memory allocation of the JVM, perform a search operation on the following entry:

cn=memory_stats,cn=jvm_stats,cn=idm,cn=monitor

To view the class loader of the JVM, perform a search operation on the following entry:

cn=classloader_stats,cn=jvm_stats,cn=idm,cn=monitor

For information about garbage collection of the JVM, perform a search operation on the following entry:

cn=garbage_collection_stats,cn=jvm_stats,cn=idm,cn=monitor

For information about thread statistics of the JVM, perform a search operation on the following entry:

cn=thread_stats,cn=jvm_stats,cn=idm,cn=monitor

For information about runtime statistics of the JVM, perform a search operation on the following entry:

cn=runtime_stats,cn=jvm_stats,cn=idm,cn=monitor

NOTE:For certain objects, Identity Manager restricts the search only to the parent object. For example, thread_stats object has only one child node as thread_info. Searching under thread_info is restricted. This implies that you should not construct a search string such as cn=thread_info,cn=thread_stats,cn=jvm_stats,cn=idm,cn=monitor, which will not return you the expected result. Similarly, the runtime_stats object contains system_properties. Identity Manager does not allow you to separately search for system_properties. To monitor these details, you must search for runtime_stats.

A sample LDAP search output is below.

dn: cn=classloader_stats,cn=jvm_stats,cn=idm,cn=monitor
total_loaded_class_count: 2393
unloaded_class_count: 0
loaded_class_count: 2393
objectclass: Top
objectclass: extensibleObject

dn: cn=Copy,cn=collectors,cn=garbage_collection_stats,cn=jvm_stats,cn=idm,cn=monitor
collection_time: 54 ms
collection_count: 4
objectclass: Top
objectclass: extensibleObject

dn: cn=MarkSweepCompact,cn=collectors,cn=garbage_collection_stats,cn=jvm_stats,cn=IDM,cn=Monitor
collection_time: 0 ms
collection_count: 0
objectclass: Top
objectclass: extensibleObject

dn: cn=heap,cn=memory_stats,cn=jvm_stats,cn=idm,cn=monitor
total: 494.94 MB
used: 16.188 MB
comitted: 123.75 MB
initial: 128.00 MB
objectclass: Top
objectclass: extensibleObject

dn: cn=non_heap,cn=memory_stats,cn=jvm_stats,cn=idm,cn=monitor
total: -1.0000 Bytes
used: 22.064 MB
comitted: 22.688 MB
initial: 2496.0 KB
objectclass: Top
objectclass: extensibleObject

dn: cn=operating_system_stats,cn=jvm_stats,cn=idm,cn=monitor
average_load: 1.0
processors: 1
arch: amd64
version: 3.0.76-0.11-default
name: Linux
objectclass: Top
objectclass: extensibleObject

dn: cn=runtime_stats,cn=jvm_stats,cn=idm,cn=monitor
uptime: 36 days 4 hours 27 minutes 1 seconds 8 milliseconds
start_time: 1478854892218
objectclass: Top
objectclass: extensibleObject

dn: cn=system_properties,cn=runtime_stats,cn=jvm_stats,cn=idm,cn=monitor
sun.boot.class.path:
...
...

19.2.3 Monitoring a Driver Set

You can monitor a driver set’s information such as driver set DN, the number of drivers the driver set holds, the running state of drivers, and how they are configured to run.

cn=driverset_stats,cn=idm,cn=monitor

To monitor information about all the drivers in a driver set, perform a search operation on the following entries:

cn=drivers,cn=driverset_stats,cn=idm,cn=monitor

To monitor the statistics of a specific driver such as driver CN, the state of the driver, driver start option, and if the driver is running or down, perform a search operation on the following entries:

cn=<CN of the driver>,cn=drivers,cn=driverset_stats,cn=idm,cn=monitor

Identity Manager does not allow you to separately search for ProcessedOperationsCount under a driver. To monitor this attribute, perform a subtree search on the driver.

A sample LDAP search output is below.

dn: cn=driverset_stats,cn=IDM,cn=Monitor
Startupoption_auto-start_count: 0
Startupoption_manual_count: 10
Startupoption_disabled_count: 1
shutdownpending: 0
starting: 0
running: 0
stopped: 11
numberofdrivers: 11
driversetdn: CN=driverset1,O=system
objectclass: Top
objectclass: extensibleObject

dn: cn=Active Directory Driver,cn=drivers,cn=driverset_stats,cn=IDM,cn=Monitor
startoption: manual
type: remote
downtime: 6 days 4 hours 27 minutes 2 seconds 9 milliseconds
driver-state: stopped
driverdn: CN=Active Directory Driver,CN=driverset1,O=system
objectclass: Top
objectclass: extensibleObject

dn: cn=publisher,cn=ProcessedOperationsCount,cn=Active Directory Driver,cn=drivers,cn=driverset_stats,cn=IDM,cn=Monitor
check-password: 14
add: 1
query: 70
modify: 98
objectclass: Top
objectclass: extensibleObject

19.2.4 Monitoring User Application Statistics

You can monitor information about the health of the User Application such as currently running threads, memory consumption, and cache information.

To view the health statistics of the User Application, perform a search on the following entry:

cn=userapp_stats,cn=idm,cn=monitor

To monitor the system memory and memory consumed by the JVM, perform a search on the following entry:

cn=memory_info,cn=userapp_stats,cn=idm,cn=monitor

NOTE:memory_info contains several child objects such as jvmmemoryusage and javamemorypool. However, Identity Manager restricts the search to the parent object (memory_info)only.

To monitor the threads that cause heavy utilization of the CPU, perform a search on the following entry:

cn=thread_info,cn=userapp_stats,cn=idm,cn=monitor

To view the cache information, perform a search on the following entry:

cn=cache_info,cn=userapp_stats,cn=idm,cn=monitor

To view the current number of live threads, perform a search on the following entry:

cn=thread_count,cn=thread_info,cn=userapp_stats,cn=idm,cn=monitor

A sample output looks like this:

dn: cn=RUNNABLE,cn=threadStateCounts,cn=thread_count,cn=thread_info,cn=userapp_stats,cn=idm,cn=Monitor
count: 21
objectclass: Top
objectclass: extensibleObject

dn: cn=TIMED_WAITING,cn=threadStateCounts,cn=thread_count,cn=thread_info,cn=userapp_stats,cn=IDM,cn=Monitor
count: 46
objectclass: Top
objectclass: extensibleObject

dn: cn=WAITING,cn=threadStateCounts,cn=thread_count,cn=thread_info,cn=userapp_stats,cn=IDM,cn=Monitor
count: 51
objectclass: Top
objectclass: extensibleObject

dn: cn=SSPR--1-LocalDBLogger-writer-pool-161-thread-1,cn=topMostCPUConsumingThread,cn=thread_count,cn=thread_info,cn=userapp_stats,cn=IDM,cn=Monitor
state: TIMED_WAITING
objectclass: Top
objectclass: extensibleObject

A sample LDAP search output is below.

dn: cn=cache_info,cn=userapp_stats,cn=idm,cn=monitor
cachearraysize: 19
objectclass: Top
objectclass: extensibleObject

dn: cn=Authorization.AdminLevelsCacheHolder,cn=cacheHolders,cn=cache_info,cn=userapp_stats,cn=idm,cn=monitor
objectcount: 1
objectclass: Top
objectclass: extensibleObject

dn: cn=DirectoryAbstractLayerDefinitions,cn=cacheHolders,cn=cache_info,cn=userapp_stats,cn=idm,cn=monitor
objectcount: 105
objectclass: Top
objectclass: extensibleObject

dn: cn=Workflow.Model.Request,cn=cacheHolders,cn=cache_info,cn=userapp_stats,cn=idm,cn=monitor
objectcount: 0
objectclass: Top
objectclass: extensibleObject

dn: cn=MEMORY_INFO,cn=userapp_stats,cn=idm,cn=monitor
commitedvirtualmemory: 2972792
objectclass: Top
objectclass: extensibleObject

dn: cn=Code Cache,cn=javaMemoryPool,cn=memory_info,cn=userapp_stats,cn=idm,cn=monitor
freeMemory: 163010
usedMemory: 82750
maxMemory: 245760
objectclass: Top
objectclass: extensibleObject

dn: cn=HeapMemoryUsage,cn=jvmMemoryUsage,cn=memory_info,cn=userapp_stats,cn=idm,cn=monitor
freememory: 514910
usedmemory: 498722
maxmemory: 1013632
objectclass: Top
objectclass: extensibleObject

dn: cn=NonHeapMemoryUsage,cn=jvmMemoryUsage,cn=memory_info,cn=userapp_stats,cn=idm,cn=monitor
freeMemory: 0
usedMemory: 280211
maxMemory: 0
objectclass: Top
objectclass: extensibleObject

dn: cn=physicalMemory,cn=systemMemoryUsage,cn=memory_info,cn=userapp_stats,cn=idm,cn=monitor
freeMemory: 888852
usedMemory: 2972036
maxMemory: 3860888
objectclass: Top
objectclass: extensibleObject

dn: cn=swapMemory,cn=systemMemoryUsage,cn=memory_info,cn=userapp_stats,cn=idm,cn=monitor
freeMemory: 688020
usedMemory: 1415272
maxMemory: 2103292
objectclass: Top
objectclass: extensibleObject

dn: cn=RUNNABLE,cn=threadStateCounts,cn=thread_info,cn=userapp_stats,cn=idm,cn=monitor
count: 27
objectclass: Top
objectclass: extensibleObject

dn: cn=ContainerBackgroundProcessor[StandardEngine[Catalina]],cn=topMostCPUConsumingThread,cn=thread_info,cn=userapp_stats,cn=idm,cn=monitor
state: TIMED_WAITING
objectclass: Top
objectclass: extensibleObject

dn: cn=SSPR--1-LocalDBLogger-writer-pool-161-thread-1,cn=topMostCPUConsumingThread,cn=thread_info,cn=userapp_stats,cn=idm,cn=monitor
state: TIMED_WAITING
objectclass: Top
objectclass: extensibleObject