Ошибки, трейсы, метрики, логи и аптайм — на вашем сервере
Self-hosted observability в одном лёгком Go-бинарнике. Совместим со штатными Sentry SDK и OTLP. Открытый код, Apache-2.0.
$ git clone https://gitflic.ru/project/otezvikentiy/gotcha.git
$ cd gotcha
$ docker compose up -dПоменяйте DSN в вашем Sentry SDK — и первая ошибка прилетит через секунды.
Gotcha — self-hosted платформа наблюдаемости в одном Go-бинарнике: трекинг ошибок, распределённый трейсинг, метрики, логи, профилирование, мониторинг аптайма и серверов — всё на вашем сервере. Совместим со штатными Sentry SDK и принимает OTLP, поэтому переезд с облака занимает столько же времени, сколько смена DSN. Интерфейс, уведомления и документация — полностью на русском и английском. Открытый код, лицензия Apache-2.0.
Error tracking
Приём событий по протоколу Sentry SDK, автоматическая группировка в issues.
- Стектрейсы, breadcrumbs, tags и contexts
- Полные детали запроса — метод, URL, параметры, заголовки (очищенные от PII)
- Автоматическая группировка, фильтры и назначение issue
- Логи рядом: приём по OTLP и JSON, поиск, «логи вокруг события» со страницы ошибки

Uptime-мониторинг
HTTP-чеки из встроенного локального региона и удалённых зондов (probes).
- Разбивка задержек по фазам: DNS → TCP → TLS → TTFB
- Ретраи на чек и окна обслуживания — без ложных инцидентов
- Публичные статус-страницы с историей 90 дней
- Удалённые probes (--mode=probe)

Performance / tracing
Распределённые трейсы и транзакции, Web Vitals, детект перф-проблем по имени: N+1, медленный запрос, HTTP-флуд.
- Детекторы называют проблему и объясняют, как чинить — с полным SQL и локацией в коде
- Web Vitals: LCP, INP, CLS, FCP, TTFB
- Карта зависимостей: базы, кеши и внешние вызовы — p50/p95 и доля ошибок из уже собранных трейсов
- Маркеры деплоев на графиках: регрессия после релиза получает пометку «после деплоя vX»

Metrics
Метрики приложений по OTLP, системные метрики серверов и готовые рецепты мониторинга типовых сервисов.
- Пороговые алерт-правила, инциденты и защита от взрыва кардинальности
- Хосты: CPU, память, диск, сеть и load average — четыре встроенных порога из коробки
- Рецепты для PostgreSQL, MariaDB, nginx, Redis и Docker: конфиг коллектора и рекомендованные пороги в один клик
- Нативный агент: один бинарь, установка одной командой, работает в закрытых сетях

Profiling
CPU/flamegraph-профили из Sentry profiling payloads и pprof.
- Flamegraph из Sentry-профилей и pprof
- Детект регрессий профилей

Alerting
Доставка алертов в email, webhook и Telegram — на русском или английском, по выбору оператора.
- Правила на новые issue, спайки, пороги метрик, перф- и uptime-регрессии
- SLO и бюджеты ошибок: двухоконный burn-rate алерт будит только когда бюджет реально горит
- Эскалация по ступеням: круг получателей расширяется, пока инцидент не подтверждён
- Окна обслуживания на весь проект и подавление зависимых алертов — без шторма уведомлений
- Тест канала в один клик — с причиной ошибки, если доставка не прошла

SSO и RBAC
Мультитенантные организации, команды и роли; вход через SSO.
- OIDC (generic), Yandex ID, VK ID
- Организации, команды, роли
- Каждый провайдер настраивается независимо

Privacy by default
Server-side скрабинг PII и SSRF-защита исходящих запросов — включены по умолчанию.
- Обнуление IP/email
- Redaction по ключам
- SSRF-защита webhook/uptime

Эксплуатация без сюрпризов
Gotcha построен для того, кто его обслуживает: следит сам за собой, обновляется в обе стороны и живёт в заданных лимитах.
- Self-monitoring: метрики gotcha_*, раздельные /healthz и /readyz
- Откат релиза без восстановления из бэкапа
- Квоты, rate limit и retention по каждому типу сигнала
- Документированные бэкап, восстановление и обновление

Как устроено
Один Go-бинарник, PostgreSQL + ClickHouse. Режимы --mode=ingest|web|uptime|probe|all для масштабирования. Без Kafka и Redis. Настраиваемая retention по каждому типу сигнала.
Системные требования
Один сервер, три процесса (приложение, PostgreSQL, ClickHouse). Единственная зависимость — Docker и Docker Compose.
ОС: Ubuntu 22.04/24.04, Debian 12 или AlmaLinux/Rocky/RHEL 9/10 · x86-64
Платная установка и поддержка
Gotcha бесплатен, но можно не тратить время команды: установлю под ключ, перенесу с Sentry или GlitchTip, возьму инстанс на поддержку. Консультации — письменно, без созвонов.
Частые вопросы
Что такое Gotcha?
Gotcha — self-hosted платформа наблюдаемости в одном Go-бинарнике: трекинг ошибок, распределённый трейсинг, метрики, логи, профилирование, мониторинг аптайма и серверов. Всё работает на вашем сервере. Открытый код, лицензия Apache-2.0.
Совместим ли Gotcha со штатным Sentry SDK?
Да. Gotcha принимает события по протоколу Sentry, поэтому достаточно указать в вашем Sentry SDK новый DSN — переезд занимает столько же времени, сколько смена DSN в уже настроенном приложении.
Можно ли перейти с Sentry на Gotcha без изменения кода?
Да. Gotcha принимает события по протоколу приёма Sentry, поэтому переезд сводится к замене DSN в том же официальном Sentry SDK — код приложения переписывать не нужно. Пошаговый разбор — в гайде «Как перейти с Sentry на self-hosted Gotcha».
Нужны ли Gotcha Kafka или Redis?
Нет. Gotcha работает как один Go-бинарник с PostgreSQL и ClickHouse — ни Kafka, ни Redis не требуется. Быстрый старт — docker compose up -d.
Какие сигналы наблюдаемости поддерживает Gotcha?
Ошибки с группировкой в issues, распределённые трейсы и транзакции (включая Web Vitals), метрики по OTLP с пороговыми алертами, структурированные логи с поиском и привязкой к трейсам, системные метрики серверов (хосты), CPU/flame-graph профили и мониторинг аптайма с публичными status-страницами. Поверх сигналов — SLO с бюджетами ошибок, карта зависимостей, маркеры деплоев и эскалация уведомлений.
Умеет ли Gotcha мониторить сами серверы — CPU, память, диск?
Да. Раздел «Хосты» показывает CPU, память, диск, сеть, load average и процессы каждого сервера; четыре встроенных порога открывают инциденты из коробки. Данные шлёт нативный агент gotcha-agent — один бинарь, ставится одной командой прямо с вашего инстанса и работает в закрытых сетях — либо стандартный OpenTelemetry Collector.
Можно ли собирать логи в Gotcha?
Да. Логи принимаются по OTLP/HTTP и построчным JSON, хранятся с собственной квотой и сроком хранения. Экран логов даёт полнотекстовый поиск, фильтры по severity, сервису и окружению, а склейка показывает «логи вокруг события» со страницы ошибки, логи трейса и логи хоста.
Есть ли готовые рецепты мониторинга PostgreSQL, nginx, Redis?
Да. Раздел «Рецепты» даёт готовое подключение PostgreSQL, MariaDB, nginx, Redis и Docker: конфиг OpenTelemetry-коллектора с уже подставленным ключом проекта, индикатор «данные приходят», преднастроенные графики и рекомендованные пороги, создающиеся одной кнопкой.
Как развернуть Gotcha?
Gotcha — это один Go-бинарник, которому нужны PostgreSQL и ClickHouse. Быстрый старт — docker compose up -d. Для масштабирования есть режимы --mode=ingest|web|uptime|probe|all. Без Kafka и Redis.
Как обновлять Gotcha и можно ли откатиться?
Обновление — pull нового образа и перезапуск; миграции применяются автоматически. Схема БД несёт маркер обратной совместимости, поэтому откат на предыдущий релиз возможен без восстановления из бэкапа. Прерванную миграцию восстанавливает флаг --migrate-force. Подробности — на страницах «Обновление» и «Резервное копирование» в документации.
Есть ли у Gotcha русский интерфейс?
Да. Интерфейс, алерты и письма (язык задаётся настройкой GOTCHA_LOCALE) и вся документация доступны полностью на русском и английском.
Под какой лицензией распространяется Gotcha?
Apache-2.0. Исходный код открыт и доступен на GitHub и GitFlic.
Gotcha Cloud — скоро
Облачная версия в работе. Оставьте email, чтобы узнать о запуске.
В лист ожидания