Предупреждение Azure Monitor для отфильтрованной пользовательской метрики, меньше, чем регистр - PullRequest
0 голосов
/ 01 октября 2019

У меня есть предупреждение монитора Azure для пользовательского показателя с фильтром. Вот как выглядит пользовательский запрос журнала:

customMetrics 
| where name == 'MyMetricName' 
| where cloud_RoleInstance == 'MyInstanceName' 
| summarize AggregatedValue = sum(valueCount) by bin(timestamp, 5m)

Я хочу получать оповещения, когда sum (valueCount) == 0. Для этого я указываю "Измерение метрики" => "Меньше" => 1Это работает нормально, как только служба, использующая метрику, работает. Когда он останавливается, метрик нет, и приведенный выше запрос не возвращает никаких записей - так работают функции агрегирования в Kusto. И из-за этого предупреждение никогда не сработает :(. Есть идеи, как это сделать?

Ответы [ 2 ]

2 голосов
/ 01 октября 2019

один вариант для вас, чтобы рассмотреть это переключить summarize на make-series и указать kind=nonempty

https://docs.microsoft.com/en-us/azure/kusto/query/make-seriesoperator

0 голосов
/ 11 октября 2019

Я просто скомбинировал серию make, как предложил Yoni, и придумал этот вариант. Я попробовал это на одной из моих таблиц аналитики журнала Perf, и это сработало. Проверьте, как это происходит с вами, и дайте мне знать.

let data = customMetrics 
| where name == 'MyMetricName' 
| where cloud_RoleInstance == 'MyInstanceName' 
| make-series kind = nonempty SumValue= sum(CounterValue) on timestamp from ago(30m) to now() step 5m  // checking 30m interval this will equal assuming alert period = 30m
| mvexpand timestamp, SumValue
| where SumValue <= 1  // Filtering those 5 min time intervals where there is no data 
| project  todatetime(timestamp) , SumValue; 
data
| summarize AggregatedValue = count() by bin(timestamp, 30m)  // This will also be equal to alert period assuming 30 minutes

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...