GlitchTip — открытая и легковесная альтернатива Sentry для мониторинга ошибок

В современном мире разработки программного обеспечения мониторинг ошибок и производительности приложений является неотъемлемой частью процесса. Разработчики и команды DevOps постоянно ищут инструменты, которые позволяют быстро выявлять проблемы, анализировать их и предотвращать повторные сбои. Один из таких инструментов — GlitchTip, open-source платформа для отслеживания ошибок, сбоев и проблем производительности в приложениях. Проект часто называют более легковестной и простой альтернативой Sentry.

Что такое GlitchTip и для чего он нужен

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

Ключевая идея GlitchTip — простота, открытость и совместимость. Платформа полностью совместима с SDK Sentry, что значительно упрощает миграцию и интеграцию.

GlitchTip предназначен для команд, которые хотят надежный мониторинг без overhead’а. Он идеален для стартапов, малого бизнеса или проектов, где ресурсы ограничены. В отличие от Sentry, GlitchTip фокусируется на минимализме: меньше фич, но выше производительность и проще управление. Например, в отзывах на Reddit пользователи отмечают, что GlitchTip работает стабильно даже на одном сервере, в то время как Sentry требует кластера.

Архитектура и технологии

GlitchTip построен с использованием современных и проверенных технологий:

  • Backend: Django
  • База данных: PostgreSQL
  • Очереди: Redis
  • Хранение событий: ClickHouse
  • Контейнеризация: Docker и Docker Compose

Такой стек обеспечивает масштабируемость и надежность даже при высоких нагрузках.

Sentry vs GlitchTip: Ключевые различия

Sentry — это мощный корпоративный инструмент с большим количеством функций, но за это приходится платить. Его self-hosted-версию сложно установить: нужно настраивать несколько сервисов — базу данных, кэш и воркеры. Требования к ресурсам тоже высокие: на практике для стабильной работы обычно требуется 4–8 GB RAM, несколько CPU и много дискового пространства. Кроме того, Sentry требует постоянного обслуживания: мониторинга, обновлений и масштабирования при росте нагрузки. Для крупных проектов это оправдано, но для небольших — излишне сложно.

GlitchTip, напротив, — более лёгкая альтернатива. Он построен по тем же принципам, но проще в настройке и работе. Установка через Docker занимает всего несколько минут, а для запуска достаточно VPS с 1–2 GB RAM. Не нужны кластеры и сложная инфраструктура — один контейнер может обрабатывать тысячи событий в день при умеренной нагрузке. Обслуживание минимальное и не требует глубоких знаний DevOps.

Главное преимущество GlitchTip — совместимость с SDK от Sentry. Это значит, что можно использовать те же библиотеки для Python, JavaScript и других языков. Чтобы подключить приложение, достаточно заменить DSN от Sentry на DSN от GlitchTip — никаких дополнительных изменений в коде не требуется.

По сравнению с другими сервисами (Rollbar, Bugsnag, Raygun), GlitchTip выигрывает за счёт открытого исходного кода и низкой стоимости: self-hosted-версия бесплатна, а облачный хостинг дешевле, чем у Sentry. При этом, если вам нужны продвинутые возможности вроде A/B-тестирования или глубокой аналитики производительности (APM), Sentry может подойти лучше.

Почему выбирают GlitchTip?

Причина выбора GlitchTip очевидна — доступность и простота. Если вашей команде нужен инструмент для обнаружения и анализа ошибок, но вы не готовы платить за дорогие подписки и мощную инфраструктуру, GlitchTip станет отличным решением.

Особенно актуальным это становится в условиях блокировки облака Sentry в России, что затрудняет использование облачной версии инструмента.

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

Установка GlitchTip на Ubuntu с помощью Docker

Рассмотрим пошаговый процесс развертывания GlitchTip на сервере с Ubuntu. Благодаря использованию Docker установка максимально простая и сводиться к написанию файла docker-compose.yml.

Нам потребуется:

  • Сервер с Ubuntu
  • Установленный Docker и Docker Compose на сервере.

Чтобы не заморачиваться и сразу получить готовый к использованию сервер, можно заказать облачный сервер с уже установленными Docker и Docker Compose из маркетплейса Timeweb Cloud.

Создаем рабочую директорию проекта
sudo mkdir /opt/glitchtip
cd /opt/glitchtip
Файл docker-compose.yml

В рабочей директории скачиваем образец конфигурационного файла Docker Compose:

sudo curl -o docker-compose.yml https://glitchtip.com/assets/compose.sample.yml

Далее открываем и редактируем его:

sudo nano docker-compose.yml

Нужно отредактировать только блок environment:

x-environment: &default-environment
  DATABASE_URL: postgres://postgres:postgres@postgres:5432/postgres
  VALKEY_URL: redis://valkey:6379
  SECRET_KEY: change_me_to_something_random # Замените на свой ключ, можно сгенерировать командой: run openssl rand -hex 32
  PORT: 8000
  EMAIL_URL: consolemail://
  GLITCHTIP_DOMAIN: https://glitchtip.example.com # Ваш домен
  DEFAULT_FROM_EMAIL: email@example.com # Замените на ваш email
  CELERY_WORKER_AUTOSCALE: "1,3"

Запускаем командой:

docker compose up -d

Теперь GlitchTip доступен по адресу http://вашдомен:8000

GlitchTip

Зарегистрируйте нового пользователя нажав на ссылку Sing Up.

По умолчанию любой пользователь может зарегистрироваться самостоятельно. Чтобы отключить возможность регистрации (после того как вы создадите первого пользователя), добавьте в файл docker-compose.yml в блок environment следующую строку:

ENABLE_USER_REGISTRATION: "false"

Пример интеграции GlitchTip с Python

GlitchTip использует Sentry SDK, благодаря чему нет необходимости переписывать код, если вы ранее использовали Sentry. А если вы впервые сталкиваетесь с системами отслеживания ошибок, то найдёте множество уроков и примеров.

Неважно, подключаете ли вы GlitchTip к FastAPI, Django, Flask и т. п. — принцип везде один и тот же.

Устанавливаем Sentry SDK:

pip install sentry-sdk

Инициализируем:

import sentry_sdk

sentry_sdk.init("Client Keys (DSN)")

Значение Client Keys (DSN) можно посмотреть в панели GlitchTip после создания организации и проекта.

Ниже добавим код, который спровоцирует ошибку:

def divide(a, b):
    return a / b

divide(5, 0)

Анализ события в GlitchTip

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

Интеграция с другими языками

Интеграция GlitchTip с другими языками программирования так же проста, как и с Python. При создании нового проекта для отслеживания через веб-интерфейс у вас будет возможность выбрать язык, на котором написан ваш проект, и получить готовые примеры интеграции.

Заключение

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

Если вам нужен быстрый и простой способ настроить мониторинг ошибок, GlitchTip подойдёт идеально. А благодаря использованию Sentry SDK вы можете перейти на него без переписывания кода.

Хостинг для ваших проектов