Синтаксис фильтра REST API Azure Monitor

Многие API Azure Monitor принимают параметр , {filter-expression}который можно использовать для фильтрации или ограничения набора собираемых данных.

Использование фильтра "*" в запросе нескольких ресурсов

Важно!

в * фильтре для нескольких ресурсов не является подстановочным знаком. Это строка литерала, которая используется для запроса нескольких ресурсов. * Используется для запроса нескольких ресурсов в одном временном ряду.

В приведенном ниже $filter=Microsoft.ResourceId eq '*' примере API возвращает отдельные временные ряды для каждого ресурса виртуальной машины в подписке и регионе. Без фильтра API возвратит один временный ряд, агрегирующий средний объем ЦП для всех виртуальных машин. Временные ряды для каждого ресурса отличаются значением метаданных Microsoft.ResourceId в каждой записи временных рядов.

Если вы используете $filter=Microsoft.ResourceId eq '*' и ресурсы отсутствуют, в данном случае виртуальные машины в указанных временных рядах, возвращаются пустые временные ряды timeseries:[] , так как отсутствуют результаты для запрошенного набора измерений, включающего ResourceId
Один и тот же запрос без фильтра вернет один временный ряд, возвращающий агрегированное среднее значение ЦП для 0 всех виртуальных машин, так как это сумма по всем запрошенным измерениям.

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

Пример использования $filter

Ниже приведены возможные строки выражений, которые можно передать как {filter-expression}. Другой синтаксис не допускается.

  • Перечисление событий для группы ресурсов

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

    Пример:

    $filter=eventTimestamp ge 2014-12-29T22:00:37Z и eventTimestamp le 2014-12-29T23:36:37Z и eventChannels eq 'Администратор, Operation' and resourceGroupName eq 'CloudLab'

  • Перечисление событий для ресурса

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

    Пример:

    $filter=eventTimestamp ge 2014-12-29T22:00:37Z и eventTimestamp le 2014-12-29T23:36:37Z и eventChannels eq 'Администратор, Operation" и resourceUri eq "/subscriptions/089bd33f-d4ec-47fe-8ba5-0753aa5c5b33/resourcegroups/CloudLab/providers/Microsoft.Web/sites/mytestweb004"

  • Перечисление событий для подписки Azure

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

    Пример:

    $filter=eventTimestamp ge 2014-12-29T22:00:37Z и eventTimestamp le 2014-12-29T23:36:37Z и eventChannels eq 'Администратор, Operation'

  • Перечисление событий для поставщика ресурсов Azure

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

    Пример:

    $filter=eventTimestamp ge 2014-12-29T22:00:37Z и eventTimestamp le 2014-12-29T23:36:37Z и eventChannels eq 'Администратор, Operation' and resourceProvider eq 'Microsoft.Web'

  • Перечисление событий для идентификатора корреляции

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

    Пример: api-version=2014-04-01&$filter=eventTimestamp ge 2014-12-29T22:00:37Z и eventTimestamp le 2014-12-29T23:36:37Z и eventChannels eq 'Администратор, Operation' и correlationId eq '07c85493-5e87-4efd-9200-0c64d904d878'