Allgemeine Metriken für die automatische Skalierung in Azure Monitor

Mit der automatischen Skalierung in Azure Monitor können Sie die Anzahl der ausgeführten Instanzen basierend auf Telemetriedaten oder Metriken zentral hoch- oder herunterskalieren. Die Skalierung kann auf einer beliebigen Metrik basieren, auch auf Metriken aus einer anderen Ressource. Skalieren Sie beispielsweise eine VM-Skalierungsgruppe basierend auf dem Datenverkehrsaufkommen in einer Firewall.

In diesem Artikel werden Metriken beschrieben, die häufig zum Auslösen von Skalierungsereignissen verwendet werden.

Die Autoskalierung in Azure unterstützt viele Ressourcentypen. Weitere Informationen zu unterstützten Ressourcen finden Sie unter Für Autoskalierung unterstützte Ressourcen.

Sie können mit PowerShell oder der Azure CLI für alle Ressourcen eine Liste der verfügbaren Metriken abrufen.

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

Berechnen von Metriken für Resource Manager-basierte virtuelle Computer

Standardmäßig geben Azure Resource Manager-basierte virtuelle Computer und Virtual Machine Scale Sets grundlegende Metriken (also Metriken auf der Hostebene) aus. Wenn Sie die Erfassung von Diagnosedaten für einen virtuellen Azure-Computer und Virtual Machine Scale Sets konfigurieren, gibt die Microsoft Azure-Diagnoseerweiterung außerdem Leistungsmetriken für das Gastbetriebssystem aus. Diese Zähler werden häufig als "Gast-OS-Metriken" bezeichnet. All diese Metriken verwenden Sie in Autoscale-Regeln.

Falls Sie Virtual Machine Scale Sets verwenden und eine bestimmte Metrik nicht in der Liste aufgeführt wird, ist sie wahrscheinlich in Ihrer Diagnoseerweiterung deaktiviert.

Falls eine bestimmte Metrik nicht mit der gewünschten Häufigkeit geprüft oder übertragen wird, können Sie die Diagnosekonfiguration aktualisieren.

Wenn einer der oben genannten Fälle zutrifft, lesen Sie unter Aktivieren der Azure-Diagnose auf einem virtuellen Computer unter Windows mithilfe von PowerShell weiter, um mehr darüber zu erfahren, wie Sie mit PowerShell die Azure-VM-Diagnoseerweiterung zur Aktivierung der Metrik konfigurieren und aktualisieren. Dieses Tutorial behandelt auch ein Beispiel für eine Diagnosekonfigurationsdatei.

Hostmetriken für Resource Manager-basierte virtuelle Windows- und Linux-Computer

Die folgenden Metriken auf Hostebene werden standardmäßig sowohl in Windows- als auch in Linux-Instanzen für virtuelle Azure-Computer und Virtual Machine Scale Sets ausgegeben. Diese Metriken beschreiben Ihren virtuellen Azure-Computer, werden aber nicht von dem installierten Agenten auf dem virtuellen Gastcomputer, sondern vom Azure-VM-Host erfasst. Sie können diese Metriken für Regeln zur automatischen Skalierung verwenden.

Gastbetriebssystem-Metriken für Resource Manager-basierte virtuelle Windows-Computer

Wenn Sie in Azure einen virtuellen Computer erstellen, wird die Diagnose durch Verwenden der Diagnoseerweiterung aktiviert. Die Diagnoseerweiterung gibt einen Satz von Metriken aus dem virtuellen Computer heraus aus. Das bedeutet, dass Sie für die automatische Skalierung Metriken verwenden können, die standardmäßig nicht ausgegeben werden.

Sie können eine Warnung für die folgenden Metriken erstellen:

Metrikname Einheit
\Processor(_Total)% Prozessorzeit Percent
\Prozessor(_Total)% Berechtigungszeit Percent
\Processor(_Total)% Benutzerzeit Percent
\Processor Informationen(_Total)\Prozessorfrequenz Anzahl
\System\Prozesse Anzahl
\Process(_Total)\Threadanzahl Anzahl
\Process(_Total)\Handleanzahl Anzahl
\Memory% Zugesicherte verwendete Bytes Percent
\Memory\Verfügbare Bytes Byte
\Memory\Zugesicherte Bytes Byte
\Memory\Zusagegrenze Byte
\Memory\Auslagerungsseiten (Bytes) Byte
\Memory\Nicht-Auslagerungsseiten (Bytes) Byte
\PhysicalDisk(_Total)% Zeit Percent
\PhysicalDisk(_Total)% Lesezeit Percent
\PhysicalDisk(_Total)% Schreibzeit Percent
\Physikalischer Datenträger(_Total)\Übertragungen/s Anzahl pro Sekunde
\PhysicalDisk(_Total)\Lesevorgänge/s Anzahl pro Sekunde
\PhysicalDisk(_Total)\Schreibvorgänge/s Anzahl pro Sekunde
\PhysicalDisk(_Total)\Bytes/s Bytes pro Sekunde
\PhysicalDisk(_Total)\Byte gelesen/s Bytes pro Sekunde
\PhysicalDisk(_Total)\Byte geschrieben/s Bytes pro Sekunde
\PhysicalDisk(_Total)\Durchschnittl. Warteschlangenlänge des Datenträgers Anzahl
\PhysicalDisk(_Total)\Durchschnittl. Warteschlangenlänge der Datenträger-Lesevorgänge Anzahl
\PhysicalDisk(_Total)\Durchschnittl. Warteschlangenlänge der Datenträger-Schreibvorgänge Anzahl
\LogicalDisk(_Total)% Freier Speicherplatz Percent
\LogicalDisk(_Total)\MB frei Anzahl

Gastbetriebssystem-Metriken für virtuelle Linux-Computer

Wenn Sie in Azure einen virtuellen Computer erstellen, wird die Diagnose standardmäßig durch die Verwendung der Diagnoseerweiterung aktiviert.

Sie können eine Warnung für die folgenden Metriken erstellen:

Metrikname Einheit
\Memory\AvailableMemory Byte
\Memory\PercentAvailableMemory Percent
\Memory\UsedMemory Byte
\Memory\PercentUsedMemory Percent
\Memory\PercentUsedByCache Percent
\Memory\PagesPerSec Anzahl pro Sekunde
\Memory\PagesReadPerSec Anzahl pro Sekunde
\Memory\PagesWrittenPerSec Anzahl pro Sekunde
\Memory\AvailableSwap Byte
\Memory\PercentAvailableSwap Percent
\Memory\UsedSwap Byte
\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 Bytes pro Sekunde
\PhysicalDisk\ReadBytesPerSecond Bytes pro Sekunde
\PhysicalDisk\WriteBytesPerSecond Bytes pro Sekunde
\PhysicalDisk\TransfersPerSecond Anzahl pro Sekunde
\PhysicalDisk\ReadsPerSecond Anzahl pro Sekunde
\PhysicalDisk\WritesPerSecond Anzahl pro Sekunde
\PhysicalDisk\AverageReadTime Sekunden
\PhysicalDisk\AverageWriteTime Sekunden
\PhysicalDisk\AverageTransferTime Sekunden
\PhysicalDisk\AverageDiskQueueLength Anzahl
\NetworkInterface\BytesTransmitted Byte
\NetworkInterface\BytesReceived Byte
\NetworkInterface\PacketsTransmitted Anzahl
\NetworkInterface\PacketsReceived Anzahl
\NetworkInterface\BytesTotal Byte
\NetworkInterface\TotalRxErrors Anzahl
\NetworkInterface\TotalTxErrors Anzahl
\NetworkInterface\TotalCollisions Anzahl

Häufig verwendete App Service (Serverfarm) Metriken

Sie können die automatische Skalierung auch aufgrund allgemeiner Webservermetriken wie der HTTP-Warteschlangenlänge ausführen. Der Metrikname ist HttpQueueLength. Im folgenden Abschnitt sind die verfügbaren Serverfarmmetriken (App Service) aufgeführt.

Web-Apps-Metriken

Für Web-Apps können Sie anhand dieser Metriken Warnungen ausgeben oder skalieren.

Metrikname Einheit
CpuPercentage Percent
MemoryPercentage Percent
DiskQueueLength Anzahl
HttpQueueLength Anzahl
BytesReceived Byte
BytesSent Byte

Häufig verwendete Speichermetriken

Sie können nach Azure Storage Warteschlangenlänge skalieren, d.h. nach der Anzahl der Nachrichten in der Speicherwarteschlange. Die Speicherwarteschlangenlänge ist eine besondere Metrik und der Schwellenwert entspricht der Anzahl von Nachrichten pro Instanz. Ein Beispiel: Bei zwei Instanzen und einem Schwellenwert von 100 kommt es zu einer Skalierung, wenn die Gesamtanzahl von Nachrichten in der Warteschlange 200 beträgt. Hierbei kann es sich dann um 100 Nachrichten pro Instanz, um 120 und 80 Nachrichten, oder um jede beliebige andere Kombination handeln, die zusammengerechnet mindestens 200 ergibt.

Diese Einstellung können Sie im Azure-Portal im Bereich Einstellungen konfigurieren. Für Virtual Machine Scale Sets können Sie die Einstellung für die automatische Skalierung in der Resource Manager Vorlage aktualisieren, um metricName als ApproximateMessageCount zu verwenden und die ID der Speicherwarteschlange als metricResourceUri zu übergeben.

Bei einem klassischen Speicherkonto würde beispielsweise die Einstellung für die automatische Skalierung metricTrigger Folgendes enthalten:

"metricName": "ApproximateMessageCount",
"metricNamespace": "",
"metricResourceUri": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RES_GROUP_NAME/providers/Microsoft.ClassicStorage/storageAccounts/STORAGE_ACCOUNT_NAME/services/queue/queues/QUEUE_NAME"

Bei einem (nicht klassischen) Speicherkonto würde die Einstellung metricTrigger Folgendes enthalten:

"metricName": "ApproximateMessageCount",
"metricNamespace": "",
"metricResourceUri": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RES_GROUP_NAME/providers/Microsoft.Storage/storageAccounts/STORAGE_ACCOUNT_NAME/services/queue/queues/QUEUE_NAME"

Häufig verwendete Service Bus-Metriken

Sie können nach Service Bus-Warteschlangenlänge skalieren, d.h. nach der Anzahl der Nachrichten in der Service Bus-Warteschlange. Die Service Bus-Warteschlangenlänge ist eine besondere Metrik und der Schwellenwert entspricht der Anzahl von Nachrichten pro Instanz. Beispiel: Bei zwei Instanzen und einem Schwellenwert von 100 kommt es zu einer Skalierung, wenn die Gesamtanzahl von Nachrichten in der Warteschlange 200 beträgt. Hierbei kann es sich dann um 100 Nachrichten pro Instanz, um 120 und 80 Nachrichten, oder um jede beliebige andere Kombination handeln, die zusammengerechnet mindestens 200 ergibt.

Bei Skalierungssätzen für virtuelle Computer können Sie die Einstellung für die automatische Skalierung in der Ressourcen-Manager-Vorlage aktualisieren, um metricName als ActiveMessageCount zu verwenden und die ID der Servicebuswarteschlange als metricResourceUri zu übergeben.

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

Hinweis

Für Service Bus gibt es kein Ressourcengruppenkonzept. Azure Resource Manager erstellt eine Standardressourcengruppe pro Region. Das übliche Format für die Ressourcengruppe ist in der Regel „Default-ServiceBus-[Region]“. Zum Beispiel: „Default-ServiceBus-EastUS“, „Default-ServiceBus-WestUS“ oder „Default-ServiceBus-AustraliaEast“.