Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Oct 10, 2025

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.csv as a new open data file that includes metadata for Azure Advisor recommendation types:

  • RecommendationTypeId - Unique GUID identifier for each recommendation type
  • Category - Cost, HighAvailability, OperationalExcellence, Performance, or Security
  • Impact - High, Medium, or Low
  • ServiceName - Azure service the recommendation applies to
  • ResourceType - Azure resource type (lowercase)
  • DisplayName - Human-readable description of the recommendation
  • LearnMoreLink - URL to documentation for more information

Sample data:

RecommendationTypeId Category Impact ServiceName ResourceType DisplayName
a06456ed-afb7-4d16-86fd-0054e25268ed Performance Medium Virtual Machines microsoft.compute/virtualmachines Enable Accelerated Networking to improve network performance and latency
a205074f-8049-48b3-903f-556f5e530ae3 Cost High ReservedInstances microsoft.subscriptions/subscriptions Buy reserved instance

PowerShell Integration

Added Get-FinOpsRecommendationType command to query recommendation metadata with filtering capabilities:

# Get all recommendation types
Get-FinOpsRecommendationType

# Filter by category
Get-FinOpsRecommendationType -Category Cost

# Filter by impact and category
Get-FinOpsRecommendationType -Impact High -Category Cost

# Filter by resource type
Get-FinOpsRecommendationType -ResourceType "microsoft.compute/virtualmachines"

Also includes Get-AdvisorRecommendationTypes.ps1 script to fetch recommendation metadata from the Azure Advisor Recommendation Metadata API for future updates.

Changes

  • Added src/open-data/RecommendationTypes.csv with sample recommendation metadata
  • Added src/scripts/Get-AdvisorRecommendationTypes.ps1 to fetch data from Azure Advisor API
  • Added Get-FinOpsRecommendationType PowerShell command with filtering support
  • Added comprehensive unit tests (7 tests, all passing)
  • Updated documentation including open-data.md, command reference, and TOC
  • Updated Build-OpenData.ps1 to support RecommendationTypes dataset
  • Updated changelog for v13

Testing

All unit tests pass:

  • ✅ Private function returns correct row count
  • ✅ Public function returns all recommendations by default
  • ✅ Category filtering works correctly
  • ✅ Impact filtering works correctly
  • ✅ ServiceName wildcard filtering works
  • ✅ ResourceType wildcard filtering works
  • ✅ Specific recommendation lookup by ID works

Manual verification confirms:

  • Total recommendations: 6
  • Cost recommendations: 3
  • High impact recommendations: 2
  • All filters working as expected

Data Sources

The recommendation metadata is sourced from:

  1. Azure Advisor Recommendation Metadata API - Provides recommendation type IDs and display names
  2. MicrosoftDocs/SelfHelpContent repo (private, FTE-only) - Provides additional metadata like category, impact, service name, and learn more links

Follow-up Work

The CSV currently contains sample data. Future updates can:

  • Run Get-AdvisorRecommendationTypes.ps1 to fetch the latest metadata from the API
  • Merge additional columns from the SelfHelpContent repository if available
  • Expand the dataset as new recommendation types are added to Azure Advisor

Fixes #[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)

  • I acknowledge the responsibilities of a technical lead and agree to serve in this role for the proposed tool upon its approval.

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.

Copilot AI changed the title [WIP] Add open data file for Azure Advisor recommendation types Add Azure Advisor RecommendationTypes open data Oct 10, 2025
Copilot AI requested a review from MSBrett October 10, 2025 20:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Needs: Review 👀 PR that is ready to be reviewed Skill: DevOps GitHub setup and automation Skill: Documentation Documentation updates Tool: FinOps guide Implementing FinOps guide

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Open data] Azure Advisor recommendation types

5 participants