Add Microsoft Azure as a GPU provider. Looking for contributors with Azure experience — I don't have access to Azure so can't test this myself.
What to implement
A new internal/providers/azure/ package following the same pattern as internal/providers/aws/:
Discovery
- Azure GPU VMs — NC-series (T4), ND-series (A100, H100), NV-series (A10)
- Azure ML endpoints — managed GPU inference endpoints
Metrics
- Azure Monitor — CPU utilization, GPU utilization (via NVIDIA GPU monitoring extension or Azure Monitor GPU metrics), network I/O
Pricing
- Add Azure GPU VM specs to
internal/pricing/ (on-demand + Spot prices)
How the codebase works
The existing analysis rules in internal/analysis/rules.go are provider-agnostic — they operate on models.GPUInstance. Once an Azure provider populates the same struct, all 9 rules work automatically.
Key files to reference:
internal/providers/aws/ec2.go — EC2 discovery pattern to follow
internal/providers/aws/cloudwatch.go — metrics enrichment pattern
internal/models/models.go — GPUInstance struct and Source type (add SourceAzureVM, SourceAzureML)
cmd/gpuaudit/main.go — CLI wiring (add --skip-azure flag, call provider)
Azure SDK
Use github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute and github.com/Azure/azure-sdk-for-go/sdk/monitor. Auth should use azidentity.NewDefaultAzureCredential() (respects az login, env vars, managed identity).
Happy to review PRs and help with architecture decisions — just need someone who can test against real Azure GPU VMs.
Add Microsoft Azure as a GPU provider. Looking for contributors with Azure experience — I don't have access to Azure so can't test this myself.
What to implement
A new
internal/providers/azure/package following the same pattern asinternal/providers/aws/:Discovery
Metrics
Pricing
internal/pricing/(on-demand + Spot prices)How the codebase works
The existing analysis rules in
internal/analysis/rules.goare provider-agnostic — they operate onmodels.GPUInstance. Once an Azure provider populates the same struct, all 9 rules work automatically.Key files to reference:
internal/providers/aws/ec2.go— EC2 discovery pattern to followinternal/providers/aws/cloudwatch.go— metrics enrichment patterninternal/models/models.go—GPUInstancestruct andSourcetype (addSourceAzureVM,SourceAzureML)cmd/gpuaudit/main.go— CLI wiring (add--skip-azureflag, call provider)Azure SDK
Use
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/computeandgithub.com/Azure/azure-sdk-for-go/sdk/monitor. Auth should useazidentity.NewDefaultAzureCredential()(respectsaz login, env vars, managed identity).Happy to review PRs and help with architecture decisions — just need someone who can test against real Azure GPU VMs.