Skip to main content
idle · azure

Azure ML Online Deployment Idle

resource types
1
rule IDs covered
1
severity
high

What does ZopNight detect here?

Azure ML online deployments showing zero requests per minute, on both average and maximum, across at least 7 days of metric coverage are flagged for deletion, with the deployment's full monthly cost as savings. GPU and CPU utilization attach as corroborating evidence, and a missing metric series never triggers the recommendation.

Signal and threshold

How ZopNight evaluates Azure ML Online Deployment Idle.
Field Value
Rule IDsRC-1397
Categoryidle
Severityhigh
Metricnone — pure configuration read
Sourceml_online_deployment_idle.go

Zero requests per minute, average and maximum

  • RequestsPerMinute is the primary idle signal. Rule fires only when this series is present and both Average == 0 and Maximum == 0. Absent series (new deployment / no Azure Monitor data) → nil; never emits a delete recommendation without positive evidence of zero traffic.
  • GpuUtilizationPercentage and CpuUtilizationPercentage are corroborating evidence. Both are declared in RequiredMetrics and attached to the recommendation as evidence when present; they are not gates.
  • AvgCoverageDays() >= 7 (project-wide MinMaxCoverageDays), gated on the Average band because RequestsPerMinute is an Average-only Azure Monitor metric (MaxCoverageDays is structurally 0, so a Max gate would abstain unconditionally); prevents a brand-new deployment with a day or two of naturally zero traffic from triggering this high-severity delete recommendation.
  • Billing cost > 0 is required before firing. The billing overlay for a managed online deployment lags ~24–72h. A $0-cost/$0-savings recommendation can’t be ranked, and the low-savings drop filter (shouldDropLowSavings) only drops Savings > 0 && < $5, so a $0 recommendation would otherwise slip through and persist as noise. Once the overlay lands, the next engine run surfaces the idle deployment with real savings.

Gates for a zero-traffic delete call

Terminal window
fires when all gates align: metric series present AND RequestsPerMinute.Average == 0 AND Maximum == 0 AND AvgCoverageDays() >= 7 AND cost > 0. Any traffic or absent series → no recommendation.

Deleting refunds the deployment’s whole bill

PricingAware: SavingsUSD = CurrentCostUSD (full monthly cost saved if the deployment is deleted). Cost comes from the billing overlay (pricing[UID]).

Removing the deployment and its endpoint

  1. Confirm no application routes inference to this deployment
  2. In Azure ML studio (ml.azure.com) → Endpoints → the online endpoint → Deployments
  3. Delete the idle deployment, or set its instance count to 0
  4. Delete the parent endpoint too if it has no remaining deployments

Request rate plus GPU and CPU corroboration

RequestsPerMinute + GpuUtilizationPercentage + CpuUtilizationPercentage (30d lookback each)

See it fire on your bill.

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

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

417 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·