The Analytics Dashboard is an effective tool provided by BizTalk360 to analyse the performance of your BizTalk environment. Loaded with a bunch of predefined widgets and the ability to customize and create your own tailor made widgets, the Analytics Dashboard provides a unique experience that helps you drill down and identify performance issue of your environments.
Apart from performance data widgets, the Analytics Dashboard also comes loaded with widgets that provide insights into the Tracking Database such as Messaging Performance and Transmission Failure rate widgets.
In this article we describe the challenges some customers faced while collecting analytics from the Tracking database. We addressed these challenges in v8.3 which was released in February 2017.
Some customer environments that we came across during the support process, had a business requirement which made them retain Tracking data for more than the recommended duration, causing the database to grow exponentially. In some instances, we noticed that not all environments strictly follow the purging policy. In both cases, it’s hard to query the Tracking database for insights.
Initial design of the tracking data widgets was simple; it ran the necessary queries directly against the Tracking database and displayed the results in a graphical form on the widget. A larger database degraded the performance of these queries and it had a direct impact on the user experience of the Analytics dashboard, causing slower widget loading and occasional time outs. Since Analytics widgets offered users the option to view data up to 30 days within the widget, an efficient approach was required to improve the performance and user experience.
It was after hours of brain storming and multiple Proof of Concept attempts that we concluded that the best way to tackle these challenges, is to create a service that runs in the background. This service will collect the tracking data periodically in small chunks and thereby avoid running expensive queries on the Tracking database. Here only the resulting metrics are collected rather than pulling all the tracking data to BizTalk360 database. This improves the overall performance of the Tracking widgets as they are not querying the Tracking database directly.
One added advantage for this approach is that, say for instance your Tracking database has a purging policy of 5 days, you will be able to view data on Tracking data widgets beyond the set purging period of the Tracking database, as we are collecting these metricises on our database, allowing you to analyse tracked data regardless of the purging policy of the Tracking database.
Once we decided to go with the new data collection method, we also saw the potential to provide a customizable interface where user can hand pick the metrics they wanted to collect. A similar user experience to the Performance Data collection in BizTalk360. This allows you to have a fine grained control over the data collection at an environment level.