Monday, May 4, 2020

Page Load Time: Tracking the Performance of Power BI Reports



Power BI has become one of the preferred data visualization options across organizations. Many companies rely on the powerful analytics and reporting features offered by Power BI.

Business Scenario:

Most of our Fortune 500 customers use Power BI as their default reporting and analytics solution. It is important to ensure a great experience for users, who rely on these reports to drive their business decisions. One of the KPIs we track to ensure great user experience is the report load time.

Unfortunately, this process is complicated by a variety of factors including data volume, network bandwidth, and other system parameters. We needed an automated solution that could capture the page load time of Power BI reports with high accuracy, while also tracking performance improvements made by the development teams.

Existing Process:

Page Load Time (PLT) is commonly measured either manually through web page refresh or via the Performance Analyzer Tool. A manual calculation is not only inaccurate, but also highly inefficient. The Performance Analyzer tool, on the other hand, is available to just the Power BI Desktop; this limits its potential to gauge report performance over the Power BI service.

In addition, most of the custom solutions available today focus on measuring the whole page’s load time. This includes the loading of non-essential components of the Power BI service that are not critical to the actual load time of the report.

At present, there is no easy way to gauge the impact of incremental optimizations made to reports, nor a way to track improvements over the time.

Key Business Challenges:

  Manual effort – Reduce the effort required to manually capture the page load time of reports. 
  Accuracy – Examine only the important components of Power BI when calculating the load time. 
  Report tracking – Track the impact of modifications made to Power BI reports over time. 
  Benchmarking – Benchmark acceptable load time and track against that number. 
  Efficient tracking – Track page load time at a page level. 

What is the PLT in our context?

Our definition of PLT encompasses the end user experience when they load a Power BI report from their browser. This is marked by the total time taken between the first request sent by a browser and the last object rendered on the page.

Solution:

We designed a browser extension that takes the report URL(s) and Google Chrome profile from users to deliver PLT results via a Power BI report.

Solution Design:

For developers, the browser extension can suffice to check current report load time. It has an easy-to-use input medium, which users can update with the necessary details and execute in the browser.

In order to track and perform trend analysis, we extended the solution to include an Azure database that stores PLT information. This includes elements like PLT capture, timestamps, and page URL(s). Users can configure information about what report URLs to track using an XML file. 

For those intending to institutionalize the load metric, we extended the solution to use Power BI REST API to track any new pages or reports added to the workspace on the Power BI service. This both tracks reports published on the workspace and measures load time. This data can be used as one of the metrics to accomplish before moving from UAT/Test to the production workspace.

Data Representation:

Once data is captured and added to the back end, it can be represented in a Power BI report. This method can highlight reports and/or pages with the highest PLT, and those with the lowest. We have listed some data representation options below that might appeal to organizations that want to track PLT centrally. 

You can show variance around benchmark by setting benchmarking at the report level. Representations of trend information highlight the top gainers and losers in terms of load time.

You can also set up emails of report thumbnails that send to specific recipients. These contain the metric information, URL, and indicators about whether a report loaded correctly.

Figure 1: PLT Compliance Report

Our Power BI compliance report allows leads to track the performance of their report over the course of two weeks.

Figure 2: Sample PLT tool report


Figure 3: Sample PLT Trends

Business Outcomes:

  Better visualization of report performance. 
  Better understanding of the impact modifications on reports have to performance over time. 

Through this solution, users can quantifiably track report performance. It provides data validation and tracking services. In addition to improving the performance of reports, our solution also improves overall user experience.