Azure 監視器自動調整的常用度量

Azure 監視器的自動調整可讓您根據遙測資料或計量,縮減或擴增執行中執行個體的數目。 調整可以根據任何計量,甚至是來自不同資源的計量。 例如,根據防火牆上的流量調整虛擬機器擴展集。

本文說明通常用來觸發調整事件的計量。

Azure 自動調整支援多種資源類型。 如需有關支援資源的詳細資訊,請參閱自動調整支援的資源

針對所有資源,您可以使用 PowerShell 或 Azure CLI 取得可用計量的清單

Get-AzMetricDefinition -ResourceId <resource_id> 
az monitor metrics list-definitions --resource <resource_id>

針對以 Resource Manager 為基礎的 VM 來計算度量

根據預設,以 Azure Resource Manager 為基礎的虛擬機器和虛擬機器擴展集會發出基本 (主機層級) 的計量。 此外,當您設定 Azure VM 和虛擬機器擴展集的診斷資料收集時,Azure 診斷延伸模組也會發出客體 OS 效能計數器。 這些計數器通常稱為「客體-OS 計量」。您在自動調整規則中使用所有這些度量。

如果您使用虛擬機器擴展集,而且發現特定計量沒有列出來,可能是您的診斷擴充功能已停用該計量。

如果特定計量沒有取樣或以您想要的頻率傳輸,您可以更新診斷的組態設定。

如果發生上述任一種情況,請參閱使用 PowerShell 在執行 Windows 的虛擬機器中啟用 Azure 診斷,設定和更新 Azure VM 診斷擴充以啟用該計量。 該文章也包含診斷組態檔的範例。

以 Resource Manager 為基礎的 Windows 和 Linux VM 的主機度量

在 Windows 和 Linux 執行個體中,根據預設會針對 Azure VM 和虛擬機器擴展集發出下列的主機層級計量。 這些計量描述您的 Azure VM,然而是從 Azure VM 主機收集,而不是透過客體 VM 上安裝的代理程式收集。 您可以在自動調整規則中使用這些計量。

適用於 Resource Manager 型 Windows VM 的客體 OS 計量

在 Azure 中建立 VM 時會使用診斷擴充來啟用診斷。 診斷延伸模組會發出一組取自 VM 內的計量。 這表示您可以使用依預設不發出的計量進行自動調整。

您可以建立下列度量的警示:

度量名稱 單位
\Processor(_Total)% Processor Time Percent
\Processor(_Total)% Privileged Time Percent
\Processor(_Total)% User Time Percent
\Processor Information(_Total)\Processor Frequency 計數
\System\Processes 計數
\Process(_Total)\Thread Count 計數
\Process(_Total)\Handle Count 計數
\Memory% Committed Bytes In Use Percent
\Memory\Available Bytes Bytes
\Memory\Committed Bytes Bytes
\Memory\Commit Limit Bytes
\Memory\Pool Paged Bytes Bytes
\Memory\Pool Nonpaged Bytes Bytes
\PhysicalDisk(_Total)% Disk Time Percent
\PhysicalDisk(_Total)% Disk Read Time Percent
\PhysicalDisk(_Total)% Disk Write Time Percent
\PhysicalDisk(_Total)\每秒的磁碟傳輸數 每秒計數
\PhysicalDisk(_Total)\Disk Reads/sec 每秒計數
\PhysicalDisk(_Total)\Disk Writes/sec 每秒計數
\PhysicalDisk(_Total)\Disk Bytes/sec BytesPerSecond
\PhysicalDisk(_Total)\Disk Read Bytes/sec BytesPerSecond
\PhysicalDisk(_Total)\Disk Write Bytes/sec BytesPerSecond
\PhysicalDisk(_Total)\Avg.磁碟佇列長度 計數
\PhysicalDisk(_Total)\Avg.磁碟讀取佇列長度 計數
\PhysicalDisk(_Total)\Avg.磁碟寫入佇列長度 計數
\LogicalDisk(_Total)% Free Space Percent
\LogicalDisk(_Total)\Free Megabytes 計數

客體 OS 度量 Linux VM

當您在 Azure 中建立 VM 時,根據預設會使用診斷延伸模組來啟用診斷。

您可以建立下列度量的警示:

度量名稱 單位
\Memory\AvailableMemory Bytes
\Memory\PercentAvailableMemory Percent
\Memory\UsedMemory Bytes
\Memory\PercentUsedMemory Percent
\Memory\PercentUsedByCache Percent
\Memory\PagesPerSec 每秒計數
\Memory\PagesReadPerSec 每秒計數
\Memory\PagesWrittenPerSec 每秒計數
\Memory\AvailableSwap Bytes
\Memory\PercentAvailableSwap Percent
\Memory\UsedSwap Bytes
\Memory\PercentUsedSwap Percent
\Processor\PercentIdleTime Percent
\Processor\PercentUserTime Percent
\Processor\PercentNiceTime Percent
\Processor\PercentPrivilegedTime Percent
\Processor\PercentInterruptTime Percent
\Processor\PercentDPCTime Percent
\Processor\PercentProcessorTime Percent
\Processor\PercentIOWaitTime Percent
\PhysicalDisk\BytesPerSecond BytesPerSecond
\PhysicalDisk\ReadBytesPerSecond BytesPerSecond
\PhysicalDisk\WriteBytesPerSecond BytesPerSecond
\PhysicalDisk\TransfersPerSecond 每秒計數
\PhysicalDisk\ReadsPerSecond 每秒計數
\PhysicalDisk\WritesPerSecond 每秒計數
\PhysicalDisk\AverageReadTime
\PhysicalDisk\AverageWriteTime
\PhysicalDisk\AverageTransferTime
\PhysicalDisk\AverageDiskQueueLength 計數
\NetworkInterface\BytesTransmitted Bytes
\NetworkInterface\BytesReceived Bytes
\NetworkInterface\PacketsTransmitted 計數
\NetworkInterface\PacketsReceived 計數
\NetworkInterface\BytesTotal Bytes
\NetworkInterface\TotalRxErrors 計數
\NetworkInterface\TotalTxErrors 計數
\NetworkInterface\TotalCollisions 計數

常用的 App Service (伺服器陣列) 計量

您也可以根據常用的 Web 伺服器計量 (如 HTTP 佇列長度) 執行自動調整。 其計量名稱是 HttpQueueLength。 下一節會列出可用的伺服器陣列 (App Service) 計量。

Web Apps 度量

對於 Web Apps,您可以針對這些計量發出警示通知或以其為調整依據。

度量名稱 單位
CpuPercentage Percent
MemoryPercentage Percent
DiskQueueLength 計數
HttpQueueLength 計數
BytesReceived Bytes
BytesSent Bytes

常用的儲存體度量

您可以依 Azure 儲存體佇列長度作為調整依據,其為儲存體佇列中的訊息數目。 儲存體佇列長度是特殊計量,臨界值是每個執行個體的訊息數。 比方說,如果有兩個執行個體,且臨界值設定為 100,當佇列中的訊息總數為 200 時,將會進行調整。 數量方面,可能每個執行個體有 100 個訊息、120 加上 80 個訊息,或合計最多 200 個或更多訊息的其他任何組合。

在 Azure 入口網站的 [設定] 窗格中進行此設定。 若使用虛擬機器擴展集,您可以更新 Resource Manager 範本中的自動調整設定,改為使用 metricName 作為 ApproximateMessageCount,並傳遞儲存體佇列的識別碼作為 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 個或更多訊息的其他任何組合。

若使用虛擬機器擴展集,您可以更新 Resource Manager 範本中的自動調整設定,改為使用 metricName 作為 ActiveMessageCount,並傳遞服務匯流排佇列的識別碼作為 metricResourceUri

"metricName": "ActiveMessageCount",
"metricNamespace": "",
"metricResourceUri": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RES_GROUP_NAME/providers/Microsoft.ServiceBus/namespaces/SB_NAMESPACE/queues/QUEUE_NAME"

注意

針對服務匯流排,資源群組概念並不存在。 Azure Resource Manager 會每個區域建立預設資源群組。 此資源群組通常是 'Default-ServiceBus-[region]' 的格式。 範例包含 'Default-ServiceBus-EastUS'、'Default-ServiceBus-WestUS' 和 'Default-ServiceBus-AustraliaEast'。