#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, поскольку ответ помог, пожалуйста, примите ответ Янива 🙂