Forum Discussion
Monitor dataset refresh
- 30 days ago
Hi sandlox
Since it's a Pro workspace, workspace monitoring is out — it requires "the workspace is assigned to a Power BI Premium or a Fabric capacity." Lakehouse/Warehouse, Semantic Link and Activator are Fabric capacity items too, so the REST API is the right route.Start here first (five minutes, no build): on each model, Settings → Refresh, keep the owner notification on and add your team to the failure-notification contacts box. Recipients must have accounts in your Entra tenant. Note that "refreshes triggered programmatically such as through Power Automate don't trigger email notifications" — worth knowing before you automate anything.
If you need history and trends:
- Register a service principal, enable Allow service principals to use Power BI APIs, and add it to the workspace as Member or Admin — the API requires it ("Caller must have Write permissions on the dataset").
- Call GET /v1.0/myorg/groups/{groupId}/datasets/{datasetId}/refreshes?$top=60.
- Run it daily. The API keeps "between 20-60 available refresh history entries… depending on the number of refreshes in the last 3 days" — roughly a 3-day window at Pro's 8 refreshes/day. Append-only; anything you miss is gone.
- Land it somewhere Pro-friendly: a SharePoint list (free with M365, supported Power BI source) or Azure SQL.
- Report on success rate, duration, hours since last success, and consecutive failures. Add a hand-maintained expected-schedule table — it's the only way to catch a refresh that never started, which no failure alert will tell you.
One caveat on Power Automate: the Power BI connector has no refresh-history action, so you'd need HTTP with Microsoft Entra ID, a Premium connector. A scheduled PowerShell or Python script avoids that licence.
- https://learn.microsoft.com/power-bi/connect-data/refresh-data
- https://learn.microsoft.com/rest/api/power-bi/datasets/get-refresh-history
- https://learn.microsoft.com/fabric/fundamentals/enable-workspace-monitoring
- https://learn.microsoft.com/power-bi/developer/embedded/embed-service-principal
Thanks,
C Srikanth
Community Support Team
Hello sandlox
Pull the data from the Refresh History REST API (or Semantic Link in a Fabric notebook), using a service principal.
If you're on Fabric/Premium, Workspace Monitoring gives deeper detail.
Store the history in a Lakehouse or Warehouse on a schedule, appending each time. The API only keeps recent refreshes, so this is needed for trends.
Model it as a star schema: a refresh fact table plus dataset, workspace, capacity, and date dimensions. Include expected schedules and SLAs so you can catch missed refreshes, not just failed ones.
Track key measures: success rate, data age vs. SLA, duration vs. baseline, consecutive failures, concurrent refreshes, and top errors.
Build the report with an overview health matrix (worst-first), trends, failure drill-through, and a capacity view.
Add alerts through Activator or Power Automate to Teams or email, so you don't depend on people opening the report.
Keep it maintainable: monitor the monitor, apply RLS for workspace owners, and later add dataflows and pipelines for upstream lineage.
Are your datasets on Fabric/Premium capacity or Pro? That decides whether Workspace Monitoring is an option.
If my response helped you, please consider clicking
Accept as Solution and giving it a Like – it helps others in the community too.
Thanks,
Connect with me on:
LinkedIn |
Data With Pankaj - YouTube