Skip to main content
rightsizing · azure

Premium-plan Function Apps that never exceeded 100 executions an hour in 30 days

resource types
1
rule IDs covered
1
severity
medium

What does ZopNight detect here?

Azure Functions Premium plans bill for always-ready instances around the clock, which only pays off under real load. ZopNight flags Premium Function Apps whose `FunctionExecutionCount` never exceeded 100 executions in any hour across 30 days, and prices a move to a pay-per-execution plan as recovering the full Premium cost.

Signal and threshold

How ZopNight evaluates Premium-plan Function Apps that never exceeded 100 executions an hour in 30 days.
Field Value
Rule IDsRC-1314
Categoryrightsizing
Severitymedium
MetricFunctionExecutionCount
Thresholdpeak of 100 executions per hour or less
Evaluation window30d
SourceZopNight
Permissions usedMicrosoft.Web/sites/Read · Microsoft.Insights/Metrics/Read

Paying for warm instances that rarely wake up

The Premium plan keeps always-ready instances allocated so there are no cold starts, and bills core seconds and memory across them, with no execution charge and at least one billed instance at all times. That is good value for a busy API. For an app that handles a few dozen events an hour, it is a fixed monthly cost for capacity that sits unused.

The alternative is execution-based billing. The Functions pricing page gives the Consumption plan a monthly free grant of 1 million requests and 400,000 GB-s per subscription, and the Flex Consumption plan a grant of 250,000 executions and 100,000 GB-s. A low-traffic app often fits inside those grants entirely.

Checking an app’s busiest hour

Terminal window
az monitor metrics list \
--resource /subscriptions/<sub>/resourceGroups/<rg>/providers/Microsoft.Web/sites/<app> \
--metric FunctionExecutionCount BytesSent BytesReceived \
--aggregation Total --interval PT1H --offset 30d

If the highest hourly FunctionExecutionCount in the month is 100 or less, the app is in range.

What the rule measures

  1. The app’s hosting plan is Premium. Dedicated and Consumption apps are not evaluated here.
  2. A FunctionExecutionCount series exists and spans at least 30 days, so a Premium app created last week is not judged on a day or two of history.
  3. The highest hourly execution count in that series is 100 or less.
  4. The app has a positive monthly price.

Bytes sent and received are shown as supporting evidence only. An app that serves few requests but returns large responses must not look idle from bytes alone, so they never decide the finding.

Where it does not apply

Without an execution metric there is no finding, and customer tags are not accepted as a substitute. Apps with no executions at all are also caught by the stricter Idle Azure Function App check, which points toward deletion rather than a plan change.

Pricing the plan change

Terminal window
saving = full monthly Premium cost of the app
cost after fix = 0 (execution charges expected to fall within the free grant)

Moving off the Premium plan

  1. Confirm the target plan has what the app needs. Microsoft’s hosting options table shows the Consumption plan without virtual network integration or inbound private endpoints, while Flex Consumption supports both.
  2. On Windows, migrate in place to a Consumption plan: az functionapp update --resource-group <rg> --name <app> --plan <consumption-plan> --force.
  3. On Linux, in-place migration is not supported. Microsoft recommends a new app on the Flex Consumption plan, and notes that the Linux Consumption plan retires on 30 September 2028.
  4. Delete the Premium plan once no app uses it.

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·