Azure waste

MySQL flexible server nothing connects to

An Azure Database for MySQL flexible server with no active connections and no new connections over the window.
The agent reports this
Reversible
Azure undoes this after 30 days

This saving is not permanent. After 30 days, Azure automatically starts the server again, so the resource starts billing again unless something stops it a second time.

Why it happens

A flexible server bills a fixed hourly compute rate while it runs, independently of query traffic, so a General Purpose 4 vCore server is about $250 a month before storage. Sustained zero on both active connections and total connections means nothing is using the database while it charges in full. Both signals are required because either alone can be innocent, since a pooling application holds connections open against a database it never queries and a health probe reconnects without holding one. Stopping the compute is reversible and keeps the data, and Azure leaves a stopped MySQL server down for 30 days before starting it again, so one stop is worth most of a month here rather than the week it is worth on PostgreSQL. Storage and backup keep billing while stopped and are excluded from the figure. A server with a read replica is skipped entirely, because Azure refuses to stop one until the replica is dropped or promoted.

What the agent does about it

An Azure Database for MySQL flexible server with no active connections and no new connections over the window.

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.