Заблокировали аккаунт в трекере ошибок: что делать в тот же день

Облачный трекер ошибок отличается от остальной инфраструктуры одним свойством: он может перестать работать не потому, что что-то сломалось у вас. Аккаунт приостановили, тариф закрыли, сервис ушёл из региона, компанию купили и продукт свернули — с точки зрения вашего продакшена это один и тот же инцидент: события уходят в никуда, а вы об этом узнаёте не сразу.

Ниже — порядок действий на этот день. Он не про то, кто прав, а про то, в каком порядке возвращать себе видимость.

Что ломается в первый час

Важно понимать, что именно вы потеряли, потому что теряется больше, чем экран со списком ошибок.

ЧтоПоследствие
Приём событийОшибки продолжают происходить, но нигде не фиксируются. Через день вы не узнаете, что регрессия появилась именно сегодня
ОповещенияДежурный не получит письмо о всплеске. Тишина в канале перестала означать «всё хорошо»
ИсторияДанные остались в аккаунте, к которому нет доступа. Всё, что можно вынести, — то, что выгружено раньше
Релизный циклВыкатывать в таком состоянии можно, но откатывать вы будете по жалобам пользователей, а не по графику ошибок

Первое действие — не искать замену, а предупредить команду, что до конца дня мониторинга ошибок нет и релизы идут вслепую. Второе — снять нагрузку с SDK: приложение продолжает отправлять события на адрес, который отвечает 401 или не отвечает вовсе. Официальные Sentry SDK это переживают штатно (отправка асинхронная, очередь ограничена), но убедиться стоит — особенно в коротких процессах и воркерах, где перед выходом вызывается Flush.

Что можно сделать за вечер

Если ваши приложения подключены официальным Sentry SDK, замена собирается из того, что уже есть: сервер, Docker и строка DSN в конфиге.

  1. Поднять инстанс. Gotcha — один Go-бинарник, которому нужны PostgreSQL и ClickHouse. Ни Kafka, ни Redis. Быстрый старт — docker compose up -d; минимальная конфигурация 2 vCPU / 2 ГБ RAM / 20 ГБ SSD, для продакшена с реальным трафиком — 4 vCPU / 4 ГБ RAM / 40 ГБ SSD и выше. Подробности — Установка.
  2. Зарегистрироваться. /register на своём инстансе; первый пользователь получает права администратора. /onboarding одной формой создаёт организацию и первый проект.
  3. Заменить DSN. На странице «Подключение» проекта лежит готовый DSN вида https://<public_key>@<адрес_gotcha>/<id_проекта> — тот же формат, который ждут официальные Sentry SDK. Меняется одна строка в Sentry.init(...) или в переменной окружения, код приложения не трогается.
  4. Проверить первое событие. Вызовите тестовую ошибку: она появится в разделе «Проблемы» через несколько секунд.
  5. Вернуть оповещения. В разделе «Оповещения» добавьте канал (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 используются официальные, без форков и патчей. Инструмент, из которого нельзя уйти, — это тот же вендор-лок, только с другой стороны.

Чтобы это не повторилось

Чек-лист, который стоит пройти один раз и не в день инцидента:

Что дальше

Gotcha распространяется под лицензией Apache-2.0, исходный код открыт на GitHub и GitFlic.