Passo a passo da API REST de monitoramento do Azure
Este artigo mostra como usar a referência da API REST do Azure Monitor.
Recupere definições de métrica, valores de dimensão e valores de métrica usando a API do Azure Monitor e use os dados em seus aplicativos ou armazene em um banco de dados para análise. Você também pode listar regras de alerta e exibir logs de atividades usando a API do Azure Monitor.
Autenticar solicitações do Azure Monitor
A solicitação enviada usando a API do Azure Monitor usa o modelo de autenticação do Azure Resource Manager. Todas as solicitações são autenticadas com o Microsoft Entra ID. Uma abordagem para autenticar o aplicativo cliente é criar uma entidade de serviço Microsoft Entra e recuperar um token de autenticação. Você pode criar uma entidade de serviço do Microsoft Entra usando o portal do Azure, CLI ou PowerShell. Para obter mais informações, consulte Registrar um aplicativo para solicitar tokens de autorização e trabalhar com APIs.
Recuperar um token
Depois de criar uma entidade de serviço, recupere um token de acesso. Especifique resource=https://management.azure.com
na solicitação de token.
Obtenha um token de autenticação usando qualquer um dos seguintes métodos:
- CLI
- API REST
- SDK
Ao solicitar um token, você deve fornecer um resource
parâmetro. O resource
parâmetro é a URL do recurso que você deseja acessar.
Os recursos incluem:
https://management.azure.com
https://api.loganalytics.io
https://monitoring.azure.com
Obter um token usando uma solicitação REST
Use a seguinte chamada à API REST para obter um token. Essa solicitação usa uma ID do cliente e um segredo do cliente para autenticar a solicitação. A ID do cliente e o segredo do cliente são obtidos quando você registra seu aplicativo com o Microsoft Entra ID. Para obter mais informações, consulte Registrar um aplicativo para solicitar tokens de autorização e trabalhar com 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'
O corpo da resposta aparece no seguinte formato:
{
"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"
}
Depois de autenticar e recuperar um token, use o token de acesso em suas solicitações de API do Azure Monitor incluindo o cabeçalho 'Authorization: Bearer <access token>'
Nota
Para obter mais informações sobre como trabalhar com a API REST do Azure, consulte a referência da API REST do Azure.
Recuperar o ID do recurso
Usar a API REST requer a ID do recurso do Azure de destino. As IDs de recursos seguem o seguinte padrão:
/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/<provider>/<resource name>/
Por exemplo
- Hub IoT do Azure: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Devices/IotHubs/<iot-hub-name>
- Pool SQL elástico: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Sql/servers/<pool-db>/elasticpools/<sql-pool-name>
- Banco de Dados SQL do Azure (v12): /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Sql/servers/<server-name>/databases/<database-name>
- Barramento de Serviço do Azure: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ServiceBus/<namespace>/<servicebus-name>
- Conjuntos de Escala de Máquina Virtual do Azure: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Compute/virtualMachineScaleSets/<vm-name>
- Máquinas Virtuais do Azure: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Compute/virtualMachines/<vm-name>
- Hubs de Eventos do Azure: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.EventHub/namespaces/<eventhub-namespace>
Use o portal do Azure, o PowerShell ou a CLI do Azure para localizar a ID do recurso.
Para localizar o resourceID no portal, na página de visão geral do recurso, selecione JSON view
A página JSON de recursos é exibida. O ID do recurso pode ser copiado usando o ícone à direita do ID.
Pontos de extremidade da API
Os pontos de extremidade da API usam o seguinte padrão:
/<resource URI>/providers/microsoft.insights/<metrics|metricDefinitions>?api-version=<apiVersion>
O resource URI
é composto pelos seguintes componentes:
/subscriptions/<subscription id>/resourcegroups/<resourceGroupName>/providers/<resourceProviderNamespace>/<resourceType>/<resourceName>/
Importante
Certifique-se de incluir /providers/microsoft.insights/
após o URI do recurso quando fizer uma chamada de API para recuperar métricas ou definições de métricas.
Recuperar definições de métrica
Use a API REST de Definições de Métricas do Azure Monitor para acessar a lista de métricas disponíveis para um serviço. Use o seguinte formato de solicitação para recuperar definições de métrica.
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 exemplo, A solicitação a seguir recupera as definições de métrica para uma conta de Armazenamento do Azure.
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
O JSON a seguir mostra um corpo de resposta de exemplo. Neste exemplo, apenas a segunda métrica tem dimensões.
{
"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
Recomendamos o uso da versão da API "2018-01-01" ou posterior. As versões mais antigas da API de definições de métricas não suportam dimensões.
Recuperar valores de dimensão
Após recuperar as definições de métrica disponíveis, recupere o intervalo de valores para as dimensões da métrica. Use valores de dimensão para filtrar ou segmentar as métricas em suas consultas. Use a API REST do Azure Monitor Metrics para localizar todos os valores de uma determinada dimensão métrica.
Use o elemento da métrica nas definições de name.value
filtro. Se nenhum filtro for especificado, a métrica padrão será retornada. A API permite que apenas uma dimensão tenha um filtro curinga.
Especifique a solicitação de valores de dimensão usando o "resultType=metadata"
parâmetro query. O resultType
é omitido para uma solicitação de valores métricos.
Nota
Para recuperar valores de dimensão usando a API REST do Azure Monitor, use a versão da API "2019-07-01" ou posterior.
Use o seguinte formato de solicitação para recuperar valores de dimensão.
GET /subscriptions/<subscription-id>/resourceGroups/
<resource-group-name>/providers/<resource-provider-namespace>/
<resource-type>/<resource-name>/providers/microsoft.insights/
metrics?metricnames=<metric>
×pan=<starttime/endtime>
&$filter=<filter>
&resultType=metadata
&api-version=<apiVersion> HTTP/1.1
Host: management.azure.com
Content-Type: application/json
Authorization: Bearer <access token>
O exemplo a seguir recupera a lista de valores de dimensão que foram emitidos para a API Name
Transactions
dimensão da métrica, onde a GeoType
dimensão tem um valor de , para o intervalo de Primary
tempo 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 \
×pan=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'
O JSON a seguir mostra um corpo de resposta de exemplo.
{
"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"
}
Recuperar valores de métrica
Depois de recuperar as definições de métrica e os valores de dimensão, recupere os valores de métrica. Use a API REST do Azure Monitor Metrics para recuperar os valores de métrica.
Use o elemento da métrica nas definições de name.value
filtro. Se nenhum filtro de dimensão for especificado, a métrica acumulada e agregada será retornada.
Séries temporais múltiplas
Uma série temporal é um conjunto de pontos de dados ordenados por tempo para uma determinada combinação de dimensões. Uma dimensão é um aspeto da métrica que descreve o ponto de dados, como ID do recurso, região ou ApiName.
- Para buscar várias séries temporais com valores de dimensão específicos, especifique um parâmetro de consulta de filtro que especifique ambos os valores de dimensão, como
"&$filter=ApiName eq 'ListContainers' or ApiName eq 'GetBlobServiceProperties'"
. Neste exemplo, você obtém uma série temporal ondeApiName
estáListContainers
e uma segunda série temporal ondeApiName
estáGetBlobServiceProperties
. - Para retornar uma série temporal para cada valor de uma determinada dimensão, use um
*
filtro como"&$filter=ApiName eq '*'"
. Use osTop
parâmetros eOrderBy
query para limitar e classificar o número de séries temporais retornadas. Neste exemplo, você obtém uma série temporal para cada valor de no conjunto deApiName
resultados. Se nenhum dado for retornado, a API retornará uma série"timeseries": []
temporal vazia.
Nota
Para recuperar valores de métricas multidimensionais usando a API REST do Azure Monitor, use a versão da API "2019-07-01" ou posterior.
Use o seguinte formato de solicitação para recuperar 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>×pan=<starttime/endtime>&$filter=<filter>&interval=<timeGrain>&aggregation=<aggreation>&api-version=<apiVersion>
Host: management.azure.com
Content-Type: application/json
Authorization: Bearer <access token>
O exemplo a seguir recupera as três principais APIs, pelo número de em ordem de valor decrescente, durante um intervalo de Transactions
5 minutos, onde a GeoType
dimensão tem um 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 \
×pan=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'
O JSON a seguir mostra um corpo de resposta de exemplo.
{
"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"
}
Consultando métricas para vários recursos ao mesmo tempo.
Além de consultar métricas em um recurso individual, alguns tipos de recursos também oferecem suporte à consulta de vários recursos em uma única solicitação. Essas APIs são o que potencializa a experiência Multi-Resource no explorador de métricas do Azure. O conjunto de tipos de recursos que dão suporte à consulta de várias métricas pode ser visto na folha Métricas no monitor do Azure por meio da lista suspensa de tipo de recurso no seletor de escopo na folha de contexto. Para obter mais informações, consulte a documentação do Multi-Resource UX.
Existem algumas diferenças importantes entre a consulta de métricas para vários recursos e recursos individuais.
- As APIs de vários recursos de métricas operam no nível de assinatura em vez do nível de ID de recurso. Essa restrição significa que os usuários que consultam essas APIs devem ter permissões do Monitoring Reader na própria assinatura.
- As APIs de vários recursos de métricas suportam apenas um único resourceType por consulta, que deve ser especificado na forma de um parâmetro de consulta de namespace métrico.
- As APIs de vários recursos de métricas dão suporte apenas a uma única região do Azure por consulta, que deve ser especificada na forma de um parâmetro de consulta de região.
Consultando métricas para vários exemplos de recursos
O exemplo a seguir mostra uma solicitação de definições de métrica 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
A solicitação a seguir mostra a solicitação de definições de métrica equivalentes para vários recursos.
As únicas alterações são o caminho da assinatura em vez de um caminho de ID de recurso e a adição de parâmetros de region
consulta metricNamespace
.
GET https://management.azure.com/subscriptions/12345678-abcd-98765432-abcdef012345/providers/microsoft.insights/metricdefinitions?api-version=2021-05-01®ion=eastus&metricNamespace=microsoft.compute/virtualmachines
O exemplo a seguir mostra uma solicitação de métrica individual.
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
Abaixo está uma solicitação de métricas equivalentes para vários 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®ion=eastus&metricNamespace=microsoft.compute/virtualmachines&$filter=Microsoft.ResourceId eq '*'
Nota
Um Microsoft.ResourceId eq '*'
filtro é adicionado no exemplo para as solicitações de métricas de vários recursos. O *
filtro informa à API para retornar uma série temporal separada para cada recurso de máquina virtual que tenha dados na assinatura e na região. Sem o filtro, a API retornaria uma única série temporal, agregando a CPU média de todas as VMs. A série temporal para cada recurso é diferenciada pelo valor de Microsoft.ResourceId
metadados em cada entrada de série temporal, como pode ser visto no valor de retorno de amostra a seguir. Se não houver resourceIds recuperados por essa consulta, uma série"timeseries": []
temporal vazia será retornada.
{
"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"
}
Solução de problemas de métricas de consulta para vários recursos
Série temporal vazia retornada
"timeseries": []
- Uma série temporal vazia é retornada quando nenhum dado está disponível para o intervalo de tempo e filtro especificados. A causa mais comum é especificar um intervalo de tempo que não contém dados. Por exemplo, se o intervalo de tempo estiver definido para uma data futura.
- Outra causa comum é especificar um filtro que não corresponde a nenhum recurso. Por exemplo, se o filtro especificar um valor de dimensão que não existe em nenhum recurso na combinação de assinatura e região,
"timeseries": []
será retornado.
Filtros curinga
O uso de um filtro curinga, comoMicrosoft.ResourceId eq '*'
faz com que a API retorne uma série temporal para cada resourceId na assinatura e região. Se a combinação de assinatura e região não contiver recursos, uma série temporal vazia será retornada. A mesma consulta sem o filtro curinga retornaria uma única série temporal, agregando a métrica solicitada sobre as dimensões solicitadas, por exemplo, assinatura e região.401 erros de autorização:
As APIs de métricas de recursos individuais exigem que um usuário tenha a permissão Monitoring Reader no recurso que está sendo consultado. Como as APIs de métricas de vários recursos são APIs de nível de assinatura, os usuários devem ter a permissão Leitor de Monitoramento para a assinatura consultada para usar as APIs de métricas de vários recursos. Mesmo que os usuários tenham o Monitoring Reader em todos os recursos de uma assinatura, a solicitação falhará se o usuário não tiver o Monitoring Reader na própria assinatura.
Próximos passos
- Analise a visão geral do monitoramento.
- Veja as métricas suportadas com o Azure Monitor.
- Analise a referência da API REST do Microsoft Azure Monitor.
- Revise as novas bibliotecas de cliente do Azure Monitor Query
- Analise a Biblioteca de Gerenciamento do Azure.
- Recupere dados do log de atividades usando a API REST do Azure monitor.