Sintaxe do Filtro da API REST do Azure Monitor
Muitas APIs do Azure Monitor utilizam um parâmetro, {filter-expression}
, que pode utilizar para filtrar ou restringir o conjunto de dados recolhidos.
Utilizar o filtro '*' no pedido de vários recursos
Importante
O *
num filtro para vários recursos não é um caráter universal. É uma cadeia literal que é utilizada para pedir vários recursos. O *
é utilizado para pedir vários recursos numa única série temporal.
No exemplo abaixo $filter=Microsoft.ResourceId eq '*'
, indica à API para devolver uma série temporal separada por recurso de máquina virtual na subscrição e região. Sem o filtro, a API devolveria uma única série temporal que agregaria a CPU média para todas as VMs. A série de horas para cada recurso é diferenciada pelo valor de metadados Microsoft.ResourceId em cada entrada de série temporal.
Se utilizar $filter=Microsoft.ResourceId eq '*'
e não existirem recursos, neste caso, as VMs na série temporal especificada, a série temporal vazia timeseries:[]
é devolvida, uma vez que não existem resultados para o conjunto de dimensões pedido que inclui ResourceId
A mesma consulta sem o filtro devolverá uma única série temporal que devolve uma CPU média agregada = 0
para todas as VMs, uma vez que esta é a soma em todas as dimensões pedidas.
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 '*'
Exemplo a utilizar $filter
Eis as possíveis cadeias de expressão que pode transmitir como {filter-expression}
. Não é permitida outra sintaxe.
Listar eventos para um grupo de recursos
$filter=eventTimestamp ge <Start Time> and eventTimestamp le <End Time> and eventChannels eq 'Admin, Operation' and resourceGroupName eq '<ResourceGroupName>'
Exemplo:
$filter=eventTimestamp ge 2014-12-29T22:00:37Z e eventTimestamp le 2014-12-29T23:36:37Z e eventChannels eq 'Administração, Operation' e resourceGroupName eq 'CloudLab'
Listar eventos para um recurso
$filter=eventTimestamp ge <Start Time> and eventTimestamp le <End Time> and eventChannels eq 'Admin, Operation' and resourceUri eq '<ResourceURI>'
Exemplo:
$filter=eventTimestamp ge 2014-12-29T22:00:37Z e eventTimestamp le 2014-12-29T23:36:37Z e eventChannels eq 'Administração, Operação" e resourceUri eq "/subscriptions/089bd33f-d4ec-47fe-8ba5-0753aa5c5b33/resourcegroups/CloudLab/providers/Microsoft.Web/sites/mytestweb004"
Listar eventos para uma subscrição do Azure
$filter=eventTimestamp ge <Start Time> and eventTimestamp le <End Time> and eventChannels eq 'Admin, Operation'
Exemplo:
$filter=eventTimestamp ge 2014-12-29T22:00:37Z e eventTimestamp le 2014-12-29T23:36:37Z e eventChannels eq 'Administração, Operation'
Listar eventos para um fornecedor de recursos do Azure
$filter=eventTimestamp ge <Start Time> and eventTimestamp le <End Time> and eventChannels eq 'Admin, Operation' and resourceProvider eq '<ResourceProviderName>'
Exemplo:
$filter=eventTimestamp ge 2014-12-29T22:00:37Z e eventTimestamp le 2014-12-29T23:36:37Z e eventChannels eq 'Administração, Operation' e resourceProvider eq 'Microsoft.Web'
Listar eventos para um ID de correlação
api-version=2014-04-01&$filter=eventTimestamp ge 2014-07-16T04:36:37.6407898Z and eventTimestamp le 2014-07-20T04:36:37.6407898Z and eventChannels eq 'Admin, Operation' and correlationId eq '<CorrelationID>'
Exemplo: api-version=2014-04-01&$filter=eventTimestamp ge 2014-12-29T22:00:37Z e eventTimestamp le 2014-12-29T23:36:37Z e eventChannels eq 'Administração, Operação" e correlationId eq "07c85493-5e87-4efd-9200-0c64d904d878"