Новые функции Visual Studio Online о которых мы рассказывали на запуске Visual Studio 2013 включают в себя интересную технологию Application Insights. Этот инструмент позволяет осуществлять мониторинг приложения и анализировать важные параметры работоспособности во многих аспектах. Исключительные ситуации, параметры производительности, нагрузка на процессор, сетевую и дисковую инфраструктуру – все эти данные можно получить в виде лаконичного представления, которое позволяет затем принимать важны решения. Интересным так же является то что вы можете использовать Application Insights для мониторинга приложений для Windows 8 и Windows Phone 8.
Уже скоро технология Application Insights будет доступна широкому кругу пользователей Visual Studio Online, а если вы входите в число тех, кто получил доступ к предварительной версии, то вы сможете попробовать эти возможности уже сейчас.
Настройка телеметрии для приложений Windows Phone Store и Windows Store
Для того чтобы включить возможности телеметрии в вашем приложении в первую очередь нужно получить Access Key в настройках Application Insights.
Следующим шагом помощник сам выведет вам на экран инструкции о том как начать мониторинг вашего приложения, в том числе подскажет Access-Key.
Далее вам необходимо установить Nuget Package в ваше приложение:
Включаем мониторинг внутри приложения
Для того чтобы воспользоваться функциями мониторинга в вашем приложении теперь достаточно подключить область видимости и в стартовой функции приложения включить режим мониторинга:
using Microsoft.ApplicationInsights.Telemetry.WindowPhone;
…
App()
{
ClientAnalyticsSession.Default.Start("KEY00000-0000-0000-0000-000000000000");
}
Этих шагов будет достаточно для того чтобы начать получать базовые сведения о работе вашего приложения. Через 15-20 минут в панели мониторинга вы увидите данные о запусках вашего приложения:
Естественно, вы можете создавать свои собственные метрики и затем добавлять их на панель мониторинга, так как она легко настраивается:
Например, вы хотите анализировать данные о том, сколько пользователей прошли игру до конца. В обработчике этого события просто вставляем код, который регистрирует это событие в Application Insigts:
ClientAnalyticsChannel.Default.LogEvent("EndOfGame");
Если вам нужны дополнительные параметры аналитики, которые позволят осуществлять фильтрацию по некоторым параметрам, достаточно добавить измерения в свойства события. Например, мы хотим сделать фильтр, который позволит анализировать сколько пользователей прошли игру до конца на различных уровнях сложности:
var properties = new Dictionary<string, object>()
{ {"difficulty", currentGame.difficulty}};
ClientAnalyticsChannel.Default.LogEvent("EndOfGame", properties);
В дополнение к простым типам событий, так же можно анализировать события привязанные к времени. Например, вы хотите проанализировать, сколько времени занимает веб-запрос осуществляющийся из вашего мобильного приложения. Для этого необходимо обернуть анализируемый участок кода в контекст TimenAnalyticsEvent и вызвав функции StartTimedEvent() и End().
TimedAnalyticsEvent token = ClientAnalyticsChannel.Default.StartTimedEvent("EventName"));
// ... осуществляем какую то долгую функцию в приложении ...
if (/*проблема*/)
token.Cancel();
else
token.End(); // запись события.
Вам останется только сконфигурировать ваши информационные панели и вы получите возможность принимать аналитические решения на основе достоверной информации о работе вашего приложения.
Более подробно об этой технологии и ее возможностях вы узнаете из доклада Брайана Келлера 6 февраля на конференции ALM Summit. Напоминаем, что до конца декабря действует специальная цена. Регистрируйтесь уже сейчас чтобы получить возможность пообщаться с сотрудниками Microsoft и индустриальными экспертами на главной конференции по управлению жизненным циклом приложений!
Автор: dmandreev