Пробы (удалённые регионы)

Проба — это отдельный процесс gotcha, запущенный в режиме --mode=probe, который выполняет проверки мониторов из своей точки сети (другой город, дата-центр, облако) и присылает результаты в центральный сервер. Пробы нужны, чтобы отличить локальную сетевую проблему рядом с сервером Gotcha от реальной недоступности сервиса, и чтобы использовать региональный консенсус (см. Аптайм) для мониторов.

У инсталляции всегда есть встроенный локальный регион (проверки выполняются самим сервером); пробы добавляют к нему дополнительные регионы.

Управление пробами — страница /orgs/{id}/probes, доступна только владельцу/админу организации.

Регистрация пробы

  1. Откройте «Organization» → «Probes».
  2. В форме внизу страницы укажите:
    • Name — понятное имя пробы (например, «Moscow probe»), до 40 символов;
    • Region — идентификатор региона, который увидят мониторы при выборе регионов (например, ru-msk), до 40 символов. Один и тот же Region можно использовать для нескольких проб — это позволяет масштабировать один регион на несколько инстансов пробы.
  3. Нажмите «Create probe».

Токен пробы показывается один раз, сразу после создания, прямо на странице — сохраните его сейчас, второй раз он не будет показан (в базе хранится только его хеш). Там же приводится готовая команда запуска, подставленная под адрес вашего сервера и этот токен.

Запуск пробы

Пробе не нужен доступ ни к PostgreSQL, ни к ClickHouse — только исходящий HTTP(S) к центральному серверу. Обязательны две переменные окружения:

  • GOTCHA_SERVER_URL — базовый адрес центрального сервера Gotcha (тот же, что GOTCHA_BASE_URL на сервере), например https://gotcha.example.com;
  • GOTCHA_PROBE_TOKEN — токен, полученный на шаге регистрации.

Пример запуска через Docker (именно такая команда, с подставленными вашими значениями, показана на странице «Probes» после создания):

docker run -e GOTCHA_SERVER_URL=https://gotcha.example.com \
  -e GOTCHA_PROBE_TOKEN=6e1f2a...af92 \
  gotcha --mode=probe

Тот же процесс можно запустить и без Docker — собранным бинарником gotcha:

GOTCHA_SERVER_URL=https://gotcha.example.com \
GOTCHA_PROBE_TOKEN=6e1f2a...af92 \
./gotcha --mode=probe

Проба сама пришлёт свой первый отчёт в центр при старте — на странице «Probes» появится статус online и время последнего отклика. Если проба перестала отчитываться, статус сменится на offline; отозванная проба (кнопка «Revoke») помечается как revoked и её токен сразу перестаёт приниматься.

Как регионы попадают в мониторы

После того как проба хотя бы раз вышла на связь, её Region появляется в списке доступных регионов формы монитора (/projects/{id}/monitors/new и Edit) рядом со встроенным локальным регионом. Отметьте нужные регионы чекбоксами и задайте правило консенсуса (см. Аптайм) — монитор начнёт проверяться параллельно из всех выбранных точек.

Что дальше