clement13.net
Original photo: Poste d'aiguillage ferroviaire à côté d'un passage à niveau : un point de supervision du trafic.
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
Original photo, unretouched. The background is a version of it stylised by the site.

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…

Guide≈ 6 min readCheckedCheck doneFacts, figures and references were checked against the sources cited in the page.Written with AI assistance; sources are cited at the bottom of the page. An error? Report it via clement13.net.Reading
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.
⚠️ Pitfall

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.
💡 Expert tip

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.
🧪 Example

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.
✅ Good practice

Separate, if budget allows, critical interactive loads (executive reports) from heavy processing loads (mass refreshes) across different capacities or distinct windows.

🤖 AI

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#

✻ Written by Claude Sonnet 5.5