How To
Archived

How do I monitor IDM 5 and OpenIDM 4.x using SmartEvent?

Last updated Apr 7, 2021

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.sh

The 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.sh

Attach 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)?

Troubleshooting IDM

Using JConsole

Getting Started with VisualVM

Related Issue Tracker IDs

OPENIDM-571 (Initial monitoring support)

OPENIDM-2312 (SmartEvent framework maintains a unbounded event name cache which consumes the entire heap)


Copyright and Trademarks Copyright © 2021 ForgeRock, all rights reserved.