Что такое Application Insights и как этот сервис может помочь разработчику

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

Сервис Application Insights впервые появился как часть Visual Studio Online. На данный момент этот сервис является частью облачной платформы Azure со всеми вытекающими последствиями. Сервис позволяет мониторить показатели используемости, доступности и производительности приложения. Но обо все по-порядку.

Application Insights работает с приложениями ASP.NET. Приложения Windows Phone и Windows Store также можно мониторить. Совсем недавно была заявлена поддержка Java. Кроме того, Application Insights можно подключить к приложениям на платформе Node.js, PHP, Python, Ruby, Android и iOS, SDK для каждой из этих платформ находятся в открытом доступе на github.

Для подключения Application Insights к проекту потребуется Visual Studio 2013 Update 3 или новее. Для этого заходим на портал Azure и создаем новый сервис Application Insights. После Application Insights можно подключать к проекту. Для этого достаточно правой кнопкой кликнуть на проекте и выбрать пункт меню Add Application Insights Telemetry:

После этого будет предложено войти на портал Azure и выбрать сервис, который будет связан с этим приложением. После этого в проект будет добавлен файл ApplicationInsights.config (содержащий идентификатор сервиса AI в облаке). Кроме того, в проект устанавливаются нужные пакеты из Nuget и в web.config добавляются Http-моудли для отслеживания активности. Альтернативный способ - это воспользоваться специальной утилитой на сервере, тогда код проекта изменять не потребуется. Всё, что делает эта утилита - добавляет нужные библиотеки и меняет конфигурационный файл. Так что в некотором смысле оба способа идентичны.

Теперь можно публиковать и запускать приложение. Данные начнут собираться и отправляться на сервис. Через несколько минут после этого можно начать смотреть отчеты.

Примеры отчетов

Количество пользователей, сессий, запросов, статистика по странам:

Отслеживание медленных запросов:

Отслеживание исключений: