Interchange 5.12 Administrator Guide Save PDF Selected topic Selected topic and subtopics All content 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 (metrics.codahale.com). 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 Timers 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: 2013-12-18 11:47:25,245 - Cluster-HeartbeatUpdater.database.updateTime.item-a13200_cn: Count: 44, Min: 0.9758089999999999, Max: 107.144837, Mean: 14.325860363636362, StdDev: 25.427175037853704, Median: 2.1554425, p75: 17.839615, p95: 91.66807949999999, p98: 107.144837, p99: 107.144837, p999: 107.144837, MeanRate: 0.499742453620688, M1: 0.5294262846388921, M5: 0.5767878890393485, M15: 0.5915183485820346, RateUnit: events/second, DurationUnit: milliseconds 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. Go to <install directory>/conf and open the file monitoringconfig.xml in a text editor. Use the tables that follow this procedure to specify the target reporter applications and the statistics to be sent. Save the file. 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. Filter 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 <StatsCollectionConfiguration> <Metrics> <MonitorJVM>true</MonitorJVM> <Reporters> <Reporter name="JMX" enabled="true" rateUnit="SECONDS" durationUnit="MILLISECONDS"> </Reporter> <Reporter name="CSV" enabled="false" rateUnit="SECONDS" durationUnit="MILLISECONDS" writeInterval="5" path="../logs/metrics"> </Reporter> <Reporter name="GRAPHITE" enabled="true" rateUnit="SECONDS" durationUnit="MILLISECONDS" writeInterval="5" host=“graphite.lab.phx.axway.int" port="2003"> </Reporter> <Reporter name="LOG4J" enabled="true" rateUnit="SECONDS" durationUnit="MILLISECONDS" writeInterval="60"> <Filter type="StartsWith"> <Pattern name="ConnectionCache"/> <Pattern name="Consumption"/> <Pattern name="MessageDispatched"/> <Pattern name="MessageProduction"/> </Filter> </Reporter> </Reporters> </Metrics> </StatsCollectionConfiguration> Related Links
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 (metrics.codahale.com). 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 Timers 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: 2013-12-18 11:47:25,245 - Cluster-HeartbeatUpdater.database.updateTime.item-a13200_cn: Count: 44, Min: 0.9758089999999999, Max: 107.144837, Mean: 14.325860363636362, StdDev: 25.427175037853704, Median: 2.1554425, p75: 17.839615, p95: 91.66807949999999, p98: 107.144837, p99: 107.144837, p999: 107.144837, MeanRate: 0.499742453620688, M1: 0.5294262846388921, M5: 0.5767878890393485, M15: 0.5915183485820346, RateUnit: events/second, DurationUnit: milliseconds 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. Go to <install directory>/conf and open the file monitoringconfig.xml in a text editor. Use the tables that follow this procedure to specify the target reporter applications and the statistics to be sent. Save the file. 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. Filter 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 <StatsCollectionConfiguration> <Metrics> <MonitorJVM>true</MonitorJVM> <Reporters> <Reporter name="JMX" enabled="true" rateUnit="SECONDS" durationUnit="MILLISECONDS"> </Reporter> <Reporter name="CSV" enabled="false" rateUnit="SECONDS" durationUnit="MILLISECONDS" writeInterval="5" path="../logs/metrics"> </Reporter> <Reporter name="GRAPHITE" enabled="true" rateUnit="SECONDS" durationUnit="MILLISECONDS" writeInterval="5" host=“graphite.lab.phx.axway.int" port="2003"> </Reporter> <Reporter name="LOG4J" enabled="true" rateUnit="SECONDS" durationUnit="MILLISECONDS" writeInterval="60"> <Filter type="StartsWith"> <Pattern name="ConnectionCache"/> <Pattern name="Consumption"/> <Pattern name="MessageDispatched"/> <Pattern name="MessageProduction"/> </Filter> </Reporter> </Reporters> </Metrics> </StatsCollectionConfiguration>