Interchange Monitoring Framework

The Interchange Monitoring Framework is a statistical collection program for monitoring trading engine activity. Monitoring Framework is based on the open source Metrics library ( Monitoring Framework runs natively on the trading engine to continuously collect a range of operations statistics.

You can configure Monitoring Framework to send the collected data to a third-party application for viewing and analysis.

You configure monitoring dynamically so that you can enable statistics reporting at any time without restarting Interchange.

Exporting statistics to visualization software

In Metrics open source terminology, Reporters are the way the Monitoring Framework exports all the collected metrics data.

You can configure Monitoring Framework reporters to send the statistics it collects to any of the following third-party and open source metrics reporter applications:

  • Apache Log4j – Generates statistic log files
  • CSV – Gathers detailed CSV-formatted data on specific metrics.
  • JMX – Enables the availability of metrics to all JMX agents (including Java VisualVM).
  • Graphite – Open-source monitoring framework


A timer is a set of data that measures the duration of a type of event and the rate of its occurrence.

Timer data is embedded in the data of the related Filter/Name for a given Reporter. When you configure the reporter and select the filters for sending data to that reporter you can include or exclude timer data.

Monitoring Framework provides timers that enable Interchange to collect measurements of variety of values.

The following example shows a Log4j output with timer data on how long it takes to update a database heartbeat:

Monitoring Framework provides timers to gather statistics on the following actions:

  • Event purge
  • Message purge
  • Consumption time (by pickup)
  • Production sending (by delivery)
  • File system health monitor
  • Cluster Database Heartbeat
  • Sending events to Sentinel

Configure Monitoring Framework

Use the following procedure to configure how Monitoring Framework sends statistical data to one or more reporter target applications.

  1. Go to <install directory>/conf and open the file monitoringconfig.xml in a text editor.
  2. Use the tables that follow this procedure to specify the target reporter applications and the statistics to be sent.
  3. Save the file.
  4. Note: You do not have to restart Interchange, statistics monitoring changes take effect immediately.

Reporter attributes

To control the amount and type of statistics that you send to the reporter application, set the following attributes:

Parameter Description
Enabled Set to true/false to enable or disable.
rateUnit TimeUnit (Seconds, MS, Minutes) to covert values to. Example - events/second or events/minute.
durationUnit TimeUnit (Seconds, MS, Minutes) to measured time periods.
writeInterval Number of seconds to send metrics to reporter. Example 5 – Statistics will be sent every 5 seconds.

Use filters to control which statistics to send to the reporter. See the following table for a list and description of available filters.

Filter names

To set the filter attributes, use the following names in the Filter/Name field:

Filter name field value Statistic description
AlertSystem Alert system activity
ClusterConnections Cluster framework individual connections between cluster nodes
Cluster-HeartbeatUpdater Cluster framework heartbeat to database
Cluster-ThreadPool Cluster framework thread pool
ConnectionCache Sync connections being held by the trading engine
Consumption Consumption on a per pickup basis (timers, per minute/per hour/per day stats available)
DatabaseCommit Database commit notifications (local and remote)
DatabaseConnectionPool BoneCP data base connection pool
Events Event system activity
FileSystemHealth Timer activity on monitoring each configured file system health check
JPADataCache OpenJPA data cache activity
jvm.gc, jvm.memory, jvm.thread-states Internal jvm heap usage, gc collections and thread statesMessageProduction
MessageDispatched Messages dispatched to the trading engine for processing
MessageProduction Production system coordination, and timers on producing messages on a per partner delivery
MessagePurge Message purge activity (non Oracle stored procedures)
ResourceManager Trading engine resource manager (used for X25 type protocols)
Sentinel Sentinel connection and queue
SequenceCoordinator Sequence coordination activity
ThreadPool Core trading engine thread pool activity
TokenManager Cluster framework TokenManager for cluster wide locks
XmlDomDocumentFactory XML Dom Cache activity

Example Monitoring Framework configuration

Related Links