Skip to main content
idle · azure

Azure Container Registries averaging under one image pull and push for 30 days

resource types
1
rule IDs covered
1
severity
low

What does ZopNight detect here?

ZopNight flags an Azure Container Registry when its average `TotalPullCount` and average `TotalPushCount` both stay below 1 across at least 30 distinct days, and the registry has a known cost. Every Basic, Standard and Premium registry is billed a daily rate whether images move or not, so a registry nobody pulls from is a standing charge.

Signal and threshold

How ZopNight evaluates Azure Container Registries averaging under one image pull and push for 30 days.
Field Value
Rule IDsRC-1371
Categoryidle
Severitylow
MetricTotalPullCount, TotalPushCount
Thresholdboth averages < 1
Evaluation window30d
SourceZopNight
Permissions usedMicrosoft.ContainerRegistry/registries/read · Microsoft.Insights/Metrics/Read

A registry’s price is a daily rate, not per pull

Azure Container Registry pricing charges each registry a price per day for its service tier, Basic, Standard or Premium. Each tier includes storage, 10, 100 and 500 GiB respectively according to the SKU reference, and storage beyond that adds a daily rate per GiB. Pulls and pushes do not change the tier charge.

Registries get created per project, per team, per proof of concept, and they are rarely deleted when the project ends. Each one keeps billing its daily rate, and Premium features such as geo-replication multiply that.

Seeing whether anyone uses a registry

Terminal window
az acr list --query "[].{name:name, rg:resourceGroup, sku:sku.name, location:location}" -o table
az monitor metrics list --resource <registry-resource-id> \
--metric TotalPullCount TotalPushCount --offset 30d --interval PT24H --aggregation Total

az acr repository list --name myregistry shows what images are stored, which helps decide what to keep before deleting.

Thresholds for calling a registry idle

  1. Both the pull and push series exist for the registry.
  2. Each series covers at least 30 distinct days. Days with zero activity can be missing from a summed series, so ZopNight counts the span of days covered rather than the number of data points, which keeps a registry pulled once a day from looking thinly observed.
  3. The average pull count and the average push count across the window are both below 1.
  4. The registry has a known monthly cost above zero.

When a quiet registry is not reported

A few pulls or pushes do not clear the registry, because the check uses the average, not the peak. A missing series, or fewer than 30 days of coverage, also means no finding: silence in the data is not proof of silence in the registry. There is no fallback to tags or guesses.

The registry’s whole bill is the saving

Terminal window
saving = current monthly cost of the registry (tier daily rate plus extra storage)
cost after fix = 0

If you keep the registry but move it to a cheaper tier, the saving is the difference between tier rates instead.

Deleting or shrinking an unused registry

  1. Search deployment manifests, Helm charts, pipelines and AKS image pull settings for the registry’s login server name.
  2. Export any image you must keep, for example with az acr import into another registry.
  3. Delete the registry: az acr delete --resource-group my-rg --name myregistry.
  4. If it must stay but sees little use, downgrade instead: az acr update --name myregistry --sku Basic (check that the smaller tier’s included storage and features still fit).

See it fire on your bill.

Connect an account read-only. The first findings land in minutes.

472 rule families across 353 resource types on 22 platforms. Every threshold, metric, and IAM action is documented on these pages before you grant anything.

472 rule families documented
353 resource types covered
read-only default access level
Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console· Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console·