Предупреждение монитора функций Azure, где счетчик выполнения <1 никогда не срабатывал - PullRequest
0 голосов
/ 03 мая 2019

У меня есть приложение-функция Azure с функциями Azure, которое я хочу индивидуально отслеживать по следующему правилу: если функция Azure не выполнялась в течение N минут, отправьте электронное письмо / уведомление.

Мне интересно, возможно ли это с оповещениями Application Insights, которые обеспечивают логическую схему сигналов для count для каждой отдельной функции Azure. Но это число никогда не равно 0, на графиках видно, что любое число <0 не рассматривается как число. Он отображается как <b>- , как вы можете видеть на графике для моей функции тестирования ниже:

таблица тестовых функций (недостаточно репутации для публикации изображений)

Пик на графике виден как 3, но если я использую условие " Всякий раз, когда счетчик тестовых функций меньше 1 ", предупреждение никогда не срабатывает.

Изменение гранулярности агрегирования на самом деле мало что дает, поскольку логика сигналов, похоже, никогда не записывает счет 0 или счетчик меньше 1.

Есть много (немного) более неудобных способов сделать этот тип мониторинга, но это казалось очень возможным с хорошими встроенными оповещениями Azure Application Insights, и я хотел бы использовать это, если это вообще возможно.

Я пытаюсь неправильно использовать оповещения Application Insights или есть что-то очевидное, что я не получаю? Я думаю, что должно быть возможно иметь правила мониторинга, основанные на отсутствии исполнения.

1 Ответ

1 голос
/ 04 мая 2019

вместо этого вам может потребоваться сделать это с оповещениями журнала / запроса. Если вы делаете оповещения на основе метрик, некоторые из них не отправляют 0 в качестве данных. поэтому, если ничего не произошло в течение определенного промежутка времени, нет нуля для оповещения, так как ничто не отправляет 0, 0, 0, 0.

Вместо этого вы будете создавать оповещения на основе запросов: https://docs.microsoft.com/en-us/azure/azure-monitor/platform/alerts-unified-log

Доку приведен этот точный сценарий:

В некоторых случаях вы можете захотеть создать оповещение при отсутствии события.

Например, процесс может регистрировать регулярные события, чтобы указать, что он работает правильно. Если он не регистрирует одно из этих событий в течение определенного периода времени, то должно быть создано предупреждение. В этом случае вы установили бы пороговое значение меньше 1. [выделение добавлено, это ваш сценарий, верно]?

Пример оповещения о типе количества записей

Рассмотрим сценарий, в котором вы хотите знать, когда ваше веб-приложение дает ответ пользователям с кодом 500 (то есть) Внутренняя ошибка сервера. Вы должны создать правило оповещения со следующими данными:

Запрос: запросы | где resultCode == "500"

Период времени: 30 минут

Частота оповещения: пять минут

Пороговое значение: больше 0

в этом примере запрос в конечном итоге будет выглядеть как requests | where timespan < ago(30m) | where resultCode == "500" из-за установленного периода времени. (сам запрос может затем отфильтровать тот временной диапазон / результат, который вы хотите)

так что для вас, вы, вероятно, просто сделаете requests без условия «где» вообще, с любым периодом времени и частотой, которые у вас есть, и «меньше единицы» в качестве порога. Вы также можете выполнять гораздо более сложные запросы, отфильтровывать тестовые данные и т. д.

Единственное, на что следует обратить внимание, так это на то, что, как я полагаю, оповещения журнала будут срабатывать каждый раз, когда истекает частота. так что если у вас настроено оповещение о запросах <1 для каждых 5 минут, а ваша функция не звонила в течение 2 часов, оповещение будет срабатывать каждые 5 минут, отправляя вам 40 писем или что-то еще. может быть, вы хотите это:) </p>

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