jubinsoni's avatar
jubinsoni
Icon for Memorable Member rankMemorable Member
28 days ago
Status:
New

Include Analyze in Excel and XMLA queries in Usage Metrics for semantic models

Idea. Extend the built in usage metrics so they also cover direct semantic model access, including Analyze in Excel, Excel connections and other XMLA clients, and not only report and dashboard views.

Why. Many organizations have users who consume a semantic model directly from Excel instead of opening reports. The standard Usage Metrics report only shows report and dashboard consumption, so owners cannot easily see how many people use a model, who they are, or how many queries they run. Today this needs audit log exports or workspace monitoring.

Suggested behavior. A semantic model level view showing distinct users, active users over time, total queries, and the client application (for example Excel), available to workspace admins without extra setup.

Benefit. Better decisions about certification, capacity sizing, and retiring unused models.

Source thread (raised by another community member) https://community.fabric.microsoft.com/discussions/power-bi-web-app/x/5373339

1 Comment

  • jubinsoni's avatar
    jubinsoni
    Icon for Memorable Member rankMemorable Member

    Until usage metrics cover direct model access, there are a few places that can show who is querying a semantic model from Excel or other XMLA clients. These are pointers from the documented monitoring options; availability depends on your license and tenant settings.

    • Power BI activity log: events for external-tool access to a model can be pulled with the admin cmdlet and filtered by activity type.
    • Workspace monitoring or Azure Log Analytics integration: semantic model query events include the client application name, so Excel and other XMLA tools can be told apart from report queries.
    • Capacity Metrics app: shows which models drive load on the capacity, even though it does not name the client.
    # Requires Power BI admin rights
    Connect-PowerBIServiceAccount
    Get-PowerBIActivityEvent -StartDateTime "2026-10-01T00:00:00" -EndDateTime "2026-10-01T23:59:59" -ResultType JsonString |
      ConvertFrom-Json |
      Where-Object { $_.Activity -like "*Analyze*" } |
      Select-Object UserId, Activity, DatasetName, CreationTime

    The activity name can differ by tenant and API version, so it is worth listing distinct values of the Activity field first.

    So my overall approach would be:

    Who  -> activity log filtered to Analyze / external application events
    What -> workspace monitoring query events grouped by application name
    Load -> Capacity Metrics app for the heaviest models

    AI-assisted drafting: AI was used to help structure and phrase this response. I reviewed and validated the technical content before posting.