Software Review :: Azure Orphaned Resources v2.0

Francesco Mantovani
2 min readApr 29, 2024

I’ve been working with Azure Orphaned Resources v2.0 for a good 2 months now and it’s time to write down a quick review.

Oh, will this help me reduce the costs of Azure?

Not really…

Ufff…!

Well, it depends. If you don’t have a good hygiene of your Azure infrastructure it might help you a lot.

Otherwise, if you have already cleaned up most of the Subscriptions this tool will help you deliver some spring cleaning.

I think we should start by saying what this tool CAN / CANNOT do. Look at this picture:

Software Review :: Azure Orphaned Resources v2.0

As you can see the biggest offenders (DBs, VMs, App Services, etc…) are missing.

But I see an App Service Plan up there in the first row!

That is because the App Service Plan is orphaned when it doesn’t contain any app.

The same goes for the SQL Elastic Pool, this tool can spot:

— Containers that don’t contain nothing (App Service Plans, SQL Elastic Pools)


— Resources that should be linked to something and they are not (Load Balancer, Subnets, etc…)

How does it works under the hood?

This is interesting, it basically works with Azure Resource Graph Explorer.

The tool regroups a good number of queries that were already present on internet for a good number of years and then adds many more.

You can have a look at the list of queries here.

Ah, that’s so cleaver!

Yes, it’s very banal but it can only find App Service plans that are not hosting Apps:


resources


| where type =~ “microsoft.web/serverfarms”


| where properties.numberOfSites == 0


| extend Details = pack_all()


| project Resource=id, resourceGroup, location, subscriptionId, Sku=sku.name, Tier=sku.tier, tags ,Details


Of course you can also do that listing the App Service Plans in the portal.

But it’s good to have a unique point of reference where you can see the big picture.

So your feedback is positive?

Well, it’s good, but don’t expect to save much.

I was excited when I saw the words “Resource Groups”. Identifying unused Resource Groups is the Holy Grail. I’ve been trying to identify unused Resource Groups many times but Azure doesn’t provides an easy approach.


I tried to use Logic Apps to track the logs and see if people were not using the resources within the Resource Group… but as results I just found Resource Groups to whom no one was connecting… because they were in prod.

Conclusion?

Install it, play with it, learn the Kusto queries and curb your enthusiasm

--

--

Francesco Mantovani

Lorem Ipsum “Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit…” “There is no one who loves pain itself, who seeks