UWP: отчет о сбоях и отслеживание событий

Я разработал приложение UWP для клиента: поскольку мы обнаружили некоторые ошибки, которые я не могу воспроизвести на своем устройстве, мы реализовали решение для отчетов о сбоях.

HockeyApp

В первый раз я использовал HockeyApp вот так, чтобы использовать отчет о сбоях:

HockeyClient.Current.Configure("xxxxxx",
  new TelemetryConfiguration() { EnableDiagnostics = true })
    .SetExceptionDescriptionLoader((Exception ex) =>
    {
      return "Exception HResult: " + ex.HResult.ToString();
    });

Но, как объяснялось в другой теме, о сбоях сообщалось, но этого не произошло » не позволяют мне идентифицировать проблемы, поскольку я не получил достаточно подробностей.

Как кто-то предположил, я загрузил файлы .pdb из Магазина в HockeyApp: но на этот раз символы сбоев и файлы .pdf не совпадают.

Я решил использовать TrackEvent для анализа проблем. Я провел несколько тестов функции, добавив:

Microsoft.HockeyApp.HockeyClient.Current.TrackTrace("MyViewModel - CheckUser()");

Но о событиях не сообщается в HockeyApp ...

=> Не могли бы вы объяснить? Я что-нибудь забыл? Я опубликую новый пакет в Магазине и повторно загружу файлы .pdb в HockeyApp, но я не знаю, что еще я мог бы сделать ...

Центр приложений

Поскольку AppCenter теперь доступен для UWP, я провел те же тесты. Я реализовал AppCenter следующим образом:

AppCenter.Start("xxxxxx-xxx"
  , typeof(Analytics)
  , typeof(Crashes));

Но в отличие от HockeyApp, о сбоях не сообщается вообще. AppCenter хорошо идентифицирует приложение, поскольку на вкладке «Сбои» добавляется запись с номером текущей версии при запуске приложения.

Я также добавил События с:

Analytics.TrackEvent("MyViewModel - CheckUser()");

Но на этот раз события хорошо отображаются в AppCenter.

=> Использовал ли кто-нибудь AppCenter для отчета о сбоях в UWP? Есть что еще добавить?

Вывод

На данный момент мне нужно использовать 2 инструмента, но они не очень полезны:

  • HockeyApp для отчета о сбоях
  • AppCenter для событий

=> Есть ли у вас другие предложения или инструменты, которые могут мне помочь?


person Gold.strike    schedule 06.12.2017    source источник


Ответы (2)


Решил использовать TrackEvent для анализа проблем ... Но в HockeyApp о событиях не сообщается ...

Если вы хотите использовать TrackEvent, вам необходимо использовать API TrackEvent () вместо TrackTrace ().

HockeyClient.Current.TrackEvent("Button Clicked");

Вы можете проверить настраиваемые события на панели управления HockeyApp, войдя в свою учетную запись -> щелкните приложение -> События.

Обратите внимание, что настраиваемое событие не отображается сразу, обычно это занимает около 10–15 минут. Также есть ограничения. см. здесь .

Как вы упомянули, вам необходимо загрузить правильные файлы .pdb на панель управления HockeyApp, после чего сбои будут отмечены символами.

Похоже, что загруженное вами приложение является версией из магазина, поэтому вам необходимо загрузить файлы .pdb из Windows Dev Store. см. здесь.

Вы можете проверить, является ли он правильным, сравнив идентификатор файла .pdb и двоичного изображения в вашем аварийном отказе. Например,  символ, который я загружаю  BinaryImage of crash Оба файла - e5502c5ddc5748a899a8182d8a52a659, это означает, что файлы .pdb правильные.

Кроме того, чтобы получить символические сбои, вам необходимо убедиться, что сбои, которые вы сделали, происходят из версии Магазина (загрузить из Магазина Windows). Вы не можете сбой приложения с бета-версией или напрямую из Visual Studio с файлом .pdb из Магазина.

Что касается AppCenter, это следующее поколение HockeyApp, и оно все еще находится в стадии предварительной версии. Для отчетов о сбоях в Windows теперь требуется, чтобы приложение распространялось через Магазин Windows, сбой при загрузке неопубликованных приложений пока не поддерживается. Вы можете обратиться к официальному документу здесь. Однако в долгосрочной перспективе он займет место HockeyApp, поэтому вы можете дождаться официального релиза App Center.

person Neal wang - MSFT    schedule 07.12.2017
comment
Спасибо за ваш отзыв! Есть ли способ использовать HockeyApp или AppCenter, например Debug.WriteLine(DateTime.Now.ToString("hh.mm.ss.ffffff") + ": xxxx");? Поскольку я хотел бы использовать TrackEvent, чтобы понять, почему возникают ошибки, мне нужно иметь возможность сортировать и упорядочивать отслеживаемые события. Я пытаюсь сделать это, добавив Словарь, содержащий дату как свойство (new Dictionary<string, string> { { "date", DateTime.Now.ToString() } }), но это не работает ... - person Gold.strike; 08.12.2017
comment
В Hockeyapp вы можете отслеживать настраиваемые события с помощью свойств, но они не будут отображаться на панели инструментов HockeyApp, вам необходимо связать данные о приложении и проанализировать там данные. support.hockeyapp.net/kb/ General-Account-Management-2 /. Однако, если вы используете Центр приложений, настраиваемые события со свойствами будут отображаться на панели управления Центра приложений без сведений о приложении моста. - person Neal wang - MSFT; 08.12.2017
comment
Сначала я попробовал использовать свойства для HockeyApp, но не знал, что мы можем связать Application Insights. Я проделал то же самое с AppCenter, но я не видел свойств на панели инструментов ... Есть ли способ экспортировать трассировки из HockeyApp или AppCenter, или я должен использовать Application Insights? - person Gold.strike; 08.12.2017
comment
Если вы используете Hockeyapp и хотите увидеть свойства, аналитика приложения является обязательной. Но для App Center вы можете напрямую видеть свойства. Вы можете увидеть свойства, когда войдете в свою учетную запись в Центре приложений- ›Аналитика-› События - person Neal wang - MSFT; 08.12.2017

У нас также была та же проблема, что и у вас, но, хорошие новости, теперь вы можете использовать AppCenter SDK также для отчетов о сбоях. https://docs.microsoft.com/en-us/appcenter/sdk/crashes/uwp. То, как вы это сделали, должно работать с новой версией NuGet:

AppCenter.Start («xxxxxx-xxx», typeof (аналитика), typeof (сбои));

Я провел небольшой тест с более новой версией NuGet, чем раньше, теперь 1.4, и я тестирую

Crashes.GenerateTestCrash();

Когда вы пробовали это в предыдущих версиях, intellisense сказал, что он еще не доступен для UWP, но теперь может быть выполнен.

Однако просмотр тестовых сбоев на портале AppCenter показал, что «что-то пошло не так с нашей стороны». Это, вероятно, «вылечит» сверхурочные, но сигнализирует о том, что отчеты о сбоях в App Center действительно все еще находятся в предварительной версии.

Я также рекомендовал бы использовать функцию экспорта в Application Insights, чтобы глубже изучить журналы.

person jwweiler    schedule 22.02.2018