Mule Enterprise 3.2 introduced a powerful feature allowing to keep track of everything happening during the lifetime of your applications: Business Event Analyzer. This provides a place to monitor business transactions and events across multiple systems. Most businesses need access to information surrounding the following use case examples:
- Root cause analysis – determine where errors are occurring.
- Regulatory compliance – compliance to business rules, policies and standards.
- Business activity monitoring – drill-down to monitor specific transactions.
- Business intelligence – retrieves and analyzes your data.
This post provides some tips for working with the Business Event Analyzer. While we worked pretty hard to ensure overheard is very low there are still a number of points to consider before using (and abusing) it.
Business Events are extracted from Server Notifications, the internal notification system in Mule. Event creation has been optimized but is still not free. So the more events will be generated per business transaction the higher performance impact will be. Typical use case (say 5 events per flow) will generate an overhead less than 1 millisecond per flow. On the other hand if your application does not generate events overhead will be null.
Adding Custom Events
Custom events are very handy and you might be tempted to use them a lot. Plus you can benefit the full expression language power! As events are generated synchronously you probably want to consider your expression execution time. As a rule of thumb the more data will be accessed the longer the execution will take. Measure carefully before rolling out in production!
If something breaks
Events are stored locally as soon as they are generated. This acts as a local cache in case the agent has a network issue accessing the Enterprise Management console. Storage is pluggable thus you’re free to have reliability or not depending on your needs. The Enterprise Management Console will retrieve all outstanding events when a connection is made.
One of the powerful features of the Business Event Analyzer is that it can expose its data to 3rd party BI tools. This means the data captured can then be analyzed by other tools to glean further insights and for reporting, i.e. transaction audit or compliance. This opens up a new level of visibility and insights about the data running through your ESB.