Forum Discussion
Semantic Model Views and User Count
- 16 days ago
Hi Ashish,
The Usage Metrics report is built from report render events only, so Analyze in Excel traffic will never show there because AIX connects straight to the model XMLA endpoint and does not open a report page.
Two reliable ways to get what you want:
1. Fabric Workspace Monitoring (preview, requires an F capacity). Enable it on the workspace, select Semantic Model as the item type, and every DAX query that hits the model lands in an Eventhouse (KQL database). The SemanticModelLogs table gives you the user UPN, timestamp, application/source, duration, and the DAX text. This includes Analyze in Excel, SSMS, Tabular Editor, report queries, and any XMLA client. Point a Power BI report at that KQL DB and you have the user count, active users, and query volume you listed.
2. Power BI admin activity log (works at Pro too). Either from the Purview portal or scripted with Get-PowerBIActivityEvent, filter on the AnalyzedByExternalApplication operation. Each entry has UserId, DatasetId, and workload, so you can group by user per model. The retention is 30 days from the API and 90 days from the UI, so if you need longer history, dump it nightly into a Lakehouse or SQL table.
If the model is on PPU or a Premium/Fabric capacity, Workspace Monitoring is the much better experience because the data is granular and already structured for querying.
If this helped, a thumbs up and marking it as the accepted solution would be appreciated.
Best,
Shai Karmani
The standard Usage Metrics report only tracks report and dashboard consumption, not direct semantic model access through XMLA, Analyze in Excel, or external tools, which is the gap you are hitting.
Two paths work for what you are after.
The quickest is the Microsoft 365 audit log. Enable auditing in Purview or the Microsoft 365 admin center, then search for the event name AnalyzedByExternalApplicationPowerBI. That event fires every time someone connects to a dataset through Analyze in Excel, Excel's Get Data, Tabular Editor, DAX Studio, or any XMLA client, and the payload includes the user UPN, dataset ID, workspace, and timestamp. The regular ViewReport event covers interactive report use.
The scalable option is the admin REST API GetActivityEvents (or Get-PowerBIActivityEvent in the MicrosoftPowerBIMgmt PowerShell module). Pull it on a daily schedule and store the output. You get the same events as the audit log in a form that is easy to build a semantic model on top of.
If you are on Fabric capacity and want ongoing visibility, Workspace Monitoring (now GA) captures every DAX query hitting the semantic model, including those from Analyze in Excel and XMLA clients. It writes to an Eventhouse so you can build your own usage report from it.
If this helped, a thumbs up and marking it as the solution would be appreciated.
Thanks,
Shai Karmani
Hi Shai_Karmani -Thank you for your quick response. Let me look into this and try to figure out if this works or not .