Как я могу создать пользовательское оповещение Azure для предупреждения, которое никогда не запускалось?

#azure #azure-application-insights #azure-monitoring

#azure #azure-application-insights #azure-мониторинг

Вопрос:

У меня есть несколько предупреждений об ошибках в prod env, о которых я хотел бы получать предупреждения, если они срабатывают. Проблема в том, что они никогда не запускались, поэтому я не могу видеть их на портале.

Спасибо!

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

1. Вы не доверяете запускаемому оповещению или хотите проверить, что действие, определенное для предупреждения, было правильно настроено? Если вы не доверяете запускаемому оповещению, вы не доверяете Azure monitor, это проблема, которую вы не можете решить с помощью дополнительного оповещения 🙂 Если вы ожидали, что предупреждение будет запущено, но этого не произошло, вам было бы лучше проверить определение предупреждения.

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

3. @HahnSolo, в вашем блоке catch вы можете отправить пользовательское сообщение об ошибке типа «произошла ошибка» в application insights -> таблица ошибок, затем вы можете легко создать оповещение на основе этого сообщения об ошибке.

4. Оповещения @HahnSolo не являются объектами, которые вы можете отправлять. В Application Insights вы можете определить запрос, например, показать мне количество исключений данного типа с данным сообщением за последние 5 минут. Затем вы определяете оповещение, которое запускается при выполнении заданного условия, например: результат запроса примера > 0. Таким образом, вы можете создавать оповещения до выполнения условий. Имеет ли это смысл?

Ответ №1:

Думаю, теперь я лучше понимаю вашу проблему. Сегодня я получил уведомление с помощью этого сообщения о новой возможности:

Определите правило оповещения для пользовательской метрики, которая еще не отправлена

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

Чтобы избежать сбоя развертывания при попытке проверки определений пользовательской метрики, вы можете использовать параметр skipMetricValidation в разделе критерии правила оповещения, что приведет к пропуску проверки метрики. (источник)

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

1. Это оно, шеф!

Ответ №2:

Я вижу, что у вас есть попытка / перехват, тогда вы можете рассмотреть возможность отправки пользовательского сообщения об ошибке в application insights (логика здесь в том, что, поскольку вы знаете пользовательское сообщение об ошибке, вы можете использовать это предопределенное сообщение для создания предупреждения), используя приведенный ниже код в вашем блоке catch:

         try
        {
           //your code            
        }
        catch
        {
            //if you're using ILogger which is integrated with application insights.
            _logger.LogError(new Exception(),"custom error: xxxx");
                           
            //your other code
        }
  

Затем перейдите на портал Azure -> аналитика приложений -> Журналы:

1. Напишите запрос, как показано ниже:

 exceptions  
| where customDimensions.FormattedMessage == "custom error: xxxx"
  

2. Выберите запрос и нажмите кнопку Выполнить.

3.At наконец, нажмите кнопку «Новое правило оповещения», чтобы создать оповещение.

введите описание изображения здесь

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

1. Спасибо, но как я могу отправить это оповещение в App Insights в первую очередь? Это prod env, поэтому я не могу просто запускать подобные вещи, если вы понимаете, что я имею в виду.

2. @HahnSolo, что вы имеете в виду, говоря «как я могу отправить это оповещение в app Insights в первую очередь»?

3. @HahnSolo, не уверен, правильно ли я вас понял. Если вы не хотите отправлять пользовательские ошибки в application insights, то вы можете сделать следующее: если возникает какая-либо ошибка, ошибка будет зарегистрирована в application insights, тогда вы можете просто написать запрос (запрос должен быть очень простым, например exceptions ), чтобы проверить, есть ли какие-либо результаты в таблице исключений -> затем создать оповещение.