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&region=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"