Пробы (удалённые регионы)
Проба — это отдельный процесс gotcha, запущенный в режиме --mode=probe, который выполняет проверки мониторов из своей точки сети (другой город, дата-центр, облако) и присылает результаты в центральный сервер. Пробы нужны, чтобы отличить локальную сетевую проблему рядом с сервером Gotcha от реальной недоступности сервиса, и чтобы использовать региональный консенсус (см. Аптайм) для мониторов.
У инсталляции всегда есть встроенный локальный регион (проверки выполняются самим сервером); пробы добавляют к нему дополнительные регионы.
Управление пробами — страница /orgs/{id}/probes, доступна только владельцу/админу организации.
Регистрация пробы
- Откройте «Настройки» → «Организация» → «Пробы».
- В форме внизу страницы укажите:
- Имя — понятное имя пробы (например, «Московская проба»), до 40 символов;
- Регион — идентификатор региона, который увидят мониторы при выборе регионов (например,
ru-msk), до 40 символов. Один и тот же регион можно использовать для нескольких проб — это позволяет масштабировать один регион на несколько инстансов пробы.
- Нажмите «Создать пробу».
Токен пробы показывается один раз, сразу после создания, прямо на странице — сохраните его сейчас, второй раз он не будет показан (в базе хранится только его хеш). Там же приводится готовая команда запуска, подставленная под адрес вашего сервера и этот токен.
Запуск пробы
Пробе не нужен доступ ни к PostgreSQL, ни к ClickHouse — только исходящий HTTP(S) к центральному серверу. Обязательны две переменные окружения:
GOTCHA_PROBE_SERVER_URL— базовый адрес центрального сервера Gotcha (тот же, чтоGOTCHA_BASE_URLна сервере), напримерhttps://gotcha.example.com;GOTCHA_PROBE_KEY— токен, полученный на шаге регистрации.
Пример запуска через Docker (именно такая команда, с подставленными вашими значениями, показана на странице «Пробы» после создания):
docker run -e GOTCHA_PROBE_SERVER_URL=https://gotcha.example.com \
-e GOTCHA_PROBE_KEY=6e1f2a...af92 \
<gotcha-image> --mode=probe
Подставьте вместо <gotcha-image> образ, которым запущен ваш инстанс. Публикуемого образа gotcha
не существует: docker compose собирает его локально и называет по имени
папки, поэтому имя обычно выглядит как gotcha-gotcha. Точное имя покажет:
docker compose images gotcha
На машине пробы этого образа ещё нет — перенесите его (docker save /
docker load), либо соберите там из исходников, либо запускайте бинарником,
как показано ниже.
Тот же процесс можно запустить и без Docker — собранным бинарником gotcha:
GOTCHA_PROBE_SERVER_URL=https://gotcha.example.com \
GOTCHA_PROBE_KEY=6e1f2a...af92 \
./gotcha --mode=probe
Проба сама пришлёт свой первый отчёт в центр при старте — на странице «Пробы» появится статус В сети и время последнего отклика. Если проба перестала отчитываться, статус сменится на Не в сети; отозванная проба (кнопка «Отозвать») помечается как Отозван и её токен сразу перестаёт приниматься.
Как регионы попадают в мониторы
После того как проба хотя бы раз вышла на связь, её Регион появляется в списке доступных регионов формы монитора (/projects/{id}/monitors/new и «Редактирование монитора») рядом со встроенным локальным регионом. Отметьте нужные регионы чекбоксами и задайте правило консенсуса (см. Аптайм) — монитор начнёт проверяться параллельно из всех выбранных точек.
Частые вопросы
Что нужно пробе для работы?
Только исходящий HTTP(S) к центральному серверу Gotcha и две переменные окружения — GOTCHA_PROBE_SERVER_URL и GOTCHA_PROBE_KEY. Доступ к PostgreSQL и ClickHouse не нужен, входящие порты открывать не нужно: проба сама ходит к серверу, а не наоборот. Поэтому её можно поставить на самый дешёвый VPS в нужном регионе.
Я потерял токен пробы. Как его восстановить?
Никак — токен показывается один раз при создании, в базе хранится только его хеш. Отзовите старую пробу кнопкой «Отозвать» и зарегистрируйте новую: это минутная операция, а имя и регион можно указать те же.
Можно ли запустить несколько проб в одном регионе?
Да. Несколько проб с одним идентификатором региона — штатный способ масштабирования: для мониторов они выглядят как один регион, а нагрузка и отказоустойчивость распределяются между инстансами.
Как понять, что проба жива?
На странице «Настройки» → «Организация» → «Пробы» у каждой пробы виден статус: В сети с временем последнего отклика, Не в сети, если проба перестала отчитываться, или Отозван для отозванных. Первый отчёт проба присылает сразу при старте — ждать долго не придётся.
Проба запущена, но её регион не появляется в форме монитора. Почему?
Регион попадает в список только после того, как проба хотя бы раз вышла на связь. Проверьте статус пробы на странице «Пробы»: если она «Не в сети» — сверьте GOTCHA_PROBE_SERVER_URL (он должен совпадать с GOTCHA_BASE_URL сервера и быть доступным с машины пробы) и токен.
Что дальше
- Аптайм и мониторы — как считается статус по нескольким регионам.
- Команды и роли — кто может управлять пробами.