ESBT Toolkit How To Video #6: Performance Metrics using Built in BAM

Welcome to #6 in my series of ESB Toolkit How To Videos. If you have not seen the previous videos, I encourage you to do so. The previous ones can be found here

1) Basic Itinerary Routing and UDDI Integration

2) Composite Itinerary and Dynamic Mapping

3) Itinerary Resolution in the Bus

4) Dynamic Itinerary Resolution in the Bus

5) Including Custom Orchestrations in the Itinerary Designer

There is a great (but sadly under appreciated and under discussed) feature in the ESB Toolkit that I want to focus on today. Back at last years SOA conference, I spent some time talking with Dmitri Ossipov (who lead the development of the ESBT) and he showed me some of the new features he was adding into the toolkit. The one that caught my eye immediately was the built in BAM tracking. The ESB Toolkit has the built in ability to automatically log tracking and performance information for your itineraries as they are processed by the ESB components. If you have enabled "Tracking" in your itineraries, then the ESBT automatically logs information to a BAM table in SQL Server every time any of the itineraries services execute. This data includes data about which service executed, which itinerary and version it was part of, what time it executed, what specific instance it was part of as well as the status of the overall itinerary. This data is a gold mine for those of you looking to track the overall performance of your ESB and related services. It can be used to view all kinds of invaluable information about which itineraries are being used, how well they are performing, which ones are too slow, which ones are failing, which individual services are under performing etc.

Now while the ESBT will automatically capture all of this information you, it doesn't come with any kind of user friendly mechanism for viewing, analyzing or interacting with this data. In this video, I'll show you how to easily setup a number of BAM Views that will allow you to quickly assess performance stats about your itineraries. I build these views out in Excel and that allows me to use standard pivot tables and charts to view the data and I slice it up. I have also created views that allow me to tracking the performance of specific itineraries across different versions and across time. This is great info to have if you want to understand if recent changes to an itinerary have resulted in better or worse performance than you previously had.

The following image shows one of the views that I setup to show me what the average, worst and best performance times were for my itineraries. This is pretty useful information to have as I can quickly identify performance issues in my itineraries. You can easily see that the "ComposedDemo" takes quite slow when compared to the "DemoService" itinerary. I can even drill down in the specifics of a single itinerary and find out if a specific ESB service is causing the overall poor performance. 

BAM Image

Now, unlike my previous videos, where I just showed you how to build out a specific solution, I'm going to actually provide you with the components I've built. I've attached the Excel file that contains my BAM Views and you should be able to easily deploy these into your system and access the charts and tables that I show in the video. You will just need to have the ESBT installed as well as the BizTalk BAM components installed and configured.

In order to avoid make an hour long video, I do not go very deep into what BAM is or how you work it. If you are not familiar with BizTalk's BAM feature, there may be some elements of this video that are not 100% clear. However, if you have a basic understanding of what BAM is, then I hope this video will offer some great value.

The video can be accessed here:

The BAM Excel Project can be accessed here:

Cheers and keep on BizTalking

Peter