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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
JoyH
Helper I
Helper I

Detailed usage metrics (report operations and filters)

Hello!  

 

I have embedded a report into my application. It has 4 pages and 30 visuals. 

 

I have set up the Capacity Metrics app and I've made a copy of the report's Usage Metrics.

JoyH_1-1710440766653.png

 

JoyH_0-1710440691380.png

 

Both are OK, but I really need to delve into how our users are interacting with the reports. Specifically, I need to see

1. which report pages they are visiting (This is available in the Usage Metrics report but I'm not sure how they are getting it into the semantic model)
2. which visuals they are interacting with (drilling/clicking)
3. which slicers and filters they are using

 

Does anyone know how I would find those 3 datapoints?

 

I have started a very simple KQL query below.

 

PowerBIDatasetsWorkspace
| where TimeGenerated > ago(1h)
// | where OperationName == "VertiPaqSEQueryBegin"
| where ArtifactName == "Dashboard_PRODUCTION"
| project TimeGenerated, OperationName, OperationDetailName, ExecutingUser, Identity, ApplicationContext, EventText

 

1 ACCEPTED SOLUTION
JoyH
Helper I
Helper I

Figured it out. Posting in case it helps someone else some day.

 

KQL:

 

PowerBIDatasetsWorkspace
| where TimeGenerated > ago(3h)
| where OperationName == "QueryEnd"
| where ArtifactName == "Dashboard_PRODUCTION"
| extend ParsedContext = parse_json(ApplicationContext)
| extend ParsedIdentity = parse_json(Identity)
| project ReportId = ParsedContext.Sources[0].ReportId, VisualId = ParsedContext.Sources[0].VisualId, TimeGenerated, EventText, ParsedIdentity.effectiveClaims.upn, Role = tostring(ParsedIdentity.effectiveClaims.roles[0])

 

I also loaded the .PBIP report.JSON file into PowerBI and parsed the visualID and visualName (had to make sure all the visuals had a good name in the Selection pane). 

 

Join visualID to VisualId and voilà, I can see the visual by user usage. Now I'm seeing if there are multiple EventTexts (DAX query) for that visual for that session... which will indicate user action.

 

If anyone has already done this work and has a PBIT they'd like to share, stop me now 🙂

View solution in original post

1 REPLY 1
JoyH
Helper I
Helper I

Figured it out. Posting in case it helps someone else some day.

 

KQL:

 

PowerBIDatasetsWorkspace
| where TimeGenerated > ago(3h)
| where OperationName == "QueryEnd"
| where ArtifactName == "Dashboard_PRODUCTION"
| extend ParsedContext = parse_json(ApplicationContext)
| extend ParsedIdentity = parse_json(Identity)
| project ReportId = ParsedContext.Sources[0].ReportId, VisualId = ParsedContext.Sources[0].VisualId, TimeGenerated, EventText, ParsedIdentity.effectiveClaims.upn, Role = tostring(ParsedIdentity.effectiveClaims.roles[0])

 

I also loaded the .PBIP report.JSON file into PowerBI and parsed the visualID and visualName (had to make sure all the visuals had a good name in the Selection pane). 

 

Join visualID to VisualId and voilà, I can see the visual by user usage. Now I'm seeing if there are multiple EventTexts (DAX query) for that visual for that session... which will indicate user action.

 

If anyone has already done this work and has a PBIT they'd like to share, stop me now 🙂

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

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

Top Kudoed Authors