IBM Business Monitor is part of IBM Business Process Management, (@IBM_BPM) and it is a solution for business activity monitoring. IBM Business Monitor can, in practice, monitor all kinds of systems (processes, operations, applications and so on) and calculate related Key Performance Indicators (KPIs) about the systems. The basis for calculating KPIs are events and one of the ways to send events to IBM Business Monitor is to use a REST-API.
The IBM Business Monitor web site has general information about it and Business Monitor InfoCenter has more detailed documentation. The IBM developerWorks article Some tips for IBM Business Monitor Modeling and Versioning is also a good read about it.
In this post I show a dashboard for monitoring a simple order process and provide sample code for sending events to Business Monitor and also the monitor model that receives the events. The code and the model can be tested using IBM Business Monitor development environment, Rational Application Developer with IBM Business Monitor Toolkit.
The order process I used is directly from the IBM Business Monitor InfoCenter. The image below shows the order process and events sent to it (image is copied from the InfoCenter).
IBM Business Monitor Toolkit has the necessary tooling to develop monitoring models and information how to develop monitoring models is also in InfoCenter. Using the toolkit, I specified what events to receive and what to do with the events, like start/stop a stopwatch or store the time when the event was received. I also specified all the KPIs that I want to monitor.
Below is a screenshot of the Business Monitor Toolkit and the monitoring model. Monitoring Flow at the bottom of the screenshot shows visually what happens when the model receives OrderPlaced Event.
Here is the sample model that I did: OrderProcessingMonitoringModel.zip. It can be imported to Rational Application Developer with IBM Business Monitor Toolkit.
In order to test the monitor model I made a small test program that sends events to IBM Business Monitor using the REST-API. Source code is here: IBMBusinessMonitorTester.zip. It’s a Java-project that can be imported to Eclipse (or Rational Application Developer).
The test program sends events that relate to the order process shown previously. Events include OrderPlaced, ShipmentInitiated, BillPaid and so on.
The events are used to calculate metrics about the process and metrics in turn are used calculate KPIs of the process. I specified a few KPIs related to order process, for example Average Order To Cash that calculates average time from OrderPlaced-event to BillPaid-event.
When running the test program, KPIs (gauges) start changing related to received events. The screenshot below shows the KPIs at some point in time during the test run.
Color-coded gauges give a good visibility to process KPIs and I immediately see that there are slight problems in the order process. For example, Average Order To Cash Time is in yellow. It means that I have to change the test program so that it will be in green in the future.
Or perhaps it means that I have to optimize the order process itself. KPIs might actually give some indication where there’s room for optimization…