Exemplarische Vorgehensweise für die Azure Monitor-REST-API

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

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

Authentifizieren von Azure Monitor-Anforderungen

Mit der Azure Monitor-API übermittelten Anforderungen verwenden das Azure Resource Manager-Authentifizierungsmodell. Alle Anforderungen werden über Microsoft Entra ID authentifiziert. Ein Ansatz zur Authentifizierung der Clientanwendung ist das Erstellen eines Microsoft Entra-Dienstprinzipals und das Abrufen eines Authentifizierungstokens. Sie können einen Azure Active Directory-Dienstprinzipal mit dem Microsoft Entra-Portal, der CLI oder 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
  • SDK

Beim Anfordern eines Tokens müssen Sie einen resource-Parameter angeben. Der resource-Parameter ist die URL der Ressource, auf die Sie zugreifen möchten.

Zu den Ressourcen gehören:

  • https://management.azure.com
  • https://api.loganalytics.io
  • https://monitoring.azure.com

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=https://monitoring.azure.com'

Der Antwortkörper hat das folgende Format:

{
    "token_type": "Bearer",
    "expires_in": "86399",
    "ext_expires_in": "86399",
    "expires_on": "1672826207",
    "not_before": "1672739507",
    "resource": "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>' einschließen.

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 Azure-Zielressource 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>
  • Elastischer 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-Befehlszeilenschnittstelle, um die Ressourcen-ID zu suchen.

Um die Ressourcen-ID im Portal zu suchen, wählen Sie auf der Übersichtsseite der Ressource die Option JSON-AnsichtScreenshot der Übersicht 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>/

Wichtig

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 Azure Monitor-REST-API für Metrikdefinitionen für den Zugriff auf die Liste der Metriken, 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 2018-01-01 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 Azure Monitor-REST-API für Metriken, um alle Werte für eine bestimmte Metrikdimension zu suchen.

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

Zum Abrufen der Dimensionswerte mithilfe der Azure Monitor-REST-API verwenden Sie 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 ein Bespiel für einen Antworttext.

{
  "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-Metrik-REST-API, um die Metrikwerte abzurufen.

Verwenden Sie in den Filterdefinitionen das Element name.value der Metrik. Wenn keine Dimensionsfilter angegeben werden, wird die zurückgesetzte, 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, der 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 enthält, z. B. "&$filter=ApiName eq 'ListContainers' or ApiName eq 'GetBlobServiceProperties'". In diesem Beispiel erhalten Sie eine Zeitreihe, in der ApiName ListContainers ist, und eine zweite Zeitreihe, in der ApiName GetBlobServiceProperties 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 von ApiName im Resultset. Wenn keine Daten zurückgegeben werden, gibt die API die leere Zeitreihe "timeseries": [] zurück.

Hinweis

Zum Abrufen mehrdimensionaler Metrikwerte mithilfe der Azure Monitor-REST-API verwenden Sie 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 obersten APIs nach der Anzahl der Transactions in absteigender Wertreihenfolge während einer 5-Minuten-Spanne abgerufen, in dem die Dimension GeoType den Wert 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 ein Bespiel für einen Antworttext.

{
  "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"
}

Es werden Metriken für mehrere Ressourcen gleichzeitig abgefragt.

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 sind der Motor der Multi-Resource-Erfahrung im Azure-Metrik-Explorer. Der Satz von Ressourcentypen, die Abfragen mehrerer Metriken unterstützen, kann auf dem Blatt Metriken in Azure Monitor über die Dropdownliste „Ressourcentyp“ in der Bereichsauswahl auf dem Blatt „Kontext“ angezeigt werden. Weitere Informationen finden Sie in der Multi-Resource-UX-Dokumentation.

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.
  • Metrik-APIs für mehreren Ressourcen 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

Im Beispiel für die Anforderungen mit mehreren Ressourcenmetriken wird ein Microsoft.ResourceId eq '*'-Filter 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 anhand des Metadatenwerts „Microsoft.ResourceId“ für jeden Zeitreiheneintrag 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 kann die Angabe eines Filters sein, der zu keinen übereinstimmenden Ressourcen führt. 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 Platzhalterfilters wie Microsoft.ResourceId eq '*' bewirkt, dass die API eine Zeitreihe für jede Ressourcen-ID 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 verfügen, die in der Batch-API abgefragt werden, schlägt die Anforderung fehl, wenn die Benutzer nicht über die Berechtigung „Überwachungsleser“ für das Abonnement selbst verfügen.

Nächste Schritte