

- Description
- Poste d'aiguillage ferroviaire à côté d'un passage à niveau : un point de supervision du trafic.
- Source
- Hassocks5489 · original page
- Licence
- CC0 Public domain
Operations, Monitoring, and Capacity
This theme assesses the ability to keep the BI product running: scheduling and tracking refreshes, failure alerts, capacity monitoring (Capacity Metrics app…
In brief
This theme assesses the ability to keep the BI product running: scheduling and tracking refreshes, failure alerts, capacity monitoring (the Microsoft Fabric/Power BI Capacity Metrics app, activity logs, query logs), runbooks, incident management, service level objectives (SLOs), capacity planning. It complements IND (deliver) and comes before CST (pay fairly).
On this page
Level: 🟢→🔴 · Theme code: OPS
1. Why this theme#
A refresh that fails overnight means that in the morning, yesterday's numbers are presented as today's. A saturated capacity slows down or blocks all reports sharing it, including those not responsible (“noisy neighbor”). On Fabric/Premium capacity, consumption is smoothed over time; an unmanaged spike eventually triggers progressive throttling: first 20-second delays on new interactive operations, then their rejection, and finally rejection of all requests (Microsoft policy may change). Without monitoring, incidents are discovered through users.
2. What the theme measures#
- Axis: from users discovering outages to proactive operations with SLOs.
- Key indicators: refresh success rate; time to detect failure (MTTD); time to restore service (MTTR); average and peak capacity usage; observed vs promised freshness.
- Units: %, minutes, % of capacity units (CU).
3. The 5 levels#
| Level | Short name | Promise | Typical indicator (orders of magnitude) |
|---|---|---|---|
| 1 | Blind | Outages are discovered through users. | MTTD in hours; no alerts |
| 2 | Failure alerts | The team is notified of a refresh failure within the hour. | Failure notifications; MTTD < 1 h |
| 3 | Dashboard | Refresh, capacity, and usage health are visible at a glance. | Operations dashboard; success > 98% |
| 4 | SLOs and runbooks | Freshness and availability are committed and measured, and incidents follow a procedure. | Published SLOs; MTTR < 1 h on known incidents |
| 5 | Anticipated | Incidents are prevented through trend analysis, and capacity is adjusted before saturation. | Predictive alerts; 0 unanticipated throttling |
4. Milestones by level#
| ID | Milestone | Verifiable evidence |
|---|---|---|
| BI-OPS-1.1 | Refreshes are scheduled in the service | Visible schedule |
| BI-OPS-1.2 | An operations owner is appointed | Record |
| BI-OPS-1.3 | Support contact is known by users | Communicated channel |
| BI-OPS-2.1 | Failure notification sent to a group (not an individual) | Configured recipients |
| BI-OPS-2.2 | Refresh history is reviewed and retained | Log |
| BI-OPS-2.3 | Refresh time and window selected to avoid peaks | Load schedule |
| BI-OPS-2.4 | Last update date is visible in the report | Freshness indicator |
| BI-OPS-3.1 | Capacity Metrics app (or equivalent) installed and reviewed | Capacity usage report |
| BI-OPS-3.2 | Activity logs exported and kept beyond native retention | Log store |
| BI-OPS-3.3 | Operations dashboard: success, duration, data volume, usage | Operations report |
| BI-OPS-3.4 | Identification of most CU-consuming operations | Monthly top 10 |
| BI-OPS-3.5 | Tracking of model sizes and their growth | Tracking dashboard |
| BI-OPS-4.1 | SLOs defined per report (freshness, availability) | Document |
| BI-OPS-4.2 | Runbooks for typical incidents (gateway failure, expired token, changed schema) | Tested runbooks |
| BI-OPS-4.3 | Incident review (root cause, corrective action) | Reports |
| BI-OPS-4.4 | On-call or clear support window | Schedule |
| BI-OPS-4.5 | Capacity overrun procedure (prioritization, deferral, scale-up) | Procedure |
| BI-OPS-5.1 | Trend alerts (usage growth, slow degradation) | Tracked alerts |
| BI-OPS-5.2 | Sizing planned and reviewed every quarter | Report |
| BI-OPS-5.3 | Capacity adjusted automatically or by script (pause/resume, scheduled resizing) | Automation |
| BI-OPS-5.4 | Failure exercises (restore, failover) | Exercise report |
5. Detailed reading by level#
🟢 Level 1 — Blind#
- Signs: “it didn't refresh this morning,” and the email comes from sales leadership.
- Difficulty: 1/5 · Effort: 1/5.
🟢 Level 2 — Failure alerts#
- Signs: notifications sent to a group; history is checked when in doubt. Refreshes are scheduled outside peak hours.
- Benefit: MTTD reduced from several hours to less than one hour.
- Limit: a successful refresh can still load incomplete data (source not finished): failure alerts do not detect false success (TST).
- Difficulty: 2/5 · Effort: 2/5.
Symptom: refresh succeeds but numbers are from yesterday. Cause: upstream processing (datamart) not finished or replayed; model refresh read a partial state. Fix: trigger only when upstream processing ends (API-triggered refresh at end of pipeline), and display the latest data date.
🟡 Level 3 — Dashboard#
- Signs: an operations report (model based on activity logs, refresh history, Capacity Metrics) answers questions: how many refreshes failed this week? Which models consume the most? Which hours are saturated?
// Example (Log Analytics, if service logs are sent there — verify based on configuration)
PowerBIDatasetsWorkspace
| where OperationName == "QueryEnd"
| summarize P95_ms = percentile(DurationMs, 95), Nb = count() by ArtifactName, bin(TimeGenerated, 1h)
| order by P95_ms desc
- Benefit: decisions grounded in numbers.
- Limit: more reactive than proactive.
- Difficulty: 3/5 · Effort: 3/5.
In Capacity Metrics, distinguish interactive operations (visual queries, smoothed over at least 5 minutes, up to 64 minutes depending on consumption) from background operations (refreshes, smoothed over 24 h): a heavy overnight refresh impacts next-day capacity (smoothing).
🟡 Level 4 — SLOs and runbooks#
- Signs: “the sales report is fresh by 7:00 AM on weekdays, 99% of business days”; the runbook states what to do if the gateway stops responding or a source token expires. After an incident, a blameless review is written.
- Benefit: clear commitment, faster resolution.
- Limit: overly ambitious SLOs without resources = ignored SLOs.
- Difficulty: 4/5 · Effort: 4/5.
SFA common thread: freshness depends on a four-link chain (field app → sync → datamart → model). The “7:00 AM” SLO is the sum of each link's delays; display the timestamp of the latest field sync, not just the model's.
🔴 Level 5 — Anticipated#
- Signs: trend alerts (usage growth of +30% in three months), sizing reviewed every quarter, planned capacity pause/resume or resizing (Fabric F capacities; e.g., nighttime/weekend reduction when the business model allows), failure exercises.
- Benefit: no capacity surprises, better cost fit (CST).
- Limit: capacity automation requires fine-grained understanding of smoothing and billing; pausing capacity makes content unavailable.
- Difficulty: 5/5 · Effort: 5/5.
Separate, if budget allows, critical interactive loads (executive reports) from heavy processing loads (mass refreshes) across different capacities or distinct windows.
AI helps read logs, summarize an incident, and propose a runbook; it does not decide on costly resizing and does not see your service contract.
6. Partial achievement and rating#
Common rule. “A partial 5”: trend alerts set on capacity but not on per-report performance (BI-OPS-5.1 = 0.5), quarterly review actually performed (5.2 = 1), manual capacity (5.3 = 0), failure exercise done once (5.4 = 0.5).
7. Moving to the next level#
Possible means (optional):
| Transition | Possible levers |
|---|---|
| 1 → 2 | Failure alerts to a group; load plan |
| 2 → 3 | Capacity Metrics; activity log export; operations report |
| 3 → 4 | SLOs; runbooks; incident reviews; on-call |
| 4 → 5 | Trend alerts; capacity scripts; failure exercises |
Pitfalls:
- False positive: 100% refresh success with empty data.
- Goodhart: “short MTTR” achieved by closing tickets without root cause.
- Alert fatigue: too many notifications → no one reads them. Select, route, remove noise.
- Relying on a single point-in-time capacity measure: peaks are short; look at the distribution.
8. See also#
- Related themes: PRF · ETL · IND · CST · GOV
- Other matrices: DL — Observability and Reliability · DL — Deployment and Operations · PD — Operations and Support
- Content: OneLake + SaaS Mobile Apps: architecture · OneLake + SaaS Mobile Apps: Difficulties and Pitfalls · SQL Server in SaaS — architecture · Power BI Reporting Project Checklists
✻ Written by Claude Sonnet 5.5