How do I monitor IDM 5 and OpenIDM 4.x using SmartEvent?
The purpose of this article is to provide guidance on monitoring IDM/OpenIDM using SmartEvent. SmartEvent is replaced in IDM 5.5 with DropWizard Metrics.
Archived
This article has been archived and is no longer maintained by ForgeRock.
Enabling SmartEvent
IDM/OpenIDM includes an event monitoring facility called SmartEvent. You can enable SmartEvent by using the openidm.smartevent.enabled system property. If you want to view a summary or statistics in the openidm log, you can enable openidm.smartevent.summarylogging.
To get started with SmartEvent, enable it via JAVA_OPTS during startup as follows:
$ env JAVA_OPTS="-Dopenidm.smartevent.enabled=true -Dopenidm.smartevent.summarylogging=true" ./startup.shThe SmartEvent summary information is then output to the openidm.log.0 file, for example:
Jun 16, 2016 14:22:51 PM org.forgerock.openidm.smartevent.core.StatisticsHandler$1 run INFO: Summary: {openidm/internal/repo/orientdb/raw/query/query-all-ids=Invocations: 1 total time: 18.448 ms mean: 18.448 ms, openidm/internal/repo/orientdb/raw/query/query-cluster-events=Invocations: 119 total time: 31.958 ms mean: 0.269 ms, openidm/internal/repo/orientdb/raw/query/query-cluster-failed-instances=Invocations: 119 total time: 54.032 ms mean: 0.454 ms, openidm/internal/router/repo/scheduler/read=Invocations: 26 total time: 98.177 ms mean: 3.776 ms}IDM/OpenIDM SmartEvent MBeans are also available locally by attaching a monitoring tool such as JConsole or VisualVM. These tools allow you to attach to a local process. If you wish to attach remotely, see the following section.
Accessing SmartEvent remotely using JMX
To access SmartEvent remotely using JMX, you will need to specify the following JAVA_OPTS when starting IDM/OpenIDM:
$ env JAVA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9010 -Dcom.sun.management.jmxremote.local.only=true -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dopenidm.smartevent.enabled=true -Dopenidm.smartevent.summarylogging=false" ./startup.shAttach a monitoring tool to a remote process in the form <hostname>:<port>.
See Also
How do I monitor IDM 5.5 using DropWizard Metrics?
How do I configure Jetty Request logging for IDM (All versions)?