Sometimes reports in Power BI are slow and it’s difficult to know what causes these performance issues and how users can fix and improve them. Performance analyzer will allow report authors to easily see the effect of every interaction on a page. This includes how long each visual takes to refresh and where the time is going. By using this tool, authors will be able to produce reports that are much more responsive for their end users.
After initial discussions with product owners and developers and understanding constraints and requirements I started designing step by step mockups for this scenario and reviewed them after each iteration with team to see how we can improve these concepts until we reached a good design to move forward.
Couple of iteration that happened during this project
For first round of concepts we decided to use ribbon as entry point which had 2 actions inside its drop down and showing results of analyze in a modal box.
1. User needs to select an option from performance analyzer button in ribbon.
2. Analyze the current page which refreshes the page and return results of this page. Start monitoring report which start analyzing in background and user can start interacting with whole report while analyzer keeps tracking of all interactions and when user stops it, it will return results.
Users were able to find this entry point.
6. When user clicks on stop button, modal box shows the report of user actions in that session.
Major issue about this concept was users were not able to interact with report since we show results in a modal box. We wanted to let users click on each row of result and see affected visual in their report.
In this concept we moved the performance analyzer to sidebar as its own separate pane.
1. Analyze the current page which refreshes the page and return results of this page. Start monitoring report which start analyzing in background and user can start interacting with whole report while analyzer keeps tracking of all interactions and when user stops it, it will return results.
Users were pleased with the initial look and placement of the feature.
2. When user clicks analyze current page, we refresh the page and show a message about analyzing the page and will show results when it is complete.
Couple of users had trouble understanding difference between analyze current page and report.
The message in pane and also loading spinners on report page were clear to users and they understood what is happening right now.
3. Here user can see the results of the analyzing in a table view. Each row has a colored bar that shows the performance of that visual, they are green, yellow and red. We can show an alert icon in front of cells that seems having issues. Users can hover over an item to see some description about that issue. They can export the results to examine it more.
Users wanted a way to see more details about each row in the table.
Users asked to highlight related visuals in report by hovering over each row in table.
Using those tiny colored bars on left side was not accessible for some users.
4. By clicking on Start monitoring the report, performance analyzer starts to capture all user’s interactions on report level and on every page and it stops when user clicks on stop.
Sorting might be helpful in table, like sorting by query time which can help users identify issues faster.
Using the yellow bar might not be best solution to stop the monitoring since our web version doesn’t have this bar.
We improved upon pane concept, made it easier and simpler to use with less steps.
1. We merged analyze current page and start monitoring actions into one action, Start Monitoring Report and added Refresh, Stop buttons. This solved the confusing issue that some users had about two different actions and wasn’t sure which one was the right action and removed extra unnecessary steps for this scenario.
2. By clicking on Start link report gets refreshed and results will be populated in table.
3. To get details of current page, user needs to start monitoring and click on refresh link in pane
4. By selecting a row in table, related visual will be highlighted in report page.
5. After starting analyze, table gets populated with a timestamp of when user started monitoring and waits for user input on report to capture.