Sentry — инструмент мониторинга ошибок (error tracking) и производительности приложений (Application Performance Monitoring, APM). Захватывает исключения, необработанные ошибки и медленные транзакции в реальном времени, автоматически группирует похожие ошибки, добавляет контекст (stack trace, переменные, HTTP-запрос, пользователь) и уведомляет команду разработчиков.
Как работает
Sentry SDK встраивается в приложение через пакетный менеджер и инициализируется с DSN-ключом:
# Python
pip install --upgrade sentry-sdk
import sentry_sdk
sentry_sdk.init(dsn="https://...@sentry.io/PROJECT_ID")
# PHP
composer require sentry/sentry
\Sentry\init(['dsn' => 'https://...@sentry.io/PROJECT_ID']);
# JavaScript (Node.js/React)
npm install @sentry/node
Sentry.init({ dsn: 'https://...@sentry.io/PROJECT_ID' });
После инициализации SDK автоматически перехватывает необработанные исключения и отправляет событие на Sentry-сервер (cloud или self-hosted). Каждое событие содержит: полный стек вызовов (stack trace) с подсвеченными строками кода, переменные окружения в момент ошибки, HTTP-запрос (URL, headers, body), информацию о пользователе (ID, email, IP), версию релиза и окружение (production/staging).
Sentry группирует похожие ошибки в Issues по «fingerprint» — набору признаков, идентифицирующих уникальную проблему. Одна ошибка в 100 000 запросах создаёт одну Issue, а не 100 000 событий. Алертинг: уведомления в Slack, email, PagerDuty при новых Issues или при превышении частоты ошибок.
Performance Monitoring (APM)
Sentry Performance отслеживает транзакции (каждый HTTP-запрос или операция) и их компоненты: время SQL-запросов, вызовов к сторонним API, рендеринга шаблонов. Distributed tracing — связывает запросы через несколько сервисов (frontend → API → microservices) в единую трассу. Это позволяет найти, в каком именно сервисе возникает задержка.
История
Sentry создан Дэвидом Кремером в 2008 году как Django-плагин для логирования ошибок внутри компании Disqus. В 2012 году выпущен как open-source проект под лицензией BSD. Компания Functional Software создана для коммерческой версии Sentry в 2015 году. К 2024 году Sentry — крупнейший независимый error tracking инструмент: более 4 млн разработчиков, 90 000 организаций. Self-hosted версия (Docker Compose) доступна бесплатно, cloud-версия имеет бесплатный план (5 000 ошибок в месяц).
Sentry vs альтернативы
| Инструмент | Фокус | Self-hosted | Цена |
|---|---|---|---|
| Sentry | Ошибки + APM | Да (Docker) | Freemium |
| Datadog | Инфраструктура + APM | Нет | $15+/хост/мес. |
| New Relic | Полная видимость | Нет | Freemium |
| Bugsnag | Ошибки | Нет | Freemium |
На что обращать внимание
При self-hosted установке Sentry через Docker Compose требуется минимум 4 ГБ RAM — не подходит для маленьких VPS. Используйте environment-разделение: development, staging, production — чтобы ошибки разработки не загрязняли production Issues. Настройте sample rate для Performance (traces_sample_rate=0.1) на нагруженных сервисах — иначе стоимость cloud-плана вырастет непропорционально. Sentry DSN-ключ должен быть в переменных окружения, не в коде репозитория.
Sentry self-hosted
Sentry self-hosted разворачивается через Docker Compose на VPS: минимум 4 ГБ ОЗУ, 20 ГБ SSD. Поддерживает Python, JavaScript, Java, PHP, Ruby, Go, iOS, Android. Альтернативы: Datadog APM (дороже, шире функционал), New Relic (SaaS, проще setup), GlitchTip (open-source Sentry-совместимый). На Linux-сервере: git clone https://github.com/getsentry/self-hosted → ./install.sh → 30 минут установки. Sentry интегрируется с GitLab CI и GitHub Actions для Release tracking: каждый деплой создаёт Release, ошибки привязываются к конкретному коммиту.