Skip to content

Data Freshness

How current the dashboard figures are, what the data-state notes under a panel mean, and how often MetaMiner rebuilds the figures.

How it works

Figures reach the dashboards in two stages:

  1. Collection. The MetaMiner Server (MMS) calls the Microsoft Power BI, Fabric and Graph APIs on a fixed cadence per collector and stores the results in the MetaMiner Database (MMDB). See Collection Processors.
  2. Rollup. Scheduled rollup jobs in the MMS turn the collected activity, refresh, licence and capacity data into daily and hourly summary tables. Most dashboard panels read these summaries, so a page loads in seconds even for a large tenant.

Inventory panels (workspaces, reports, datasets, datasources, gateways, labels, owners) read the collected data directly and show the current state. The date filter does not apply to them; the panel subtitle says so.

All dates and hours in the dashboards are UTC.

flowchart LR
  API[Microsoft APIs] -->|collectors| RAW[(Collected data)]
  RAW -->|rollup jobs| SUM[(Daily and hourly summaries)]
  SUM --> D[Dashboards]
  RAW -->|current state| D

The LIVE indicator

The top bar shows LIVE - last event landed with the age of the newest activity event in the MMDB (for example "4m ago"). Hover it to see the last change MetaMiner detected in the tenant. The dot turns to its stale style when the newest event is more than 45 minutes old, which means activity collection has paused or Microsoft has not yet published newer events.

Image of the Power BI Usage top bar with the LIVE chip and its tooltip 'Last change detected: ... on ...'

../images/dashboards/live-indicator.png

Data-state notes

When a panel cannot show complete, current data, it shows a note instead of, or under, the chart. The dashboards never fall back to a slower calculation; they tell you what they are serving.

State Note you see What it means What to do
ok none The requested range is fully covered and the summaries are current. Nothing.
no data in scope an empty chart, or a message such as "No activity events in the selected range." The query worked and found nothing for the chosen environments, capacities and dates. Widen the range or the filters.
no platform "Power BI usage analytics requires a configured Power BI environment. ..." or "No active Power BI environments are configured." No Power BI data in the MMDB, or every Power BI environment is disabled. Add an Environment or enable one.
not primed "Analytics data is being prepared for first use." The rollup job has not completed its first run. Wait for the first run; see the cadence below.
out of coverage "No analytics data for this range; coverage is from to to." The whole range lies outside the dates the summaries cover. Pick dates inside the coverage shown.
backfilling "Showing available data (from to to); the rest of the requested range is still being prepared." Part of the range is outside coverage. The panel shows the covered part. Wait, or narrow the range to the covered dates.
dirty "Recent source changes are being reprocessed; numbers may adjust." Late-arriving data changed dates in your range; the next run recalculates them. The panel still shows data. Reload after the next run (a few minutes).
stale "Data may be behind schedule (as of time UTC)." The last rollup run is older than its threshold, or it failed. The panel shows the last complete data. See Check the rollup jobs.

Some verdict labels (for example a waste or risk band) are withheld while the underlying data is degraded: "Verdicts withheld while serving data is degraded." or "View data does not cover this refresh window; waste verdict withheld."

Rollup jobs and cadence

Job Runs Feeds Stale after Threshold property
Power BI usage rollup Every 5 minutes (minute 1, 6, 11, ...) Activity and refresh figures on every page except Capacity 6 hours web.apps.pbiusage.silver.stale.hours
Licence-waste snapshot Every 6 hours, at 25 minutes past 01:00, 07:00, 13:00 and 19:00 Seat, waste, dormancy, never-active and adoption figures (Licensing, Executive) 26 hours web.apps.pbiusage.lw.stale.hours
Capacity metrics rollup Every 5 minutes (minute 2, 7, 12, ...) Capacity page 3 hours web.apps.pbiusage.fcm.stale.hours

The jobs run inside the MMS and only when at least one Power BI environment is enabled. Each run processes only the dates that changed since the previous run.

Data Upstream collection cadence History available
Activity events Every 10 minutes, in one-hour windows From about 28 days before the first collection (the Microsoft activity log keeps about 30 days). Summaries keep 180 days.
Refresh history Every 10 minutes From the first collection. Summaries keep 180 days.
Licences, users and groups (Microsoft Graph) Every 30 minutes; licence SKUs daily Daily snapshots kept 400 days
Fabric Capacity Metrics Hourly From 14 days before the first collection. Summaries keep 180 days.
Inventory (workspaces and their content) Changed workspaces every 5 minutes, full workspace list daily Current state

The maximum date range

A dashboard request may cover at most 92 days (web.apps.pbiusage.max.range.days). The Capacity page uses its own period presets up to 30 days.

Check the rollup jobs

If a panel says "Data may be behind schedule", check the last runs in Meta Query (MMC or web):

Last rollup runs
SELECT job_name, started, ended, status, error
FROM mms.silver_job_runs
WHERE job_name IN ('pbi-usage-rollup', 'pbi-license-waste', 'fcm-capacity-rollup')
ORDER BY started DESC
LIMIT 20;
Status Meaning
OK The run finished.
RUNNING The run is in progress.
ERROR The run failed; error holds the reason. Send it with a log bundle to support.
No rows at all for the Power BI jobs

The jobs run only when at least one Power BI environment is enabled, and they need rollup jobs to be enabled (they are by default; silver.jobs.enable=false in server\MetaMinerServer.properties turns them off). Check both, then restart the MetaMiner Server.

The jobs run OK but the activity figures stay old

The rollup can only summarise what was collected. Check the activity collector in Collection Problems and the LIVE indicator.