Перекрестная публикация из моих Сообщение MS Q&A.
Я использую показатели App Insights, чтобы сообщить о задержке между событием приложения и его обработкой. Время обработки согласно определению <1 с, так как используется планировщик на основе cron. Я написал сценарий bash, чтобы сообщить о разнице во времени в Azure App Insights. Пока это работает нормально. Теперь я настроил два предупреждения:
среднее (разница во времени) за последние 5 минут> 120
среднее (разница во времени) за последние 5 минут <= 1
Первое предупреждение довольно очевидно: поймайте экземпляр, в котором мое приложение вообще не обрабатывает событие правильно. Второму предупреждению может потребоваться дополнительное объяснение: я хочу поймать случай, когда мой сценарий bash вообще не сообщает никаких данных (например, время простоя системы, полный сбой приложения…). Теоретически среднее значение снизится до 0 в течение 5 минут после сбоя приложения, вызывая таким образом предупреждение и отправляя мне электронное письмо.
Это вообще не работает: я могу убить свой сценарий bash, который передает данные в API пользовательских метрик, и вообще не получать предупреждения (да, я ждал 5 минут). Если я вручную (/ из моего сценария bash) сообщаю значения 0 для разницы во времени, предупреждение срабатывает правильно. Если я затем изменю сценарий, чтобы сообщить значение> 0, предупреждение также будет отключено должным образом. Я также тестировал это с помощью avg (td) <0 (это мой предпочтительный способ сделать это), но это тоже не работает. Это ожидаемое / задокументированное поведение? Для меня это действительно не имеет большого смысла. Есть ли лучший способ предупредить об отсутствии отчетности по определенным показателям?