Измерение производительности и доступности приложения при помощи Application Insights

В предыдущем посте было описано что такое Application Insights и какие задачи решает эта платформа. На этот раз взглянем на Application Insights со стороны мониторинга работоспособности приложения.

Будем считать, что приложение работает если: 1) оно корректно отвечает на ключевые HTTP-запросы; 2) делает это за приемлемое время. Т.е. нам нужно убедиться отвечает ли приложение вообще, и если да, то насколько быстро отрабатывает запросы. Причем этот мониторинг должен выполняться на постоянной основе, через определенные интервалы.

Основой для тестирования доступности и производительности явлются веб-тесты. Веб-тест может быть простым (простой HTTP-запрос по указанному адресу и проверка ответа) и записанным по сценарию (зайти на страницу, перейти на другую, ввести данные и т.п.). Записанные веб-тесты — это Web Performance Test, который можно создать или записать в Visual Studio. В результате получается файл .webtest, который нужно будет загрузить в Application Insights.

Для создания веб-теста в AI, нужно выбрать раздел Availability и нажать кнопку Add web test.

При создании теста следует указать тип теста, задать нужные параметры и указать с каких локаций он будет запускаться.

Сразу после создания сервис запустит эти тесты. На общей панели управления будет отображаться сводка о наиболее медленных запросах:

Клик по этой панели откроет раздел, где можно посмотреть детальную аналитику по каждому запросу, времени выполнения и трендам:

Кликнув по конкретному адресу можно посмотреть детали конкретного запроса.

Скорее всего, для своего приложения вы имеете ориентиры насколько быстро оно должно отвечать на HTTP-запросы. Эти пороговые значения можно указать при настройке веб-теста. В таком случае при превышении этого порога вы получите уведомление на email. Уведомления так же будут отправляться, если веб-тест завершился неудачей (например, страница по нужному адресу не открылась).

Отчет под доступности приложения также очень наглядно показывает состояние приложения:

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