Azure Data Factory instances with no successful pipeline runs, and why no saving is shown
What does ZopNight detect here?
Azure Data Factory is billed by use, per orchestration activity run and per Data Integration Unit hour, so a factory whose `PipelineSucceededRuns` stays at zero generally accrues little or no charge. ZopNight watches that metric over 30 days but raises no finding, because deleting an idle factory would not produce a saving it can measure.
Signal and threshold
| Field | Value |
|---|---|
| Rule IDs | RC-261 |
| Category | idle |
| Severity | low |
| Metric | PipelineSucceededRuns |
| Evaluation window | 30d |
| Source | ZopNight |
| Permissions used | Microsoft.DataFactory/factories/read · Microsoft.DataFactory/factories/pipelineruns/read · Microsoft.Insights/Metrics/Read |
Where it applies
How Data Factory charges, and why idle costs little
Microsoft’s pricing walkthrough breaks a Data Factory bill into usage units: orchestration activity runs, Data Integration Unit hours for copy activities on the Azure integration runtime, data flow compute, and SSIS integration runtime time by instance type and duration. None of these is a fixed fee for the factory itself. A factory whose pipelines stopped running stops generating most of that usage on its own.
The exception is compute you leave provisioned, above all an SSIS integration runtime that is still started. That is billed by duration and is worth checking separately.
Checking recent pipeline runs
az datafactory pipeline-run query-by-factory --resource-group my-rg --factory-name my-adf \ --last-updated-after 2026-08-28T00:00:00Z --last-updated-before 2026-09-28T00:00:00Z
az monitor metrics list --resource <factory-resource-id> \ --metric PipelineSucceededRuns --offset 30d --interval PT24H --aggregation TotalThe az datafactory commands come from the Azure CLI datafactory extension.
What ZopNight measures on a factory
For a factory in the Succeeded state, ZopNight reads the PipelineSucceededRuns series over 30
days. Any successful run means the factory is active. A factory with none is, in usage terms,
idle, and the detection itself is reliable.
Why the finding is withheld
ZopNight does not raise a recommendation on that idle factory. Its cost-saving checks only report a saving they can stand behind, and here there is none to stand behind: with usage-based pricing, an idle factory is already close to free, and the per-activity billing needed to price avoided runs is not available to ZopNight. A rack-rate estimate would not be money you could get back. Earlier logic that relied on a customer-written tag was removed for the same reason.
Nothing to claim as a saving
There is no dollar figure. If an idle factory does still show spend, look for a running SSIS integration runtime or data flow cluster rather than the factory itself.
Tidying up an idle factory
- In Data Factory Studio, open Monitor and review pipeline and trigger runs for the period.
- Stop and delete triggers that no longer serve a purpose, so pipelines cannot start by accident.
- Stop any SSIS integration runtime that is still running.
- Export the factory’s definitions (or confirm they live in Git) and delete the factory if it is truly retired.