Non-production API Management service on a paid tier
A non-production API Management service on the Basic, Standard or Premium tier, where Microsoft names Developer as the tier for evaluation.
Why it happens
An API Management service bills a fixed hourly rate for every provisioned unit whatever traffic it serves, and the tiers are far apart: about 48 US dollars a month for a Developer unit, 147 for Basic, 687 for Standard and 2,795 for Premium. Microsoft states that the Developer tier should be used to evaluate the service and should not be used for production, so a development or test service on a paid tier is buying throughput and an availability agreement that its environment does not need. Microsoft also states that you can upgrade and downgrade to and from the classic tiers, which are Developer, Basic, Standard and Premium, so this is a change of setting rather than a rebuild. The saving is the current rate multiplied by the provisioned unit count, less a single Developer unit, because Microsoft states the Developer tier has no availability agreement and cannot be scaled by adding or removing units, so a three unit Premium service does not become a three unit Developer one. Two consequences of the move travel on every finding rather than being discovered afterwards: the article states that the service does not experience gateway downtime while updating except in the Developer tier, so this particular move does interrupt the gateway, and that downgrading can remove features, giving the example that moving from Premium to Standard or Basic can remove virtual networks or multi-region deployment. The Consumption tier is excluded because Microsoft states you cannot upgrade from or downgrade to it, and the v2 tiers are excluded because the documented downgrade path joins them only to each other and never to Developer. This rule requires the gateway to be serving requests above the same threshold idle_api_management uses, so a service nothing calls is that rule findings and is never counted twice here.
Azure Resource Graph holds ARM properties, not metrics, and this check decides on an Azure Monitor metric measured over a window: it fires only where gateway requests are ABOVE the same threshold idle_api_management stops at, which is what keeps the two from reporting one service twice. A Resource Graph query could list every non-production service on Basic, Standard or Premium, and that list would include the idle ones this rule deliberately leaves to the other check, so it would look like the answer and would not be it. Switch the check on to see the real finding.
Applies to microsoft.apimanagement/serviceWhat the agent does about it
A non-production API Management service on the Basic, Standard or Premium tier, where Microsoft names Developer as the tier for evaluation.
It will not fix this one
It reports this and takes no action. A check only earns the right to change something once the action behind it can re-read live state before it fires and knows the way back.
Related checks
API Management service nothing is calling
An API Management service with no gateway requests at all over the window, billing its provisioned units in full.
Idle virtual machine
A running VM whose CPU and network have been near zero for the whole window.
Oversized virtual machine
A running VM whose sustained peak fits comfortably inside the next size down.