Domain 3 · 30–35%

Monitor Fabric items

Monitor and optimize an analytics solution

4 measured skills Blueprint Jul 2026
Install on your phone · read offline

iPhone: Open this address in Safari, tap Share, then Add to Home Screen. Enable Open as Web App if shown.

Android: Open this address in Chrome, then use its menu to Install app or Add to Home screen.

Preparing offline reading…

Use the same address each time. Progress and self-checks stay in this browser or installed app; they do not sync between devices. Clearing browser storage removes downloads and saved progress.

Monitor Fabric items

Monitoring turns execution into evidence. Start with a service objective, then collect signals that distinguish freshness, correctness, reliability, and efficiency. A green “Succeeded” state proves execution completion—not data quality.

Objective coverage

Measured objective Evidence to inspect
Monitor data ingestion Run state, rows/bytes, throughput, latency, watermark, lag, and rejected records
Monitor data transformation Activity/query/job status, duration, resources, input/output counts, and quality results
Monitor semantic model refresh Refresh status, type, duration, partition/table detail, and failure message
Configure alerts Signal, threshold, evaluation cadence, recipient/action, suppression, and recovery

Monitor data ingestion

Use the Fabric Monitoring hub for a cross-workspace view of supported job runs, then drill into the owning item for activity-level detail. For pipelines, inspect input/output, activity duration, copy throughput, integration runtime/gateway, and error details. For Eventstreams/Eventhouse, inspect incoming-event rate, processing lag, rejected events, destination status, and ingestion failures.

Define freshness as an observable equation:

freshness lag = observation time - newest successfully published business event time

This is more useful than “last run succeeded.” Also compare rows read, rows written, rows rejected, and source control totals. Track the last committed watermark independently from the current attempt.

Monitor data transformation

The right signals depend on the engine:

Item Operational evidence
Dataflow Gen2 Refresh status, duration, query/destination failures, and destination results
Notebook/Spark job Application/session state, stage/task failures, executor behavior, skew/spill, and output checks
Pipeline Activity graph, dependency path, retries, parameters, copy metrics, and child-run IDs
Warehouse/Eventhouse query Duration, resource use, scanned data, queuing, and query text/plan context

Attach data assertions to the run: uniqueness, null rate, referential integrity, allowed ranges, schema contract, and reconciliation totals. Store a small quality result containing rule, severity, observed value, threshold, run ID, and disposition.

Monitor semantic model refresh

Semantic model refresh is downstream of ingestion and transformation. Use refresh history or the administrative refresh summary to see status, start/end time, refresh type, and error detail. For large models, inspect table/partition behavior and whether incremental refresh covers the intended date range.

Classify failures before acting: expired credentials, gateway unavailable, capacity pressure, source timeout, schema change, memory pressure, or invalid query. A retry can help transient capacity/network faults; it does not repair a renamed source column.

End-to-end freshness is governed by the slowest required stage:

source event -> ingestion -> transformation -> semantic refresh -> consumer-visible data

Configure alerts

An actionable alert specifies the signal, threshold, evaluation window, recipient, action, deduplication/suppression, and recovery condition. Fabric Activator can evaluate events or periodic observations and trigger actions such as notifications or Power Automate flows.

Prefer sustained conditions over noisy single samples: “freshness lag exceeds 30 minutes for two evaluations” is usually better than “one run lasted 31 minutes.” Route alerts to an owner who can act, include item/run identifiers and a runbook link, and test both firing and recovery.

Alert Why it matters First diagnostic
No successful ingestion by cutoff Consumer SLA at risk Trigger/run history and source availability
Rejected-row rate above threshold Correctness degraded Quality rule and source sample
Semantic refresh failed Published model is stale Refresh detail and upstream completion
Streaming lag rising continuously Backpressure or destination issue Input/output rate and resource saturation

Monitoring model: outcome, execution, resource

Every production data product needs three layers of evidence. Outcome asks whether the published data is fresh, complete, valid, and available. Execution asks whether the pipeline, refresh, query, or stream ran as designed. Resource asks whether capacity, compute, gateway, network, source, or destination limited it. Monitoring hub is an entry point for supported jobs; item run detail and workspace monitoring provide deeper execution evidence; the Capacity Metrics app provides capacity evidence. None alone proves the business outcome.

Define a service-level indicator with an owner and unit, then a target and measurement window. Examples include “99% of hourly partitions published within 20 minutes,” “fewer than 0.1% rejected records per daily load,” or “semantic model ready by 07:00 on business days.” Record UTC timestamps plus business time-zone meaning, stable item/run IDs, source version/watermark, code version, and target version so evidence can be correlated.

Ingestion monitoring field guide

Monitor batch ingestion as a control equation: selected source rows/files = accepted + quarantined + explicitly ignored, and accepted should reconcile to the target application semantics. Record bytes/rows read and written, files, duration, throughput, watermark range, retries, rejects, and publish time. For streaming, add input and processed rates, end-to-end/event-time lag, backlog, late or dropped events, state size, checkpoint progress, destination failures, and newest published event time.

Procedure: open Monitoring hub, filter to item/status/time, capture the run ID, then drill into pipeline Copy details, Eventstream graph, Eventhouse ingestion, or Spark progress. Compare with source controls and target counts rather than reading “Succeeded” in isolation. A run identity needs access to monitoring and the item; sensitive payloads should not be copied into broadly accessible logs. Retain enough history to compare the same hour/day and detect gradual drift.

Worked incident. A pipeline reports success and copied one million rows, but the source control total is 1.05 million. The watermark advanced. Evidence shows 50,000 conversion rejects that the job treated as tolerated. Operational success is green; completeness is red. Freeze or correct the watermark according to the replay design, repair the mapping, replay the bounded interval, reconcile, and add a reject-rate alert. Do not rerun the entire source blindly.

Troubleshoot freshness by finding the oldest boundary that is late: source availability, trigger/start queue, extraction, transfer, transform, target commit, or consumer publish. Mini-lab: create a run record with read/written/ rejected counts and watermark; inject one missing file and one slow destination; show which metrics distinguish completeness failure from throughput failure.

Transformation monitoring field guide

A transformation is healthy only when code ran, output meets its contract, and resource cost remains acceptable. For Dataflow Gen2, examine refresh start, status, duration, submitter/capacity, failing query/step, rows or bytes where reported, detailed logs, and destination results. For notebooks/Spark jobs, examine application, stage and task distribution, shuffle/spill/skew, executor loss, input/output, and assertions. For SQL/KQL, retain query/request ID, duration, scanned data, queue/resource evidence, plan/query context, and result validation.

Attach a quality result table to every curated output:

run_id | dataset | rule_id | severity | evaluated | failed | threshold | disposition

Rules include schema, uniqueness, required values, range/domain, referential integrity, timeliness, and reconciliation. Use a warning only when the documented disposition allows publish; otherwise fail before replacing the last known-good output. Protect quality samples because they may contain sensitive values.

Scenario. A Dataflow duration doubles but output counts remain correct. Drill into source scan/bytes and folding evidence, destination write, gateway, and capacity rather than treating it as data corruption. A notebook whose median task is 20 seconds but one task is 12 minutes suggests skew; adding executors may not fix one oversized partition. Mini-lab: set an allowed null-rate threshold, run one pass below it and one above it, and verify publish, evidence, and alert behavior match the declared severity.

Semantic-model refresh field guide

Refresh monitoring begins with refresh history for the model and refresh summaries for administrative scope where authorized. Capture model/workspace, refresh ID or time, trigger type, status, start/end/duration, table/partition detail, error, gateway/connection context, and capacity evidence. Distinguish full, incremental/partition, and metadata-only behaviors as applicable. The refreshing identity needs model and source/connection rights; broad workspace Admin is not the default repair.

Trace consumer freshness backward. A model can refresh successfully from a stale warehouse, so compare the upstream published watermark with the model's source boundary and a consumer-visible maximum business timestamp. Incremental refresh must include the intended partitions and handle late changes according to policy. A renamed source column is deterministic and should be repaired; a temporary gateway or capacity fault may justify bounded retry.

Worked incident. The 06:30 model refresh succeeds, but the dashboard still shows yesterday. Refresh detail confirms every partition completed. The warehouse publish watermark is also yesterday because upstream ingestion missed its cutoff. The correct alert is end-to-end freshness, not another semantic refresh. Mini-lab: document a source → lakehouse → warehouse → semantic model chain, deliberately stale one boundary, and prove which timestamp identifies the first stale stage.

For long refreshes, compare historical duration, table/partition time, source query, gateway, capacity throttling, model size, and concurrent operations. For failure, preserve the exact message and refresh context before retry. Validate both failure and recovery; an alert that never resolves creates permanent noise.

Alert engineering field guide

An alert contract contains signal and unit, scope, threshold, evaluation window, minimum duration/consecutive evaluations, schedule, severity, owner, delivery channel or action, deduplication key, suppression/cooldown, recovery condition, and runbook. Use Activator where its event/condition/action model fits; use workspace monitoring queries plus supported alert/action mechanisms where log-derived conditions are required. Recipients need access to enough context to act, but alerts should not disclose credentials or raw sensitive records.

Choose symptoms close to user impact: missed freshness cutoff, sustained lag, failed required refresh, or quality threshold. Pair them with diagnostic signals but avoid paging on every retry. Static thresholds fit contractual cutoffs; rate-of-change or historical baselines fit gradual deviations. Route warning and critical differently. Require acknowledgment/escalation for critical alerts and define maintenance suppression.

Worked alert. Evaluate every five minutes: if consumer freshness lag exceeds 30 minutes for two consecutive evaluations, create one incident keyed by dataset, notify the data-operations group, attach newest source and publish timestamps plus last run ID, and link the freshness runbook. Recover only after lag is below 15 minutes for two evaluations. This hysteresis prevents flapping. Test with synthetic late data, verify exactly one firing, inspect the action, restore freshness, and verify recovery.

If an alert does not fire, check signal production, time field/window, condition, enabled state, permissions, action connection, and suppression. If it fires too often, compare raw values and evaluation history before raising the threshold. Mini-lab: design one failed-run alert and one freshness alert for the same pipeline; explain why they can legitimately disagree.

Monitoring hub centralizes supported job status; item views expose engine detail; workspace monitoring stores supported log-level evidence; Capacity Metrics explains CU use and throttling; Purview Audit records user/admin activity; OneLake diagnostics records data access. “Succeeded” is execution evidence, freshness is outcome evidence, and retry is a response only to a classified transient fault.

Recall. What equation detects silently rejected ingestion rows? Why can a semantic refresh succeed while a dashboard is stale? Which metrics distinguish Spark skew from general capacity pressure? What fields make a quality assertion auditable? Why use hysteresis for recovery? For practice, write one outcome, execution, and resource signal for pipeline, Dataflow, notebook, Eventstream, and semantic model; identify the authoritative screen/log for each.

Monitoring scenario drills

Green run, stale consumer

The latest pipeline and semantic-model refresh both succeeded, but the dashboard is four hours stale. Compare newest business timestamp at source, committed ingestion watermark, curated publish timestamp, refresh source boundary, and consumer-visible maximum. The first boundary that stops advancing owns the initial investigation. A green downstream job may have consumed stale upstream data correctly.

Alert on end-to-end freshness by dataset and cutoff, while retaining failed-run alerts for execution diagnosis. Include last run IDs and stage timestamps. This pair distinguishes “job failed” from “no fresh data arrived.”

Rising stream lag with no failures

Input increases from 5,000 to 12,000 events/sec; output remains 7,000 and lag grows. Examine boundary rates, micro-batch duration, state/shuffle, destination latency, Eventhouse ingestion, and capacity. The absence of a red status does not mean the service objective is healthy. Estimate time to exhaust backlog under current rates and trigger before consumer freshness breaches.

After tuning or scaling, verify output eventually exceeds input long enough to drain backlog, no events were dropped, and cost remains acceptable. Recovery is not merely the moment input falls.

Dataflow regression after a source release

Refresh duration triples immediately after a source deployment. Output remains correct. Compare folding indicators/native query, source rows/bytes, gateway route, query steps, destination metrics, and capacity. A new source view or type can prevent folding without generating an error.

Record baseline and changed source/code versions. Repair foldability or move selective operations earlier, then compare equivalent loads. Add a duration or scan-volume anomaly alert only after understanding expected variation.

Alert fires but nobody can act

An email says “pipeline failed” with no workspace, item, run ID, owner, or runbook. The signal is technically correct and operationally weak. Redesign it with dataset/item, environment, severity, failure/freshness context, correlation ID, first diagnostic link, owner group, escalation, suppression key, and recovery condition. Keep sensitive parameters and payloads out.

Test delivery during staffed and after-hours paths, duplicate failure retries, maintenance suppression, and recovery. An alert is complete only when the intended responder can locate and classify the incident.

Capstone: the 06:00 operations review

You are the on-call analytics engineer. Executives expect the sales dashboard by 06:00. The chain is source close → pipeline ingestion → Dataflow cleanup → Spark enrichment → warehouse publish → semantic refresh. Shipment events supply a separate live tile. Build a five-minute review that finds risk before the user does.

Review order

Start with the outcome: newest consumer-visible sales business date/time and live shipment lag. Compare each with its service objective. Then inspect the stage boundary timestamps and committed watermarks. Only after locating the first stale boundary drill into execution and resource evidence. This prevents spending the whole review on one slow but noncritical activity.

Use Monitoring hub for supported run overview; pipeline/activity detail for resolved runs and copy metrics; Dataflow refresh history/logs for query and destination; Spark application/UI for stages and skew; warehouse query/monitor for publish; semantic refresh history/summary for tables and partitions; Eventstream/Eventhouse monitoring for rate, lag, invalid events, ingestion and queries; and Capacity Metrics for shared throttling/CU context.

Morning evidence board

Record a small operational table:

dataset | source_ready | ingested_to | curated_to | model_to | consumer_to
        | status | run_id | rejects | freshness_lag | owner

For streaming add input rate, output rate, backlog/lag, late/invalid count, and destination. For quality add evaluated and failed per critical rule. This table contains references and aggregates, not raw sensitive payloads.

Three observations

  1. Sales ingestion succeeded to 05:40, Dataflow succeeded, but semantic model is at 04:00. Refresh detail shows incremental partitions excluded the newest boundary. Correct refresh policy/partition and retest; do not rerun ingestion.
  2. Shipment input is 9,000/sec and output 6,000/sec with rising lag, no failure. Inspect operator/destination and capacity; alert on sustained lag because status alone is green.
  3. Customer rejects rise from 0.02% to 4% after a source release. Stop publish under the quality contract, preserve last known-good output, investigate schema/type change, and communicate freshness impact.

Alerts and handoff

Create distinct alerts for missed freshness cutoff, required job failure, critical quality breach, sustained stream lag, and capacity throttling. Each contains environment, dataset/item, current/threshold value, time window, run/request ID, owner and runbook, deduplication, escalation, and recovery. Suppress maintenance deliberately, not by muting broad channels.

The review is successful when it identifies the first stale/failing boundary, distinguishes outcome from execution and resource, preserves correlation IDs, routes to an accountable owner, and verifies recovery at the consumer. A ticket closed after rerun is insufficient if the source-to-consumer timestamp or quality control remains wrong.

Exam distinctions

  • Monitoring hub gives centralized visibility; item detail provides engine-specific evidence.
  • Execution success is not data-quality success.
  • Audit logs record user activities; monitoring logs record workload execution; OneLake diagnostics records access events.
  • Alerts notify or act on conditions; they do not diagnose root cause automatically.
  • Refresh history describes the semantic-model operation, not whether upstream data is complete.

Active recall

  1. Which metric proves consumer-visible freshness better than last run status?
  2. Why compare rows read, written, and rejected?
  3. Where do you begin for a cross-workspace job view?
  4. Which semantic refresh failures should not be retried unchanged?
  5. What makes an alert actionable instead of noisy?

Authoritative sources

Read · Try · Explain · Revisit

Practice this chapter

Original learning activities, grounded in the chapter and Microsoft documentation. These are not official exam questions.

Your self-checks measure practice, separately from reading progress. Answers stay in this browser; no AI grading or account is used.

Monitor data ingestion

Reconcile every selected input to an explicit disposition.

Not attempted

Monitor data transformation

Execution success and quality acceptance are separate gates.

Not attempted

Monitor semantic model refresh

Trace freshness upstream from the consumer to the first stale boundary.

Not attempted

Configure alerts

An actionable signal needs an owner, persistence rule, and recovery behavior.

Not attempted
Explore 1 diagram & 2 worked examples

Three kinds of health evidence

A diagnostic order rather than a data pipeline: start with the consumer outcome, then gather execution and resource evidence.

  1. OutcomeIs the required business date fresh, complete, and valid?
  2. ExecutionWhich run, refresh, or query produced the observed result?
  3. ResourceWas delay caused by source, queue, compute, gateway, or destination?
  4. ActionApply the publication rule and route an actionable alert to its owner.

Worked example · balance the dispositions

Fixture contract: each of 1,000 selected rows receives exactly one recorded disposition. Accepted = 970; quarantined = 20.

  1. Calculate

    1,000 − 970 − 20 = 10 rows without a recorded disposition.

  2. Investigate

    The job’s deduplication step reports 10 exact repeats, verified against the source identities.

  3. Record

    Add explicitly ignored duplicates = 10; the input disposition equation now balances.

  4. Validate target

    Separately reconcile accepted rows to the target’s insert/update semantics and apply quality thresholds.

Expected result. Balanced counts establish accounting under this contract; they do not alone establish every business value is correct.

Check your reasoning. Why might accepted input count differ from inserted target-row count during an upsert?

Worked example · follow the stale boundary

Fixture: the model refresh ends at 06:30; its maximum business date and the warehouse publication date are both yesterday.

  1. Consumer

    Confirm the displayed date is a real freshness issue, not an intended filter.

  2. Model

    Inspect the refresh scope and source boundary; successful processing used yesterday’s warehouse output.

  3. Upstream

    The warehouse’s upstream run never started. Investigate scheduling or readiness and recover the missing business date.

  4. Restore

    Validate the newly published warehouse data, then refresh the required model scope and verify the consumer date.

Expected result. The recovery addresses the first stale boundary rather than repeating downstream refreshes against unchanged data.

Check your reasoning. Which cutoff alert could have detected this before a consumer opened the dashboard?

Try a scenario

0 of 6 self-checked
1Green run, missing rowsNot attempted

Monitor data ingestion

A run selects 1,000 rows, writes 970, and quarantines 20. Can a success status establish completeness?

Show a hint

Reconcile every selected input to an explicit disposition.

Reveal worked explanation

No. Ten rows remain unexplained under this fixture’s one-input-one-disposition contract. Inspect filtered or ignored counts and target semantics, then block publication if the completeness rule requires it. Capture the source boundary and run ID so the gap is reproducible.

Watch for this misconception. A successful activity is execution evidence, not a completeness proof.

Which points did your original answer include?

This is your assessment against the key points, not an automated correctness score or exam-readiness prediction.

Change one condition

What if the remaining 10 are documented exact duplicates?

Reveal the variant explanation

Record them as explicitly ignored and verify the deduplication rule; the disposition equation then balances.

Revisit the chapter: monitoring foundation Microsoft references: Use the Monitoring hub ↗
2Where did the hour go?Not attempted

Monitor data ingestion

An hourly product is late. The source was ready at 10:00, the run started at 10:40, and transfer took three minutes. Which boundary deserves attention first?

Show a hint

Split end-to-end delay into source, queue, execution, and publication time.

Reveal worked explanation

Investigate the forty-minute start delay using trigger and queue evidence before tuning a three-minute transfer. Confirm the remaining transformation and publish boundaries too, and compare against the business freshness target.

Watch for this misconception. A late dataset does not always indicate slow copying.

Which points did your original answer include?

This is your assessment against the key points, not an automated correctness score or exam-readiness prediction.

Change one condition

What if the run started immediately but destination writes took forty minutes?

Reveal the variant explanation

Move the investigation to destination throughput or contention, preserving the same end-to-end measurement.

Revisit the chapter: monitoring foundation Microsoft references: Use the Monitoring hub ↗
3Successful refresh, failed quality ruleNot attempted

Monitor data transformation

A Dataflow refresh succeeds, but 3% of required keys are null against a 1% stop threshold. What should publication do?

Show a hint

Execution success and quality acceptance are separate gates.

Reveal worked explanation

Hold publication according to the declared threshold and retain rule-level evidence tied to the refresh. Inspect the responsible transformation and source change, repair it, and validate output before replacing the accepted product.

Watch for this misconception. A green refresh does not overrule the data contract.

Which points did your original answer include?

This is your assessment against the key points, not an automated correctness score or exam-readiness prediction.

Change one condition

What if the null rule is explicitly advisory for this product?

Reveal the variant explanation

Publish only under that documented disposition and surface the warning; do not silently redefine severity during the incident.

4Yesterday’s successful dashboardNot attempted

Monitor semantic model refresh

The semantic refresh finishes at 06:30, but the warehouse’s latest published business date is yesterday. What should you inspect before rerunning the model?

Show a hint

Trace freshness upstream from the consumer to the first stale boundary.

Reveal worked explanation

Confirm the model’s data scope, then inspect the warehouse publication and upstream ingestion boundary. If the source remains stale, another model refresh simply rereads it. Restore the upstream product and refresh the intended model scope after validation.

Watch for this misconception. Refresh completion time is not the same as business-data freshness.

Which points did your original answer include?

This is your assessment against the key points, not an automated correctness score or exam-readiness prediction.

Change one condition

What if the warehouse is current but one model partition is stale?

Reveal the variant explanation

Investigate the model’s refresh scope and partition history instead of blaming upstream ingestion.

Revisit the chapter: monitor semantic comprehensive Microsoft references: Refresh summaries ↗
5One incident, sixty notificationsNot attempted

Configure alerts

A lag condition remains true for an hour and sends a notification every minute. What should the alert design specify?

Show a hint

An actionable signal needs an owner, persistence rule, and recovery behavior.

Reveal worked explanation

Define a meaningful threshold and evaluation window, route to an accountable responder, and use supported suppression or deduplication behavior. Include context and a recovery signal. Test a sustained fault, a brief spike, and recovery so noise reduction does not hide outages.

Watch for this misconception. More notifications do not necessarily improve detection or response.

Which points did your original answer include?

This is your assessment against the key points, not an automated correctness score or exam-readiness prediction.

Change one condition

What if the condition clears for one sample and immediately returns?

Reveal the variant explanation

Consider a stability or recovery window appropriate to the service and verify the chosen alert mechanism supports it.

Revisit the chapter: alerts comprehensive Microsoft references: What is Fabric Activator? ↗
6The stream stops completelyNot attempted

Configure alerts

An alert only evaluates high temperature when an event arrives. A device stops sending events. Why might this need another signal?

Show a hint

Value anomalies and absence of observations are different conditions.

Reveal worked explanation

Design a freshness or heartbeat check against the expected reporting interval. Make the no-data state visible with its own owner and recovery rule using a supported monitoring mechanism. A temperature condition alone cannot prove the device is still reporting.

Watch for this misconception. No high readings does not imply that the sensor is healthy.

Which points did your original answer include?

This is your assessment against the key points, not an automated correctness score or exam-readiness prediction.

Change one condition

What if the device is intentionally offline overnight?

Reveal the variant explanation

Scope expected availability to its operating schedule so absence detection reflects the service contract.

Revisit the chapter: alerts comprehensive Microsoft references: What is Fabric Activator? ↗

Authoritative source

Grounded in Microsoft Learn

This reader summarizes and teaches. Microsoft Learn remains the source of truth.