Add the ability to detect idle resources and send alerts
When running batch jobs in a) the Batch Service (batch pools of VMs), or b) on individual stand-alone VMs, it is quite easy to leave idle resources allocated after the batch job has completed (success or failure).
When using the Batch service, you can configure a batch job to use an auto pool, which auto deletes when the job ends. But if you mess up that settings and create a manual pool, then it can hang around. We had one hang around for almost 3 days after the initial 5 hour batch job had completed, and were only alerted to its presence when we got a billing alert... but it was of course too late by then. High costs had been occurred, as we were at the start of a billing cycle... so our entire months budget was used by a batch pool that sat idle. Not ideal!!!
We also run batch jobs on stand alone VMs and the application we run on the VM contains code that deletes the VM it's running on at the end of the job... but, if the app doesn't launch correctly via the execute remote script functionality then the VM can sit there idle until we detect it and delete it (we create the VM and launch the batch app on the VM from another app running on in-house PCs).
We execute our own custom Azure Function on a periodic basis to check our subscription for idle resources... but surely that shouldn't be necessary. There should be a way for Azure to alter customers of idle resources.