Skip to content

Commit 8f3ede3

Browse files
authored
Merge pull request #210171 from EdB-MSFT/autoscale-clarify-and-or
clarified multiple rules logic
2 parents 38fddbd + e98e038 commit 8f3ede3

File tree

1 file changed

+34
-41
lines changed

1 file changed

+34
-41
lines changed

articles/azure-monitor/autoscale/autoscale-overview.md

Lines changed: 34 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ ms.service: azure-monitor
77
ms.subservice: autoscale
88
ms.topic: conceptual
99
ms.date: 08/01/2022
10-
ms.reviewer: riroloff
10+
ms.reviewer:
1111

1212
---
1313

@@ -18,13 +18,13 @@ This article describes Microsoft Azure autoscale and its benefits.
1818
Azure autoscale supports many resource types. For more information about supported resources, see [autoscale supported resources](#supported-services-for-autoscale).
1919

2020
> [!NOTE]
21-
> [Availability sets](/archive/blogs/kaevans/autoscaling-azurevirtual-machines) are an older scaling feature for virtual machines with limited support. We recommend migrating to [virtual machine scale sets](../../virtual-machine-scale-sets/overview.md) for faster and more reliable autoscale support.
21+
> [Availability sets](/archive/blogs/kaevans/autoscaling-azurevirtual-machines) are an older scaling feature for virtual machines with limited support. We recommend migrating to [virtual machine scale sets](/azure/virtual-machine-scale-sets/overview) for faster and more reliable autoscale support.
2222
2323
## What is autoscale
2424

2525
Autoscale is a service that allows you to automatically add and remove resources according to the load on your application.
2626

27-
When your application experiences higher load, autoscale adds resources to handle the increased load. When load is low, autoscale reduces the number of resources, lowering your costs. You can scale your application based on metrics like CPU usage, queue length, and available memory, or based on a schedule. Metrics and schedules are set up in rules. The rules include a minimum level of resources that you need to run your application, and a maximum level of resources that won't be exceeded.
27+
When your application experiences higher load, autoscale adds resources to handle the increased load. When load is low, autoscale reduces the number of resources, lowering your costs. You can scale your application based on metrics like CPU usage, queue length, and available memory, or based on a schedule. Metrics and schedules are set up in rules. The rules include a minimum level of resources that you need to run your application, and a maximum level of resources that won't be exceeded.
2828

2929
For example, scale out your application by adding VMs when the average CPU usage per VM is above 70%. Scale it back in removing VMs when CPU usage drops to 40%.
3030

@@ -40,6 +40,8 @@ In contrast, scaling up and down, or vertical scaling, keeps the number of resou
4040

4141
:::image type="content" source="./media/autoscale-overview/vertical-scaling.png" alt-text="A diagram that shows scaling up by adding CPU and memory to a virtual machine.":::
4242

43+
When the conditions in the rules are met, one or more autoscale actions are triggered, adding or removing VMs. In addition, you can perform other actions like sending email notifications, or webhooks to trigger processes in other systems.
44+
4345
### Predictive autoscale (preview)
4446

4547
[Predictive autoscale](./autoscale-predictive.md) uses machine learning to help manage and scale Azure virtual machine scale sets with cyclical workload patterns. It forecasts the overall CPU load on your virtual machine scale set, based on historical CPU usage patterns. The scale set can then be scaled out in time to meet the predicted demand.
@@ -48,10 +50,10 @@ In contrast, scaling up and down, or vertical scaling, keeps the number of resou
4850

4951
You can set up autoscale via:
5052

51-
+ [Azure portal](autoscale-get-started.md)
52-
+ [PowerShell](../powershell-samples.md#create-and-manage-autoscale-settings)
53-
+ [Cross-platform Command Line Interface (CLI)](../cli-samples.md#autoscale)
54-
+ [Azure Monitor REST API](/rest/api/monitor/autoscalesettings)
53+
* [Azure portal](autoscale-get-started.md)
54+
* [PowerShell](../powershell-samples.md#create-and-manage-autoscale-settings)
55+
* [Cross-platform Command Line Interface (CLI)](../cli-samples.md#autoscale)
56+
* [Azure Monitor REST API](/rest/api/monitor/autoscalesettings)
5557

5658
## Architecture
5759

@@ -61,13 +63,11 @@ The following diagram shows the autoscale architecture.
6163

6264
### Resource metrics
6365

64-
Resources generate metrics that are used in autoscale rules to trigger scale events. Virtual machine scale sets use telemetry data from Azure diagnostics agents to generate metrics. Telemetry for Web apps and Cloud services comes directly from the Azure Infrastructure.
65-
66-
Some commonly used metrics include CPU usage, memory usage, thread counts, queue length, and disk usage. See [Autoscale Common Metrics](autoscale-common-metrics.md) for a list of available metrics.
66+
Resources generate metrics that are used in autoscale rules to trigger scale events. Virtual machine scale sets use telemetry data from Azure diagnostics agents to generate metrics. Telemetry for Web apps and Cloud services comes directly from the Azure Infrastructure. Some commonly used metrics include CPU usage, memory usage, thread counts, queue length, and disk usage. See [Autoscale Common Metrics](autoscale-common-metrics.md) for a list of available metrics.
6767

6868
### Custom metrics
6969

70-
Use your own custom metrics that your application generates. Configure your application to send metrics to [Application Insights](../app/app-insights-overview.md) so you can use those metrics decide when to scale.
70+
Use your own custom metrics that your application generates. Configure your application to send metrics to [Application Insights](/azure/azure-monitor/app/app-insights-overview) so you can use those metrics decide when to scale.
7171

7272
### Time
7373

@@ -77,26 +77,25 @@ Set up schedule-based rules to trigger scale events. Use schedule-based rules wh
7777

7878
Rules define the conditions needed to trigger a scale event, the direction of the scaling, and the amount to scale by. Rules can be:
7979

80-
+ Metric-based
81-
Trigger based on a metric value, for example when CPU usage is above 50%.
82-
+ Time-based
83-
Trigger based on a schedule, for example, every Saturday at 8am.
80+
* Metric-based
81+
Trigger based on a metric value, for example when CPU usage is above 50%.
82+
* Time-based
83+
Trigger based on a schedule, for example, every Saturday at 8am.
8484

8585
You can combine multiple rules using different metrics, for example CPU usage and queue length.
86-
87-
+ The OR operator is used when scaling out with multiple rules.
88-
+ The AND operator is used when scaling in with multiple rules.
86+
Autoscale scales out if *any* of the rules are met, whereas autoscale scales in only if *all* the rules are met.
87+
In terms of logic operators, the OR operator is used when scaling out with multiple rules. The AND operator is used when scaling in with multiple rules.
8988

9089
### Actions and automation
9190

9291
Rules can trigger one or more actions. Actions include:
9392

94-
+ Scale - Scale resources in or out.
95-
+ Email - Send an email to the subscription admins, co-admins, and/or any other email address.
96-
+ Webhooks - Call webhooks to trigger multiple complex actions inside or outside Azure. In Azure, you can:
97-
+ Start an [Azure Automation runbook](../../automation/overview.md).
98-
+ Call an [Azure Function](../../azure-functions/functions-overview.md).
99-
+ Trigger an [Azure Logic App](../../logic-apps/logic-apps-overview.md).
93+
* Scale - Scale resources in or out.
94+
* Email - Send an email to the subscription admins, co-admins, and/or any other email address.
95+
* Webhooks - Call webhooks to trigger multiple complex actions inside or outside Azure. In Azure, you can:
96+
* Start an [Azure Automation runbook](/azure/automation/overview).
97+
* Call an [Azure Function](/azure/azure-functions/functions-overview).
98+
* Trigger an [Azure Logic App](/azure/logic-apps/logic-apps-overview).
10099

101100
## Autoscale settings
102101

@@ -118,12 +117,12 @@ The full list of configurable fields and descriptions is available in the [Autos
118117

119118
For code examples, see
120119

121-
+ [Advanced Autoscale configuration using Resource Manager templates for virtual machine scale sets](autoscale-virtual-machine-scale-sets.md)
122-
+ [Autoscale REST API](/rest/api/monitor/autoscalesettings)
120+
* [Advanced Autoscale configuration using Resource Manager templates for virtual machine scale sets](autoscale-virtual-machine-scale-sets.md)
121+
* [Autoscale REST API](/rest/api/monitor/autoscalesettings)
123122

124123
## Horizontal vs vertical scaling
125124

126-
Autoscale scales horizontally, which is an increase, or decrease of the number of resource instances. For example, in a virtual machine scale set, scaling out means adding more virtual machines. Scaling in means removing virtual machines. Horizontal scaling is flexible in a cloud situation as it allows you to run a large number of VMs to handle load.
125+
Autoscale scales horizontally, which is an increase, or decrease of the number of resource instances. For example, in a virtual machine scale set, scaling out means adding more virtual machines Scaling in means removing virtual machines. Horizontal scaling is flexible in a cloud situation as it allows you to run a large number of VMs to handle load.
127126

128127
In contrast, vertical scaling, keeps the same number of resources constant, but gives them more capacity in terms of memory, CPU speed, disk space and network. Adding or removing capacity in vertical scaling is known as scaling or down. Vertical scaling is limited by the availability of larger hardware, which eventually reaches an upper limit. Hardware size availability varies in Azure by region. Vertical scaling may also require a restart of the virtual machine during the scaling process.
129128

@@ -139,22 +138,16 @@ The following services are supported by autoscale:
139138
| Azure Data Explorer Clusters|[Manage Azure Data Explorer clusters scaling to accommodate changing demand](/azure/data-explorer/manage-cluster-horizontal-scaling)|
140139
| Azure Stream Analytics | [Autoscale streaming units (Preview)](../../stream-analytics/stream-analytics-autoscale.md) |
141140
| Azure Machine Learning Workspace | [Autoscale an online endpoint](../../machine-learning/how-to-autoscale-endpoints.md) |
142-
| Azure SignalR Service | [Automatically scale units of an Azure SignalR service](../../azure-signalr/signalr-howto-scale-autoscale.md) |
143-
| Logic apps |[Adding integration service environment (ISE) capacity](../../logic-apps/ise-manage-integration-service-environment.md#add-ise-capacity)|
144-
| Media Services | [Autoscaling in Media Services](/azure/media-services/latest/release-notes#autoscaling) |
145-
| Service Bus |[Automatically update messaging units of an Azure Service Bus namespace](../../service-bus-messaging/automate-update-messaging-units.md)|
146-
| Spring Cloud |[Set up autoscale for microservice applications](../../spring-apps/how-to-setup-autoscale.md)|
147-
| Service Fabric Managed Clusters | [Introduction to Autoscaling on Service Fabric managed clusters](../../service-fabric/how-to-managed-cluster-autoscale.md) |
148141

149142
## Next steps
150143

151144
To learn more about autoscale, see the following resources:
152145

153-
+ [Azure Monitor autoscale common metrics](autoscale-common-metrics.md)
154-
+ [Scale virtual machine scale sets](../../virtual-machine-scale-sets/tutorial-autoscale-powershell.md?toc=%2fazure%2fazure-monitor%2ftoc.json)
155-
+ [Autoscale using Resource Manager templates for virtual machine scale sets](../../virtual-machine-scale-sets/tutorial-autoscale-powershell.md?toc=%2fazure%2fazure-monitor%2ftoc.json)
156-
+ [Best practices for Azure Monitor autoscale](autoscale-best-practices.md)
157-
+ [Use autoscale actions to send email and webhook alert notifications](autoscale-webhook-email.md)
158-
+ [Autoscale REST API](/rest/api/monitor/autoscalesettings)
159-
+ [Troubleshooting virtual machine scale sets and autoscale](../../virtual-machine-scale-sets/virtual-machine-scale-sets-troubleshoot.md)
160-
+ [Troubleshooting Azure Monitor autoscale](./autoscale-troubleshoot.md)
146+
* [Azure Monitor autoscale common metrics](autoscale-common-metrics.md)
147+
* [Scale virtual machine scale sets](../../virtual-machine-scale-sets/tutorial-autoscale-powershell.md?toc=%2fazure%2fazure-monitor%2ftoc.json)
148+
* [Autoscale using Resource Manager templates for virtual machine scale sets](../../virtual-machine-scale-sets/tutorial-autoscale-powershell.md?toc=%2fazure%2fazure-monitor%2ftoc.json)
149+
* [Best practices for Azure Monitor autoscale](autoscale-best-practices.md)
150+
* [Use autoscale actions to send email and webhook alert notifications](autoscale-webhook-email.md)
151+
* [Autoscale REST API](/rest/api/monitor/autoscalesettings)
152+
* [Troubleshooting virtual machine scale sets and autoscale](../../virtual-machine-scale-sets/virtual-machine-scale-sets-troubleshoot.md)
153+
* [Troubleshooting Azure Monitor autoscale](./autoscale-troubleshoot.md)

0 commit comments

Comments
 (0)