Установка и настройка Sentry: подробная инструкция
- Основные функции Sentry
- Почему Sentry лучше логирования
- Принцип работы Sentry
- Варианты использования
- Системные требования
- Установка Sentry
- Настройка Sentry
Sentry – это инструмент мониторинга и отслеживания ошибок для приложений, который помогает разработчикам обнаруживать и устранять баги в реальном времени. Он предоставляет подробную информацию о возникших ошибках, включая стек вызовов, контекстные данные и окружение, в котором произошла ошибка.
Основные функции Sentry:
- Мониторинг ошибок и исключений. Sentry автоматически отслеживает и регистрирует ошибки и исключения, которые возникают в приложении, предоставляя разработчикам детальную информацию для быстрого устранения проблем.
- Уведомления и алерты. Sentry может отправлять уведомления о новых ошибках и проблемах различными способами, в том числе через email, мессенджеры и системы управления проектами.
- Сбор контекстной информации. Sentry собирает подробную контекстную информацию о каждой ошибке, включая стек вызовов, окружение, пользовательские данные, а также метаданные, такие как версия приложения и среда выполнения.
- Группировка ошибок. Sentry автоматически группирует схожие ошибки, что помогает избежать дублирования информации и упрощает анализ повторяющихся проблем.
- Отчётность и аналитика. Sentry предоставляет инструменты для анализа и отчётности по ошибкам, позволяя разработчикам отслеживать тенденции, частоту возникновения ошибок и другие важные метрики.
- Интеграции с внешними сервисами. Sentry поддерживает интеграции с множеством популярных инструментов и сервисов, включая GitHub, GitLab, Bitbucket, Azure DevOps, и многие другие, что позволяет легко интегрировать его в существующий рабочий процесс.
- Мониторинг производительности. Помимо отслеживания ошибок, Sentry предоставляет возможности для мониторинга производительности приложения, включая замеры времени выполнения различных операций и идентификацию узких мест.
- Поддержка множества платформ и языков. Sentry поддерживает широкий спектр языков программирования и платформ: например, JavaScript, Python, Java, Ruby, PHP и Go.
- Анализ релизов. Sentry позволяет отслеживать ошибки и проблемы в конкретных релизах приложения, что помогает разработчикам быстро находить и исправлять регрессии.
- Пользовательские атрибуты и теги. Разработчики могут добавлять пользовательские атрибуты и теги к событиям. Это упрощает фильтрацию и сортировку данных, а также помогает в более точном анализе проблем.
Почему Sentry лучше логирования
Просмотр логов и понимание происходящего с сервисом – это полезно. Однако Sentry идеально подходит для более быстрого, удобного и детального анализа ошибок и исключений. В некоторых случаях анализ логов может не дать полного понимания проблемы, и именно тогда Sentry оказывается незаменимым помощником.
Sentry предоставляет не только информацию о том, что пошло не так, но и контекст, в котором это произошло: окружение пользователя, стек вызовов, события, которые предшествовали ошибке. Это делает процесс отладки значительно эффективнее и быстрее.
Существуют ситуации, когда пользователь вашего сервиса не смог войти в аккаунт, совершить покупку или выполнить другое действие, и вместо обращения в службу поддержки, просто ушёл. Обнаружить такие случаи в логах крайне сложно. А даже если в поддержку поступило обращение о проблеме, анализ, выявление и воспроизведение такой специфической ошибки может потребовать значительных усилий и ресурсов. Всё потому что вам будет неизвестно:
- каким устройством и браузером пользовался потенциальный клиент;
- какая функция вызвала ошибку и почему;
- какая именно ошибка произошла;
- какие данные были на фронтенде и что отправилось на бэкэнд.
Sentry позволяет получать ответы на эти вопросы благодаря детальному трекингу и сбору информации о каждой ошибке. Вы сможете узнать, какая именно часть вашего кода вызвала проблему и какие шаги привели к её возникновению. Это сокращает время на диагностику и исправление ошибок, что в конечном итоге улучшает пользовательский опыт и снижает количество потенциальных оттоков пользователей.
Иными словами, главная особенность Sentry – предоставление подробной контекстной информации об ошибках в удобной форме. Она позволяет быстрее реагировать и улучшать процесс разработки.
Принцип работы Sentry
- Sentry интегрируется с приложением с помощью SDK (Software Development Kit), который доступен для множества языков программирования и фреймворков. Он позволяет приложению отправлять данные об ошибках и исключениях на сервер Sentry.
- Когда в приложении происходит ошибка или исключение, SDK автоматически перехватывает его и собирает всю необходимую информацию, включая стек вызовов, сообщение об ошибке, контекст выполнения, данные окружения (браузер, операционная система, устройство), а также пользовательские данные, если они настроены.
- Собранные данные об ошибках отправляются на сервер Sentry в режиме реального времени. Это может быть либо облачный сервис, который предоставляется Sentry, либо ваш собственный сервер.
- Сервер Sentry обрабатывает полученные данные, группирует похожие ошибки и сохраняет их в базе данных. Это позволяет избежать дублирования информации и упрощает анализ повторяющихся проблем.
Варианты использования
Sentry можно использовать в различных формах:
- Self-hosted (развёрнутый на собственном сервере). Этот вариант предполагает установку и настройку Sentry на вашем собственном сервере. Он даёт вам полный контроль над данными и конфигурацией, а также позволяет минимизировать задержки при обработке ошибок.
- Облачный. Sentry предлагает облачное решение, которое включает ограниченную бесплатную версию и платные планы с ежемесячной оплатой. Облачная версия проста в настройке и не требует управления сервером.
- Developer (бесплатная облачная версия для маленьких проектов). Эта версия предназначена для тех, кто хочет познакомиться с возможностями Sentry без финансовых затрат. У неё есть некоторые ограничения, но она достаточно функциональна для начала.
Лучше всего начать с бесплатной облачной версии. Она позволяет быстро и без затрат оценить возможности инструмента. Однако, если вам нужно сразу использовать Sentry в крупных проектах, лучше выбрать вариант с развертыванием на собственном сервере. Это поможет минимизировать задержки данных (в облачной версии задержки могут быть от 1 до 5 минут). С платной версией вы сможете более оперативно реагировать на ошибки.
Системные требования
Минимальные системные требования
- Процессор: 2 ядра CPU
- Оперативная память: 4 ГБ RAM
Если у машины характеристики ниже этих, вы не сможете установить Sentry.
Рекомендуемые системные требования
Для стабильной и эффективной работы Sentry рекомендуется следующая конфигурация:
- Процессор: 4 ядра CPU
- Оперативная память: 16 ГБ RAM
- Дисковое пространство: 20 ГБ свободного места на диске
В зависимости от объёма трафика, возможно, вам потребуется увеличить системные ресурсы для обработки возросшей нагрузки.
Установка Sentry
- Для начала необходимо обновить все зависимости на вашем сервере:
- Установите Docker. APT предлагает версию 20.10.24, установите её:
- Установите Docker Compose. APT предлагает версию Docker Compose 1.29.2-1, которая не соответствует требуемой версии. Поэтому стандартная установка не подойдет, и мы установим Docker Compose вручную из официального репозитория.
Сначала получите последнюю версию в переменную:
- Затем скачайте файл и установите его:
sudo curl -L https://github.com/docker/compose/releases/download/${VERSION}/docker-compose-$(uname -s)-$(uname -m) -o $DESTINATION
sudo chmod 755 $DESTINATION
- Убедитесь, что установка Docker Compose прошла корректно:
Вывод должен быть примерно следующий:
- Склонируйте репозиторий и перекллючитесь на нужную ветку:
cd self-hosted
git checkout 23.8.0
- Запустите установочный скрипт:
Где:
- «--skip-user-prompt» пропускает запрос создания пользователя;
- «--no-report-self-hosted-issues» пропускает запрос на анонимную отправку данных разработчикам Sentry (может помочь улучшить продукт, но использует ресурсы).
Скрипт проверяет соответствие требованиям и скачивает необходимые образы (docker pull). После завершения будет выведено сообщение, что можно запустить Sentry:
docker-compose up -d
- Запустите Sentry:
Теперь веб-интерфейс будет доступен по IP-адресу хоста на порту 9000.
- Так как ранее мы пропустили создание пользователя во время установки, давайте сделаем это сейчас:
В поле «Email» укажите нужный email и дважды введите пароль в поля «Password» и «Repeat for confirmation».
Когда система уточнит, стоит ли назначить нового пользователя суперпользователем («Should this user be a superuser?»), ответьте «y».
Настройка Sentry
Когда вы впервые откроете веб-интерфейс, появится окно настройки, где можно указать URL, параметры почтового сервера для отправки писем и разрешить самостоятельную регистрацию остальным пользователям.
Основные конфигурационные файлы:
- .env
- self-hosted/sentry/config.yml
- self-hosted/sentry/sentry.conf.py
В .env файл добавьте переменную:
Она отключает сбор приватной статистики для улучшения продукта.
Кроме того, в этот же файле вы можете изменить срок хранения событий. По умолчанию он равен 90 дням:
Данные проектов и учетные записи пользователей хранятся в PostgreSQL. Вы можете изменить конфигурации для использования своей базы данных, а также использовать свой Redis.
Чтобы обеспечить безопасный доступ к веб-интерфейсу, настройте HTTPS proxy. После настройки измените «system.url-prefix» в файле config.yml и обновите раздел SSL/TLS в sentry.conf.py.
Заключение
В этой статье мы рассмотрели основные возможности и функции Sentry – мощного инструмента для мониторинга и отслеживания ошибок в приложениях. Он помогает разработчикам оперативно выявлять и устранять проблемы, предоставляя подробную контекстную информацию и облегчая анализ ошибок.
Использование Sentry значительно улучшает качество программного обеспечения и повышает удовлетворенность пользователей, благодаря своевременному обнаружению и исправлению багов. Независимо от размера и сложности вашего проекта, Sentry станет незаменимым инструментом, который обеспечит стабильность и производительность приложений.