5 Dashboards For Azure Cost Optimization

Bob Blackburn
4 min readMay 3, 2023

--

It is always a good idea to monitor and occasionally do a full audit of cloud costs. Recently there has been an increase in discussions about cost reduction online. Let’s look at 5 dashboards and supporting resources to get started.

Dashboards covered.

  1. Azure Cost Management
  2. Azure Advisor
  3. SQL Database Assessment
  4. Synapse Analyzer (SQL Dedicated Pool)
  5. Databricks

Cost Management

First, we need to get a baseline of where we are at now. Go to Cost Management in the Portal for an overview of your spending. Review your company as a whole or focus on specific areas. If you have not done so already, you can set up budgets and alerts for when the cost exceeds your expectations.

If you have an Enterprise Agreement (EA), you can set up a Power BI Dashboard. Learn more at Cost Management Power BI App for Enterprise Agreements.

If you don’t have an EA, there are a few public Power BI dashboards available. See Power BI Template for Azure Cost Management.

Azure Advisor

Now that you know your starting point, Azure Advisor is the best place to start. You get a quick summary and score of your environment. Highlight the Cost Issues and see the recommendations. You can download the CSV to filter and distribute to the appropriate teams for review.

Next, I would look at the Performance issues. Since you pay for compute, increasing performance can reduce or avoid increasing compute costs. The other areas may or may not directly affect costs; but should be reviewed.

Azure Advisor documentation

Azure Resource Graph

Here is where you can do your analysis on Azure Resources. You will use the Kusto query language. If you are not familiar with it, there are plenty of examples. You will come back here to do a detailed analysis; but a few quick queries to get you started.

In the Azure Portal, go to Azure Resource Graph Explorer.

Get a list of all your resources. If you are a very large organization, you may have to run by a resource group. The export limit is 13k rows.

Review for resources no longer needed. These can be from development, test, POC, or keep just in case and never cleaned up.

resources
| extend CreationTime = todatetime(properties.creationTime),
CreationDate = todatetime(properties.creationDate),
TimeCreated = todatetime(properties.timeCreated)
| extend DateCreated = coalesce(CreationTime, CreationDate, TimeCreated )

Microsoft also has the default redundancy to Geo on many resources including databases. Your organization may not require this for non-production environments. Although the incremental cost is small compared to compute, VMs, etc. it adds up. Here is an example to check for non-prod environments that are not LRS. Update the where clause for resource groups to match your naming conventions.

resources
| extend CreationTime = todatetime(properties.creationTime),
CreationDate = todatetime(properties.creationDate),
TimeCreated = todatetime(properties.timeCreated),
storageAccountType = properties.storageAccountType
| extend DateCreated = coalesce(CreationTime, CreationDate, TimeCreated )
| where resourceGroup contains "nonprod" or resourceGroup contains "non_prod"
| where type contains "microsoft.sql/servers/databases"
| where storageAccountType != "LRS"

Additional Resources

  1. What is Azure Resource Graph
  2. Starter Resource Graph query samples
  3. Advanced Resource Graph query samples

Azure Reservations and Savings Plans

These are often among the top recommendations for saving money. They can save a lot of money, but you also don’t want to purchase more than you need. Take the time to review your cost history and future expectations before deciding the best plan or combination for you.

Guidelines

  1. Quick Reference: Understanding Azure Reservations vs Savings Plans
  2. What are Azure Reservations?
  3. Azure savings plan for compute
  4. Decide between a savings plan and a reservation
  5. Azure Spot Virtual Machines (can be good for development)

Best Practices

The cloud makes it easy to get up and running. Software, databases, data, and business practices are constantly changing. It is very easy to increase the compute to meet our SLAs. Periodic review not only makes things run smoother, but it can also save on cloud spend.

New features are being implemented in Azure monthly. Have your teams review the best practices for their areas of expertise.

Since that sounds like boiling the ocean, here are a few more dashboards to highlight areas to focus on.

Databricks

SQL Server

Synapse Database (SQL Dedicated Pool)

Conclusion

With these dashboards, you can see where you are and create a path to reduce costs. Some are easier to implement than others. And as you investigate, you will identify more areas to address. You may have to budget a chunk of time initially to create a backlog of items and prioritize. Then you can rely on the dashboards to identify issues as things change.

--

--

Bob Blackburn
Bob Blackburn

Written by Bob Blackburn

Principal Azure Data Platform Engineer, Certified Azure Data Engineer, volunteer firefighter/EMT

No responses yet