Задать вопрос
Все статьи / Для разработки / Sentry: мониторинг и отслеживание ошибок
Найти результаты:
Период:
с:
 
по:
Помощь в поиске

Помощь в поиске

apple banana
Найти записи, которые содержат хотя бы одно из двух слов.

+apple +juice
Найти записи, которые содержат оба слова.

+apple macintosh
Найти записи, которые содержат слово 'apple', но положение записей выше, если они также содержат 'macintosh'.

+apple -macintosh
Найти записи, которые содержат слово 'apple', но не 'macintosh'.

+apple ~macintosh
Найти записи, которые содержат слово 'apple', но если запись также содержит слово 'macintosh', rate it lower than if row does not. Это более "мягкий" чем поиск '+apple -macintosh', для которого наличие 'macintosh' вызывает что записи не будут возвращены вовсе.

+apple +(>turnover <strudel)
Найти записи, которые содержат слова 'apple' и 'turnover', или 'apple' и 'strudel' (в любом порядке), но ранг 'apple turnover' выше чем 'apple strudel'.

apple*
Найти записи, которые содержат такие слова как 'apple', 'apples', 'applesauce', или 'applet'.

"some words"
Найти записи, которые содержат точную фразу 'some words' (например записи содержащие 'some words of wisdom', но не "some noise words").

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

  1. Sentry интегрируется с приложением с помощью SDK (Software Development Kit), который доступен для множества языков программирования и фреймворков. Он позволяет приложению отправлять данные об ошибках и исключениях на сервер Sentry.
  2. Когда в приложении происходит ошибка или исключение, SDK автоматически перехватывает его и собирает всю необходимую информацию, включая стек вызовов, сообщение об ошибке, контекст выполнения, данные окружения (браузер, операционная система, устройство), а также пользовательские данные, если они настроены.
  3. Собранные данные об ошибках отправляются на сервер Sentry в режиме реального времени. Это может быть либо облачный сервис, который предоставляется Sentry, либо ваш собственный сервер.
  4. Сервер Sentry обрабатывает полученные данные, группирует похожие ошибки и сохраняет их в базе данных. Это позволяет избежать дублирования информации и упрощает анализ повторяющихся проблем.

Варианты использования 

Sentry можно использовать в различных формах:

  1. Self-hosted (развёрнутый на собственном сервере). Этот вариант предполагает установку и настройку Sentry на вашем собственном сервере. Он даёт вам полный контроль над данными и конфигурацией, а также позволяет минимизировать задержки при обработке ошибок.
  2. Облачный. Sentry предлагает облачное решение, которое включает ограниченную бесплатную версию и платные планы с ежемесячной оплатой. Облачная версия проста в настройке и не требует управления сервером.
  3. Developer (бесплатная облачная версия для маленьких проектов). Эта версия предназначена для тех, кто хочет познакомиться с возможностями Sentry без финансовых затрат. У неё есть некоторые ограничения, но она достаточно функциональна для начала.

Лучше всего начать с бесплатной облачной версии. Она позволяет быстро и без затрат оценить возможности инструмента. Однако, если вам нужно сразу использовать Sentry в крупных проектах, лучше выбрать вариант с развертыванием на собственном сервере. Это поможет минимизировать задержки данных (в облачной версии задержки могут быть от 1 до 5 минут).  С платной версией вы сможете более оперативно реагировать на ошибки.

Системные требования

Минимальные системные требования

  • Процессор: 2 ядра CPU
  • Оперативная память: 4 ГБ RAM

Если у машины характеристики ниже этих, вы не сможете установить Sentry.

Рекомендуемые системные требования

Для стабильной и эффективной работы Sentry рекомендуется следующая конфигурация:

  • Процессор: 4 ядра CPU
  • Оперативная память: 16 ГБ RAM
  • Дисковое пространство: 20 ГБ свободного места на диске

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

Установка Sentry 

  1. Для начала необходимо обновить все зависимости на вашем сервере:
apt update && apt upgrade -y

  1. Установите Docker. APT предлагает версию 20.10.24, установите её:
apt install docker.io

  1. Установите Docker Compose. APT предлагает версию Docker Compose 1.29.2-1, которая не соответствует требуемой версии. Поэтому стандартная установка не подойдет, и мы установим Docker Compose вручную из официального репозитория.

Сначала получите последнюю версию в переменную:

VERSION=$(curl --silent https://api.github.com/repos/docker/compose/releases/latest | grep -Po '"tag_name": "\K.*\d')

  1. Затем скачайте файл и установите его:
DESTINATION=/usr/bin/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

  1. Убедитесь, что установка Docker Compose прошла корректно:
docker-compose --version

Вывод должен быть примерно следующий:

Docker Compose version v2.20.3

  1. Склонируйте репозиторий и перекллючитесь на нужную ветку:
git clone https://github.com/getsentry/self-hosted.git
cd self-hosted
git checkout 23.8.0

  1. Запустите установочный скрипт:
./install.sh --skip-user-prompt --no-report-self-hosted-issues

Где:

  • «--skip-user-prompt» пропускает запрос создания пользователя;
  • «--no-report-self-hosted-issues» пропускает запрос на анонимную отправку данных разработчикам Sentry (может помочь улучшить продукт, но использует ресурсы).

Скрипт проверяет соответствие требованиям и скачивает необходимые образы (docker pull). После завершения будет выведено сообщение, что можно запустить Sentry:

You're all done! Run the following command to get Sentry running:
docker-compose up -d

  1. Запустите Sentry:
docker-compose up -d

Теперь веб-интерфейс будет доступен по IP-адресу хоста на порту 9000.

  1. Так как ранее мы пропустили создание пользователя во время установки, давайте сделаем это сейчас:
docker-compose run --rm web createuser

В поле «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 файл добавьте переменную:

SENTRY_BEACON=False

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

Кроме того, в этот же файле вы можете изменить срок хранения событий. По умолчанию он равен 90 дням:

SENTRY_EVENT_RETENTION_DAYS=90

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

Чтобы обеспечить безопасный доступ к веб-интерфейсу, настройте HTTPS proxy. После настройки измените «system.url-prefix» в файле config.yml и обновите раздел SSL/TLS в sentry.conf.py.

Заключение

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

Использование Sentry значительно улучшает качество программного обеспечения и повышает удовлетворенность пользователей, благодаря своевременному обнаружению и исправлению багов. Независимо от размера и сложности вашего проекта, Sentry станет незаменимым инструментом, который обеспечит стабильность и производительность приложений.

Предыдущая статья
Для разработки
Следующая статья
Базовые команды SQL: руководство