Skip to main content

azure-radar

A CLI tool to inventory, diagram, and run operations on Azure services using Azure CLI, mirroring gcp-radar for GCP.

Requirements

Installation

pip install azure-radar

Authentication

This tool uses Azure CLI for authentication, supporting various methods including SSO.

For SSO-enabled accounts:

  1. Install Azure CLI (if not already installed):

    brew install azure-cli  # macOS
    # or use appropriate installer for your OS
    
  2. Authenticate with SSO:

    az login --use-device-code
    # or if browser available
    az login
    
  3. Set subscription (if you have multiple):

    az account set --subscription <subscription-id>
    # or export it
    export AZURE_SUBSCRIPTION_ID=<your-subscription-id>
    

Usage

# Generate CSV inventory of all Azure resources
azure-radar inventory

# Generate draw.io diagram of services
azure-radar diagram

# Run both inventory and diagram
azure-radar run

# Pull the last 30 days of cost data to CSV
azure-radar billing

# ...or fold billing into the full run
azure-radar run --billing

Billing

azure-radar billing queries the Azure Cost Management API (via az rest) and writes daily cost rows broken down by service and resource.

# Last 30 days (default)
azure-radar billing

# Last 60 or 90 days
azure-radar billing --days 60
azure-radar billing --days 90

# Custom output file
azure-radar billing --days 90 --output q3-spend.csv

# Amortized instead of actual cost (spreads reservation/savings-plan purchases)
azure-radar billing --cost-type AmortizedCost

# Narrow to specific services and/or resource groups (both repeatable)
azure-radar billing --service "Virtual Machines" --service "Storage" --resource-group rg-prod

# Same options are available on the full run
azure-radar run --billing --days 90 --billing-output spend.csv
Option Default Description
--days, -d 30 Lookback window — must be 30, 60, or 90
--output, -o azure_billing.csv CSV output file
--cost-type ActualCost ActualCost or AmortizedCost
--service (all) Filter to a service name; repeat for several
--resource-group (all) Filter to a resource group; repeat for several

The CSV contains one row per day / service / resource:

Column Description
Date Usage day (YYYY-MM-DD)
ServiceName Cost Management service name
ServiceType Normalized service name, matching azure_inventory.csv
ResourceName Resource name parsed from the resource ID
ResourceGroup Resource group parsed from the resource ID
ResourceType ARM type, e.g. Microsoft.Compute/virtualMachines
ResourceId Full ARM resource ID
Cost Cost for that day
Currency Billing currency
SubscriptionId Subscription the cost belongs to

Because ServiceType is normalized the same way as the inventory output, the two CSVs can be joined on ServiceType (or on resource name/group) for cost-per-service reporting.

Permissions: reading cost data requires the Cost Management Reader role (or higher) on the subscription, which is separate from the reader role used by inventory.

Output Files

  • azure_inventory.csv - CSV file with all Azure resources
  • azure_diagram.drawio - Draw.io diagram of service distribution
  • azure_billing.csv - CSV file with daily costs per service and resource (with billing / --billing)

Supported Azure Services

This tool currently supports the following Azure service categories for inventory and diagram generation:

  • Virtual Machines
  • Azure SQL
  • Azure Functions
  • AKS
  • Storage Accounts
  • Container Apps
  • Cosmos DB
  • Service Bus
  • Azure ML

Cloud Service Mapping (Azure → AWS → GCP → OCI)

Azure AWS GCP OCI
Virtual Machines EC2 Compute Engine OCI Compute
Azure SQL RDS Cloud SQL Autonomous Database
Azure Functions Lambda Cloud Functions OCI Functions
AKS EKS GKE Container Engine for Kubernetes
Storage Accounts S3 Cloud Storage Object Storage
Container Apps App Runner Cloud Run Container Instances
Cosmos DB DynamoDB Firestore NoSQL Database
Service Bus SNS/SQS Pub/Sub Streaming Service
Azure ML SageMaker Vertex AI Data Science

Related PyPI packages

This project is part of a family of "radars" tools available on PyPI. Two related packages you may find useful:

  • aws-radar — available on PyPI (example versions: 0.1.1, 0.1.0)
  • gcp-radar — available on PyPI (example versions: 0.1.9, 0.1.3, 0.1.1, 0.1.0)

Install them with pip:

pip install aws-radar
pip install gcp-radar

These packages follow a similar CLI shape (inventory, diagram, run) for their respective clouds.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

azure_radar-1.2.1.tar.gz (12.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

azure_radar-1.2.1-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

Details for the file azure_radar-1.2.1.tar.gz.

File metadata

  • Download URL: azure_radar-1.2.1.tar.gz
  • Upload date:
  • Size: 12.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for azure_radar-1.2.1.tar.gz
Algorithm Hash digest
SHA256 4ca71b0f96192c15dd1f0e921a141ddb215dd762174425ca2fbaaf232c4e6494
MD5 c251d947ee5e01a230d5bf8acc3be6a0
BLAKE2b-256 e26c6dfb4a1f2a9eac646978c336e1a48b487070867194cd4509fefe8444194b

See more details on using hashes here.

File details

Details for the file azure_radar-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: azure_radar-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 12.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for azure_radar-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b67efa30b998c8a5e6628b43cd3dc789a3732f412ccc7835a20f169acdc87baa
MD5 d80009f7e85ce832d8a5e35e3a7d165c
BLAKE2b-256 e7fbf222dbabd6cf59bc34c5ba2c48ab064b56c5611049932aec249f5f81ea89

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.2.1 This release

2 files

1.1.1

2 files

1.1.0

2 files

1.0.0

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page