Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.

Reply
LuigiBros
Frequent Visitor

Custom Usage Metrics Report (for all reports and all workspaces)

I have an ambitious plan to create a single "golden" report to monitor the usage of all reports across all workspaces.

What would be the best approach for this?

 

Has anyone done something similar and could share insights or tutorials?


I was able to connect to the Power BI API, but I’m not entirely sure where to find all the necessary information.

 

The first issue I encountered is that I’m sharing reports via apps (not direct report links), and access is granted based on Azure AD groups (not individual emails). However, when querying the API (GetAppUsersAsAdmin and similar queries), I only get group email addresses in the results, whereas I would like to see individual users.

 

Could you please help?

1 ACCEPTED SOLUTION
rohit1991
Super User
Super User

Hi @LuigiBros ,

Favourable Approach is:

  1. Connect to Power BI REST API

    • Use the Admin API to get usage details across workspaces.
    • Key endpoints:
      • GetActivityEvents → Fetch user activity logs.
      • GetReportsAsAdmin → List all reports.
      • GetAppUsersAsAdmin → Fetch app access details.
  2. Extract Individual Users from Azure AD Groups

    • API returns group emails, not individual users.
    • Use Microsoft Graph API (/groups/{id}/members) to expand group members.
    • Store user mappings in a separate dataset.
  3. Build a Power BI Report

    • Load API data into Power BI via Power Query (Web Connector).
    • Model relationships between reports, workspaces, users, and access logs.
    • Use DAX measures for insights like most-viewed reports, active users, and trends.


Challenges & Solutions:

Issue: API limits (e.g., GetActivityEvents pulls 30 days of data).
➡ Solution: Schedule incremental refresh for continuous tracking.

Issue: Access data is in groups, not users.
➡ Solution: Use Microsoft Graph API to resolve group members.



"The goal is to turn data into information, and information into insight." – Carly Fiorina

Need Power BI help? Connect on LinkedIn.

View solution in original post

4 REPLIES 4
LuigiBros
Frequent Visitor

@rohit1991 

 

do you know if it is possible to join together all Usage Metrics Reports from all workspaces into one?

And is it possible to add additional table to the model? 

I want to export all users from Azure AD with Power BI license and check how many of them are not using reports at all.

rohit1991
Super User
Super User

Hi @LuigiBros ,

Favourable Approach is:

  1. Connect to Power BI REST API

    • Use the Admin API to get usage details across workspaces.
    • Key endpoints:
      • GetActivityEvents → Fetch user activity logs.
      • GetReportsAsAdmin → List all reports.
      • GetAppUsersAsAdmin → Fetch app access details.
  2. Extract Individual Users from Azure AD Groups

    • API returns group emails, not individual users.
    • Use Microsoft Graph API (/groups/{id}/members) to expand group members.
    • Store user mappings in a separate dataset.
  3. Build a Power BI Report

    • Load API data into Power BI via Power Query (Web Connector).
    • Model relationships between reports, workspaces, users, and access logs.
    • Use DAX measures for insights like most-viewed reports, active users, and trends.


Challenges & Solutions:

Issue: API limits (e.g., GetActivityEvents pulls 30 days of data).
➡ Solution: Schedule incremental refresh for continuous tracking.

Issue: Access data is in groups, not users.
➡ Solution: Use Microsoft Graph API to resolve group members.



"The goal is to turn data into information, and information into insight." – Carly Fiorina

Need Power BI help? Connect on LinkedIn.

Thanks, it is very helpful.

audreygerred
Super User
Super User

Hi! If you are able to get access to the audit logs you should be able to create whatever you want. It holds 90 days worth of info, so if you want to build it out for longer, have the data stored in your data warehouse and refresh it daily and connect PBI to your warehouse. Track user activities in Microsoft Fabric - Microsoft Fabric | Microsoft Learn





Did I answer your question? Mark my post as a solution!

Proud to be a Super User!





Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Prices go up Feb. 11th.

Jan25PBI_Carousel

Power BI Monthly Update - January 2025

Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.

Jan NL Carousel

Fabric Community Update - January 2025

Find out what's new and trending in the Fabric community.