Tutorial sobre la API de REST de supervisión de Azure

Este artículo muestra cómo usar la referencia de la API de REST de Azure Monitor.

Recupere las definiciones de las métricas, los valores de dimensión y los valores de métrica mediante la API de Azure Monitor y use los datos de las aplicaciones o almacene en una base de datos para su análisis. También puede enumerar las reglas de alerta y ver los registros de actividad mediante la API de Azure Monitor.

Autenticación de solicitudes de Azure Monitor

La solicitud enviada mediante la API de Azure Monitor usa el modelo de autenticación de Azure Resource Manager. Todas las solicitudes se autentican con Microsoft Entra ID. Un enfoque para autenticar la aplicación cliente consiste en crear una entidad de servicio de Microsoft Entra y recuperar el token de autenticación. Puede crear una entidad de servicio de Microsoft Entra usando Azure Portal, la CLI o PowerShell. Para obtener más información, consulte Registro de una aplicación para solicitar tokens de autorización y trabajar con API.

Recuperar un token

Una vez que haya creado una entidad de servicio, recupere un token de acceso mediante una llamada REST. Envíe la siguiente solicitud mediante appId y password para la entidad de servicio o la aplicación:


    POST /<tenant-id>/oauth2/token
    Host: https://login.microsoftonline.com
    Content-Type: application/x-www-form-urlencoded
    
    grant_type=client_credentials
    &client_id=<app-client-id>
    &resource=https://management.azure.com
    &client_secret=<password>

Por ejemplo,

curl --location --request POST 'https://login.microsoftonline.com/abcd1234-5849-4a5d-a2eb-5267eae1bbc7/oauth2/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=0123b56a-c987-1234-abcd-1a2b3c4d5e6f' \
--data-urlencode 'client_secret=123456.ABCDE.~XYZ876123ABceDb0000' \
--data-urlencode 'resource=https://management.azure.com'

Una solicitud correcta recibe un token de acceso en la respuesta:

{
   token_type": "Bearer",
   "expires_in": "86399",
   "ext_expires_in": "86399",
   "access_token": "eyJ0eXAiOiJKV1QiLCJ.....Ax"
}

Después de autenticar y recuperar un token, use el token de acceso en las solicitudes de la API de Azure Monitor mediante la inclusión del encabezado 'Authorization: Bearer <access token>'

Nota:

Para más información sobre el uso de la API de REST de Azure, consulte la referencia de la API de REST de Azure.

Recuperación del identificador de recursos

El uso de la API de REST requiere el id. de recurso del recurso de Azure de destino. Los id. de recursos siguen el siguiente patrón:

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

Por ejemplo,

  • Azure IoT Hub: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Devices/IotHubs/<iot-hub-name>
  • Grupo de SQL elástico: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Sql/servers/<pool-db>/elasticpools/<sql-pool-name>
  • Azure SQL Database (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>

Use Azure Portal, PowerShell o la CLI de Azure para buscar el id. de recurso.

Para buscar el resourceID en el portal, en la página de información general del recurso, seleccione Vista JSONA screenshot showing the overview page for a resource with the JSON view link highlighted.

Se muestra la página JSON del recurso. El id. de recurso se puede copiar mediante el icono situado a la derecha del id.

A screenshot showing the Resource JSON page for a resource.

Puntos de conexión de API

Los puntos de conexión de API usan el siguiente patrón:
/<resource URI>/providers/microsoft.insights/<metrics|metricDefinitions>?api-version=<apiVersion>
resource URI consta de los siguientes componentes:
/subscriptions/<subscription id>/resourcegroups/<resourceGroupName>/providers/<resourceProviderNamespace>/<resourceType>/<resourceName>/

Importante

Asegúrese de incluir /providers/microsoft.insights/ después del URI del recurso al realizar una llamada API para recuperar métricas o definiciones de métricas.

Recuperación de las definiciones de métricas

Use la API REST de definiciones de métricas de Azure Monitor para acceder a la lista de métricas disponibles para un servicio. Use el siguiente formato de solicitud para recuperar las definiciones de las métricas.

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>

Por ejemplo, la siguiente solicitud recupera las definiciones de métricas de una cuenta de Azure Storage.

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

El siguiente código JSON muestra un cuerpo de respuesta de ejemplo. En este ejemplo, solo la segunda métrica tiene dimensiones.

{
    "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"
                }
            ]
        },
        ...
    ]
}

Nota:

Se recomienda usar la versión de API "2018-01-01" o posterior. Las versiones anteriores de la API de definiciones de métricas no admiten dimensiones.

Recuperación de valores de dimensión

Después de recuperar las definiciones de métricas disponibles, recupere el intervalo de valores para las dimensiones de la métrica. Use valores de dimensión para filtrar o segmentar las métricas de las consultas. Use la API de REST de las métricas de Azure Monitor para buscar todos los valores posibles para una dimensión de métrica determinada.

Use el elemento name.value de la métrica en las definiciones de filtro. Si no se especifica ningún filtro, se devuelve la métrica predeterminada. El uso de esta API solo permite que una dimensión tenga un filtro de comodín. Especifique la solicitud de valores de dimensión mediante el parámetro de consulta "resultType=metadata". Se omite el resultType para una solicitud de valores de métrica.

Nota:

Para recuperar los valores de dimensión usando la API REST de Azure Monitor, utilice la versión de API "2019-07-01" o posterior.

Use el siguiente formato de solicitud para recuperar los valores de dimensión.

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>

En el ejemplo siguiente se recupera la lista de valores de dimensión emitidos para la dimensión API Name de la métrica Transactions, donde la dimensión GeoType tiene un valor de Primary para el intervalo de tiempo especificado.

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'

El siguiente código JSON muestra un cuerpo de respuesta de ejemplo.

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

Recuperación de los valores de métrica

Después de recuperar las definiciones métricas y los valores de dimensión, recupere los valores de métrica. Use la API REST de métricas de Azure Monitor para recuperar los valores de métricas.

Use el elemento name.value de la métrica en las definiciones de filtro. Si no se especifica ningún filtro de dimensión, se devuelve la métrica agregada acumulada.

Para capturar varias series temporales con valores de dimensión específicos, especifique un parámetro de consulta de filtro que indique ambos valores de dimensión, como "&$filter=ApiName eq 'ListContainers' or ApiName eq 'GetBlobServiceProperties'".

Para devolver una serie temporal para cada valor de una dimensión determinada, use un filtro *, como "&$filter=ApiName eq '*'". Los parámetros de consulta Top y OrderBy se pueden usar para limitar y ordenar el número de series temporales devueltas.

Nota:

Para recuperar los valores de métrica multidimensionales usando la API REST de Azure Monitor, use la versión de API "2019-07-01" o posterior.

Use el siguiente formato de solicitud para recuperar los valores de métrica.

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>

En el ejemplo siguiente se recuperan las tres API principales, por el número Transactions en orden descendente de valores, durante un intervalo de 5 minutos, donde la dimensión GeoType tiene un valor de 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-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'

El siguiente código JSON muestra un cuerpo de respuesta de ejemplo.

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

Consulta de métricas para varios recursos a la vez.

Además de consultar las métricas en un recurso individual, algunos tipos de recursos también admiten la consulta de varios recursos en una sola solicitud. Estas API son las que potencian la experiencia de varios recursos en el explorador de métricas de Azure. El conjunto de tipos de recursos que admiten la consulta de varias métricas se puede ver en la hoja Métricas de Azure Monitor a través de la lista desplegable tipo de recurso en el selector de ámbito de la hoja de contexto. Para más información, consulte la documentación de la experiencia de usuario de varios recursos.

Hay algunas diferencias importantes entre las métricas de consulta para varios recursos y recursos individuales.

  • Las API de varios recursos de métricas funcionan en el nivel de suscripción en lugar del nivel de id. de recurso. Esta restricción significa que los usuarios que consultan estas API deben tener permisos de Lector de supervisión en la propia suscripción.
  • Las API de varios recursos de métricas solo admiten un único resourceType por consulta, que se debe especificar en forma de parámetro de consulta de espacio de nombres de métricas.
  • Las API de varios recursos de métricas solo admiten una sola región de Azure por consulta, que se debe especificar en forma de parámetro de consulta de región.

Consulta de métricas para varios ejemplos de recursos

En el ejemplo siguiente, se muestra una solicitud “metric definitions” individual:

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

En la siguiente solicitud, se muestra la solicitud “metric definitions” equivalente para varios recursos. Los únicos cambios son la ruta de acceso de la suscripción en lugar de una ruta de acceso de id. de recurso y la adición de parámetros de consulta region y 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

En el ejemplo siguiente, se muestra una solicitud de métricas individuales.

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

A continuación, se muestra una solicitud de métricas equivalente para varios recursos:

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 '*'

Nota:

Se agrega un filtro Microsoft.ResourceId eq '*' en el ejemplo para las solicitudes de métricas de varios recursos. El filtro indica a la API que devuelva una serie temporal independiente por recurso de máquina virtual en la suscripción y la región. Sin el filtro, la API devolvería una sola serie temporal agregando la CPU media para todas las máquinas virtuales. La serie temporal de cada recurso se diferencia por el valor de metadatos Microsoft.ResourceId en cada entrada de serie temporal, como se puede ver en el siguiente valor devuelto de ejemplo. Si esta consulta no recupera ningún resourceId, se devuelve una serie temporal vacía"timeseries": [].

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

Solución de problemas de métricas de consulta para varios recursos

  • Serie temporal vacía devuelta "timeseries": []

    • Se devuelve una serie temporal vacía cuando no hay datos disponibles para el intervalo de tiempo y el filtro especificados. La causa más común es especificar un intervalo de tiempo que no contiene datos. Por ejemplo, si el intervalo de tiempo se establece en una fecha futura.
    • Otra causa común es especificar un filtro que no coincide con ningún recurso. Por ejemplo, si el filtro especifica un valor de dimensión que no existe en ningún recurso de la combinación de suscripción y región, se devuelve "timeseries": [].
  • Filtros de carácter comodín
    El uso de un filtro de carácter comodín, como Microsoft.ResourceId eq '*', hace que la API devuelva una serie temporal para cada resourceId de la suscripción y la región. Si la combinación de suscripción y región no contiene recursos, se devuelve una serie temporal vacía. La misma consulta sin el filtro de carácter comodín devolvería una sola serie temporal, agregando la métrica solicitada sobre las dimensiones solicitadas, por ejemplo, suscripción y región. Si no hay recursos en la combinación de suscripción y región, la API devuelve una sola serie temporal con un único punto de datos de 0.

  • Errores de autorización 401:
    Las API de métricas de recursos individuales requieren que un usuario tenga el permiso Lector de supervisión en el recurso que se está consultando. Dado que las API de métricas de varios recursos son API de nivel de suscripción, los usuarios deben tener el permiso Lector de supervisión para la suscripción consultada para usar las API de métricas de varios recursos. Incluso si los usuarios tienen el Lector de supervisión en todos los recursos en una suscripción, se produce un error en la solicitud si el usuario no tiene un rol Lector de supervisión en la propia suscripción.

Pasos siguientes