GlitchTip закрывает большую часть Sentry — вопрос в оставшейся
Если вы уже пробовали поднять self-hosted Sentry на своём VPS, то знаете это чувство: docker compose up разворачивает полтора десятка контейнеров, Kafka не проходит health-check на слабом железе, а под ClickHouse хочется отдельный сервер помощнее. GlitchTip обещает то же самое — собственный трекер ошибок, совместимый с теми же Sentry SDK — но на стеке в разы легче. Вопрос не в том, работает ли GlitchTip вообще (работает, и стабильно), а в том, что именно вы теряете, когда меняете тяжёлый комбайн на лёгкий инструмент под одну задачу.
Содержание
- Что такое GlitchTip и в чём его расчёт
- Минимальный docker-compose и требования к серверу
- Что GlitchTip закрывает полностью: сбор и группировка ошибок
- Чего в GlitchTip нет: performance monitoring и трассировка
- Session replay, AI-функции и другие продвинутые возможности Sentry
- Экосистема интеграций и enterprise-функции
- Когда переходить на GlitchTip, а когда остаться на Sentry
Что такое GlitchTip и в чём его расчёт
GlitchTip — open-core проект, который решает одну конкретную задачу: принять ошибку из приложения, сгруппировать её с похожими, показать в интерфейсе и уведомить нужного человека. Ключевая инженерная хитрость в том, что GlitchTip реализует тот же протокол приёма событий, что и Sentry — так называемый Sentry ingestion API. Практически это значит, что стандартные Sentry SDK для Python, JavaScript, Go, PHP, Ruby и десятка других языков отправляют события в GlitchTip без единой правки кода — меняется только DSN в конфиге на адрес вашего сервера. Если вы уже настраивали Sentry SDK по инструкции по установке self-hosted Sentry на VPS, тот же кусок кода инициализации sentry_sdk.init(dsn=...) подключится и к GlitchTip — поменяется только хост в DSN.
Модель «open-core» здесь означает следующее: сам движок GlitchTip публикуется с открытым исходным кодом, разворачивается на своём сервере бесплатно и без урезанных функций в самой системе трекинга ошибок. Монетизация у разработчиков построена не на скрытии кода, а на собственном hosted-тарифе — то есть они зарабатывают, предлагая управляемую версию тем, кто не хочет администрировать сервер сам, а не тем, что прячут функции за платной стеной в self-hosted версии. Это отличает GlitchTip от многих других open-core продуктов, где self-hosted версия урезана нарочно.
Стек GlitchTip построен на Django + PostgreSQL + Redis + Celery — это классический, хорошо изученный набор, который вы, скорее всего, уже администрировали для других проектов на Python. Никакого Kafka, никакого ClickHouse, никакой отдельной очереди symbolication-воркеров с непредсказуемым потреблением памяти. Это и есть главный практический аргумент в пользу GlitchTip: не «он функциональнее», а «он не требует отдельного кластера, чтобы просто ловить исключения».
Минимальный docker-compose и требования к серверу
Официальный репозиторий GlitchTip даёт готовый docker-compose.yml, структура которого выглядит примерно так (адаптируйте под свой сервер — точные версии образов смотрите в актуальном репозитории на день установки):
services:
postgres:
image: postgres:16
volumes:
- pg_data:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: замените_на_свой_пароль
POSTGRES_DB: glitchtip
redis:
image: redis:7
web:
image: glitchtip/glitchtip
depends_on:
- postgres
- redis
ports:
- "8000:8000"
environment:
DATABASE_URL: postgres://postgres:замените_на_свой_пароль@postgres:5432/glitchtip
SECRET_KEY: сгенерируйте_свой_секрет
REDIS_URL: redis://redis:6379/0
GLITCHTIP_DOMAIN: https://ваш-домен.example
DEFAULT_FROM_EMAIL: glitchtip@ваш-домен.example
CELERY_WORKER_AUTOSCALE: "1,3"
worker:
image: glitchtip/glitchtip
command: celery -A glitchtip worker -B -l info
depends_on:
- postgres
- redis
environment:
DATABASE_URL: postgres://postgres:замените_на_свой_пароль@postgres:5432/glitchtip
SECRET_KEY: сгенерируйте_свой_секрет
REDIS_URL: redis://redis:6379/0
migrate:
image: glitchtip/glitchtip
command: ./manage.py migrate
depends_on:
- postgres
environment:
DATABASE_URL: postgres://postgres:замените_на_свой_пароль@postgres:5432/glitchtip
SECRET_KEY: сгенерируйте_свой_секрет
volumes:
pg_data:
Всего четыре сервиса вместо полутора десятков у Sentry. После первого запуска создайте суперпользователя внутри контейнера:
docker compose run --rm web ./manage.py createsuperuser
Разница в требованиях к железу ощутима на практике, а не только на бумаге. Для сравнения — по подробному разбору сколько RAM нужно для Sentry self-hosted реалистичная точка входа для Sentry — от 8–16 ГБ RAM и 4 vCPU, в основном из-за ClickHouse и Kafka. GlitchTip на сопоставимом объёме событий (единицы-десятки тысяч в месяц) обычно комфортно работает на 1–2 vCPU и 1–2 ГБ RAM — конкретная цифра зависит от вашей нагрузки и retention, поэтому воспринимайте это как ориентир для планирования, а не гарантию, и мониторьте потребление после первых недель работы под реальным трафиком.
| Параметр | Sentry self-hosted | GlitchTip |
|---|---|---|
| Компоненты | ~15 контейнеров: Postgres, ClickHouse, Kafka, Redis, Relay, воркеры | 4 сервиса: Postgres, Redis, web, worker |
| RAM для старта | от 8–16 ГБ | от 1–2 ГБ |
| Сложность обновлений | часто требует промежуточных шагов между версиями | стандартная миграция Django, проще прогнозировать |
| SDK на стороне приложения | официальные Sentry SDK | те же Sentry SDK — протокол совместим |
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверЧто GlitchTip закрывает полностью: сбор и группировка ошибок
Ядро продукта у GlitchTip сделано добросовестно, а не «для галочки». Что реально работает так же, как в Sentry, для типичного проекта:
- Приём и группировка ошибок (issue grouping). Похожие исключения схлопываются в один issue по стектрейсу, как и в Sentry — вы видите не тысячу одинаковых записей, а один инцидент с счётчиком срабатываний.
- Source maps. Для минифицированного JS/TS GlitchTip умеет разворачивать стектрейс до исходных строк кода, если вы загружаете source maps через тот же release-механизм, что и в Sentry SDK.
- Releases и связка с деплоями. Можно помечать события версией релиза и видеть, в каком именно деплое появилась регрессия — базовая, но рабочая функциональность.
- Уведомления. Email, webhook и интеграция с популярными мессенджерами для алертов по новым или участившимся ошибкам — правила настраиваются на уровне проекта.
- Организации, проекты, команды. Многопользовательская структура с ролями — подходит и для одного человека, и для команды из нескольких разработчиков с разграничением доступа к проектам.
- API-совместимость на уровне приёма событий. Именно за счёт этого миграция с SaaS-тарифа Sentry на self-hosted GlitchTip технически сводится к смене DSN в конфиге приложения, без переписывания инструментирования кода.
Для команды, чья единственная задача — «узнать о падении раньше пользователя и понять, где в коде оно случилось», это покрывает практически всё. Именно эту базовую функцию 80% пользователей Sentry используют в 95% случаев — но у Sentry вокруг неё выстроен большой слой дополнительных инструментов, и вот тут начинается разница.
Чего в GlitchTip нет: performance monitoring и трассировка
Самый заметный пробел — у GlitchTip нет полноценного performance monitoring в смысле Sentry: распределённой трассировки транзакций, замеров времени между сервисами, флейм-графов запроса от фронтенда до базы данных. Sentry Performance показывает не только факт ошибки, но и то, что запрос к /api/checkout внезапно стал выполняться в три раза дольше из-за медленного N+1-запроса в ORM — до того, как это превратилось в таймаут и полноценное исключение. GlitchTip такую картину не строит: он видит ошибку, но не видит «здоровье» запроса, который ещё не упал.
Если распределённая трассировка вам действительно нужна, разумная стратегия — не искать замену внутри одного инструмента, а развести задачи: GlitchTip оставить для сбора и группировки ошибок, а трассировку поднять отдельно через открытый стандарт инструментирования. Мы разбирали это подробно в статье OpenTelemetry простыми словами — с ним вы инструментируете код один раз, а данные направляете в любую систему хранения трейсов, независимо от того, чем ловите ошибки.
Профилирования кода (continuous profiling — построчный разбор, где именно приложение тратит CPU-время) в GlitchTip тоже нет. Это специфичная функция, которая в Sentry появилась сравнительно недавно и закрывает узкую, но реальную задачу — найти «горячую» функцию без ручной расстановки таймеров в коде. Для большинства команд, которые не занимаются перформанс-инжинирингом на постоянной основе, отсутствие профилирования не критично: эта функция используется точечно, при расследовании конкретной проблемы с производительностью, а не ежедневно.
Session replay, AI-функции и другие продвинутые возможности Sentry
Session replay — запись сессии пользователя (клики, скроллы, состояние DOM) с привязкой к конкретной ошибке — в GlitchTip отсутствует полностью. Это одна из самых заметных фронтенд-фич Sentry последних лет: вместо того чтобы гадать, что делал пользователь перед креш-репортом, вы буквально пересматриваете видео его сессии. Для команд с сложным фронтенд-UX, где баги воспроизводятся только в специфичной последовательности действий, это реально экономит часы расследования. Для бэкенд-сервисов или простых сайтов эта функция чаще остаётся невостребованной — там ошибку понятно и по стектраку с контекстом запроса.
Также у Sentry гораздо более развитый Discover / query builder — конструктор произвольных запросов по накопленным событиям с построением дашбордов и агрегаций. GlitchTip даёт список issues с фильтрами по проекту, статусу и уровню серьёзности, но не свободный SQL-подобный конструктор запросов по всему объёму данных. Если нужна не лента ошибок, а аналитика вида «сколько уникальных пользователей затронула эта регрессия за 30 дней в разрезе версии приложения» — в Sentry это встроено, в GlitchTip придётся выгружать данные и считать отдельно.
Последнее заметное отличие — AI-ассистированный анализ ошибок, который Sentry в последние годы развивает: предположение причины падения и предлагаемый фикс на основе стектрейса и контекста кода. Область ещё развивающаяся, оценивать её как «обязательную» рано, но для команд, привыкших к такому ассистированию, переход на GlitchTip означает возврат к ручному разбору стектрейса.
Экосистема интеграций и enterprise-функции
У Sentry за годы накопилась широкая маркетплейс-экосистема: Jira, Slack, PagerDuty, Vercel, GitHub с автоматическим suspect commit (кто из разработчиков, скорее всего, внёс баг, по git blame на стектрейсе), Crons — мониторинг того, что регулярные задачи (cron, celery beat) реально отрабатывают вовремя. GlitchTip покрывает базовые сценарии — вебхуки и уведомления в основные мессенджеры есть — но глубоких готовых интеграций с трекерами задач и инцидент-менеджментом заметно меньше. Если процесс завязан на автосоздание тикета в Jira с двусторонней синхронизацией статуса — в GlitchTip это, скорее всего, придётся собирать самостоятельно через общий webhook, а не включать галочкой в настройках.
Из enterprise-слоя стоит отметить SSO/SAML — в Sentry это часть платных тарифов с готовым UI под корпоративные требования; в self-hosted GlitchTip аутентификация проще, и сложный SSO придётся настраивать через обратный прокси с внешним провайдером идентификации. Для небольшой команды на своём VPS это обычно не проблема; для организации с требованиями комплаенса — фактор, который стоит проверить заранее.
Когда переходить на GlitchTip, а когда остаться на Sentry
Решение здесь не про «что лучше» вообще, а про то, что конкретно вы используете из Sentry сегодня. Практический чек-лист:
- Переходите на GlitchTip, если вы используете Sentry исключительно как трекер ошибок — issue tracking, группировка, алерты — и не открываете вкладку Performance или Replay месяцами. Экономия на ресурсах сервера и упрощение эксплуатации в этом случае реальны и сразу заметны: вместо кластера из полутора десятков контейнеров — четыре сервиса на Django-стеке, который проще понять и починить при сбое.
- Переходите на GlitchTip, если у вас уже есть отдельная система трассировки (или вы готовы поднять OpenTelemetry-стек отдельно) — тогда отсутствие Performance monitoring в трекере ошибок не потеря, а осознанное разделение ответственности между инструментами.
- Оставайтесь на Sentry, если ваша команда активно использует session replay для фронтенд-расследований, Discover для аналитики по накопленным событиям или глубокие интеграции с Jira/PagerDuty как часть налаженного инцидент-процесса — переезд на GlitchTip в этом случае не экономия, а откат функциональности, который команда почувствует в первую же неделю.
- Считайте экономику, а не только функциональность. Даже если Performance monitoring вам не критичен, полезно сравнить, во что обходится текущий SaaS-тариф Sentry и своя аренда сервера — методика такого расчёта разобрана в статье свой Sentry вместо платного тарифа: цена ошибки; та же логика применима и при выборе между self-hosted Sentry и self-hosted GlitchTip — сравнивайте не абстрактную «мощность» продукта, а то, что вы реально используете каждый день.
Гибридный вариант тоже имеет право на жизнь: часть проектов (внутренние сервисы, MVP, бэкенд-микросервисы без сложного UX) переводить на лёгкий GlitchTip, а флагманский продукт с фронтенд-сложностью и требованиями к аналитике оставить на Sentry — self-hosted или SaaS. Ничто не обязывает выбирать один инструмент для всей инфраструктуры разом.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверНужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Частые вопросы
Можно ли использовать GlitchTip и Sentry SDK одновременно, отправляя события в оба?
Технически да — SDK поддерживают несколько DSN через дополнительную настройку транспорта, но это усложняет конфиг и обычно оправдано только на переходный период миграции, а не как постоянная схема.
Потеряются ли исторические данные при переезде с Sentry на GlitchTip?
Готового автоматического импортёра issues и событий из Sentry в GlitchTip нет из коробки — переезд обычно означает начало с чистой историей в новой системе, поэтому планируйте момент переключения на границе релиза, а не посреди активного расследования инцидентов.
Подходит ли GlitchTip для мобильных приложений (iOS/Android)?
Да, если используете официальные Sentry SDK для этих платформ — они говорят на том же протоколе ingestion, но продвинутые мобильные фичи Sentry (например, детальный анализ ANR на Android) стоит сверить с актуальной документацией GlitchTip перед миграцией — часть нишевых платформенных возможностей может отставать от Sentry по глубине.
Нужен ли GlitchTip отдельный сервер или его можно поставить рядом с приложением?
Благодаря лёгкому стеку GlitchTip часто разворачивают на том же VPS, что и небольшое приложение, но общее правило мониторинга остаётся в силе — систему сбора ошибок лучше не держать на том же сервере, что и продакшен, чтобы падение сервера не убивало одновременно и приложение, и вашу возможность узнать об этом.
Как часто нужно обновлять GlitchTip?
Стандартный Django-цикл миграций проще прогнозировать, чем у Sentry с его Kafka/ClickHouse-стеком, но регулярность всё равно важна — следите за релизами в репозитории и делайте бэкап Postgres перед каждым апгрейдом, как с любой self-hosted системой.
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →