Azure Resource Manager-Metriken im Azure Monitor

Wenn Sie Ressourcen in Azure erstellen und verwalten, werden Ihre Anforderungen über die Steuerungsebene von Azure, Azure Resource Manager, orchestriert. In diesem Artikel wird beschrieben, wie Sie das Volumen und die Latenz von Steuerungsebenenanforderungen überwachen, die an Azure vorgenommen werden.

Mit diesen Metriken können Sie den Datenverkehr und die Latenz bei Steuerungsebenenanforderungen in allen Abonnements beobachten. Beispielsweise können Sie jetzt herausfinden, wann Ihre Anfragen gedrosselt wurden oder fehlgeschlagen sind, indem Sie nach bestimmten Statuscodes filtern, also die gedrosselten Anfragen und die Serverfehler untersuchen.

Die Metriken stehen für bis zu drei Monate (93 Tage) zur Verfügung und verfolgen nur synchrone Anforderungen. Bei einem Szenario, wie einer VM-Erstellung, stellen die Metriken nicht die Leistung oder Zuverlässigkeit des asynchronen Vorgangs mit langer Ausführungsfähigkeit dar.

Zugreifen auf Azure-Ressourcen-Manager-Metriken

Sie können über die REST-APIs, SDKs und das Azure-Portal auf Metriken der Steuerungsebenen zugreifen (indem Sie die Metrik "Azure-Ressourcen-Manager" auswählen). Eine Übersicht über Azure Monitor finden Sie unter Azure Monitor-Metriken.

Es gibt keinen Anmeldeprozess für den Zugriff auf Metriken der Steuerungsebene.

Anleitungen zum Abrufen eines Bearer-Tokens und zum Senden von Anforderungen an Azure finden Sie unter Azure REST API-Referenz.

Metrikdefinition

Auf die Definition für Azure Resource Manager-Metriken im Azure Monitor kann nur über die API-Version 2017-12-01-preview zugegriffen werden. Zum Abrufen der Definition können Sie den folgenden Codeausschnitt ausführen, in dem ihre Abonnement-ID "00000000-0000-0000-0000-000000000000" ersetzt:

curl --location --request GET 'https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/microsoft.insights/metricDefinitions?api-version=2017-12-01-preview&metricnamespace=microsoft.resources/subscriptions' \
--header 'Authorization: bearer {{bearerToken}}'

Dieser Codeschnipsel gibt die Definition für das Metrikschema zurück. Dieses Schema enthält insbesondere die Dimensionen, nach denen Sie mit der Monitor-API filtern können:

Dimensionsname BESCHREIBUNG
ResourceUri Die vollständige Ressourcen-ID für eine bestimmte Ressource.
RequestRegion Die Azure Resource Manager-Region, in der Ihre Steuerebenen-Anfragen landen, z. B. "EastUS2". Diese Region ist nicht der Speicherort der Ressource.
StatusCode Antworttyp vom Azure-Ressourcen-Manager für Ihre Steuerungsebenenanforderung. Mögliche Werte sind (aber nicht beschränkt auf):
- 0
- 200
- 201
- 400
- 404
- 429
- 500
- 502
StatusCodeClass Die Klasse für den Vom Azure-Ressourcen-Manager zurückgegebenen Statuscode. Mögliche Werte:
- 2xx
- 4xx
- 5xx
Namespace Der Namespace für den Ressourcenanbieter in Großbuchstaben, z. B. "MICROSOFT. COMPUTE"
ResourceType Alle Ressourcentypen in Azure, die Sie erstellt haben oder anfordern, werden in Großbuchstaben gesendet, wie "VIRTUALMACHINES"
Methode Die HTTP-Methode, die in der Anforderung an Azure Resource Manager verwendet wird. Mögliche Werte:
- GET
- HEAD
- PUT
- POST
- PATCH
- DELETE

Beispiele

Sehen wir uns nun einige Szenarien an, die Sie beim Untersuchen der Azure Resource Manager-Metriken unterstützen können.

Abfragen von Metriken für den Datenverkehr und die Steuerung der Latenz über das Azure-Portal

Navigieren Sie zunächst zum Blatt Azure Monitor im Portal:

Screenshot: Navigieren zur Seite „Monitor“ im Azure-Portal, Option „Metriken erkunden“ hervorgehoben

Nachdem Sie Explore Metricsausgewählt haben, wählen Sie ein einzelnes Abonnement und dann die Azure Resource Manager aus:

Screenshot: Auswählen eines Einzelabonnements und der Azure Resource Manager-Metrik im Azure-Portal

Nachdem Sie Anwenden ausgewählt haben, können Sie Ihre Messwerte der Traffic- oder Latenz-Steuerungsebene mit benutzerdefinierter Filterung und Aufteilung visualisieren:

Screenshot: Metrikvisualisierung im Azure-Portal mit Optionen zum Filtern und Aufteilen nach Dimensionen

Abfragen von Metriken für den Datenverkehr und die Steuerung der Latenz über das Azure-Portal

Nachdem Sie sich bei Azure authentifiziert haben, können Sie eine Anforderung zum Abrufen von Steuerungsebenenmetriken für Ihr Abonnement stellen. Ersetzen Sie im Skript „00000000-0000-0000-0000-000000000000“ durch Ihre Abonnement-ID. Das Skript ermittelt die durchschnittliche Wartezeit für Anfragen (in Sekunden) und die Gesamtzahl der Anfragen für den Zeitraum von zwei Tagen, aufgeschlüsselt nach Eintagesintervallen:

curl --location --request GET "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/microsoft.insights/metrics?api-version=2021-05-01&interval=P1D&metricnames=Latency&metricnamespace=microsoft.resources/subscriptions&region=global&aggregation=average,count&timespan=2021-11-01T00:00:00Z/2021-11-03T00:00:00Z" \
--header "Authorization: bearer {{bearerToken}}"

Im Fall von Azure-Ressourcen-Manager-Metriken können Sie die Datenverkehrsanzahl mithilfe der Metrik Latenz einschließlich der Aggregation "Anzahl" abrufen. Sie erhalten eine JSON-Antwort für die Anfrage:

{
    "cost": 5758,
    "timespan": "2021-11-01T00:00:00Z/2021-11-03T00:00:00Z",
    "interval": "P1D",
    "value": [
        {
            "id": "subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Insights/metrics/Latency",
            "type": "Microsoft.Insights/metrics",
            "name": {
                "value": "Latency",
                "localizedValue": "Latency"
            },
            "displayDescription": "Latency data for all requests to Azure Resource Manager",
            "unit": "Seconds",
            "timeseries": [
                {
                    "metadatavalues": [],
                    "data": [
                        {
                            "timeStamp": "2021-11-01T00:00:00Z",
                            "count": 1406.0,
                            "average": 0.19345163584637273
                        },
                        {
                            "timeStamp": "2021-11-02T00:00:00Z",
                            "count": 1517.0,
                            "average": 0.28294792353328935
                        }
                    ]
                }
            ],
            "errorCode": "Success"
        }
    ],
    "namespace": "microsoft.resources/subscriptions",
    "resourceregion": "global"
}

Wenn Sie nur die Datenverkehrsanzahl abrufen möchten, können Sie die Datenverkehrsmetrik mit der Aggregation "Anzahl" verwenden:

curl --location --request GET 'https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/microsoft.insights/metrics?api-version=2021-05-01&interval=P1D&metricnames=Traffic&metricnamespace=microsoft.resources/subscriptions&region=global&aggregation=count&timespan=2021-11-01T00:00:00Z/2021-11-03T00:00:00Z' \
--header 'Authorization: bearer {{bearerToken}}'

Die Antwort auf die Anforderung ist:

{
    "cost": 2879,
    "timespan": "2021-11-01T00:00:00Z/2021-11-03T00:00:00Z",
    "interval": "P1D",
    "value": [
        {
            "id": "subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Insights/metrics/Traffic",
            "type": "Microsoft.Insights/metrics",
            "name": {
                "value": "Traffic",
                "localizedValue": "Traffic"
            },
            "displayDescription": "Traffic data for all requests to Azure Resource Manager",
            "unit": "Count",
            "timeseries": [
                {
                    "metadatavalues": [],
                    "data": [
                        {
                            "timeStamp": "2021-11-01T00:00:00Z",
                            "count": 1406.0
                        },
                        {
                            "timeStamp": "2021-11-02T00:00:00Z",
                            "count": 1517.0
                        }
                    ]
                }
            ],
            "errorCode": "Success"
        }
    ],
    "namespace": "microsoft.resources/subscriptions",
    "resourceregion": "global"
}

Bei Metriken mit Dimensionsunterstützung muss der Dimensionswert angegeben werden, um die entsprechenden Metrikwerte anzeigen zu können. Wenn Sie sich z. B. auf die Latenz bei erfolgreichen Anforderungen ARM konzentrieren möchten, müssen Sie die StatusCodeClass Dimension mit 2XX filtern.

Wenn Sie die Anzahl der Anforderungen in Ihrem Abonnement für Netzwerkressourcen, wie virtuelle Netzwerke und Lastenausgleichsgeräte sehen möchten, müssen Sie die Namespace Dimension für MICROSOFT.NETWORK filtern.

Überprüfen gedrosselter Anforderungen

Wenn Sie nur Gedrosselte Anfragen anzeigen möchten, müssen Sie nur nach 429 Statuscodeantworten filtern. Bei REST-API-Aufrufen erfolgt das Filtern über die $filter-Eigenschaft und die Dimension StatusCode, indem angefügt wird: $filter=StatusCode eq '429', wie am Ende der Anforderung im folgenden Codeausschnitt zu sehen:

curl --location --request GET 'https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/microsoft.insights/metrics?api-version=2021-05-01&interval=P1D&metricnames=Latency&metricnamespace=microsoft.resources/subscriptions&region=global&aggregation=count,average&timespan=2021-11-01T00:00:00Z/2021-11-03T00:00:00Z&$filter=StatusCode%20eq%20%27429%27' \
--header 'Authorization: bearer {{bearerToken}}'

Sie können auch direkt im Portal filtern: Screenshot: Filtern der HTTP-Statuscodes auf Antworten vom Typ 429 nur im Azure-Portal

Untersuchen von Serverfehlern

Ähnlich wie beim Betrachten von gedrosselten Anforderungen zeigen Sie alle Anforderungen an, die einen Serverfehlerantwortcode zurückgegeben haben, indem Sie nur 5xx Antworten filtern. Bei REST-API-Aufrufen erfolgt das Filtern über die $filter-Eigenschaft und die Dimension StatusCode, indem angefügt wird: $filter=StatusCode eq '5xx', wie am Ende der Anforderung im folgenden Codeausschnitt zu sehen:

curl --location --request GET 'https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/microsoft.insights/metrics?api-version=2021-05-01&interval=P1D&metricnames=Latency&metricnamespace=microsoft.resources/subscriptions&region=global&aggregation=count,average&timespan=2021-11-01T00:00:00Z/2021-11-03T00:00:00Z&$filter=StatusCodeClass%20eq%20%275xx%27' \
--header 'Authorization: bearer {{bearerToken}}'

Sie können auch eine allgemeine Filterung von Serverfehlern innerhalb des Portals durchführen, indem Sie die Filtereigenschaft auf „StatusCodeClass“ und den Wert auf „5xx“ setzen, ähnlich wie im Beispiel der Drosselung.

Nächste Schritte