m-kovalsky / ReportAnalyzer

A tool for visualizing and analyzing a Power BI report's performance.
MIT License
92 stars 15 forks source link
analysis-services azure-analysis-services externaltools powerbi

Report Analyzer

Report Analyzer Introduction with Reid Havens

Report Analyzer Introduction video on Youtube

image

Purpose

This tool is designed to help Power BI developers/admins match Visual IDs from Log Analytics to specific visuals in their Power BI report. Additionally, Report Analyzer provides a visual interface for prioritizing performance troubleshooting.

Running the tool

Report Analyzer is an External Tool for Power BI Desktop.

In order to take full advantage of the tool, make sure you run the Performance Analyzer across all tabs in your Power BI report and export the results to a .json file. Save the performance data file to the same folder as your Power BI Desktop/Template file(s). Report Analyzer is able to handle multiple .pbix/.pbit files as well as multiple Performance Analyzer .json files.

NOTE: There is no specific naming requirement for performance data .json files.

  1. Install Report Analyzer.
  2. Open Power BI Desktop.
  3. Navigate to 'External Tools' in the ribbon.
  4. Open Report Analyzer.
  5. Select the folder which contains your Power BI Desktop (or Power BI Template) file(s) as well as the Performance Analyzer export (.json) file.

NOTE: As of v1.3.0, you can also open Report Analyzer from the Start menu or the Desktop shortcut. It is not necessary to open Report Analyzer through Power BI Desktop.

Compatiblity

This tool is compatible with Power BI Desktop, Power BI Templates, and Performance Analyzer data (.json) files. All files must be in the same folder for the tool to integrate all of these files.

Features

Recommendations

Log Analytics Visual Matching

Report Analyzer can be used to match Log Analytics queries to a specific visual in a Power BI report. In order to do this, follow these steps:

  1. Navigate to your Log Analytics Workspace.
  2. Click on 'Logs' within the 'General' category on the left pane.
  3. Paste the Kusto query (see below).
  4. Add any additional filters to the Kusto query (as desired - perhaps based on time etc.).
  5. Find the Visual ID within Log Analytics in the Visual ID slicer within Report Analyzer (must be connected to the same report).

NOTE: The following Kusto query displays the slowest Power BI queries at the top so you can easily prioritize the queries which need the most attention.

PowerBIDatasetsWorkspace
| where OperationName == "QueryEnd"
| project PowerBIWorkspaceName
,DatasetId = tostring(parse_json(ApplicationContext).DatasetId)
,ReportId = tostring(parse_json(parse_json(ApplicationContext).Sources[0]).ReportId)
,VisualId  = tostring(parse_json(parse_json(ApplicationContext).Sources[0]).VisualId)
,DurationMs
,EventText
,ApplicationContext
| order by DurationMs desc 

NOTE: A simple way to find the Report ID of a Power BI report is by navigating to the report page within PowerBI.com and copying the GUID within the URL after 'reports' (highlighted in orange in the screenshot below).

image

Disclaimer