WSO2 Tutorial 7 min

WSO2 BAM: How is your business doing?

WSO2 Business Activity Monitoring will tell you!

Rob Blaauboer
Rob Blaauboer
Integration Consultant & WSO2 Trainer
25 feb no 1


WSO2 Business Activity Monitoring will tell you how your business is doing.

The term Business Activity Monitoring (BAM) is not new. I think I heard it for the first time around 2002 when Gartner introduced the term. At that time it was defined as how to provide real-time access to critical business performance indicators to improve the speed and effectiveness of business operations.

If we skip ahead about 13 years to the current day and age, we find the topic of Business Activity Monitoring to be very current to say the least.

BAM has gone from measuring only business indicators to measuring all kinds of KPI’s, IT and business alike.


WSO2 Business Activity Monitoring (BAM) is one of the components of the WSO2 product suite. BAM is a sort of Swiss Army knife, a versatile component that you can use for many applications. BAM allows you to gather, analyze and present data on both business and ICT processes.
BAM is tightly integrated in other components, for instance the WSO2 API manager uses BAM to present the details of all the API calls that go through the Gateway.

Apart from SOA metrics that you can measure, it’s also business processes that you can monitor. It is up to you to model your own key performance indicators. Either on a high-level if available (e.g. aggregated sales figures) or even more low level data, e.g. from a sensor network or Internet of Things devices.

Out of the box, BAM has all the components to collect, analyze and display data, including data stores like Cassandra and the open source ‘big data’ storage and analysis framework Hadoop.

WSO2 BAM is capable of handling large amounts of data (‘Big Data’), Terabytes of even Petabytes (1000 Terabytes) of data with relative ease but with a different setup of course compared to a regular deployment. Analysis of big data would be on a Hadoop cluster, multiple machines to speed up the process.

BAM and other WSO2 components

The WSO2 BAM works together with several other WSO2 products like the API manager. In fact when you go to the API manager and want to look at the statistics you will find that you need to couple the API manager with BAM in order to see them. For more information on BAM and the other WSO2 components see the paragraph on installing BAM.

In case of the API Manager, integrating the BAM will show different statistics based on the role of the user and from where the data viewed (which store). For more information see the article on API Manager. Although it is not really difficult to connect BAM and the API manager, this will take some time if you do it for the first time.

How does BAM work

When you look at BAM you will find four main modules:
1. Data aggregation
a. Data Agents
b. Data Receiver
2. Data Analysis
a. Data Analyzer Engine
3. Data presentation
a. Dashboard and Reports
These modules (see also fig. 1) show the flow of data. It all starts with the data agents that collect (large) amounts of data about all kinds of processes in you organization, regardless if these processes are technical (like the API manager) or concern more business like data like sales figures et cetera.

Apart from data agents, BAM also talks about Data Publishers that will publish data (hence the name), for this article we will not go into detail about the differences.

In fig. 2 all data is shown to be sent by data agents.

Figure 2 Flow of data in WSO2 BAM

Another way type of data agent are the Event adapters. All external data sources, from a WSO2 event to a file being created on a drive, use event adapters as entry and exit points. To make it simple, you use an Event Adapter (or define your own) to have a specific action when that event occurs.

There are input and output event adapters enabling you for instance to send an email (output) when a certain file is created (input) on a drive.

Event streams are another possibility to gather data. An event stream can defined as a data source that is monitored for “a significant change in state”, e.g. an IoT sensor that registers open or closed on a window, an order that has gone through an approval et cetera.

Since this is a primer on ESB we will not discuss event streams.

Receiving data

The data received will be stored in a database (e.g. a relational database or Cassandra). A standard BAM deployment will use open source technology like Cassandra (database) and Hadoop (a framework for large dataset analysis) for storage and analysis respectively.

Analyzing Data

The data analysis engine will analyze the data according to defined queries. WSO2 BAM gives you all the tools but you need to tell BAM what data you would like to aggregate in order to be able to analyze it later.

Simple and small queries can be done on the Cassandra database or a local Hadoop. Larger sets can run on a Hadoop cluster of computers in order to speed up analysis.

For realtime analytics a subset of the WSO2 Complex Event Processor (CEP) is used. It is however possible to use BAM with a fully deployed WSO2 CEP component. In that case, much like the integration of BAM and the API Manager, the components need to be aware of each other. This is done by altering settings in the configuration files.

Presenting Data

After the previous two steps (collecting and analyzing) it is now time to display the information in an attractive and meaningful way. This can be a dashboard, a gadget (how about your smartwatch) or a printed report.

We make a difference between:

• Dashboards
• Gadgets
• Reports


There are three types of Dashboards, the BAM Dashboard (statistics and data from servers and data agents), Activity Monitoring Dashboard (to search for specific activities) and the Message console to monitor messages in the Cassandra Database.

For standard statistics, for instance on the API manager, WSO2 has a number of out of the box tools to aggregate and monitor these statistics.


The WSO2 Gadget Repository and Portal are integrated in WSO2 BAM and lets you build Web-based portals, personalized dashboards and dashboard gadgets that comply with the Google Gadget specification (based on HTML and JavaScript).

The Gadget Portal offers a customizable dashboard for your enterprise gadgets, a store concept we also see at the WSO2 Enterprise Mobility Manager and the API Manager. It also offers the same type of functionality where publishers can add Gadgets to the store and the users can select them.

Mind you, user here means developer, not the business end-user. The Gadget Generation Tools is a simple way to generate new gadgets based on a small number of easy to follow steps.


BAM can of course create a report of the data. There are a number of standard reports available that will create PDF, Microsoft Excel or HTML output. If those reports do not satisfy your need or you require your own reports, you can create them.

The JasperReport standard is use and you can use a too like iReport, and upload the designed file to WSO2 BAM server to generate the report out of it.

Installing BAM

If the WSO2 product you want to use WSO2 BAM with does not have the data publishing functionality you can add that feature (WSO2 Carbon – Data Bridge – Data Publisher Aggregate Feature). Data publishing allows the product to communicate with the BAM server and send statistics for analysis.

The following components have the latest compatible data agents in them by default, and therefore are compatible with BAM 2.5.0 (or any other BAM version):

• WSO2 API Manager 1.8.0
• WSO2 Application Server 5.2.1
• WSO2 Enterprise Service Bus 4.8.1
• WSO2 Elastic Load Balancer 2.1.1

For installation and integration of BAM with other WSO2 components, I refer you to the WSO2 documentation on feature management for more information.

If you are running WSO2 BAM on Windows, see the installation requirements for additional software needs to be installed, otherwise an error will occur when running Hadoop.

BAM in action

The Business Activity Monitoring component of WSO2 is a very powerful tool that can be used to give you insight into what your organization is doing. It does not matter if you are a SME or a fortune 500 company, whether you have a moderate data set or have Terabytes of data, WSO2 offers you the scalability.

When you deploy WSO2 BAM it has all the functionality you need out of the box. The only thing you need to do in order to get the insight is:

1. What data do I need?
2. What information do I want from it?
3. How am I going to present the data?

This primer on BAM will not help you answer these questions. For one, because these questions are for you and your organization. Secondly, describing how to aggregate data is beyond the scope of this article.

But don’t be worried. When you have the answers and need help implementing them, that is when we can play a role. Contact us when you have questions with regards to BAM in your organization.

Full API lifecycle Management Selection Guide

Get it now
What's on our menu