Найти тему

Коллекторы ошибок


Каким бы не был аккуратный деплой, а релиз протестированным, код приложения всегда содержит ошибки, которые начнут стрелять на продакшене. И тут главный вопрос, откуда мы про них узнаем? Если ответ “от пользователей”, то мы явно понимаем, что в проекте есть проблемы. О технических ошибках, команда разработки должна узнавать до того, как пользователи обращаются в поддержку.

Решается эта задача с помощью отслеживания возникающих исключения как на бекенде так и на фронтенде. Делать это в рукопашку довольно сложно, поэтому большинство проектов, которые об этом задумываются, используют коллекторы ошибок. Это специальные сервисы, которые встраиваются в код и собирают все возникающие исключения. Дальше эти исключения отправляются, вместе с полной информации о запросе, в сам сервис, который уже оповещает команду по довольно умным правилам. То есть они не шлют оповещение на каждую ошибку, а делают это по схемам похожим на эту:

1. Если ошибка произошла первый раз, то отправляем нотификацию с учетом настроек, может письмо, может в слак может еще как.
2. Вторая ошибка и дальше никак не показываются, так как мы уже оповестили команду
3. Если ошибка произошла 10 раз после деплоя, то вероятно она важная и надо сообщить еще раз
4. Если ошибка произошла 100 раз, потом 1000, то тоже надо отправлять, так повышается приоритет

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

Если вы все еще деплоитесь без такого сервиса, то самое время подключить его. Самым популярным является https://sentry.com (и вроде как у него есть бесплатный тариф). Для тех кому не подходит облачная версия, можно поставить self-hosted.

Какой коллектор используется у вас?
Коллекторы ошибок  Каким бы не был аккуратный деплой, а релиз протестированным, код приложения всегда содержит ошибки, которые начнут стрелять на продакшене.
1 минута