Azure Monitor 自动缩放常用指标
利用 Azure Monitor 自动缩放,可以根据遥测数据或指标增加或减少正在运行的实例数。 可以根据任何指标,甚至是来自不同资源的指标进行缩放。 例如,根据防火墙的流量缩放虚拟机规模集。
本文介绍用于触发缩放事件的常见指标。
Azure 自动缩放支持许多资源类型。 有关支持的资源的详细信息,请参阅自动缩放支持的资源。
对于所有资源,可以使用 PowerShell 或 Azure CLI 获取可用指标的列表
Get-AzMetricDefinition -ResourceId <resource_id>
az monitor metrics list-definitions --resource <resource_id>
基于 Resource Manager 的 VM 的计算指标
默认情况下,基于 Azure 资源管理器的虚拟机和虚拟机规模集发出基本(主机级)指标。 此外,为 Azure VM 和虚拟机规模集配置诊断数据集合时,Azure 诊断扩展也会发出来宾 OS 性能计数器。 这些计数器通常称为“来宾 OS 指标”。在自动缩放规则中使用所有这些指标。
如果使用虚拟机规模集,并发现特定指标未列出,可能是其在诊断扩展中已禁用。
如果特定指标未采样或以所需的频率传输,可以更新诊断配置。
如果发生上述任一情况,请参阅使用 PowerShell 在运行 Windows 的虚拟机中启用 Azure 诊断,配置和更新 Azure VM 诊断扩展以启用该指标。 文章还包含一个诊断配置文件示例。
基于 Resource Manager 的 Windows 和 Linux VM 的主机指标
默认情况下,将向 Windows 和 Linux 实例中的 Azure VM 和虚拟机规模集发出以下主机级指标。 这些指标可描述 Azure VM,但这些指标是从 Azure VM 主机而不是通过来宾 VM 上安装的代理收集的。 可在自动缩放规则中使用这些指标。
基于资源管理器的 Windows VM 的来宾 OS 指标
在 Azure 中创建 VM 时,使用诊断扩展会启用诊断。 诊断扩展会发出一组从 VM 内部获取的指标。 这意味着可以使用不是在默认情况下发出的指标进行自动缩放。
可以针对下列指标创建警报:
指标名称 | 计价单位 |
---|---|
\Processor(_Total)% Processor Time | 百分比 |
\Processor(_Total)% Privileged Time | 百分比 |
\Processor(_Total)% User Time | 百分比 |
\Processor Information(_Total)\Processor Frequency | 计数 |
\System\Processes | 计数 |
\Process(_Total)\Thread Count | 计数 |
\Process(_Total)\Handle Count | 计数 |
\Memory% Committed Bytes In Use | 百分比 |
\Memory\Available Bytes | 字节 |
\Memory\Committed Bytes | 字节 |
\Memory\Commit Limit | 字节 |
\Memory\Pool Paged Bytes | 字节 |
\Memory\Pool Nonpaged Bytes | 字节 |
\PhysicalDisk(_Total)% Disk Time | 百分比 |
\PhysicalDisk(_Total)% Disk Read Time | 百分比 |
\PhysicalDisk(_Total)% Disk Write Time | 百分比 |
\PhysicalDisk(_Total)\Disk Transfers/sec | 每秒计数 |
\PhysicalDisk(_Total)\Disk Reads/sec | 每秒计数 |
\PhysicalDisk(_Total)\Disk Writes/sec | 每秒计数 |
\PhysicalDisk(_Total)\Disk Bytes/sec | 每秒字节数 |
\PhysicalDisk(_Total)\Disk Read Bytes/sec | 每秒字节数 |
\PhysicalDisk(_Total)\Disk Write Bytes/sec | 每秒字节数 |
\PhysicalDisk(_Total)\Avg.磁盘队列长度 | 计数 |
\PhysicalDisk(_Total)\Avg.磁盘读取队列长度 | 计数 |
\PhysicalDisk(_Total)\Avg.磁盘写入队列长度 | 计数 |
\LogicalDisk(_Total)% Free Space | 百分比 |
\LogicalDisk(_Total)\Free Megabytes | 计数 |
Linux VM 的来宾 OS 指标
在 Azure 中创建 VM 时,使用诊断扩展会默认启用诊断。
可以针对下列指标创建警报:
指标名称 | 计价单位 |
---|---|
\Memory\AvailableMemory | 字节 |
\Memory\PercentAvailableMemory | 百分比 |
\Memory\UsedMemory | 字节 |
\Memory\PercentUsedMemory | 百分比 |
\Memory\PercentUsedByCache | 百分比 |
\Memory\PagesPerSec | 每秒计数 |
\Memory\PagesReadPerSec | 每秒计数 |
\Memory\PagesWrittenPerSec | 每秒计数 |
\Memory\AvailableSwap | 字节 |
\Memory\PercentAvailableSwap | 百分比 |
\Memory\UsedSwap | 字节 |
\Memory\PercentUsedSwap | 百分比 |
\Processor\PercentIdleTime | 百分比 |
\Processor\PercentUserTime | 百分比 |
\Processor\PercentNiceTime | 百分比 |
\Processor\PercentPrivilegedTime | 百分比 |
\Processor\PercentInterruptTime | 百分比 |
\Processor\PercentDPCTime | 百分比 |
\Processor\PercentProcessorTime | 百分比 |
\Processor\PercentIOWaitTime | 百分比 |
\PhysicalDisk\BytesPerSecond | 每秒字节数 |
\PhysicalDisk\ReadBytesPerSecond | 每秒字节数 |
\PhysicalDisk\WriteBytesPerSecond | 每秒字节数 |
\PhysicalDisk\TransfersPerSecond | 每秒计数 |
\PhysicalDisk\ReadsPerSecond | 每秒计数 |
\PhysicalDisk\WritesPerSecond | 每秒计数 |
\PhysicalDisk\AverageReadTime | 秒 |
\PhysicalDisk\AverageWriteTime | 秒 |
\PhysicalDisk\AverageTransferTime | 秒 |
\PhysicalDisk\AverageDiskQueueLength | 计数 |
\NetworkInterface\BytesTransmitted | 字节 |
\NetworkInterface\BytesReceived | 字节 |
\NetworkInterface\PacketsTransmitted | 计数 |
\NetworkInterface\PacketsReceived | 计数 |
\NetworkInterface\BytesTotal | 字节 |
\NetworkInterface\TotalRxErrors | 计数 |
\NetworkInterface\TotalTxErrors | 计数 |
\NetworkInterface\TotalCollisions | 计数 |
常用的应用服务(服务器场)指标
也可以根据常用的 Web 服务器指标(如 HTTP 队列长度)执行自动缩放。 其指标名称为 HttpQueueLength。 以下部分列出了可用的服务器场(应用服务)指标。
Web 应用指标
如果是 Web 应用,则可以按这些指标发出警报或以其为依据进行缩放。
指标名称 | 计价单位 |
---|---|
CpuPercentage | 百分比 |
MemoryPercentage | 百分比 |
DiskQueueLength | 计数 |
HttpQueueLength | 计数 |
BytesReceived | 字节 |
BytesSent | 字节 |
常用的存储指标
可以按 Azure 存储队列长度进行缩放,该长度是存储队列中的消息数。 存储队列长度是一个特殊指标,阈值是每个实例的消息数。 例如,如果有两个实例并且阈值设置为 100,则当队列中的消息总数为 200 时会进行缩放。 这两个实例的消息数可能各为 100,或分别为 120 和 80,或者为其他相加大于等于 200 的数字组合。
在 Azure 门户的“设置”窗格中配置此设置。 若使用虚拟机规模集,可以将资源管理器模板中的自动缩放设置更新为将 metricName
用作 ApproximateMessageCount
,并传递存储队列的 ID 作为 metricResourceUri
。
例如,对于经典存储帐户,自动缩放设置 metricTrigger
将包括:
"metricName": "ApproximateMessageCount",
"metricNamespace": "",
"metricResourceUri": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RES_GROUP_NAME/providers/Microsoft.ClassicStorage/storageAccounts/STORAGE_ACCOUNT_NAME/services/queue/queues/QUEUE_NAME"
对于(非经典)存储帐户,metricTrigger
将包括:
"metricName": "ApproximateMessageCount",
"metricNamespace": "",
"metricResourceUri": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RES_GROUP_NAME/providers/Microsoft.Storage/storageAccounts/STORAGE_ACCOUNT_NAME/services/queue/queues/QUEUE_NAME"
常用的服务总线指标
可以按 Azure 服务总线队列的长度进行缩放,该长度是服务总线队列中的消息数量。 服务总线队列长度是一个特殊指标,阈值是每个实例的消息数。 例如,如果有两个实例并且阈值设置为 100,则当队列中的消息总数为 200 时会进行缩放。 这两个实例的消息数可能各为 100,或分别为 120 和 80,或者为其他相加大于等于 200 的数字组合。
若使用虚拟机规模集,可以将资源管理器模板中的自动缩放设置更新为将 metricName
用作 ActiveMessageCount
,并传递服务总线队列的 ID 作为 metricResourceUri
。
"metricName": "ActiveMessageCount",
"metricNamespace": "",
"metricResourceUri": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RES_GROUP_NAME/providers/Microsoft.ServiceBus/namespaces/SB_NAMESPACE/queues/QUEUE_NAME"
注意
对于服务总线,不存在资源组这一概念。 Azure 资源管理器会为每个区域创建一个默认资源组。 此资源组通常采用“Default-ServiceBus-[region]”的格式。 示例有“Default-ServiceBus-ChinaNorth”、“Default-ServiceBus-ChinaEast”,等等。