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.
- Hostmetriken für Resource Manager-basierte virtuelle Windows- und Linux-Computer
- Hostmetriken für Resource Manager-basierte Virtual Machine Scale Sets unter Windows oder Linux
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“.