Freigeben über


Azure REST-API-Überwachungsanleitung

In diesem Artikel erfahren Sie, wie Sie die Azure Monitor REST-API-Referenz verwenden.

Rufen Sie Metrikdefinitionen, Dimensionswerte und Metrikwerte mithilfe der Azure Monitor-API ab, und verwenden Sie die Daten in Ihren Anwendungen, oder speichern Sie sie in einer Datenbank für die Analyse. Sie können auch Warnungsregeln auflisten und Aktivitätsprotokolle mithilfe der Azure Monitor-API anzeigen.

Anforderungen für Azure Monitor authentifizieren

Die mithilfe der Azure Monitor-API übermittelte Anforderung verwendet das Azure Resource Manager Authentifizierungsmodell. Alle Anfragen werden mit Microsoft Entra ID authentifiziert. Ein Ansatz zur Authentifizierung der Clientanwendung ist es, einen Microsoft Entra Service Principal zu erstellen und ein Authentifizierungstoken abzurufen. Sie können einen Microsoft Entra Dienstprinzipal mithilfe des Azure Portals, der CLI oder der PowerShell erstellen. Weitere Informationen finden Sie unter Registrieren einer App zum Anfordern von Autorisierungstoken und Arbeiten mit APIs.

Abrufen eines Tokens

Nachdem Sie einen Dienstprinzipal erstellt haben, rufen Sie ein Zugriffstoken ab. Geben Sie resource=https://management.azure.com in der Tokenanforderung an.

Rufen Sie mit einer der folgenden Methoden ein Authentifizierungstoken ab:

  • Befehlszeilenschnittstelle (CLI)
  • REST-API
  • Softwareentwicklungskit (SDK)

Abrufen eines Tokens mithilfe einer REST-Anforderung

Verwenden Sie den folgenden REST-API-Aufruf, um ein Token abzurufen. Diese Anforderung verwendet eine Client-ID und einen geheimen Clientschlüssel, um die Anforderung zu authentifizieren. Die Client-ID und der geheime Clientschlüssel werden abgerufen, wenn Sie Ihre Anwendung bei Microsoft Entra ID registrieren. Weitere Informationen finden Sie unter Registrieren einer App zum Anfordern von Autorisierungstoken und Arbeiten mit APIs.

curl -X POST 'https://login.microsoftonline.com/<tennant ID>/oauth2/token' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=<your apps client ID>' \
--data-urlencode 'client_secret=<your apps client secret' \
--data-urlencode 'resource={resource URI of the service you want to access, e.g. https://monitoring.azure.com>'}'

Der Antwortinhalt wird im folgenden Format angezeigt:

{
    "token_type": "Bearer",
    "expires_in": "86399",
    "ext_expires_in": "86399",
    "expires_on": "1672826207",
    "not_before": "1672739507",
    "resource": "{resource URI of the service you want to access, e.g. https://monitoring.azure.com>'}",
    "access_token": "eyJ0eXAiOiJKV1Qi....gpHWoRzeDdVQd2OE3dNsLIvUIxQ"
}

Verwenden Sie nach dem Authentifizieren und Abrufen eines Tokens das Zugriffstoken in Ihren Azure Monitor-API-Anforderungen, indem Sie den Header 'Authorization: Bearer <access token>' einfügen.

Hinweis

Weitere Informationen zum Arbeiten mit der Azure REST-API finden Sie in der Azure REST-API-Referenz.

Abrufen der Ressourcen-ID

Für die Verwendung der REST-API ist die Ressourcen-ID der Zielressource Azure erforderlich. Ressourcen-IDs folgen dem folgenden Muster:

/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/<provider>/<resource name>/

Beispiel:

  • Azure IoT Hub: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Devices/IoTHubs/<iot-hub-name>
  • Elastic SQL-Pool: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Sql/servers/<pool-db>/elasticpools/<sql-pool-name>
  • Azure SQL-Datenbank (v12): /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Sql/servers/<server-name>/databases/<database-name>
  • Azure Service Bus: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ServiceBus/<namespace>/<servicebus-name>
  • Azure Virtual Machine Scale Sets: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Compute/virtualMachineScaleSets/<vm-name>
  • Azure Virtual Machines: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Compute/virtualMachines/<vm-name>
  • Azure Event Hubs: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.EventHub/namespaces/<eventhub-namespace>

Verwenden Sie das Azure-Portal, PowerShell oder die Azure CLI, um die Ressourcen-ID zu finden.

Um die resourceID im Portal zu finden, wählen Sie auf der Übersichtsseite der Ressource die JSON-Ansicht aus.

Screenshot der Übersichtsseite für eine Ressource mit hervorgehobenem JSON-Ansichtslink.

Die Seite „Resource JSON“ wird angezeigt. Die Ressourcen-ID kann über das Symbol rechts neben der ID kopiert werden.

Screenshot der Seite „Resource JSON“ für eine Ressource

API-Endpunkte

Die API-Endpunkte verwenden das folgende Muster:

/<resource URI>/providers/microsoft.insights/<metrics|metricDefinitions>?api-version=<apiVersion>

Der resource URI besteht aus den folgenden Komponenten:

/subscriptions/<subscription id>/resourcegroups/<resourceGroupName>/providers/<resourceProviderNamespace>/<resourceType>/<resourceName>/

Von großer Bedeutung

Achten Sie darauf, nach dem Ressourcen-URI /providers/microsoft.insights/ einzuschließen, wenn Sie einen API-Aufruf zum Abrufen von Metriken oder Metrikdefinitionen durchführen.

Abrufen der Metrikdefinitionen

Verwenden Sie die REST-API Azure Monitor Metrikdefinitionen, um auf die Liste der Metriken zuzugreifen, die für einen Dienst verfügbar sind. Verwenden Sie das folgende Anforderungsformat, um Metrikdefinitionen abzurufen.

GET /subscriptions/<subscription id>/resourcegroups/<resourceGroupName>/providers/<resourceProviderNamespace>/<resourceType>/<resourceName>/providers/microsoft.insights/metricDefinitions?api-version=<apiVersion>
Host: management.azure.com
Content-Type: application/json
Authorization: Bearer <access token>

Die folgende Anforderung ruft beispielsweise die Metrikdefinitionen für ein Azure Storage-Konto ab:

curl --location --request GET 'https://management.azure.com/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/ContosoStorage/providers/microsoft.insights/metricDefinitions?api-version=2018-01-01'
--header 'Authorization: Bearer eyJ0eXAiOi...xYz

Der folgende JSON-Code zeigt ein Bespiel für einen Antworttext. In diesem Beispiel weist nur die zweite Metrik Dimensionen auf:

{
    "value": [
        {
            "id": "/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/ContosoStorage/providers/microsoft.insights/metricdefinitions/UsedCapacity",
            "resourceId": "/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/ContosoStorage",
            "namespace": "Microsoft.Storage/storageAccounts",
            "category": "Capacity",
            "name": {
                "value": "UsedCapacity",
                "localizedValue": "Used capacity"
            },
            "isDimensionRequired": false,
            "unit": "Bytes",
            "primaryAggregationType": "Average",
            "supportedAggregationTypes": [
                "Total",
                "Average",
                "Minimum",
                "Maximum"
            ],
            "metricAvailabilities": [
                {
                    "timeGrain": "PT1H",
                    "retention": "P93D"
                },
                 ...
                {
                    "timeGrain": "PT12H",
                    "retention": "P93D"
                },
                {
                    "timeGrain": "P1D",
                    "retention": "P93D"
                }
            ]
        },
        {
            "id": "/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/ContosoStorage/providers/microsoft.insights/metricdefinitions/Transactions",
            "resourceId": "/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/ContosoStorage",
            "namespace": "Microsoft.Storage/storageAccounts",
            "category": "Transaction",
            "name": {
                "value": "Transactions",
                "localizedValue": "Transactions"
            },
            "isDimensionRequired": false,
            "unit": "Count",
            "primaryAggregationType": "Total",
            "supportedAggregationTypes": [
                "Total"
            ],
            "metricAvailabilities": [
                {
                    "timeGrain": "PT1M",
                    "retention": "P93D"
                },
                {
                    "timeGrain": "PT5M",
                    "retention": "P93D"
                },
                ...
                {
                    "timeGrain": "PT30M",
                    "retention": "P93D"
                },
                {
                    "timeGrain": "PT1H",
                    "retention": "P93D"
                },
                ...
                {
                    "timeGrain": "P1D",
                    "retention": "P93D"
                }
            ],
            "dimensions": [
                {
                    "value": "ResponseType",
                    "localizedValue": "Response type"
                },
                {
                    "value": "GeoType",
                    "localizedValue": "Geo type"
                },
                {
                    "value": "ApiName",
                    "localizedValue": "API name"
                }
            ]
        },
        ...
    ]
}

Hinweis

Es wird empfohlen, eine API-Version ab dem 01.01.2018 oder später zu verwenden. Ältere Versionen der Metrikdefinitions-API unterstützen keine Dimensionen.

Abrufen von Dimensionswerten

Rufen Sie nach dem Abrufen der verfügbaren Metrikdefinitionen den Wertebereich für die Dimensionen der Metrik ab. Verwenden Sie Dimensionswerte, um die Metriken in Ihren Abfragen zu filtern oder zu segmentieren. Verwenden Sie die REST-API Azure Monitor Metrics, um alle Werte für eine bestimmte Metrikdimension zu finden.

Verwenden Sie in den Filterdefinitionen das Element name.value der Metrik. Werden keine Filter verwendet, wird die Standardmetrik zurückgegeben. Die API lässt nur für eine Dimension einen Platzhalterfilter zu. Geben Sie die Anforderung für Dimensionswerte mithilfe des Abfrageparameters "resultType=metadata" an. Der resultType wird bei einer Metrikwerteanforderung nicht angegeben.

Hinweis

Verwenden Sie zum Abrufen von Dimensionswerten mithilfe der Azure Monitor REST-API die API-Version "2019-07-01" oder höher.

Verwenden Sie das folgende Anforderungsformat zum Abrufen von Dimensionswerten:

GET /subscriptions/<subscription-id>/resourceGroups/
<resource-group-name>/providers/<resource-provider-namespace>/
<resource-type>/<resource-name>/providers/microsoft.insights/
metrics?metricnames=<metric>
&timespan=<starttime/endtime>
&$filter=<filter>
&resultType=metadata
&api-version=<apiVersion> HTTP/1.1
Host: management.azure.com
Content-Type: application/json
Authorization: Bearer <access token>

Im folgenden Beispiel wird die Liste der Dimensionswerte abgerufen, die für die Dimension API Name der Transactions-Metrik ausgegeben wurden, wobei die Dimension GeoType für den angegebenen Zeitbereich den Wert hat Primary.

curl --location --request GET 'https://management.azure.com/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/ContosoStorage/providers/microsoft.insights/metrics \
?metricnames=Transactions \
&timespan=2023-03-01T00:00:00Z/2023-03-02T00:00:00Z \
&resultType=metadata \
&$filter=GeoType eq \'Primary\' and ApiName eq \'*\' \
&api-version=2019-07-01'
-header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJ0e..meG1lWm9Y'

Der folgende JSON-Code zeigt einen Beispielantworttext:

{
  "timespan": "2023-03-01T00:00:00Z/2023-03-02T00:00:00Z",
  "value": [
    {
      "id": "/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/ContosoStorage/providers/Microsoft.Insights/metrics/Transactions",
      "type": "Microsoft.Insights/metrics",
      "name": {
        "value": "Transactions",
        "localizedValue": "Transactions"
      },
      "unit": "Count",
      "timeseries": [
        {
          "metadatavalues": [
            {
              "name": {
                "value": "apiname",
                "localizedValue": "apiname"
              },
              "value": "DeleteBlob"
            }
          ]
        },
        {
          "metadatavalues": [
            {
              "name": {
                "value": "apiname",
                "localizedValue": "apiname"
              },
              "value": "SetBlobProperties"
            }
          ]
        },
        ...
      ]
    }
  ],
  "namespace": "Microsoft.Storage/storageAccounts",
  "resourceregion": "eastus"
}

Abrufen von Metrikwerten

Rufen Sie nach dem Abrufen der Metrikdefinitionen und Dimensionswerte die Metrikwerte ab. Verwenden Sie die Azure Monitor Metrics REST-API, um die Metrikwerte abzurufen.

Verwenden Sie in den Filterdefinitionen das Element name.value der Metrik. Wenn keine Dimensionsfilter angegeben werden, wird die zusammengefasste, aggregierte Metrik zurückgegeben.

Mehrere Zeitreihen

Eine Zeitreihe besteht aus einer Reihe von Datenpunkten, die nach Zeit für eine bestimmte Kombination von Dimensionen sortiert werden. Eine Dimension ist ein Aspekt der Metrik, die den Datenpunkt beschreibt, z. B. Ressourcen-ID, Region oder ApiName.

  • Um mehrere Zeitreihen mit bestimmten Dimensionswerten abzurufen, geben Sie einen Filterabfrageparameter an, der beide Dimensionswerte, wie z. B. "&$filter=ApiName eq 'ListContainers' or ApiName eq 'GetBlobServiceProperties'", enthält. In diesem Beispiel erhalten Sie eine Zeitreihe, in der ApiNameListContainers ist, und eine zweite Zeitreihe, in der ApiNameGetBlobServiceProperties ist.

  • Um eine Zeitreihe für jeden Wert einer bestimmten Dimension zurückzugeben, verwenden Sie einen *-Filter, z. B. "&$filter=ApiName eq '*'". Verwenden Sie die Abfrageparameter Top und OrderBy, um die Anzahl der zurückgegebenen Zeitreihen einzuschränken und zu sortieren. In diesem Beispiel erhalten Sie eine Zeitreihe für jeden Wert im ApiName Resultset. Wenn keine Daten zurückgegeben werden, gibt die API die leere Zeitreihe "timeseries": [] zurück.

Hinweis

Um mehrdimensionale Metrikwerte mithilfe der Azure Monitor REST-API abzurufen, verwenden Sie die API-Version "2019-07-01" oder höher.

Verwenden Sie das folgende Anforderungsformat, um Metrikwerte abzurufen:

GET /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/<resource-provider-namespace>/<resource-type>/<resource-name>/providers/microsoft.insights/metrics?metricnames=<metric>&timespan=<starttime/endtime>&$filter=<filter>&interval=<timeGrain>&aggregation=<aggreation>&api-version=<apiVersion>
Host: management.azure.com
Content-Type: application/json
Authorization: Bearer <access token>

Im folgenden Beispiel werden die drei führenden APIs anhand der Anzahl in absteigender Reihenfolge der Transactions innerhalb eines 5-Minuten-Zeitraums abgerufen, wobei die GeoType-Dimension einen Wert von Primary hat:

curl --location --request GET 'https://management.azure.com/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/ContosoStorage/providers/microsoft.insights/metrics \
?metricnames=Transactions \
&timespan=2023-03-01T02:00:00Z/2023-03-01T02:05:00Z \
& $filter=apiname eq '\''GetBlobProperties'\'
&interval=PT1M \
&aggregation=Total \
&top=3 \
&orderby=Total desc \
&api-version=2019-07-01"' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer yJ0eXAiOi...g1dCI6Ii1LS'

Der folgende JSON-Code zeigt einen Beispielantworttext:

{
  "cost": 0,
  "timespan": "2023-03-01T02:00:00Z/2023-03-01T02:05:00Z",
  "interval": "PT1M",
  "value": [
    {
      "id": "/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/azmon-rest-api-walkthrough/providers/Microsoft.Storage/storageAccounts/ContosoStorage/providers/Microsoft.Insights/metrics/Transactions",
      "type": "Microsoft.Insights/metrics",
      "name": {
        "value": "Transactions",
        "localizedValue": "Transactions"
      },
      "unit": "Count",
      "timeseries": [
        {
          "metadatavalues": [
            {
              "name": {
                "value": "apiname",
                "localizedValue": "apiname"
              },
              "value": "GetBlobProperties"
            }
          ],
          "data": [
            {
              "timeStamp": "2023-09-19T02:00:00Z",
              "total": 2
            },
            {
              "timeStamp": "2023-09-19T02:01:00Z",
              "total": 1
            },
            {
              "timeStamp": "2023-09-19T02:02:00Z",
              "total": 3
            },
            {
              "timeStamp": "2023-09-19T02:03:00Z",
              "total": 7
            },
            {
              "timeStamp": "2023-09-19T02:04:00Z",
              "total": 2
            }
          ]
        },
        ...
      ]
    }
  ],
  "namespace": "Microsoft.Storage/storageAccounts",
  "resourceregion": "eastus"
}

Abfragen von Metriken für mehrere Ressourcen gleichzeitig

Zusätzlich zum Abfragen von Metriken für eine einzelne Ressource unterstützen einige Ressourcentypen auch Abfragen mehrerer Ressourcen in einer einzelnen Anforderung. Diese APIs ermöglichen das Erlebnis mit mehreren Ressourcen im Azure-Metrik-Explorer. Sie können den Satz von Ressourcentypen anzeigen, die das Abfragen mehrerer Metriken auf dem Blatt Metrics im Azure Monitor über die Dropdownliste "Ressourcentyp" im Bereichsmarkierer auf dem Kontextblatt unterstützen. Weitere Informationen finden Sie in der Dokumentation zur UX mit mehreren Ressourcen.

Es gibt einige wichtige Unterschiede zwischen dem Abfragen von Metriken für mehrere und einzelne Ressourcen.

  • Metrik-APIs für mehrere Ressourcen werden auf Abonnementebene anstelle der Ressourcen-ID-Ebene ausgeführt. Diese Einschränkung bedeutet, dass Benutzer, die diese APIs abfragen, über die Berechtigungen Überwachungsleser für das Abonnement selbst verfügen müssen.
  • Metrik-APIs für mehreren Ressourcen unterstützen nur einen einzelnen Ressourcentyp pro Abfrage, der in Form eines Metriknamespace-Abfrageparameters angegeben werden muss.
  • Metriken mit mehreren Ressourcen-APIs unterstützen nur eine einzelne Azure Region pro Abfrage, die in Form eines Regionsabfrageparameters angegeben werden muss.

Abfragen von Metriken für mehrere Ressourcen – Beispiele

Das folgende Beispiel zeigt eine einzelne Metrikdefinitionsanforderung:

GET https://management.azure.com/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/EASTUS-TESTING/providers/Microsoft.Compute/virtualMachines/TestVM1/providers/microsoft.insights/metricdefinitions?api-version=2021-05-01

Die folgende Anforderung zeigt die entsprechende Metrikdefinitionsanforderung für mehrere Ressourcen. Die einzigen Änderungen sind der Abonnementpfad anstelle eines Ressourcen-ID-Pfads und das Hinzufügen der Abfrageparameter region und metricNamespace.

GET https://management.azure.com/subscriptions/12345678-abcd-98765432-abcdef012345/providers/microsoft.insights/metricdefinitions?api-version=2021-05-01&region=eastus&metricNamespace=microsoft.compute/virtualmachines

Das folgende Beispiel zeigt eine einzelne Metrikanforderung:

GET https://management.azure.com/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/EASTUS-TESTING/providers/Microsoft.Compute/virtualMachines/TestVM1/providers/microsoft.Insights/metrics?timespan=2023-06-25T22:20:00.000Z/2023-06-26T22:25:00.000Z&interval=PT5M&metricnames=Percentage CPU&aggregation=average&api-version=2021-05-01

Im Folgenden finden Sie eine entsprechende Metrikanforderung für mehrere Ressourcen:

GET https://management.azure.com/subscriptions/12345678-abcd-98765432-abcdef012345/providers/microsoft.Insights/metrics?timespan=2023-06-25T22:20:00.000Z/2023-06-26T22:25:00.000Z&interval=PT5M&metricnames=Percentage CPU&aggregation=average&api-version=2021-05-01&region=eastus&metricNamespace=microsoft.compute/virtualmachines&$filter=Microsoft.ResourceId eq '*'

Hinweis

Ein Microsoft.ResourceId eq '*'-Filter wird im Beispiel für anforderungen mit mehreren Ressourcenmetriken hinzugefügt. Der Filter * weist die API an, eine separate Zeitreihe pro VM-Ressource zurückzugeben, die über Daten im Abonnement und in der Region verfügt. Ohne den Filter würde die API eine einzelne Zeitreihe zurückgeben, die die durchschnittliche CPU für alle VMs aggregiert. Die Zeitreihen für jede Ressource werden durch den Metadatenwert Microsoft.ResourceId für jeden Datenreiheneintrag unterschieden, wie im folgenden Beispielrückgabewert zu sehen ist. Wenn von dieser Abfrage keine Ressourcen-IDs abgerufen werden, wird eine leere Zeitreihe "timeseries": [] zurückgegeben.

{
    "timespan": "2023-06-25T22:35:00Z/2023-06-26T22:40:00Z",
    "interval": "PT6H",
    "value": [
        {
            "id": "subscriptions/12345678-abcd-98765432-abcdef012345/providers/Microsoft.Insights/metrics/Percentage CPU",
            "type": "Microsoft.Insights/metrics",
            "name": {
                "value": "Percentage CPU",
                "localizedValue": "Percentage CPU"
            },
            "displayDescription": "The percentage of allocated compute units that are currently in use by the Virtual Machine(s)",
            "unit": "Percent",
            "timeseries": [
                {
                    "metadatavalues": [
                        {
                            "name": {
                                "value": "Microsoft.ResourceId",
                                "localizedValue": "Microsoft.ResourceId"
                            },
                            "value": "/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/EASTUS-TESTING/providers/Microsoft.Compute/virtualMachines/TestVM1"
                        }
                    ],
                    "data": [
                        {
                            "timeStamp": "2023-06-25T22:35:00Z",
                            "average": 3.2618888888888886
                        },
                        {
                            "timeStamp": "2023-06-26T04:35:00Z",
                            "average": 4.696944444444445
                        },
                        {
                            "timeStamp": "2023-06-26T10:35:00Z",
                            "average": 6.19701388888889
                        },
                        {
                            "timeStamp": "2023-06-26T16:35:00Z",
                            "average": 2.630347222222222
                        },
                        {
                            "timeStamp": "2023-06-26T22:35:00Z",
                            "average": 21.288999999999998
                        }
                    ]
                },
                {
                    "metadatavalues": [
                        {
                            "name": {
                                "value": "Microsoft.ResourceId",
                                "localizedValue": "Microsoft.ResourceId"
                            },
                            "value": "/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/EASTUS-TESTING/providers/Microsoft.Compute/virtualMachines/TestVM2"
                        }
                    ],
                    "data": [
                        {
                            "timeStamp": "2023-06-25T22:35:00Z",
                            "average": 7.567069444444444
                        },
                        {
                            "timeStamp": "2023-06-26T04:35:00Z",
                            "average": 5.111835883171071
                        },
                        {
                            "timeStamp": "2023-06-26T10:35:00Z",
                            "average": 10.078277777777778
                        },
                        {
                            "timeStamp": "2023-06-26T16:35:00Z",
                            "average": 8.399097222222222
                        },
                        {
                            "timeStamp": "2023-06-26T22:35:00Z",
                            "average": 2.647
                        }
                    ]
                },
                {
                    "metadatavalues": [
                        {
                            "name": {
                                "value": "Microsoft.ResourceId",
                                "localizedValue": "Microsoft.ResourceId"
                            },
                            "value": "/subscriptions/12345678-abcd-98765432-abcdef012345/resourceGroups/Common-TESTING/providers/Microsoft.Compute/virtualMachines/CommonVM1"
                        }
                    ],
                    "data": [
                        {
                            "timeStamp": "2023-06-25T22:35:00Z",
                            "average": 6.892319444444444
                        },
                        {
                            "timeStamp": "2023-06-26T04:35:00Z",
                            "average": 3.5054305555555554
                        },
                        {
                            "timeStamp": "2023-06-26T10:35:00Z",
                            "average": 8.398817802503476
                        },
                        {
                            "timeStamp": "2023-06-26T16:35:00Z",
                            "average": 6.841666666666667
                        },
                        {
                            "timeStamp": "2023-06-26T22:35:00Z",
                            "average": 3.3850000000000002
                        }
                    ]
                }
            ],
            "errorCode": "Success"
        }
    ],
    "namespace": "microsoft.compute/virtualmachines",
    "resourceregion": "eastus"
}

Problembehandlung beim Abfragen von Metriken für mehrere Ressourcen

  • Zurückgegebene leere Zeitreihe "timeseries": []

    • Eine leere Zeitreihe wird zurückgegeben, wenn keine Daten für den angegebenen Zeitraum und Filter verfügbar sind. Die häufigste Ursache ist die Angabe eines Zeitbereichs, der keine Daten enthält. Dies trifft z. B. zu, wenn der Zeitbereich auf ein Datum in der Zukunft festgelegt wird.
    • Eine weitere häufige Ursache ist die Spezifikation eines Filters, der mit keiner Ressource übereinstimmt. Wenn der Filter beispielsweise einen Dimensionswert angibt, der auf keine Ressourcen mit dieser Kombination aus Abonnement und Region zutrifft, wird "timeseries": [] zurückgegeben.
  • Platzhalterfilter

    Die Verwendung eines Wildcardfilters wie Microsoft.ResourceId eq '*' bewirkt, dass die API eine Zeitreihe für jede resourceId im Abonnement und in der Region zurückgibt. Wenn die Kombination aus Abonnement und Region keine Ressourcen liefert, wird eine leere Zeitreihe zurückgegeben. Dieselbe Abfrage ohne den Platzhalterfilter würde eine einzelne Zeitreihe zurückgeben und die angeforderte Metrik über die angeforderten Dimensionen aggregieren, z. B. Abonnement und Region.

  • Autorisierungsfehler vom Typ „401“

    Die Metrik-API für einzelne Ressourcen erfordert, dass Benutzer/Benutzerinnen über die Berechtigung Überwachungsleser für die abgefragte Ressource verfügen. Da es sich bei den Metrik-APIs für mehrere Ressourcen um APIs auf Abonnementebene handelt, müssen Benutzer über die Berechtigung Überwachungsleser für das abgefragte Abonnement verfügen, um die Metrik-APIs für mehrere Ressourcen verwenden zu können. Selbst wenn Benutzer über die Berechtigung „Überwachungsleser“ für alle Ressourcen innerhalb eines Abonnements verfügen, schlägt die Anforderung fehl, wenn die Benutzer nicht auch über die Berechtigung „Überwachungsleser“ für das Abonnement selbst verfügen.

  • Drosselungsfehler vom Typ „529“

    Der Fehlercode 529 gibt an, dass das Metrik-Back-End ihre Anforderungen derzeit einschränkt. Es wird empfohlen, ein Wiederholungsschema für ein exponentielles Backoff zu implementieren. Weitere Informationen zur Drosselung finden Sie unter Verstehen Sie, wie der Azure Resource Manager Anforderungen drosselt.

Nächste Schritte