Синтаксис фильтра 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®ion=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'