Container registries with no image pulls and no pushes for 30 days
What does ZopNight detect here?
A container registry with zero pulls means no deployment consumes its images, and zero pushes means no pipeline still feeds it. ZopNight requires both TotalPullCount and TotalPushCount to average below 1 across 30 full days of data before flagging the registry, whose Basic/Standard/Premium tiers bill roughly $5/$20/$50 monthly regardless.
Signal and threshold
| Field | Value |
|---|---|
| Rule IDs | RC-1371 |
| Category | idle |
| Severity | low |
| Metric | none — pure configuration read |
| Source | container_registry_idle.go |
Where it applies
Pushes prove a pipeline, pulls prove consumers
Deleting a registry that a CI pipeline still pushes to breaks the next build even if nothing
pulls the images yet. So this rule checks two directions independently: TotalPullCount below
its floor means no deployment is consuming images, and TotalPushCount below its floor means
no build is feeding the registry. Either side showing activity vetoes the finding: an active
build target is not an orphan, it is a registry mid-adoption.
A floor of 1, not a strict zero
Both counters must average below 1.0. Registries register trivial noise (a manual
docker pull during debugging, a health probe, the monitoring agent), and a strict equals-zero
test would let a single stray datapoint shield a genuinely dead registry forever. The sub-1
floor admits that baseline while excluding any real pull or push. These are sum-style metrics,
so the decision reads averaged daily totals; there is no peak band to consult.
Thirty days of coverage on both counters
Each series must span 30 full days before its zeros are trusted, which protects registries that were just created or just started reporting metrics. Deploy cadences are often monthly, and the window is sized to see one full cycle.
Confirm with one command
az monitor metrics list \ --resource "$(az acr show -n <registry> --query id -o tsv)" \ --metric TotalPullCount TotalPushCount \ --interval P1D --offset 30d --aggregation TotalWhat makes ZopNight hold back
Absent metrics, under 30 days of history on either counter, any pull or push activity, or a missing priced cost each independently suppress the recommendation. The registry fee is fixed per tier, roughly $5 a month on Basic, $20 on Standard, $50 on Premium, so the priced saving is the tier fee itself.
Cleanup with an exit ramp
Before deleting, list repositories and export any image worth keeping (az acr repository list). If the registry is Premium mostly for storage headroom it no longer needs, a downgrade
to Basic captures most of the saving without deleting anything. Detection needs Reader and
Monitoring Reader only.