📈 GH Trending Explorer 🎲 Surprise me

← all repos

milanm / aztree

git clone https://github.com/milanm/aztree.git v0.9.3 · 12d ago

Understand Azure billing

+0
stars, 24h · #31,868
+~0
stars, 7 days · #32,343
+109
stars, 30 days · #4,678
111
★ total
8
forks · 0 open issues

Star history (as recorded here)

2026-10-20 · 109 ★ 2026-10-22 · 111 ★
LanguagePython
LicenseMIT
Created2026-09-28 (24d ago)
Last push5d ago
Watchers2
OwnerUser

GitHub topics

Links

README excerpt
# aztree
aztree shows where your Azure money went. It draws your costs as a treemap, where a bigger box means a bigger cost.
**See it live on demo data:** milanm.github.io/aztree
It's one small Python package with no dependencies. It writes a single HTML page that works offline.
## Quick start
Install it with Python, .NET or Homebrew:
 [code] 
Or download the executable for Windows, Linux or macOS from the latest release. It doesn't need Python. The downloads aren't signed yet, so Windows and macOS ask once before running them. On Linux and macOS, run `chmod +x` on the file first.
A few antivirus engines, Microsoft Defender among them, flag the Windows executable. It's a false positive that hits many Python tools packed with PyInstaller, and it has been reported to Microsoft. Releases after 0.9.2 prove where their executables came from: `gh attestation verify aztree-win-x64.exe --repo milanm/aztree` checks that this repository's release workflow built the file from the tagged commit. If you'd rather not run an executable at all, `pipx install aztree` runs the plain Python source.
Then:
 [code] 
From a clone, run `python -m aztree` without installing anything.
The page opens in your browser. It shows the last 30 days, compared with the 30 days before. The last day is the day before yesterday, because Azure is still posting yesterday's usage.
## What you get
- **Treemap** of spend by service → meter. Press `2` to group by subscription, `3` by region, `4` by resource group → resource and `5` by tag value → service.
- **Tag view:** spend by the values of one tag, with untagged spend as its own box and its share of the bill in the header. aztree picks the tag on the most resources; `--tag KEY` picks another. When that share is a tenth of the bill or more, "how to fix" there points to tag inheritance and a tag policy.
- **Color by change** (`c`): red where spend grew, blue where it shrank.
- **Selection panel:** cost, share of the bill, change vs the previous period, monthly pace and a daily chart. For the whole bill there's no share, and when Azure has a forecast for the month, this month so far and that forecast take the place of monthly pace. The name of a selected subscription, resource group or resource opens it in the Azure portal.
- **Worth a look:** one list where news and to-dos take turns. The first six show, and "show all" opens the rest. On the map, the boxes behind the to-dos the list shows have diagonal stripes, so "show all" stripes the rest.
 - **News** is costs that grew and one-off spikes (a day far above that meter's usual).
 - **To-dos** are known money pits (below) and compute left on all week in dev/test resource groups. When Advisor has no reservation or savings-plan tips, steady spend that a reservation could cut shows up too.
 - **Idle resources** bill while doing nothing, and they count as to-dos. aztree finds them with Azure Resource Graph and lists the ones that cost something in the period. When one check finds several, suc