Partilhar via


Métricas de Resource Manager do Azure no Azure Monitor

Quando cria e gere recursos no Azure, os seus pedidos são orquestrados através do plano de controlo do Azure, o Azure Resource Manager. Este artigo descreve como monitorizar o volume e a latência dos pedidos do plano de controlo feitos ao Azure.

Com estas métricas, pode observar o tráfego e a latência dos pedidos do plano de controlo em todas as suas subscrições. Por exemplo, agora pode descobrir quando os seus pedidos foram limitados ou falharam ao filtrar códigos de estado específicos ao examinar pedidos limitados e examinar erros do servidor.

As métricas estão disponíveis até três meses (93 dias) e apenas monitorizam pedidos síncronos. Para um cenário como a criação de uma VM, as métricas não representam o desempenho ou a fiabilidade da operação assíncrona de execução prolongada.

Aceder às métricas do Azure Resource Manager

Pode aceder às métricas do plano de controlo através das APIs REST, SDKs e portal do Azure do Azure Monitor (ao selecionar a métrica "Azure Resource Manager"). Para obter uma descrição geral do Azure Monitor, veja Métricas do Azure Monitor.

Não existe nenhum processo de opt-in ou inscrição para aceder às métricas do plano de controlo.

Para obter orientações sobre como obter um token de portador e fazer pedidos para o Azure, veja Referência da API REST do Azure.

Definição de métrica

A definição para métricas de Resource Manager do Azure no Azure Monitor só está acessível através da versão da API de pré-visualização 2017-12-01. Para obter a definição, pode executar o seguinte fragmento, com o ID da subscrição a substituir "000000000-0000-0000-0000-000000000000":

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

Este fragmento devolve a definição do esquema de métricas. Nomeadamente, este esquema inclui as dimensões que pode filtrar com a API de Monitorização:

Nome da Dimensão Description
ResourceUri O ID de Recurso completo para um determinado recurso.
RequestRegion O Azure Resource Manager região onde o seu plano de controlo pede terra, como "EastUS2". Esta região não é a localização do recurso.
StatusCode Tipo de resposta do Azure Resource Manager para o pedido do plano de controlo. Os valores possíveis são (mas não limitados a):
- 0
- 200
- 201
- 400
- 404
- 429
- 500
- 502
StatusCodeClass A classe para o código de estado devolvido do Azure Resource Manager. Os valores possíveis são:
- 2xx
- 4xx
- 5xx
Espaço de Nomes O espaço de nomes do Fornecedor de Recursos, em todas as maiúsculas, como "MICROSOFT. COMPUTAÇÃO"
ResourceType Qualquer tipo de recurso no Azure para o qual tenha criado ou enviado um pedido, em todas as maiúsculas, como "VIRTUALMACHINES"
Método O método HTTP utilizado no pedido feito ao Azure Resource Manager. Os valores possíveis são:
- GET
- CABEÇALHO
- PUT
- POST
- PATCH
- ELIMINAR

Exemplos

Agora, vamos ver alguns cenários que podem ajudá-lo a explorar as métricas do Azure Resource Manager.

Consultar as métricas do plano de controlo de latência e tráfego através de portal do Azure

Primeiro, navegue para o painel do Azure Monitor no portal:

Captura de ecrã a mostrar a navegação para a página Monitor do portal do Azure com a funcionalidade Explorar Métricas realçada.

Depois de selecionar Explorar Métricas, selecione uma única subscrição e, em seguida, selecione a métrica Resource Manager do Azure:

Captura de ecrã a mostrar a seleção de uma única subscrição e a métrica Resource Manager do Azure no portal do Azure.

Em seguida, depois de selecionar Aplicar, pode visualizar as métricas do plano de controlo de Tráfego ou Latência com filtragem e divisão personalizadas:

Captura de ecrã a mostrar a visualização de métricas no portal do Azure, a mostrar opções para filtrar e dividir por dimensões.

Consultar métricas do plano de controlo de latência e tráfego através da API REST

Depois de ser autenticado com o Azure, pode fazer um pedido para obter as métricas do plano de controlo para a sua subscrição. No script, substitua "00000000-0000-0000-0000-000000000000" pelo seu ID de subscrição. O script irá obter a latência média do pedido (em segundos) e a contagem total de pedidos para o período de tempo de dois dias, dividido por intervalos de um dia:

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

No caso das métricas de Resource Manager do Azure, pode obter a contagem de tráfego com a métrica Latência e incluindo a agregação "count". Verá uma resposta JSON para o pedido:

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

Se quiser obter apenas a contagem de tráfego, pode utilizar a métrica Tráfego com a agregação "count":

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

A resposta para o pedido é:

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

Para as dimensões de suporte das métricas, tem de especificar o valor de dimensão para ver os valores de métricas correspondentes. Por exemplo, se quiser focar-se na Latência para pedidos bem-sucedidos ao ARM, tem de filtrar a dimensão StatusCodeClass com 2XX.

Se quiser ver o número de pedidos efetuados na sua subscrição para recursos de Rede, como Redes Virtuais e Balanceadores de Carga, terá de filtrar a dimensão espaço de nomes da MICROSOFT. REDE.

Examinar Pedidos Limitados

Para ver apenas os seus pedidos limitados, tem de filtrar apenas respostas de código de estado 429. Para chamadas à API REST, a filtragem é efetuada através da propriedade $filter e da dimensão StatusCode ao acrescentar: $filter=StatusCode eq "429", conforme visto no final do pedido no fragmento seguinte:

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

Também pode filtrar diretamente no portal: captura de ecrã da filtragem do Código de Estado HTTP para respostas 429 apenas no portal do Azure.

Examinar Erros do Servidor

À semelhança de analisar pedidos limitados, vê todos os pedidos que devolveram um código de resposta de erro do servidor ao filtrar apenas respostas 5xx. Para chamadas à API REST, a filtragem é efetuada através da propriedade $filter e da dimensão StatusCodeClass ao acrescentar: $filter=StatusCodeClass eq '5xx', conforme visto no final do pedido no fragmento seguinte:

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

Também pode realizar erros genéricos de filtragem do servidor no portal ao definir a propriedade de filtro como "StatusCodeClass" e o valor como "5xx", semelhante ao que foi feito no exemplo de limitação.

Passos seguintes