Sintaxe de filtro da API REST do Azure Monitor

Muitas APIs do Azure Monitor usam um parâmetro , {filter-expression}que você pode usar para filtrar ou restringir o conjunto de dados coletados.

Usando o filtro '*' na solicitação de vários recursos

Importante

O * em um filtro para vários recursos não é um curinga. É uma cadeia de caracteres literal usada para solicitar vários recursos. O * é usado para solicitar vários recursos em uma única série temporal.

No exemplo a seguir $filter=Microsoft.ResourceId eq '*' informa à API para retornar uma série temporal separada por recurso de máquina virtual na assinatura e 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 metadados Microsoft.ResourceId em cada entrada de série temporal.

Se você usar $filter=Microsoft.ResourceId eq '*' e não houver recursos, nesse caso as VMs na série temporal especificada, a série timeseries:[] temporal vazia será retornada, pois não há resultados para o conjunto de dimensões solicitado que inclui ResourceId
A mesma consulta sem o filtro retornará uma única série temporal retornando uma CPU média agregada = 0 para todas as VMs, pois essa é a soma em todas as dimensões solicitadas.

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 usando $filter

Aqui estão as cadeias de caracteres de expressão possíveis que você pode passar como {filter-expression}. Nenhuma outra sintaxe é permitida.

  • 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, Operation' e resourceUri eq '/subscriptions/089bd33f-d4ec-47fe-8ba5-0753aa5c5b33/resourcegroups/CloudLab/providers/Microsoft.Web/sites/mytestweb004'

  • Listar eventos para uma assinatura 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 provedor 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 uma 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, Operation' e correlationId eq '07c85493-5e87-4efd-9200-0c64d904d878'