Azure Usage and Billing Portal eases administration of usage and billing across subscriptions

Kit McDonald

Azure Servers

Keeping track of the resources that Azure uses and exactly how much it costs across multiple subscriptions has always been a hassle. For businesses looking for an easy way to manage their expenditures, the Microsoft Azure team released APIs just last year. The Azure Resource Usage and Rate Card APIs were useful but only for developers that were able to bridge them and create useful third-party tools. That is why a small group in the Developer Experience team created the Azure Usage and Billing Portal.

This project made it possible to track usage across multiple subscriptions and keep track of exactly where your business’ money is going. Today, the Azure Usage and Billing Portal is now available as an open source project on GitHub.

The tool checks any registered subscriptions by your business or organization on a daily basis. With the Power BI dashboard, consumers can analyze their usage and expenditures through an easy to read report.

The Azure Usage and Billing Portal consists of multiple pieces:

  • Registration website for providing the system access to Azure subscriptions
  • Dashboard website for reviewing the subscriptions that have granted access, viewing the state of job requests, and starting unscheduled jobs to pull usage data
  • SQL Database for storing usage and billing data
  • Storage Queue for storing requests to pull data from the Usage and RateCard APIs
  • Scheduled webjob to trigger a daily pull request for each subscription
  • Continuous webjob to pull data whenever a request enters the Queue
  • Power BI Dashboard to display the results

Since the project’s team has created a Powershell script for all of the necessary Azure resources, you can set up your own customized version of the Azure Usage and Billing Portal by following the instructions found on its documentation page.

The team plans to add trigger alerts, extra reporting, enable per-subscription rate codes, simplify deployment, and more in the future. But it can only get better through feedback and sharing, so interest parties should contribute anything they can through the GitHub page.