Skip to content

[Open data] Azure Advisor recommendation types #1255

@flanakin

Description

@flanakin
Collaborator

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.

Activity

added this to the 2025-02 - February milestone on Jan 20, 2025
flanakin

flanakin commented on Jan 20, 2025

@flanakin
CollaboratorAuthor

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
flanakin

flanakin commented on Jan 20, 2025

@flanakin
CollaboratorAuthor

@arthurclares / @helderpinto / @nteyan, I figure y'all have spent the most time looking at the Advisor recommendations. I was thinking about adding more context to our Power BI report and wasn't able to find this level of detail. I haven't fully thought thru how we'd use it but I figure y'all are the best to review the proposal. Let me know if you have any questions.

arthurclares

arthurclares commented on Jan 22, 2025

@arthurclares
Collaborator

I don't think we have a central pace for these recommendations, so having this file seems to be a good idea. Hwoever, from a Hub perspective, we could simply have an ARG query that would surface these recommendations and then add it to the dashboards, wouldn't that be easier? Actually, if I'm not mistaken, Helder has done this already.

linked a pull request that will close this issue on Jan 26, 2025
helderpinto

helderpinto commented on Jan 26, 2025

@helderpinto
Member

@flanakin, I didn't find any GitHub docs reference where we could parse all the recommendation types columns. Can you share the source where you got the sample table from?

The metadata Azure Advisor REST API endpoint would probably be the best source of truth for this information. However, it does not contain data for the recommendation version nor the learn more link.

Alternatively, we could use Azure Resource Graph, but it only contains metadata for recommendations that have been generated in the context of the customer, which is only a subset of all possible recommendation types.

flanakin

flanakin commented on Feb 2, 2025

@flanakin
CollaboratorAuthor

I didn't find any GitHub docs reference where we could parse all the recommendation types columns. Can you share the source where you got the sample table from?

@helderpinto We talked about this, but sharing with others: I found the details in the MicrosoftDocs/SelfHelpContent repo. I believe the repo is private to FTEs only. This repo has self-help guidance for every Azure service used in the Azure portal.

The metadata Azure Advisor REST API endpoint would probably be the best source of truth for this information. However, it does not contain data for the recommendation version nor the learn more link.

I wasn't aware of the RecommendationMetadata API. I would agree that would be a better source for the core details. We can merge the self-help content as well.

Alternatively, we could use Azure Resource Graph, but it only contains metadata for recommendations that have been generated in the context of the customer, which is only a subset of all possible recommendation types.

This works for Power BI, but not ADX dashboards.

The question is, do we see value in providing a CSV dataset that we can ingest into Power BI and Data Explorer to improve our reports and dashboards? Power BI can call the current API, but not the self-help guidance, but I'm not sure I'd do this for the self-help guidance only. I don't know if ADX dashboards can call ARM APIs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Needs: Triage 🔍Untriaged issue needs to be reviewedOKR: 2.1 AdoptionIssues that contribute to customer adoptionTool: New toolNew tool requestTool: Open dataDatasets to normalize and enhance FinOps reports

Projects

No projects

Relationships

None yet

    Development

    Participants

    @flanakin@nteyan@helderpinto@arthurclares

    Issue actions

      [Open data] Azure Advisor recommendation types · Issue #1255 · microsoft/finops-toolkit