Add Azure Advisor RecommendationTypes open data #1841
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
This PR adds a new open data file for Azure Advisor recommendation types to help organize and provide additional context for Azure Advisor recommendations in FinOps reports and dashboards.
Problem
Azure Advisor doesn't expose detailed metadata about the different recommendation types available. When building FinOps reports and dashboards, users need contextual information like recommendation categories, impact levels, service names, and resource types to properly organize and describe recommendations.
Solution
Added
RecommendationTypes.csvas a new open data file that includes metadata for Azure Advisor recommendation types:Sample data:
PowerShell Integration
Added
Get-FinOpsRecommendationTypecommand to query recommendation metadata with filtering capabilities:Also includes
Get-AdvisorRecommendationTypes.ps1script to fetch recommendation metadata from the Azure Advisor Recommendation Metadata API for future updates.Changes
src/open-data/RecommendationTypes.csvwith sample recommendation metadatasrc/scripts/Get-AdvisorRecommendationTypes.ps1to fetch data from Azure Advisor APIGet-FinOpsRecommendationTypePowerShell command with filtering supportTesting
All unit tests pass:
Manual verification confirms:
Data Sources
The recommendation metadata is sourced from:
Follow-up Work
The CSV currently contains sample data. Future updates can:
Get-AdvisorRecommendationTypes.ps1to fetch the latest metadata from the APIFixes #[issue-number]
Original prompt
This section details on the original issue you should resolve
<issue_title>[Open data] Azure Advisor recommendation types</issue_title>
<issue_description>### Are you submitting your tool or someone else's?
I'm submitting a tool that I own.
Tool ownership responsibilities (only applicable to tool owners)
Tool name
RecommendationTypes.csv
Description
Azure Advisor doesn't expose details about the different recommendations that are available. We should include a new open data file that includes the recommendation type details to describe each recommendation made available in Azure Advisor.
Use case
Organize and provide additional context for Azure Advisor recommendations.
Services used
None
Dependencies
This information can be parsed out of Microsoft Learn docs in GitHub via a PowerShell script. There are no runtime dependencies.</issue_description>
<agent_instructions>Triage the issue, research using mslearn, provide proposed solutions along with links/citations to authorative sources.</agent_instructions>
Comments on the Issue (you are @copilot in this section)
@flanakin Partial sample from the generated file (6 columns removed): | RecommendationTypeId | Category | Impact | ServiceName | ResourceType | Key | Message | Version | LearnMoreLink | | ------------------------------------ | --------------------- | ------ | -------------------------- | ----------------------------------------- | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------- | | a06456ed-afb7-4d16-86fd-0054e25268ed | Performance | Medium | Virtual Machines | microsoft.compute/virtualmachines | AccelNetDisengaged | Enable Accelerated Networking to improve network performance and latency | 2.1 | https://docs.microsoft.com/azure/virtual-network/create-vm-accelerated-networking-cli#enable-accelerated-networking-on-existing-vms | | 9c0c3708-17f6-4108-9aff-f0e052c3cd41 | OperationalExcellence | Low | Azure App Service | microsoft.subscriptions/subscriptions | AzureApplicationService | Eliminate replica staging environments and ship new versions and features with zero downtime using deployment slots | 1.0 | https://docs.microsoft.com/azure/app-service/deploy-staging-slots | | a205074f-8049-48b3-903f-556f5e530ae3 | Cost | High | ReservedInstances | microsoft.subscriptions/subscriptions | CosmosDBReservedCapacity | Buy reserved instance | 9.1 | https://aka.ms/rirecommendations | | 94aea435-ef39-493f-a547-8408092c22a7 | Cost | High | Virtual Machine Scale Sets | microsoft.compute/virtualmachinescalesets | LowUsageVmss | Shut down or resize your virtual machine scale sets | 9.9 | https://aka.ms/aa_lowusagerec_vmss_learnmore | | afdf4c1a-e46b-4817-a5d6-4b9909f58e2a | Cost | Low | Azure Synapse Analytics | microsoft.synapse/workspaces | EnableSynapseSparkComputeAutoPauseGuidance | Consider enabling automatic pause feature on spark compute | 3.1 | https://aka.ms/EnableSynapseSparkComputeAutoPauseGuidance | | ed651749-cd37-4fd5-9897-01b416926745 | HighAvailability | Medium | Site Recovery | microsoft.compute/virtualmachines | ASRUnprotectedVMs | Enable virtual machine replication | 7 | https://aka.ms/azure-site-recovery-dr-azure-vms ...Fixes #1255
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.