Monitoring and Alerts in Azure Data Factory
Azure Data Factory shows every run in its Monitor hub, keeps that history for 45 days, and tells nobody when something fails unless you set it up. This guide covers the built-in views, sending run data to Log Analytics, the metrics worth alerting on, queries for failures and slow runs, and notification options.
GloryTecks Team
Training & Placement Faculty
Last updated: 2 October 2026
A pipeline that fails silently is worse than one that never ran, because people keep trusting the data. Out of the box, Azure Data Factory records every run in detail and notifies no one. ADF monitoring is therefore two jobs: knowing where to look, and arranging to be told.
The queries in this guide are written from Microsoft's documentation and have not been run against a workspace.
The Monitor hub
The Monitor section of Data Factory Studio is the first stop (Microsoft Learn: visually monitor).
Pipeline runs lists each run with its start, end, duration, what triggered it, status, parameters and error. You can filter by time range, status, pipeline name or annotation.
Activity runs open when you select a pipeline run. Each activity has icons for its input, its output and, for some activity types, a detailed view. The error icon shows the full message of a failed activity. This is where diagnosis happens.
Features worth knowing:
- Rerun. A run can be rerun from the start, from a chosen activity, or from the failed activity, optionally with new parameters.
- Gantt view shows runs as bars over time, grouped by pipeline or annotation. It is the quickest way to see overlap and drift in duration.
- Consumption shows the resources a run used, which can be put into the pricing calculator for an estimate.
- User properties. Up to five properties of an activity, such as a Copy activity's source and destination, can be promoted so they appear as columns.
- Debug runs are on their own tab, separate from triggered runs.
Two details catch people. The list does not refresh by itself; you select Refresh. And times are shown in the browser's local time zone unless you change it.
There is also a view for trigger runs. Remember what a successful trigger run means for a schedule trigger: only that a pipeline run was started. Pipeline dependencies and scheduling explains why pipeline runs are the thing to watch.
The 45-day limit
Data Factory stores pipeline run data for only 45 days (Microsoft Learn: monitor Azure Data Factory). After that the history is gone from the hub. If you need to compare this month-end with the last one, investigate an incident reported late, or show an auditor a year of runs, the built-in history is not enough.
The fix is a diagnostic setting, which routes the factory's logs elsewhere:
| Destination | Use it for |
|---|---|
| Log Analytics workspace | Querying, dashboards and alerts; several factories can share one workspace |
| Storage account | Cheap long-term retention |
| Event hub | Streaming to another monitoring system |
Set this up when the factory is created. Logs are not collected retroactively.
Log Analytics
In the factory's Diagnostic settings, add a setting, choose the log categories, and send them to a workspace. Microsoft recommends resource-specific mode, in which each category gets its own table (Microsoft Learn: configure diagnostic settings):
| Table | One row per |
|---|---|
| ADFPipelineRun | Pipeline run state change |
| ADFActivityRun | Activity run state change |
| ADFTriggerRun | Trigger run |
Other tables cover SSIS, which you can leave unselected if you do not use it. Expect a delay: up to 15 minutes can pass between an event and its appearance in the workspace.
With the data there, questions become queries. The columns below are from Microsoft's table reference (Microsoft Learn: ADFPipelineRun reference).
Pipelines that failed in the last day, with their errors:
ADFPipelineRun
| where TimeGenerated >= ago(24h)
| where Status == "Failed"
| project TimeGenerated, PipelineName, RunId, FailureType, ErrorMessage
| order by TimeGenerated descWhich pipelines fail most over a month:
ADFPipelineRun
| where TimeGenerated >= ago(30d)
| where Status in ("Succeeded", "Failed")
| summarize runs = count(), failures = countif(Status == "Failed") by PipelineName
| extend failureRate = round(100.0 * failures / runs, 1)
| order by failures descHow long each pipeline takes, to catch one that is slowly getting worse:
ADFPipelineRun
| where TimeGenerated >= ago(30d)
| where Status == "Succeeded"
| extend minutes = datetime_diff("minute", End, Start)
| summarize avgMinutes = avg(minutes), maxMinutes = max(minutes) by PipelineName, bin(TimeGenerated, 1d)The activities behind the failures:
ADFActivityRun
| where TimeGenerated >= ago(7d)
| where Status == "Failed"
| summarize failures = count() by PipelineName, ActivityName, ActivityType, ErrorCode
| order by failures descMicrosoft's own example queries filter on a column named FailureType to separate user errors from system errors. That distinction is useful in practice: a user error is usually your data or configuration, a system error usually is not.
Metrics
Metrics are collected automatically, with no configuration, and are lighter than logs. The ones that matter (Microsoft Learn: monitoring data reference):
| Metric | Watches |
|---|---|
| Failed pipeline runs | The headline: anything failing |
| Failed activity runs | Failures inside pipelines, by activity type and name |
| Failed trigger runs | A trigger that could not start its pipeline |
| Succeeded pipeline runs | Useful in reverse: a day with none means nothing ran |
| Integration runtime CPU utilization, available memory | A self-hosted runtime under strain |
| Integration runtime queue length, queue duration | Jobs waiting for the runtime |
| Total entities count, total factory size | Approach to the factory's limits |
Alerts
An alert rule watches a metric or a log query and notifies an action group, which holds the recipients: email, SMS, push or voice, and can call a webhook. Rules can be created from the factory's own Alerts and metrics page or from Azure Monitor.
A starting set:
- Failed pipeline runs greater than 0. This is the first rule in Microsoft's recommended list, and the one every factory should have. It can be scoped to particular pipelines or failure types.
- Failed trigger runs greater than 0.
- Self-hosted runtime queue length or CPU above a threshold, if you run one.
- No succeeded runs in an expected window. A missing run raises no failure. A pipeline whose trigger was left stopped after a deployment fails nothing and loads nothing. Alert on the absence, with a log query that counts successful runs of a named pipeline since midnight.
- Duration above normal, from a log query, for the loads with a deadline.
Which type of rule to use:
| Rule type | Based on | Good for |
|---|---|---|
| Metric alert | Platform metrics | Fast, simple conditions such as any failure |
| Log alert | A query in Log Analytics | Conditions that need detail: a named pipeline, duration, absence |
| Activity log alert | Changes to Azure resources | Someone deleting or changing the factory |
Avoid one mistake above all: an alert that fires so often it is ignored. Send failures of critical pipelines to people; send everything else to a channel that is reviewed daily.
Notifications from inside a pipeline
Alert rules tell you a run failed. Sometimes you want a message with business context: which file, how many rows, what to do. For that, the pipeline sends its own. Microsoft's documented method is a Logic Apps workflow with an HTTP request trigger and a send-email action, called from a Web activity on the failure path, with the body built from system variables and the failed activity's error (Microsoft Learn: how to send email).
Use both. In-pipeline notifications are informative and can themselves fail, or never run if the pipeline is not started. A metric alert is blunt and independent of the pipeline. Handling errors and retries covers building the failure path.
What built-in monitoring does not tell you
A green run means the activities succeeded. It does not mean the data is right. A copy of zero rows succeeds. So does a copy of half the expected rows.
- Record row counts per load and compare with history. Building a metadata framework shows a load log that does this.
- Check freshness at the destination: the latest timestamp in the target table, not the status of the pipeline.
- Validate the data, as covered in data quality testing and validation.
A monitoring checklist
- Diagnostic setting to Log Analytics, resource-specific mode, on every factory.
- Workspace retention set to what audit and analysis need.
- Metric alert on failed pipeline runs, with an action group that reaches a person.
- Log alerts for missing runs and long runs on critical pipelines.
- Annotations on pipelines, so runs can be filtered by system or owner.
- A weekly look at failure counts and duration trends.
- Row counts and freshness checked, not only run status.
For the long-term record and who-changed-what, see ADF logging and auditing. The equivalent on AWS is covered in CloudWatch for monitoring data pipelines.
How long does Azure Data Factory keep pipeline run history?
How do I get an email when an ADF pipeline fails?
Which Log Analytics tables hold Data Factory runs?
Why did no alert fire when my pipeline did not run?
Azure Data Factory, with pipeline monitoring and alerting, is covered in the Data Engineering course.
Sources
- Visually monitor Azure Data Factory (Microsoft Learn) — Microsoft Learn
- Monitor Azure Data Factory (Microsoft Learn) — Microsoft Learn
- Configure diagnostic settings and a workspace (Microsoft Learn) — Microsoft Learn
- Monitoring data reference for Azure Data Factory (Microsoft Learn) — Microsoft Learn
- Azure Monitor Logs reference: ADFPipelineRun (Microsoft Learn) — Microsoft Learn
- How to send email (Microsoft Learn) — Microsoft Learn
GloryTecks Team
Training & Placement Faculty
The GloryTecks faculty team mentors learners across Data Science, AI and Data Engineering, with a focus on real-time projects and placement readiness in Hyderabad.
Want to master Azure Data Factory?
Join GloryTecks’ expert-led Data Engineering training in Hyderabad with real-time projects and 100% placement support.
Related articles
Azure Data Factory Roadmap 2026: A Complete Guide
A staged roadmap for learning Azure Data Factory in 2026: the six building blocks and how they relate, five stages from a first copy pipeline to deployed and monitored pipelines, a checkpoint for each stage, how Microsoft Fabric changes the picture, the state of the certifications, and the skills ADF does not replace.
Linked Services in Azure Data Factory Explained
A linked service is how Azure Data Factory connects to a data store or a compute service. This guide covers the two kinds, the anatomy of the JSON, authentication from keys to managed identities, keeping secrets in Key Vault, parameterising one linked service for many databases, and handling development and production.
Copy Activity in Azure Data Factory: A Practical Guide
The Copy activity is the workhorse of Azure Data Factory. This guide explains what it does in three steps, the formats and stores it handles, column mapping, the sink write behaviours, insert, pre-copy script and upsert, compared on a real table across three runs, fault tolerance, staging, and reading the output.