Home
Softono
arm-estimator

arm-estimator

Open source MIT C#
218
Stars
18
Forks
0
Issues
3
Watchers
1 week
Last Commit

About arm-estimator

ACE (Azure Cost Estimator) - automated cost estimations for ARM Templates, Bicep and Terraform

Platforms

Web Self-hosted Cloud Windows

Languages

C#

ACE (Azure Cost Estimator) GitHub all releases

Automated cost estimation for your Azure infrastructure. Works with ARM Templates, Bicep and Terraform.

asciicast

ACE + Topaz

ACE's estimation engine is becoming a core part of Topaz — a single-binary Azure emulator. When used through Topaz, you can estimate the cost of resources already deployed to your local environment without leaving your machine.

ACE remains a fully standalone CLI tool and NuGet library (TheCloudTheory.AzureCostEstimator.Core) for teams that want to integrate cost estimation directly into their own pipelines or applications, independent of Topaz.

What is ACE?

ACE (Azure Cost Estimator) lets you estimate the cost of an Azure deployment before it happens. It reads your IaC template — ARM, Bicep, or Terraform — runs a What-If analysis, calls the Azure Retail Prices API, and gives you a cost breakdown down to the individual resource.

ACE follows the concept of running cost as an architecture fitness function: make it a gate in your CI/CD pipeline and get immediate feedback on cost impact before any change reaches the cloud.

Why ACE?

  • Works before deployment — estimate cost from a template, not a running environment
  • Covers 49 Azure services (~92 resource types) — ARM, Bicep, and Terraform all supported
  • Always fresh data — live calls to the Azure Retail Prices API, no stale pricing databases
  • Delta reporting — shows the cost difference between current and proposed infrastructure
  • CI/CD gate — optionally fail the pipeline when estimates exceed a configured limit
  • 17 currencies — including USD, EUR, GBP, and more
  • No third-party services — everything goes through Microsoft APIs; no proxies, no accounts
  • Flexible authAzure.Identity picks up CLI, environment, managed identity, and more
  • Usage patterns — feed custom usage data to refine estimates beyond defaults
  • Multiple deployment scopes — resource group, subscription, management group, tenant

Getting started

Check the wiki for installation, usage, and all available options.

For CI/CD integration, see the dedicated GitHub Action.

Using ACE as a library

The core estimation engine is published as a NuGet package:

dotnet add package TheCloudTheory.AzureCostEstimator.Core
var service = new EstimationService();
var result = await service.EstimateAsync(whatIfChanges);
Console.WriteLine($"Total cost: {result.TotalCost} {result.Currency}");

Services support

Services not listed are considered TBD. The table below reflects the latest commit, which may be ahead of the most recent release.

Service Support level Terraform Notes
AKS Stable VMSS agent pools only
APIM Stable
App Configuration Stable
Application Gateway Stable
Application Insights Stable Classic mode; no Enterprise Nodes or Multi-step Web Test
Analysis Services Stable
ASR Stable No recovery to customer-owned sites
Automation Account Stable Process Automation only
Azure App Service Stable App Service Plans (no Isolated tiers) + Functions (Consumption / Premium / ASP)
Azure Firewall Stable
Availability Set Stable
Backup Stable
Bastion Stable
Bot Service Stable
Chaos Studio Stable
Cognitive Search In development No Document Cracking / Semantic Search / Custom Entity Skills
Confidential Ledger Stable
Container Apps Stable
Container Registry Stable
Cosmos DB In development Single-region writes with manual throughput only
Data Factory In development No IR or SSIS
Event Hub Stable
Event Grid Stable
Health Bot Stable
Key Vault Stable No Azure Dedicated HSM
Log Analytics In development No commitment tiers or log retention
Logic Apps In development No ISE scale units
Maria DB Stable
Monitor In development No alert frequency or metrics count
Network Interface Stable
Network Security Group Stable
PostgreSQL Stable No Hyperscale (Cosmos DB)
Public IP Address Stable
Public IP Address Prefixes Stable
Redis Stable
Sentinel In development No commitment tiers
Service Bus Stable No Hybrid Connections or WCF Relay
SignalR Stable
SQL Database Stable
SQL Server Elastic Pools Stable
Static Web App Stable
Storage Account In development StorageV2 only (no File Service or Data Lake Storage)
Stream Analytics Stable Edge requires separate estimation
Time Series Stable
Virtual Machine Stable Ax, Bx, and Dx families
VMSS Stable Same VM families as Virtual Machines
Virtual Network Stable
VPN Gateway Stable

Contributions

Contributions are more than welcome!

Acknowledgements