- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Service statistic on Page usage
Dear colleagues,
My objective here is to build a report and semantic model that goes behind the classic "power bi usage reports".
As of know, we are using the following Activity Log (https://learn.microsoft.com/fr-fr/power-bi/guidance/admin-activity-log#example-1-authenticate-with-t...), but there is no detail of the Report page people view.
Is there any way to go below, and add the details of the page the report is looking at.
Thanks for you help !
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi again,
When you turn on logging to Log analytics workspace in Power BI it will log almost everything.
You can customize the extract, so it returns exactly what you want. In my project I use this KQL:
PowerBIDatasetsWorkspace
| where TimeGenerated >= startofday(ago(1d)) and TimeGenerated < startofday(ago(0d))
| extend ParsedContext = parse_json(ApplicationContext)
| extend DatasetId = tostring(ParsedContext.DatasetId)
| where isnotempty(DatasetId)
| extend ReportId = tostring(ParsedContext.Sources[0].ReportId)
| extend VisualId = tostring(ParsedContext.Sources[0].VisualId)
| extend UserSession = tostring(ParsedContext.Sources[0].HostProperties.UserSession)
| where isnotempty(UserSession)
| extend DateTime = bin(TimeGenerated, 1m)
| extend Date = format_datetime(TimeGenerated, 'yyyy-MM-dd')
| summarize Sessions = dcount(UserSession) by
Date,
DateTime,
PowerBIWorkspaceId,
PowerBIWorkspaceName,
DatasetId,
ReportId,
VisualId,
ExecutingUser,
UserSession
Then you can connect this to the ActivityEvent API if you like. The KQL returns:
As you can see, this returns one row for each sessionid pr visual id that the end user have visited 🙂 This is just what you want.
Br
Marius
Br
Marius
BI Fabrikken
www.bifabrikken.no
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
If you think my answer provided some kind of a soulition, please consider accepting it as soulition and click the button. I also greatly appreciate if you give me a kudos 🙂
Br
Marius
Br
Marius
BI Fabrikken
www.bifabrikken.no
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Thanks for you feedback.
but here it seems like we are discussing the Metadata not the activity log (xxxx@gmail.com views the page xxx of the report yyy), isn 'it ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi again,
When you turn on logging to Log analytics workspace in Power BI it will log almost everything.
You can customize the extract, so it returns exactly what you want. In my project I use this KQL:
PowerBIDatasetsWorkspace
| where TimeGenerated >= startofday(ago(1d)) and TimeGenerated < startofday(ago(0d))
| extend ParsedContext = parse_json(ApplicationContext)
| extend DatasetId = tostring(ParsedContext.DatasetId)
| where isnotempty(DatasetId)
| extend ReportId = tostring(ParsedContext.Sources[0].ReportId)
| extend VisualId = tostring(ParsedContext.Sources[0].VisualId)
| extend UserSession = tostring(ParsedContext.Sources[0].HostProperties.UserSession)
| where isnotempty(UserSession)
| extend DateTime = bin(TimeGenerated, 1m)
| extend Date = format_datetime(TimeGenerated, 'yyyy-MM-dd')
| summarize Sessions = dcount(UserSession) by
Date,
DateTime,
PowerBIWorkspaceId,
PowerBIWorkspaceName,
DatasetId,
ReportId,
VisualId,
ExecutingUser,
UserSession
Then you can connect this to the ActivityEvent API if you like. The KQL returns:
As you can see, this returns one row for each sessionid pr visual id that the end user have visited 🙂 This is just what you want.
Br
Marius
Br
Marius
BI Fabrikken
www.bifabrikken.no
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I have started on this project myself, and its not strait forward, but doable.
First you need to do is enable logging to Log analytics:
Log analytics fetch the visual id. To map this the correct page you need to use an api to Get report definition:
Im using notebook and a Python script to convert the respons:
"payload": "base64 encoded string
I save this json respons to a file on onelake and Then use a new pythoncript to scan and Get all the visual id and wich page it belongs to.
Then at last I load the kql query from log analytics with the relevant info and map it to the Python extraction in power bi and create a report.
As I said, not Strait forward but doable.
Br
Marius 🙂
Br
Marius
BI Fabrikken
www.bifabrikken.no

Helpful resources
Join us at the Microsoft Fabric Community Conference
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Power BI Monthly Update - February 2025
Check out the February 2025 Power BI update to learn about new features.

Subject | Author | Posted | |
---|---|---|---|
12-05-2024 06:59 AM | |||
11-07-2024 04:30 AM | |||
11-15-2024 12:36 AM | |||
10-14-2024 03:19 PM | |||
03-24-2019 04:38 AM |
User | Count |
---|---|
12 | |
3 | |
3 | |
2 | |
2 |