Заблокировали аккаунт в трекере ошибок: что делать в тот же день
Облачный трекер ошибок отличается от остальной инфраструктуры одним свойством: он может перестать работать не потому, что что-то сломалось у вас. Аккаунт приостановили, тариф закрыли, сервис ушёл из региона, компанию купили и продукт свернули — с точки зрения вашего продакшена это один и тот же инцидент: события уходят в никуда, а вы об этом узнаёте не сразу.
Ниже — порядок действий на этот день. Он не про то, кто прав, а про то, в каком порядке возвращать себе видимость.
Что ломается в первый час
Важно понимать, что именно вы потеряли, потому что теряется больше, чем экран со списком ошибок.
| Что | Последствие |
|---|---|
| Приём событий | Ошибки продолжают происходить, но нигде не фиксируются. Через день вы не узнаете, что регрессия появилась именно сегодня |
| Оповещения | Дежурный не получит письмо о всплеске. Тишина в канале перестала означать «всё хорошо» |
| История | Данные остались в аккаунте, к которому нет доступа. Всё, что можно вынести, — то, что выгружено раньше |
| Релизный цикл | Выкатывать в таком состоянии можно, но откатывать вы будете по жалобам пользователей, а не по графику ошибок |
Первое действие — не искать замену, а предупредить команду, что до конца дня
мониторинга ошибок нет и релизы идут вслепую. Второе — снять нагрузку с SDK:
приложение продолжает отправлять события на адрес, который отвечает 401
или не отвечает вовсе. Официальные Sentry SDK это переживают штатно (отправка
асинхронная, очередь ограничена), но убедиться стоит — особенно в коротких
процессах и воркерах, где перед выходом вызывается Flush.
Что можно сделать за вечер
Если ваши приложения подключены официальным Sentry SDK, замена собирается из того, что уже есть: сервер, Docker и строка DSN в конфиге.
- Поднять инстанс. Gotcha — один Go-бинарник, которому нужны PostgreSQL
и ClickHouse. Ни Kafka, ни Redis. Быстрый старт —
docker compose up -d; минимальная конфигурация 2 vCPU / 2 ГБ RAM / 20 ГБ SSD, для продакшена с реальным трафиком — 4 vCPU / 4 ГБ RAM / 40 ГБ SSD и выше. Подробности — Установка. - Зарегистрироваться.
/registerна своём инстансе; первый пользователь получает права администратора./onboardingодной формой создаёт организацию и первый проект. - Заменить DSN. На странице «Подключение» проекта лежит готовый DSN вида
https://<public_key>@<адрес_gotcha>/<id_проекта>— тот же формат, который ждут официальные Sentry SDK. Меняется одна строка вSentry.init(...)или в переменной окружения, код приложения не трогается. - Проверить первое событие. Вызовите тестовую ошибку: она появится в разделе «Проблемы» через несколько секунд.
- Вернуть оповещения. В разделе «Оповещения» добавьте канал (email, webhook или Telegram) и правила: новая проблема, регрессия, всплеск. До этого шага видимость восстановлена только для того, кто смотрит в экран.
Полный разбор со сниппетами по языкам — Как перейти с Sentry на self-hosted Gotcha.
Что перенести не получится
Честный список, чтобы не тратить вечер на попытки.
| Что | Как есть на самом деле |
|---|---|
| История событий и issue | Не переносится. Остаётся то, что вы выгрузили до блокировки; новые события копятся с момента смены DSN |
| Правила оповещений | Настраиваются заново. Это полчаса, но их надо заложить |
| Интеграции с чатами и трекером задач | Подключаются заново к своему инстансу |
| Символизация, source maps | Загружаются заново под новые релизы |
environment, release, теги, breadcrumbs | Переносятся как есть — это поля SDK, а не сервиса |
Отдельно про метрики: они идут не через Sentry SDK, а по OTLP на
POST /v1/metrics — см. Метрики. Если метрик в старом
трекере не было, этот пункт можно отложить на потом.
Почему свой инстанс нельзя отключить снаружи
Это не лозунг, а описание механики. У self-hosted инстанса нет внешнего владельца учётной записи: ключи приёма выпускаете вы, пользователей заводите вы, данные лежат в вашей базе. Отзывать доступ технически некому — нет стороны, у которой такая кнопка есть.
Второй слой — лицензия. Gotcha распространяется под Apache-2.0: право запускать, изменять и форкать код остаётся у вас независимо от того, что будет с проектом дальше. Даже если развитие остановится, уже поднятый инстанс продолжит работать, а исходники останутся доступны.
Третий слой — обратный выход. Данные выгружаются в CSV, JSON и NDJSON (фоном, с фильтрами по времени и окружению, с маскированием PII по умолчанию), а откат на прежний трекер — снова смена DSN, потому что SDK используются официальные, без форков и патчей. Инструмент, из которого нельзя уйти, — это тот же вендор-лок, только с другой стороны.
Чтобы это не повторилось
Чек-лист, который стоит пройти один раз и не в день инцидента:
- DSN живёт в переменной окружения, а не в коде. Смена трекера должна быть правкой конфига и рестартом, а не релизом.
- Данные выгружаются наружу регулярно. Любой трекер, из которого нельзя забрать события файлом, — это история, которую вы теряете вместе с доступом.
- У приёма событий есть свой адрес, который контролируете вы. Тогда смена бэкенда не задевает клиентские приложения и мобильные сборки, где DSN зашит в выпущенную версию.
- Известно, кто и за сколько поднимет инструмент заново. Для self-hosted ответ проверяется заранее: разверните инстанс на стейджинге и засеките время.
- Оповещения дублируются хотя бы двумя каналами. Иначе о том, что мониторинг замолчал, вы узнаете из тишины.
Что дальше
- Как перейти с Sentry на self-hosted Gotcha — пошаговый переезд со сниппетами по языкам.
- Установка и эксплуатация — поднять и обслуживать инстанс.
- Первые шаги — путь от регистрации до первого оповещения.
- Выгрузки — как забрать данные из Gotcha в свой пайплайн.
Gotcha распространяется под лицензией Apache-2.0, исходный код открыт на GitHub и GitFlic.