Advisor
Advisor
Advisor
Learn about the key capabilities of Azure Advisor and get answers to frequently asked questions.
What is Advisor?
Advisor is a personalized cloud consultant that helps you follow best practices to optimize your Azure
deployments. It analyzes your resource configuration and usage telemetry and then recommends solutions that
can help you improve the cost effectiveness, performance, Reliability (formerly called High availability), and
security of your Azure resources.
With Advisor, you can:
Get proactive, actionable, and personalized best practices recommendations.
Improve the performance, security, and reliability of your resources, as you identify opportunities to reduce
your overall Azure spend.
Get recommendations with proposed actions inline.
You can access Advisor through the Azure portal. Sign in to the portal, locate Advisor in the navigation menu, or
search for it in the All ser vices menu.
The Advisor dashboard displays personalized recommendations for all your subscriptions. You can apply filters to
display recommendations for specific subscriptions and resource types. The recommendations are divided into
five categories:
Reliability (formerly called High Availability) : To ensure and improve the continuity of your business-
critical applications. For more information, see Advisor Reliability recommendations.
Security : To detect threats and vulnerabilities that might lead to security breaches. For more information,
see Advisor Security recommendations.
Performance : To improve the speed of your applications. For more information, see Advisor Performance
recommendations.
Cost : To optimize and reduce your overall Azure spending. For more information, see Advisor Cost
recommendations.
Operational Excellence : To help you achieve process and workflow efficiency, resource manageability
and deployment best practices. . For more information, see Advisor Operational Excellence
recommendations.
You can click a category to display the list of recommendations within that category, and select a recommendation
to learn more about it. You can also learn about actions that you can perform to take advantage of an opportunity
or resolve an issue.
Select the recommended action for a recommendation to implement the recommendation. A simple interface will
open that enables you to implement the recommendation or refer you to documentation that assists you with
implementation. Once you implement a recommendation, it can take up to a day for Advisor to recognize that.
If you do not intend to take immediate action on a recommendation, you can postpone it for a specified time
period or dismiss it. If you do not want to receive recommendations for a specific subscription or resource group,
you can configure Advisor to only generate recommendations for specified subscriptions and resource groups.
Next steps
To learn more about Advisor recommendations, see:
Get started with Advisor
Advisor Reliability recommendations
Advisor Security recommendations
Advisor Performance recommendations
Advisor Cost recommendations
Create Azure Advisor alerts on new recommendations
using the Azure portal
9/22/2020 • 3 minutes to read • Edit Online
This article shows you how to set up an alert for new recommendations from Azure Advisor using the Azure portal.
Whenever Azure Advisor detects a new recommendation for one of your resources, an event is stored in Azure
Activity log. You can set up alerts for these events from Azure Advisor using a recommendation-specific alerts
creation experience. You can select a subscription and optionally a resource group to specify the resources that you
want to receive alerts on.
You can also determine the types of recommendations by using these properties:
Category
Impact level
Recommendation type
You can also configure the action that will take place when an alert is triggered by:
Selecting an existing action group
Creating a new action group
To learn more about action groups, see Create and manage action groups.
NOTE
Advisor alerts are currently only available for High Availability, Performance, and Cost recommendations. Security
recommendations are not supported.
4. In the Scope section, select the subscription and optionally the resource group that you want to be alerted
on.
5. In the Condition section, select the method you want to use for configuring your alert. If you want to alert
for all recommendations for a certain category and/or impact level, select Categor y and impact level . If
you want to alert for all recommendations of a certain type, select Recommendation type .
6. Depending on the Configure by option that you select, you will be able to specify the criteria. If you want all
recommendations, just leave the remaining fields blank.
7. In the action groups section, select Add existing to use an action group you already created or select
Create new to set up a new action group.
8. In the Alert details section, give your alert a name and short description. If you want your alert to be enabled,
leave Enable rule upon creation selection set to Yes . Then select the resource group to save your alert to.
This will not impact the targeting scope of the recommendation.
Configure recommendation alerts to use a webhook
This section shows you how to configure Azure Advisor alerts to send recommendation data through webhooks to
your existing systems.
You can set up alerts to be notified when you have a new Advisor recommendation on one of your resources. These
alerts can notify you through email or text message, but they can also be used to integrate with your existing
systems through a webhook.
Using the Advisor recommendation alert payload
If you want to integrate Advisor alerts into your own systems using a webhook, you will need to parse the JSON
payload that is sent from the notification.
When you set up your action group for this alert, you select if you would like to use the common alert schema. If
you select the common alert schema, your payload will look like:
{
"schemaId":"azureMonitorCommonAlertSchema",
"data":{
"essentials":{
"alertId":"/subscriptions/<subid>/providers/Microsoft.AlertsManagement/alerts/<alerted>",
"alertRule":"Webhhook-test",
"severity":"Sev4",
"signalType":"Activity Log",
"monitorCondition":"Fired",
"monitoringService":"Activity Log - Recommendation",
"alertTargetIDs":[
"/subscriptions/<subid>/resourcegroups/<resource group
name>/providers/microsoft.dbformariadb/servers/<resource name>"
],
"originAlertId":"001d8b40-5d41-4310-afd7-d65c9d4428ed",
"firedDateTime":"2019-07-17T23:00:57.3858656Z",
"description":"A new recommendation is available.",
"essentialsVersion":"1.0",
"alertContextVersion":"1.0"
},
"alertContext":{
"channels":"Operation",
"claims":"
{\"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress\":\"Microsoft.Advisor\"}",
"caller":"Microsoft.Advisor",
"correlationId":"8554b847-2a72-48ef-9776-600aca3c3aab",
"eventSource":"Recommendation",
"eventTimestamp":"2019-07-17T22:28:54.1566942+00:00",
"httpRequest":"{\"clientIpAddress\":\"0.0.0.0\"}",
"eventDataId":"001d8b40-5d41-4310-afd7-d65c9d4428ed",
"level":"Informational",
"operationName":"Microsoft.Advisor/recommendations/available/action",
"properties":{
"recommendationSchemaVersion":"1.0",
"recommendationCategory":"Performance",
"recommendationImpact":"Medium",
"recommendationName":"Increase the MariaDB server vCores",
"recommendationResourceLink":"https://portal.azure.com/#blade/Microsoft_Azure_Expert/RecommendationListBlade/so
urce/ActivityLog/recommendationTypeId/a5f888e3-8cf4-4491-b2ba-b120e14eb7ce/resourceId/%2Fsubscriptions%
<subscription id>%2FresourceGroups%2<resource group
name>%2Fproviders%2FMicrosoft.DBforMariaDB%2Fservers%2F<resource name>",
"recommendationType":"a5f888e3-8cf4-4491-b2ba-b120e14eb7ce"
},
"status":"Active",
"subStatus":"",
"submissionTimestamp":"2019-07-17T22:28:54.1566942+00:00"
}
}
}
If you do not use the common schema, your payload looks like the following:
{
"schemaId":"Microsoft.Insights/activityLogs",
"data":{
"status":"Activated",
"context":{
"activityLog":{
"channels":"Operation",
"claims":"
{\"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress\":\"Microsoft.Advisor\"}",
"caller":"Microsoft.Advisor",
"correlationId":"3ea7320f-c002-4062-adb8-96d3bd92a5f4",
"description":"A new recommendation is available.",
"eventSource":"Recommendation",
"eventTimestamp":"2019-07-17T20:36:39.3966926+00:00",
"httpRequest":"{\"clientIpAddress\":\"0.0.0.0\"}",
"eventDataId":"a12b8e59-0b1d-4003-bfdc-3d8152922e59",
"level":"Informational",
"operationName":"Microsoft.Advisor/recommendations/available/action",
"properties":{
"recommendationSchemaVersion":"1.0",
"recommendationCategory":"Performance",
"recommendationImpact":"Medium",
"recommendationName":"Increase the MariaDB server vCores",
"recommendationResourceLink":"https://portal.azure.com/#blade/Microsoft_Azure_Expert/RecommendationListBlade/so
urce/ActivityLog/recommendationTypeId/a5f888e3-8cf4-4491-b2ba-
b120e14eb7ce/resourceId/%2Fsubscriptions%2F<subscription id>%2FresourceGroups%2F<resource group
name>%2Fproviders%2FMicrosoft.DBforMariaDB%2Fservers%2F<resource name>",
"recommendationType":"a5f888e3-8cf4-4491-b2ba-b120e14eb7ce"
},
"resourceId":"/subscriptions/<subscription id>/resourcegroups/<resource group
name>/providers/microsoft.dbformariadb/servers/<resource name>",
"resourceGroupName":"<resource group name>",
"resourceProviderName":"MICROSOFT.DBFORMARIADB",
"status":"Active",
"subStatus":"",
"subscriptionId":"<subscription id>",
"submissionTimestamp":"2019-07-17T20:36:39.3966926+00:00",
"resourceType":"MICROSOFT.DBFORMARIADB/SERVERS"
}
},
"properties":{
}
}
}
In either schema, you can identify Advisor recommendation events by looking for eventSource is Recommendation
and operationName is Microsoft.Advisor/recommendations/available/action .
Some of the other important fields that you may want to use are:
alertTargetIDs (in the common schema) or resourceId (legacy schema)
recommendationType
recommendationName
recommendationCategory
recommendationImpact
recommendationResourceLink
3. To edit an alert, click on the Alert name to open the alert and edit the fields you want to edit.
4. To delete, enable, or disable an alert, click on the ellipse at the end of the row and then select the action you
would like to take.
Next steps
Get an overview of activity log alerts, and learn how to receive alerts.
Learn more about action groups.
Quickstart: Create Azure Advisor alerts on new
recommendations using an ARM template
9/22/2020 • 3 minutes to read • Edit Online
This article shows you how to set up an alert for new recommendations from Azure Advisor using an Azure
Resource Manager template (ARM template).
An ARM template is a JavaScript Object Notation (JSON) file that defines the infrastructure and configuration for
your project. The template uses declarative syntax, which lets you state what you intend to deploy without having to
write the sequence of programming commands to create it.
Whenever Azure Advisor detects a new recommendation for one of your resources, an event is stored in Azure
Activity log. You can set up alerts for these events from Azure Advisor using a recommendation-specific alerts
creation experience. You can select a subscription and optionally a resource group to specify the resources that you
want to receive alerts on.
You can also determine the types of recommendations by using these properties:
Category
Impact level
Recommendation type
You can also configure the action that will take place when an alert is triggered by:
Selecting an existing action group
Creating a new action group
To learn more about action groups, see Create and manage action groups.
NOTE
Advisor alerts are currently only available for High Availability, Performance, and Cost recommendations. Security
recommendations are not supported.
Prerequisites
If you don't have an Azure subscription, create a free account before you begin.
To run the commands from your local computer, install Azure CLI or the Azure PowerShell modules. For more
information, see Install the Azure CLI and Install Azure PowerShell.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"actionGroups_name": {
"defaultValue": "advisorAlert",
"type": "string"
"type": "string"
},
"activityLogAlerts_name": {
"defaultValue": "AdvisorAlertsTest",
"type": "string"
},
"emailAddress": {
"defaultValue": "<email address>",
"type": "string"
}
},
"variables": {
"alertScope": "[concat('/','subscriptions','/',subscription().subscriptionId)]"
},
"resources": [
{
"comments": "Action Group",
"type": "microsoft.insights/actionGroups",
"name": "[parameters('actionGroups_name')]",
"apiVersion": "2019-06-01",
"location": "Global",
"tags": {},
"scale": null,
"properties": {
"groupShortName": "[parameters('actionGroups_name')]",
"enabled": true,
"emailReceivers": [
{
"name": "[parameters('actionGroups_name')]",
"emailAddress": "[parameters('emailAddress')]"
}
],
"smsReceivers": [],
"webhookReceivers": []
},
"dependsOn": []
},
{
"comments": "Azure Advisor Activity Log Alert",
"type": "microsoft.insights/activityLogAlerts",
"name": "[parameters('activityLogAlerts_name')]",
"apiVersion": "2017-04-01",
"location": "Global",
"tags": {},
"scale": null,
"properties": {
"scopes": [
"[variables('alertScope')]"
],
"condition": {
"allOf": [
{
"field": "category",
"equals": "Recommendation"
},
{
"field": "properties.recommendationCategory",
"equals": "Cost"
},
{
"field": "properties.recommendationImpact",
"equals": "Medium"
},
{
"field": "operationName",
"equals": "Microsoft.Advisor/recommendations/available/action"
}
]
},
"actions": {
"actions": {
"actionGroups": [
{
"actionGroupId": "[resourceId('microsoft.insights/actionGroups',
parameters('actionGroups_name'))]",
"webhookProperties": {}
}
]
},
"enabled": true,
"description": ""
},
"dependsOn": [
"[resourceId('microsoft.insights/actionGroups', parameters('actionGroups_name'))]"
]
}
]
}
az login
az deployment group create --name CreateAdvisorAlert --resource-group my-resource-group --template-file
CreateAdvisorAlert.json --parameters emailAddress='user@contoso.com'
Clean up resources
If you plan to continue working with subsequent quickstarts and tutorials, you might want to leave these resources
in place. When no longer needed, delete the resource group, which deletes the alert rule and the related resources.
To delete the resource group by using Azure CLI or Azure PowerShell
CLI
PowerShell
az group delete --name my-resource-group
Next steps
Get an overview of activity log alerts, and learn how to receive alerts.
Learn more about action groups.
Get started with Azure Advisor
9/22/2020 • 4 minutes to read • Edit Online
Learn how to access Advisor through the Azure portal, get recommendations, and implement recommendations.
NOTE
Azure Advisor automatically runs in the background to find newly created resources. It can take up to 24 hours to provide
recommendations on those resources.
Get recommendations
1. Sign in to the Azure portal.
2. In the left pane, click Advisor . If you do not see Advisor in the left pane, click All ser vices . In the service
menu pane, under Monitoring and Management , click Advisor . The Advisor dashboard is displayed.
3. The Advisor dashboard will display a summary of your recommendations for all selected subscriptions.
You can choose the subscriptions that you want recommendations to be displayed for using the
subscription filter dropdown.
4. To get recommendations for a specific category, click one of the tabs: Reliability , Security , Performance ,
or Cost .
Filter recommendations
You can filter recommendations to drill down to what is most important to you. You can filter by subscription,
resource type, or recommendation status.
1. Sign in to the Azure portal, and then open Advisor.
2. Use the dropdowns on the Advisor dashboard to filter by subscription, resource type, or recommendation
status.
NOTE
To include or exclude a subscription or resource group from Advisor, you must be a subscription Owner. If you do not have
the required permissions for a subscription or resource group, the option to include or exclude it is disabled in the user
interface.
NOTE
To adjust the average CPU utilization rule for identifying low usage virtual machines, you must be a subscription Owner. If
you do not have the required permissions for a subscription or resource group, the option to include or exclude it will be
disabled in the user interface.
Download recommendations
Advisor enables you to download a summary of your recommendations. You can download your
recommendations as a PDF file or a CSV file. Downloading your recommendations enables you to easily share
with your colleagues or perform your own analysis on top of the recommendation data.
1. Sign in to the Azure portal, and then open Advisor.
2. Click Download as CSV or Download as PDF on the action bar.
The download option respects any filters you have applied to the Advisor dashboard. If you select the download
option while viewing a specific recommendation category or recommendation, the downloaded summary only
includes information for that category or recommendation.
Next steps
To learn more about Advisor, see:
Introduction to Azure Advisor
Advisor Reliability recommendations
Advisor Security recommendations
Advisor Performance recommendations
Advisor Cost recommendations
Advisor Operational Excellence recommendations
Improve the reliability of your application by using
Azure Advisor
9/22/2020 • 8 minutes to read • Edit Online
Azure Advisor helps you ensure and improve the continuity of your business-critical applications. You can get
reliability recommendations from Advisor on the Reliability tab of the Advisor dashboard.
Check the version of your Check Point network virtual appliance image
Advisor can identify whether your virtual machine is running a version of the Check Point image that has been
known to lose network connectivity during platform servicing operations. The Advisor recommendation will help
you upgrade to a newer version of the image that addresses this problem. This check will ensure business
continuity through better network connectivity.
Use soft delete on your Azure storage account to save and recover
data after accidental overwrite or deletion
Enable soft delete on your storage account so that deleted blobs transition to a soft deleted state instead of being
permanently deleted. When data is overwritten, a soft deleted snapshot is generated to save the state of the
overwritten data. Using soft delete allows you to recover from accidental deletions or overwrites. Advisor
identifies Azure storage accounts that don't have soft delete enabled and suggests that you enable it.
NOTE
If you choose to create an availability set, you need to add at least one more virtual machine into it. We recommend that
you group two or more virtual machines in an availability set to ensure that at least one machine is available during an
outage.
Ensure availability set fault tolerance (temporarily disabled)
To provide redundancy for your application, we recommend that you group two or more virtual machines in an
availability set. Advisor identifies availability sets that contain a single virtual machine and recommends adding
one or more virtual machines to it. This configuration ensures that during either planned or unplanned
maintenance, at least one virtual machine is available and meets the Azure virtual machine SLA. You can choose
to create a virtual machine or to add an existing virtual machine to the availability set.
Upgrade your Azure Cosmos DB .NET SDK to the latest version from
NuGet
Azure Advisor identifies Azure Cosmos DB accounts that are using old versions of the .NET SDK. It recommends
that you upgrade to the latest version from NuGet for the latest fixes, performance improvements, and feature
capabilities. Learn more about Azure Cosmos DB .NET SDK.
Upgrade your Azure Cosmos DB Java SDK to the latest version from
Maven
Azure Advisor identifies Azure Cosmos DB accounts that are using old versions of the Java SDK. It recommends
that you upgrade to the latest version from Maven for the latest fixes, performance improvements, and feature
capabilities. Learn more about Azure Cosmos DB Java SDK.
Next steps
For more information about Advisor recommendations, see:
Introduction to Advisor
Get started with Advisor
Advisor cost recommendations
Advisor performance recommendations
Advisor security recommendations
Advisor operational excellence recommendations
Make resources more secure with Azure Advisor
9/22/2020 • 2 minutes to read • Edit Online
Azure Advisor provides you with a consistent, consolidated view of recommendations for all your Azure
resources. It integrates with Azure Security Center to bring you security recommendations. You can get security
recommendations from the Security tab on the Advisor dashboard.
Security Center helps you prevent, detect, and respond to threats with increased visibility into and control over
the security of your Azure resources. It periodically analyzes the security state of your Azure resources. When
Security Center identifies potential security vulnerabilities, it creates recommendations. The recommendations
guide you through the process of configuring the controls you need.
For more information about security recommendations, see Managing security recommendations in Azure
Security Center.
Next steps
To learn more about Advisor recommendations, see:
Introduction to Advisor
Get started with Advisor
Advisor cost recommendations
Advisor performance recommendations
Advisor reliability recommendations
Advisor operational excellence recommendations
Advisor REST API
Improve the performance of Azure applications by
using Azure Advisor
9/22/2020 • 12 minutes to read • Edit Online
The performance recommendations in Azure Advisor can help improve the speed and responsiveness of your
business-critical applications. You can get performance recommendations from Advisor on the Performance tab
of the Advisor dashboard.
NOTE
Before you can get recommendations, your database needs to be in use for about a week, and within that week there
needs to be some consistent activity. SQL Database Advisor can optimize more easily for consistent query patterns than
for random bursts of activity.
Upgrade your Storage client library to the latest version for better
reliability and performance
The latest version of the Storage client library SDK contains fixes to problems reported by customers and
proactively identified through our QA process. The latest version also carries reliability and performance
optimization together with new features that can improve your overall experience with using Azure Storage.
Advisor provides recommendations and steps needed to upgrade to the latest version of the SDK if you're using a
stale version. The recommendations are for supported languages: C++ and .NET.
NOTE
Classic alerts in Azure Monitor were retired in August 2019. We recommended that you upgrade your classic storage
account to use Resource Manager to retain alerting functionality with the new platform. For more information, see classic
alerts retirement.
Next steps
To learn more about Advisor recommendations, see:
Introduction to Advisor
Get started with Advisor
Advisor cost recommendations
Advisor reliability recommendations
Advisor security recommendations
Advisor operational excellence recommendations
Advisor REST API
Reduce service costs by using Azure Advisor
9/22/2020 • 7 minutes to read • Edit Online
Azure Advisor helps you optimize and reduce your overall Azure spend by identifying idle and underutilized
resources. You can get cost recommendations from the Cost tab on the Advisor dashboard.
Buy reserved instances for several resource types to save over your
pay-as-you-go costs
Advisor analyzes usage patterns for the past 30 days for the following resources and recommends reserved
capacity purchases that optimize costs.
Azure Cosmos DB reserved capacity
Advisor analyzes your Azure Cosmos DB usage patterns for the past 30 days and recommends reserved capacity
purchases to optimize costs. By using reserved capacity, you can pre-purchase Azure Cosmos DB hourly usage
and save over your pay-as-you-go costs. Reserved capacity is a billing benefit and automatically applies to new
and existing deployments. Advisor calculates savings estimates for individual subscriptions by using 3-year
reservation pricing and by extrapolating the usage patterns observed over the past 30 days. Shared scope
recommendations are available for reserved capacity purchases and can increase savings.
SQL PaaS reserved capacity
Advisor analyzes SQL PaaS elastic database pools and SQL Managed Instance usage patterns over the past 30
days. It then recommends reserved capacity purchases that optimize costs. By using reserved capacity, you can
pre-purchase SQL DB hourly usage and save over your SQL compute costs. Your SQL license is charged
separately and isn't discounted by the reservation. Reserved capacity is a billing benefit and automatically applies
to new and existing deployments. Advisor calculates savings estimates for individual subscriptions by using 3-
year reservation pricing and by extrapolating the usage patterns observed over the past 30 days. Shared scope
recommendations are available for reserved capacity purchases and can increase savings.
App Service Stamp Fee reserved capacity
Advisor analyzes the Stamp Fee usage pattern for your Azure App Service isolated environment over the past 30
days and recommends reserved capacity purchases that optimize costs. By using reserved capacity, you can pre-
purchase hourly usage for the isolated environment Stamp Fee and save over your pay-as-you-go costs. Note
that reserved capacity applies only to the Stamp Fee and not to App Service instances. Reserved capacity is a
billing benefit and automatically applies to new and existing deployments. Advisor calculates saving estimates for
individual subscriptions by using 3-year reservation pricing based on usage patterns over the past 30 days.
Blob storage reserved capacity
Advisor analyzes your Azure Blob storage and Azure Data Lake storage usage over the past 30 days. It then
calculates reserved capacity purchases that optimize costs. With reserved capacity, you can pre-purchase hourly
usage and save over your current on-demand costs. Blob storage reserved capacity applies only to data stored
on Azure Blob general-purpose v2 and Azure Data Lake Storage Gen2 accounts. Reserved capacity is a billing
benefit and automatically applies to new and existing deployments. Advisor calculates savings estimates for
individual subscriptions by using 3-year reservation pricing and the usage patterns observed over the past 30
days. Shared scope recommendations are available for reserved capacity purchases and can increase savings.
MariaDB, MySQL, and PostgreSQL reserved capacity
Advisor analyzes your usage patterns for Azure Database for MariaDB, Azure Database for MySQL, and Azure
Database for PostgreSQL over the past 30 days. It then recommends reserved capacity purchases that optimize
costs. By using reserved capacity, you can pre-purchase MariaDB, MySQL, and PostgreSQL hourly usage and save
over your current costs. Reserved capacity is a billing benefit and automatically applies to new and existing
deployments. Advisor calculates savings estimates for individual subscriptions by using 3-year reservation
pricing and the usage patterns observed over the past 30 days. Shared scope recommendations are available for
reserved capacity purchases and can increase savings.
Azure Synapse Analytics (formerly SQL Data Warehouse ) reserved capacity
Advisor analyzes your Azure Synapse Analytics usage patterns over the past 30 days and recommends reserved
capacity purchases that optimize costs. By using reserved capacity, you can pre-purchase Synapse Analytics
hourly usage and save over your on-demand costs. Reserved capacity is a billing benefit and automatically
applies to new and existing deployments. Advisor calculates savings estimates for individual subscriptions by
using 3-year reservation pricing and the usage patterns observed over the past 30 days. Shared scope
recommendations are available for reserved capacity purchases and can increase savings.
Reduce Azure Data Explorer table cache-period (policy) for cluster cost
optimization (Preview)
Advisor identifies resources where reducing the table cache policy will free up Azure Data Explorer cluster nodes
having low CPU utilization, memory, and a high cache size configuration.
Next steps
To learn more about Advisor recommendations, see:
Introduction to Advisor
Get started with Advisor
Advisor performance recommendations
Advisor high availability recommendations
Advisor security recommendations
Advisor operational excellence recommendations
Achieve operational excellence by using Azure
Advisor
9/22/2020 • 4 minutes to read • Edit Online
Ensure you have access to Azure cloud experts when you need it
When running a business-critical workload, it's important to have access to technical support when you need it.
Advisor identifies potential business-critical subscriptions that don't have technical support included in their
support plan. It recommends upgrading to an option that includes technical support.
Next steps
To learn more about Advisor recommendations, see:
Introduction to Advisor
Get started
Advisor cost recommendations
Advisor performance recommendations
Advisor reliability recommendations
Advisor security recommendations
Advisor REST API
View Azure Advisor recommendations that matter to
you
9/22/2020 • 3 minutes to read • Edit Online
Azure Advisor provides recommendations to help you optimize your Azure deployments. Within Advisor, you have
access to a few features that help you to narrow down your recommendations to only those that matter to you.
3. Check the box in the Include column for any subscriptions or resource groups to receive Advisor
recommendations. If the box is disabled, you may not have permission to make a configuration change on
that subscription or resource group. Learn more about permissions in Azure Advisor.
4. Click Apply at the bottom after you make a change.
NOTE
If the selection boxes are disabled, recommendations may still be loading. Please wait for all recommendations to load before
trying to postpone or dismiss.
Azure Advisor provides recommendations based on the usage and configuration of your Azure resources and
subscriptions. Advisor uses the built-in roles provided by Azure role-based access control (Azure RBAC) to manage
your access to recommendations and Advisor features.
DISM ISS A N D
VIEW EDIT EDIT RESO URC E P O ST P O N E
REC O M M EN DAT I SUB SC RIP T IO N GRO UP REC O M M EN DAT I
RO L E ONS EDIT RUL ES C O N F IGURAT IO N C O N F IGURAT IO N ONS
Subscription X X X X X
Owner
Subscription X X X X X
Contributor
Subscription X -- -- -- --
Reader
Resource group X -- -- X X
Owner
Resource group X -- -- X X
Contributor
Resource group X -- -- -- --
Reader
Resource Owner X -- -- -- X
Resource X -- -- -- X
Contributor
Resource Reader X -- -- -- --
NOTE
Access to view recommendations is dependent on your access to the recommendation's impacted resource.
Next steps
This article gave an overview of how Advisor uses RBAC to control user permissions and how to resolve common
issues. To learn more about Advisor, see:
What is Azure Advisor?
Get started with Azure Advisor
Create Azure Advisor alerts on new
recommendations using the Azure portal
9/22/2020 • 3 minutes to read • Edit Online
This article shows you how to set up an alert for new recommendations from Azure Advisor using the Azure portal.
Whenever Azure Advisor detects a new recommendation for one of your resources, an event is stored in Azure
Activity log. You can set up alerts for these events from Azure Advisor using a recommendation-specific alerts
creation experience. You can select a subscription and optionally a resource group to specify the resources that you
want to receive alerts on.
You can also determine the types of recommendations by using these properties:
Category
Impact level
Recommendation type
You can also configure the action that will take place when an alert is triggered by:
Selecting an existing action group
Creating a new action group
To learn more about action groups, see Create and manage action groups.
NOTE
Advisor alerts are currently only available for High Availability, Performance, and Cost recommendations. Security
recommendations are not supported.
4. In the Scope section, select the subscription and optionally the resource group that you want to be alerted
on.
5. In the Condition section, select the method you want to use for configuring your alert. If you want to alert
for all recommendations for a certain category and/or impact level, select Categor y and impact level . If
you want to alert for all recommendations of a certain type, select Recommendation type .
6. Depending on the Configure by option that you select, you will be able to specify the criteria. If you want all
recommendations, just leave the remaining fields blank.
7. In the action groups section, select Add existing to use an action group you already created or select
Create new to set up a new action group.
8. In the Alert details section, give your alert a name and short description. If you want your alert to be
enabled, leave Enable rule upon creation selection set to Yes . Then select the resource group to save
your alert to. This will not impact the targeting scope of the recommendation.
Configure recommendation alerts to use a webhook
This section shows you how to configure Azure Advisor alerts to send recommendation data through webhooks to
your existing systems.
You can set up alerts to be notified when you have a new Advisor recommendation on one of your resources.
These alerts can notify you through email or text message, but they can also be used to integrate with your existing
systems through a webhook.
Using the Advisor recommendation alert payload
If you want to integrate Advisor alerts into your own systems using a webhook, you will need to parse the JSON
payload that is sent from the notification.
When you set up your action group for this alert, you select if you would like to use the common alert schema. If
you select the common alert schema, your payload will look like:
{
"schemaId":"azureMonitorCommonAlertSchema",
"data":{
"essentials":{
"alertId":"/subscriptions/<subid>/providers/Microsoft.AlertsManagement/alerts/<alerted>",
"alertRule":"Webhhook-test",
"severity":"Sev4",
"signalType":"Activity Log",
"monitorCondition":"Fired",
"monitoringService":"Activity Log - Recommendation",
"alertTargetIDs":[
"/subscriptions/<subid>/resourcegroups/<resource group
name>/providers/microsoft.dbformariadb/servers/<resource name>"
],
"originAlertId":"001d8b40-5d41-4310-afd7-d65c9d4428ed",
"firedDateTime":"2019-07-17T23:00:57.3858656Z",
"description":"A new recommendation is available.",
"essentialsVersion":"1.0",
"alertContextVersion":"1.0"
},
"alertContext":{
"channels":"Operation",
"claims":"
{\"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress\":\"Microsoft.Advisor\"}",
"caller":"Microsoft.Advisor",
"correlationId":"8554b847-2a72-48ef-9776-600aca3c3aab",
"eventSource":"Recommendation",
"eventTimestamp":"2019-07-17T22:28:54.1566942+00:00",
"httpRequest":"{\"clientIpAddress\":\"0.0.0.0\"}",
"eventDataId":"001d8b40-5d41-4310-afd7-d65c9d4428ed",
"level":"Informational",
"operationName":"Microsoft.Advisor/recommendations/available/action",
"properties":{
"recommendationSchemaVersion":"1.0",
"recommendationCategory":"Performance",
"recommendationImpact":"Medium",
"recommendationName":"Increase the MariaDB server vCores",
"recommendationResourceLink":"https://portal.azure.com/#blade/Microsoft_Azure_Expert/RecommendationListBlade/s
ource/ActivityLog/recommendationTypeId/a5f888e3-8cf4-4491-b2ba-b120e14eb7ce/resourceId/%2Fsubscriptions%
<subscription id>%2FresourceGroups%2<resource group
name>%2Fproviders%2FMicrosoft.DBforMariaDB%2Fservers%2F<resource name>",
"recommendationType":"a5f888e3-8cf4-4491-b2ba-b120e14eb7ce"
},
"status":"Active",
"subStatus":"",
"submissionTimestamp":"2019-07-17T22:28:54.1566942+00:00"
}
}
}
If you do not use the common schema, your payload looks like the following:
{
"schemaId":"Microsoft.Insights/activityLogs",
"data":{
"status":"Activated",
"context":{
"activityLog":{
"channels":"Operation",
"claims":"
{\"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress\":\"Microsoft.Advisor\"}",
"caller":"Microsoft.Advisor",
"correlationId":"3ea7320f-c002-4062-adb8-96d3bd92a5f4",
"description":"A new recommendation is available.",
"eventSource":"Recommendation",
"eventTimestamp":"2019-07-17T20:36:39.3966926+00:00",
"httpRequest":"{\"clientIpAddress\":\"0.0.0.0\"}",
"eventDataId":"a12b8e59-0b1d-4003-bfdc-3d8152922e59",
"level":"Informational",
"operationName":"Microsoft.Advisor/recommendations/available/action",
"properties":{
"recommendationSchemaVersion":"1.0",
"recommendationCategory":"Performance",
"recommendationImpact":"Medium",
"recommendationName":"Increase the MariaDB server vCores",
"recommendationResourceLink":"https://portal.azure.com/#blade/Microsoft_Azure_Expert/RecommendationListBlade/s
ource/ActivityLog/recommendationTypeId/a5f888e3-8cf4-4491-b2ba-
b120e14eb7ce/resourceId/%2Fsubscriptions%2F<subscription id>%2FresourceGroups%2F<resource group
name>%2Fproviders%2FMicrosoft.DBforMariaDB%2Fservers%2F<resource name>",
"recommendationType":"a5f888e3-8cf4-4491-b2ba-b120e14eb7ce"
},
"resourceId":"/subscriptions/<subscription id>/resourcegroups/<resource group
name>/providers/microsoft.dbformariadb/servers/<resource name>",
"resourceGroupName":"<resource group name>",
"resourceProviderName":"MICROSOFT.DBFORMARIADB",
"status":"Active",
"subStatus":"",
"subscriptionId":"<subscription id>",
"submissionTimestamp":"2019-07-17T20:36:39.3966926+00:00",
"resourceType":"MICROSOFT.DBFORMARIADB/SERVERS"
}
},
"properties":{
}
}
}
In either schema, you can identify Advisor recommendation events by looking for eventSource is Recommendation
and operationName is Microsoft.Advisor/recommendations/available/action .
Some of the other important fields that you may want to use are:
alertTargetIDs (in the common schema) or resourceId (legacy schema)
recommendationType
recommendationName
recommendationCategory
recommendationImpact
recommendationResourceLink
3. To edit an alert, click on the Alert name to open the alert and edit the fields you want to edit.
4. To delete, enable, or disable an alert, click on the ellipse at the end of the row and then select the action you
would like to take.
Next steps
Get an overview of activity log alerts, and learn how to receive alerts.
Learn more about action groups.
Configure periodic summary for recommendations
9/22/2020 • 2 minutes to read • Edit Online
Advisor recommendation digests provide an easy and proactive way to stay on top of your active
recommendations, across different categories. The feature provides the ability to configure periodic notifications for
the summary of all your active recommendations, across different categories. You can choose your desired channel
for notifications like email, sms or others, using action groups. This article shows you how to set-up a
recommendation digests for your Advisor recommendations.
Step 2: Select New recommendation digest from the top bar as below:
Step 3: In the scope section, select the subscription for your digest
Step 4: In the condition section, select the configurations like categor y , frequency and language
Step 5: In the action group section, select the action group for the digest. You can learn more here -
Create and manage action groups
Step 6: In this final section for digest details , you can assign name and state to your recommendation
digest. Press create recommendation digest to complete the set-up.
Next steps
For more information about Advisor recommendations, see:
Introduction to Azure Advisor
Get started with Advisor
Advisor Cost recommendations
Advisor Performance recommendations
Advisor Security recommendations
Advisor Operational Excellence recommendations
Advisor REST API
Quick Fix remediation for Advisor
9/22/2020 • 2 minutes to read • Edit Online
Quick Fix enables a faster and easier way of remediation for recommendation on multiple resources. It provides
capability for bulk remediations for resources and helps you optimize your subscriptions faster with remediation at
scale for your resources. The feature is available for certain recommendations only, via Azure portal.
NOTE
If there are other implications, in addition to benefits mentioned in Advisor, you will be communicated in the
experience to help you take informed remediation decisions.
4. You will get a notification for the remediation completion. You will see an error if there are resources which
are not remediated and resources in the selected mode in the resource list view.
Next steps
For more information about Advisor recommendations, see:
Introduction to Azure Advisor
Get started with Advisor
Advisor Cost recommendations
Advisor Performance recommendations
Advisor Security recommendations
Advisor Operational Excellence recommendations
Advisor REST API
Query for Advisor data in Resource Graph Explorer
(Azure Resource Graph)
9/22/2020 • 2 minutes to read • Edit Online
Advisor resources are now onboarded to Azure Resource Graph. This lays foundation to many at-scale customer
scenarios for Advisor recommendations. Few scenarios that were not possible before to do at scale and now can be
achieved using Resource Graph are:
Gives capability to perform complex query for all your subscriptions in Azure portal
Recommendations summarized by category types ( like reliability, performance) and impact types (high,
medium, low)
All recommendations for a particular recommendation type
Impacted resource count by recommendation category
Next steps
For more information about Advisor recommendations, see:
Introduction to Azure Advisor
Get started with Advisor
Advisor cost recommendations
Advisor reliability recommendations
Advisor performance recommendations
Advisor security recommendations
Advisor operational excellence recommendations
Advisor REST API
Optimize Azure workloads using Advisor score
9/22/2020 • 7 minutes to read • Edit Online
In case any of Advisor recommendations are not relevant for an individual resource, you can postpone or dismiss
those recommendations and they will be excluded from the score calculation from the next refresh. Advisor will
also use this input as additional feedback to improve the model.
Next steps
For more information about Advisor recommendations, see:
Introduction to Advisor
Get started with Advisor
Advisor cost recommendations
Advisor performance recommendations
Advisor security recommendations
Advisor operational excellence recommendations
Database Advisor performance recommendations for
Azure SQL Database
9/22/2020 • 7 minutes to read • Edit Online
Performance overview
Performance overview provides a summary of your database performance, and helps you with performance
tuning and troubleshooting.
The Recommendations tile provides a breakdown of tuning recommendations for your database (top three
recommendations are shown if there are more). Clicking this tile takes you to Performance recommendation
options .
The Tuning activity tile provides a summary of the ongoing and completed tuning actions for your database,
giving you a quick view into the history of tuning activity. Clicking this tile takes you to the full tuning history
view for your database.
The Auto-tuning tile shows the auto-tuning configuration for your database (tuning options that are
automatically applied to your database). Clicking this tile opens the automation configuration dialog.
The Database queries tile shows the summary of the query performance for your database (overall DTU
usage and top resource consuming queries). Clicking this tile takes you to Quer y Performance Insight .
To apply performance recommendations, see applying recommendations. To view the status of recommendations,
see Monitoring operations.
You can also find complete history of tuning actions that were applied in the past.
Create index recommendations
Azure SQL Database continuously monitors the queries that are running and identifies the indexes that could
improve performance. After there's enough confidence that a certain index is missing, a new Create index
recommendation is created.
Azure SQL Database builds confidence by estimating the performance gain the index would bring through time.
Depending on the estimated performance gain, recommendations are categorized as high, medium, or low.
Indexes that are created by using recommendations are always flagged as auto-created indexes. You can see which
indexes are auto-created by looking at the sys.indexes view. Auto-created indexes don't block ALTER/RENAME
commands.
If you try to drop the column that has an auto-created index over it, the command passes. The auto-created index is
dropped with the command as well. Regular indexes block the ALTER/RENAME command on columns that are
indexed.
After the create index recommendation is applied, Azure SQL Database compares the performance of the queries
with the baseline performance. If the new index improved performance, the recommendation is flagged as
successful and the impact report is available. If the index didn't improve performance, it's automatically reverted.
Azure SQL Database uses this process to ensure that recommendations improve database performance.
Any create index recommendation has a back-off policy that doesn't allow applying the recommendation if the
resource usage of a database or pool is high. The back-off policy takes into account CPU, Data IO, Log IO, and
available storage.
If CPU, data IO, or log IO is higher than 80% in the previous 30 minutes, the create index recommendation is
postponed. If the available storage will be below 10% after the index is created, the recommendation goes into an
error state. If, after a couple of days, automatic tuning still believes that the index would be beneficial, the process
starts again.
This process repeats until there's enough available storage to create an index, or until the index isn't seen as
beneficial anymore.
Fix schema issues recommendations appear when Azure SQL Database notices an anomaly in the number of
schema-related SQL errors that are happening on your database. This recommendation typically appears when
your database encounters multiple schema-related errors (invalid column name, invalid object name, and so on)
within an hour.
"Schema issues" are a class of syntax errors. They occur when the definition of the SQL query and the definition of
the database schema aren't aligned. For example, one of the columns that's expected by the query might be
missing in the target table or vice-versa.
The "Fix schema issue" recommendation appears when Azure SQL Database notices an anomaly in the number of
schema-related SQL errors that are happening on your database. The following table shows the errors that are
related to schema issues:
SQ L ERRO R C O DE M ESSA GE
201 Procedure or function '' expects parameter '', which was not
supplied.
Custom applications
Developers might consider developing custom applications using performance recommendations for Azure SQL
Database. All recommendations listed in the portal for a database can be accessed through Get-
AzSqlDatabaseRecommendedAction API.
Next steps
For more information about automatic tuning of database indexes and query execution plans, see Azure SQL
Database automatic tuning.
For more information about automatically monitoring database performance with automated diagnostics and
root cause analysis of performance issues, see Azure SQL Intelligent Insights.
See Query Performance Insights to learn about and view the performance impact of your top queries.
Best Practices for Azure App Service
9/22/2020 • 4 minutes to read • Edit Online
This article summarizes best practices for using Azure App Service.
Colocation
When Azure resources composing a solution such as a web app and a database are located in different regions, it can have the following effects:
Increased latency in communication between resources
Monetary charges for outbound data transfer cross-region as noted on the Azure pricing page.
Colocation in the same region is best for Azure resources composing a solution such as a web app and a database or storage account used to hold content or data. When
creating resources, make sure they are in the same Azure region unless you have specific business or design reason for them not to be. You can move an App Service app to
the same region as your database by using the App Service cloning feature currently available for Premium App Service Plan apps.
If you are running on App Service on Linux on a machine with multiple cores, another best practice is to use PM2 to start multiple Node.js processes to execute your
application. You can do it by specifying a startup command to your container.
For example, to start four instances:
Next Steps
For more information on best practices, visit App Service Diagnostics to find out actionable best practices specific to your resource.
Navigate to your Web App in the Azure portal.
Click on Diagnose and solve problems in the left navigation, which opens App Service Diagnostics.
Choose Best Practices homepage tile.
Click Best Practices for Availability & Performance or Best Practices for Optimal Configuration to view the current state of your app in regards to these best
practices.
You can also use this link to directly open App Service Diagnostics for your resource:
https://ms.portal.azure.com/?
websitesextension_ext=asd.featurePath%3Ddetectors%2FParentAvailabilityAndPerformance#@microsoft.onmicrosoft.com/resource/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Micr
.