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 -e .

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.1.0.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.1.0-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: azure_radar-1.1.0.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.1.0.tar.gz
Algorithm Hash digest
SHA256 91f0a4b58ba655e7537ca930101547d297d8c4fab925ac4c9b2251f813faa455
MD5 84fbc0b62b92cd1b4bbf81b4577f9137
BLAKE2b-256 ad10afb0ad3123abeb2fa484f297c5c13d7507c519445440e522edfd39afef40

See more details on using hashes here.

File details

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

File metadata

  • Download URL: azure_radar-1.1.0-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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f06b0d5dbf472e83f8f1f2d19d476e762b479e34b2eb8b0b8ed38fca5774e6f5
MD5 eae0a4da717be14f003816cb3b8bf76b
BLAKE2b-256 db45754e6c7ac9ae49666ef835c36b9a1d3573a1a2e64c2d53d874ef041d2377

See more details on using hashes here.

Release history Release notifications | RSS feed

1.2.1

2 files

1.1.1

2 files

This release

1.1.0 This release

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