Sintaxis de filtro de la API REST de Azure Monitor

Muchas API de Azure Monitor toman un parámetro, {filter-expression}, que puede usar para filtrar o restringir el conjunto de datos recopilados.

Uso del filtro '*' en la solicitud de varios recursos

Importante

En * un filtro para varios recursos no es un carácter comodín. Es una cadena literal que se usa para solicitar varios recursos. * se usa para solicitar varios recursos en una sola serie temporal.

En el ejemplo siguiente $filter=Microsoft.ResourceId eq '*' se indica a la API que devuelva una serie temporal independiente por recurso de máquina virtual en la suscripción y la región. Sin el filtro, la API devolvería una sola serie temporal agregando la CPU media para todas las máquinas virtuales. La serie temporal de cada recurso se diferencia por el valor de metadatos Microsoft.ResourceId en cada entrada de serie temporal.

Si usa $filter=Microsoft.ResourceId eq '*' y no hay recursos, en este caso las máquinas virtuales de la serie temporal especificada, se devuelven las series temporales vacías timeseries:[] , ya que no hay resultados para el conjunto de dimensiones solicitado que incluye ResourceId
La misma consulta sin el filtro devolverá una sola serie temporal que devuelve una CPU media agregada = 0 para todas las máquinas virtuales, ya que esta es la suma en todas las dimensiones 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 '*'

Ejemplo de uso de $filter

Estas son las cadenas de expresión posibles que puede pasar como {filter-expression}. No se permite otra sintaxis.

  • Enumerar eventos para un grupo de recursos

    $filter=eventTimestamp ge <Start Time> and eventTimestamp le <End Time> and eventChannels eq 'Admin, Operation' and resourceGroupName eq '<ResourceGroupName>'
    

    Ejemplo:

    $filter=eventTimestamp ge 2014-12-29T22:00:37Z y eventTimestamp le 2014-12-29T23:36:37Z y eventChannels eq 'Administración, Operation' y resourceGroupName eq 'CloudLab'

  • Enumerar eventos para un recurso

    $filter=eventTimestamp ge <Start Time> and eventTimestamp le <End Time> and eventChannels eq 'Admin, Operation' and resourceUri eq '<ResourceURI>'
    

    Ejemplo:

    $filter=eventTimestamp ge 2014-12-29T22:00:37Z y eventTimestamp le 2014-12-29T23:36:37Z y eventChannels eq 'Administración, Operation' y resourceUri eq '/subscriptions/089bd33f-d4ec-47fe-8ba5-0753aa5c5b33/resourcegroups/CloudLab/providers/Microsoft.Web/sites/mytestweb004'

  • Listar eventos para una suscripción de Azure

    $filter=eventTimestamp ge <Start Time> and eventTimestamp le <End Time> and eventChannels eq 'Admin, Operation'
    

    Ejemplo:

    $filter=eventTimestamp ge 2014-12-29T22:00:37Z y eventTimestamp le 2014-12-29T23:36:37Z y eventChannels eq 'Administración, Operation'

  • Enumerar eventos para un proveedor de recursos de Azure

    $filter=eventTimestamp ge <Start Time> and eventTimestamp le <End Time> and eventChannels eq 'Admin, Operation' and resourceProvider eq '<ResourceProviderName>'
    

    Ejemplo:

    $filter=eventTimestamp ge 2014-12-29T22:00:37Z y eventTimestamp le 2014-12-29T23:36:37Z y eventChannels eq 'Administración, Operation' y resourceProvider eq 'Microsoft.Web'

  • Enumeración de eventos para un identificador de correlación

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

    Ejemplo: api-version=2014-04-01&$filter=eventTimestamp ge 2014-12-29T22:00:37Z y eventTimestamp le 2014-12-29T23:36:37Z y eventChannels eq 'Administración, Operation' y correlationId eq '07c85493-5e87-4efd-9200-0c64d904d878'