Поисковый запрос должен содержать ‘AggregatedValue’ и ‘bin (TimeGenerated, [roundTo])’ для типа предупреждения метрики

#kql #azure-alerts

#kql #azure-оповещения

Вопрос:

Я хочу создать оповещение по нижеприведенному сценарию:

 if (incoming_messages of event hub != outgoing_messages of event hub)
then I should get alerted
 

Для этого я создал запрос в log analytics, где столбец «Сравнение» показывает разницу входящих и исходящих сообщений event hub

Но когда я использую приведенный ниже запрос как «Измерение метрики» для создания оповещений…..Он выдает следующую ошибку

Поисковый запрос должен содержать ‘AggregatedValue’ и ‘bin (TimeGenerated, [roundTo])’ для типа предупреждения метрики

Может кто-нибудь, пожалуйста, скажите мне, как исправить эту ошибку или есть какой-либо другой способ установить оповещение для вышеупомянутого сценария??

Вот запрос

 let Incoming_Messages = AzureMetrics
| where ResourceProvider =="MICROSOFT.EVENTHUB"
| where _ResourceId contains "ResourceID-Hidden"
| where TimeGenerated > ago(1h)
| where MetricName contains "IncomingMessages"
| count | extend CommonCol="Dummy"
| project CommonCol, TotalIncomingMessages = Count;
let Outgoing_Messages = AzureMetrics
| where ResourceProvider =="MICROSOFT.EVENTHUB"
| where _ResourceId contains "ResourceID-Hidden"
| where TimeGenerated > ago(1h)
| where MetricName contains "OutgoingMessages"
| count | extend CommonCol="Dummy"
| project CommonCol, TotalOutgoingMessages = Count;
Incoming_Messages
| join Outgoing_Messages on CommonCol
| extend Comparison = TotalIncomingMessages - TotalOutgoingMessages
| project TotalOutgoingMessages, TotalIncomingMessages, Comparison
 

Скриншот ошибки:

Скриншот ошибки

Ответ №1:

Кажется, что в вашем случае было бы разумнее использовать ‘Количество результатов’. Поскольку вы хотите знать, соответствуют ли какие-либо строки критериям.

Попробуйте этот запрос с ‘Количеством результатов’ (пороговое значение> 0):

 let Incoming_Messages = AzureMetrics
| where ResourceProvider =="MICROSOFT.EVENTHUB"
| where _ResourceId contains "ResourceID-Hidden"
| where TimeGenerated > ago(1h)
| where MetricName contains "IncomingMessages"
| count | extend CommonCol="Dummy"
| project CommonCol, TotalIncomingMessages = Count;
let Outgoing_Messages = AzureMetrics
| where ResourceProvider =="MICROSOFT.EVENTHUB"
| where _ResourceId contains "ResourceID-Hidden"
| where TimeGenerated > ago(1h)
| where MetricName contains "OutgoingMessages"
| count | extend CommonCol="Dummy"
| project CommonCol, TotalOutgoingMessages = Count;
Incoming_Messages
| join Outgoing_Messages on CommonCol
| extend Comparison = TotalIncomingMessages - TotalOutgoingMessages
| project TotalOutgoingMessages, TotalIncomingMessages, Comparison
| where Comparison != 0
 

Комментарии:

1. Спасибо Yaniv…..It действительно помогло и сработало отлично

2. @sandeepkumar, поскольку ответ помог, пожалуйста, примите ответ Янива 🙂