Azure VM Comparator
A GitHub Copilot Chat participant (@vmcompare) that compares two or more Azure virtual machines across compute, network, storage, identity, extension, and live-metric surfaces and produces a ranked side-by-side Markdown report.
Usage
In the Copilot Chat view, type:
@vmcompare vm-a vm-b --rg my-resource-group
Compare more than two VMs and a longer metric window:
@vmcompare vm-a vm-b vm-c --rg my-resource-group --metrics 7d
The participant will:
- Pull configuration and metrics for every VM in parallel
- Diff every property and score each difference (Critical / High / Medium / Low)
- Cross-reference differences with metric anomalies
- Save a Markdown report into the workspace and render a summary in chat
What it compares
- VM size, generation, region, zone, proximity placement group, dedicated host
- Each NIC: accelerated networking, IP forwarding, subnet, NSG, effective routes, DNS
- Each disk (OS and data): SKU, size, IOPS, throughput, caching, write accelerator
- Managed identities (system and user assigned)
- Installed extensions
- Azure Monitor metrics over the chosen window (CPU, memory, disk queue, IOPS-cap consumed percent, network throughput)
- Resource Health current state
Prerequisites
- Visual Studio Code 1.95 or later with GitHub Copilot Chat enabled
- Azure CLI (
az) signed in (az login) with Reader on the target subscription
- Two or more VMs in the same subscription
Settings
| Setting |
Default |
Description |
vmcompare.metricsWindow |
24h |
Default metric time window: 1h, 24h, or 7d |
vmcompare.outputPath |
./vm-compare-report.md |
Workspace-relative path for the saved report |
vmcompare.azCliPath |
az |
Path to the Azure CLI executable |
Privacy and safety
The extension is read-only. It only invokes the user's local Azure CLI in the user's existing signed-in context, calls the in-process VS Code language model API, and writes report files into the open workspace folder. No telemetry is collected. No network requests are made to third-party services.
License
MIT
| |