Работа с ошибками Sentry

Sentry – инструмент мониторинга исключений и ошибок.

Заведение задач для ошибок из Sentry

Разбор ошибок – ежедневная активность в начале рабочего дня, необходимая для мониторинга производительности и проблем в развертываемом сервисе.

Для удобства внутри команды разработки заведены дежурства, по одному дежурному от backend и frontend команд. При смене дежурного новый дежурный пишет в канал Sentry, что он приступил к дежурству. Для удобства отслеживания новых ошибок можно использовать вкладку For review – в ней отражаются все новые ошибки, ошибки старше 7 дней автоматически удаляются из этой вкладки.

Отвечают за разбор ошибок и заведение задач в Трекере разработчики команды.

Обработка ошибок

Если исправление ошибки занимает до 15 минут

Ошибка исправляется без заведения задачи в Трекере.

Если на исправление ошибки требуется до 1 рабочего дня:

  • Завести задачу с типом Ошибка в Трекере с указанием ошибки, влиянием на продукт, систему и действий по ее устранению по шаблону с указанием приоритета.

  • Задачу перевести в статус “Готова к пополнению”.

  • Оповестить менеджера о проблеме и ее критичности в канале стрима.

  • Критичные ошибки, напрямую влияющие на пользователя или большое количество пользователей (падения приложения, блокировка ключевых функций и т.п.), заводятся со статусом Блокер и вытаскиваются на доску в статус “В работе” и эскалируются на менеджера.

Если на исправление ошибки требуется больше 1 дня (например, ошибки, которые требуют глобального рефакторинга системы):

  • Завести задачу с типом Рефакторинг в Трекере с указанием ошибки, влиянием на продукт, систему и действий по ее устранению по шаблону с указанием приоритета.

  • Задачу перевести в статус “Готова к пополнению”.

  • Оповестить менеджера о проблеме и ее критичности в канале стрима.

  • Критичные ошибки, напрямую влияющие на пользователя или большое количество пользователей (падения приложения, блокировка ключевых функций и т.п.), заводятся со статусом Блокер и вытаскиваются на доску в статус “В работе” и эскалируются на менеджера.

Если ошибку из Sentry не удается воспроизвести за час рекомендуется выполнить следующие шаги:

  • Мы видим кусок кода, который падает → добавляем логирование и информацию, которая может помочь в отладке → новые события будут прилетать с информацией, помогающей отладке.

  • В ситуациях, где ясна причина, например, пустые данные – можно добавить доп. проверку на пустоту объекта и посмотреть уйдет ли ошибка, а также прикинуть не является ли ошибка следствием плохого дизайна компонента, из-за чего побочный эффект ломает выполнение кода → пробуем улучшить код, сделав его более надежным с точки зрения типов, инициализации объектов и обработки сетевых запросов

Таким образом мы потратим максимум час–полтора на исследование проблемы, добавим контекст и проверим гипотезы в новом релизе. Возможно, часть ошибок разрешится.

Ошибки, которые невозможно исправить, не меняя архитектуру системы, должны быть обработаны (во вкладке Activity и в задаче должны быть оставлены комментарии о причинах возникновения) и зарезолвлены до следующего появления.

Последнее обновление