Блог AppMetrica

Обновлённый отчёт по ошибкам

Говоря о стабильности приложения, мы привыкли следить за показателем crash-free. Чем выше процент — тем лучше. Чтобы посчитать его, не нужны дополнительные действия. Главное, не забыть активировать в AppMetrica компонент крэшей.

Но стопроцентный crash-free ещё не означает идеальную работу приложения. Несовершенства в коде не всегда приводят к падению приложения. Иногда ничего не упало, но кнопка — не нажимается, изменения — не сохраняются, бонусы к опыту, за идеальное прохождение уровня в игре — не зачитываются, а пользователь — огорчается.

Такие случаи тоже нужно отлавливать и устранять. Под это заточены методы try … catch и отчёт Ошибки в AppMetrica. О нём и поговорим, ведь мы его полностью переработали.


Что изменилось

Практически всё. Мы внесли изменения в сам механизм сбора ошибок, обновили интерфейс отчёта и разделили его по операционным системам.

  • Android отдельно от iOS
    Отчёт предназначен, прежде всего, для разработчиков. Android-разработчику ошибки из iOS-версии только мешают. Кроме того, на разных платформах сами ошибки выглядят по-разному. Мы учли это и сделали свой отчёт под каждую ОС:

  • Группировка ошибок
    Теперь отчёт автоматически группирует ошибки по имени события, а не по stack trace. При этом идентификатор для группировки можно указать самостоятельно, и тогда ошибки сгруппируются уже по нему.

    Таким образом, группировка ошибок полностью под вашим контролем. А перейдя внутрь ошибки, вы увидите новые полезные поля: параметры, stack trace, текстовое описание и вложенные ошибки:


Как новый отчёт помогает бороться с ошибками

Ошибки теперь делятся на подгруппы, для более точной классификации.

Как и крэши, ошибки можно закрывать. Прямо как в тикет-системах. Если ошибка возникнет после закрытия, в новой версии приложения, «тикет» автоматически переоткроется:

Благодаря этому проще выстраивать процессы и приоритеты. А ещё — следить за эффективностью работы над ошибками и не упускать из виду то, что лишь казалось исправленным.


Как работает сбор ошибок

В отличие от крэшей, сообщения об ошибках не отправляются автоматически. Разработчик сам задаёт условия, в которых нужно отправить ошибку. Как правило, применяя методы обработки исключений. Для отправки в SDK используется метод _YandexMetrica.reportError_. Подробные инструкции по использованию метода смотрите в документации для Android и iOS.

Ошибки хранятся на устройстве так же как обычные события и отправляются на сервер по тем же правилам.


Чем ошибки отличаются от крэшей

Если вы пользуетесь отчётом Крэши, то заметили, что в Ошибках нет метрики, аналогичной Crash-free. Это нормально, ввиду самой природы ошибок.

Crash-free — доля сессий, не завершившихся аварийно. На одну сессию может быть только один крэш, и для пользователя все крэши выглядят примерно одинаково. Крэш определяется операционной системой как аварийное завершение. Система сохраняет крэш-логи автоматически. AppMetrica достаёт их из хранилища, каталогизирует и приводит в читаемый вид.

Знание доли сессий без ошибок вряд ли будет иметь практический смысл: ошибок на сессию может быть несколько. И что считать ошибкой, разработчик определяет сам. Если не настроить сбор конкретных ошибок в приложении, они не попадут в отчёт вовсе. Но если отчёт пуст, это не говорит о том, что ошибок нет. Возможно, их просто не удалось поймать. А вот низкий процент падений приложения говорит о его стабильности более однозначно.

КрэшиОшибки
Автоматически собираются операционной системойСобираются, если разработчик настроит их сбор
Крэш, по однозначному определению, – любое аварийное завершение приложенияЧто считать ошибкой приложения, разработчик определяет сам
Возникают не чаще, чем один раз за сессиюМогут возникать несколько раз за сессию

Важно то, сколько раз возникает конкретная ошибка, по сравнению с прочими. Это помогает оценить критичность бага и расставить приоритеты.


Как перейти на новый отчёт

Если вы давно хотели поработать над стабильностью приложения более глубоко — самое время обновить SDK для iOS и для Android и настроить новые методы.

Важно: старая версия отчёта будет работать до 1 сенября 2020, поэтому рекомендуем не затягивать с обновлением.

Уже пользуетесь отчётом? Поделитесь впечатлениями в Telegram-чате!

--
Мы поработали над Ошибками, чтобы вам было удобнее работать над ошибками.
— Команда AppMetrica

5 комментариев
Исправьте пожалуйста build плагин под android при сборе бандла.
Подробнее тут - https://github.com/yandexmobile/metrica-sdk-android/issues/82

Яндекс.Евгений
14 июля, 13:46
mezhevikin,
Добрый день! Работа над поддержкой aab ведется, но пока есть ряд сложностей и это может занять длительное время. 
"Отлично"! А кто юзает метрику в десктопных приложениях, те остались теперь без отчетов об ошибках!
Яндекс.Евгений
14 июля, 14:19
it.pik.ru,
Добрый день! Напишите, пожалуйста, нам в поддержку и опишите, что именно изменилось в Вашем случае. Адрес формы саппорта: https://appmetrica.yandex.ru/docs/troubleshooting/other.html 
Дмитрий Канатников
15 июля, 01:54
вы большие молодцы!