Skip to content

Бот предоставляет публичный эндпоинт /healthcheck, который возвращает состояние самого бота и всех его внешних зависимостей. Используйте его для мониторинга (uptime-сервисы, healthcheck в Docker/Compose, балансировщики).

Запрос

bash
curl https://ваш-домен/healthcheck

Метод — GET, авторизация не требуется.

Коды ответа

HTTP-кодПоле statusЗначение
200passВсе зависимости доступны
503failХотя бы одна зависимость недоступна
503startingБот ещё не завершил первую проверку (холодный старт)

Пример ответа

json
{
  "status": "pass",
  "time": "2026-06-19T10:00:00Z",
  "last_check": "2026-06-19T09:59:30Z",
  "checks": {
    "postgres": { "status": "pass", "latency_ms": 3 },
    "remnawave": { "status": "pass", "latency_ms": 42 },
    "s3": { "status": "pass", "latency_ms": 18 },
    "telegram_bot_api": { "status": "pass", "latency_ms": 90 }
  }
}
ПолеОписание
statusОбщий статус: pass, fail или starting
timeВремя формирования ответа (UTC)
last_checkВремя последней фоновой проверки зависимостей
checksСтатус каждой зависимости: pass/fail и задержка в мс

Как это работает

Бот проверяет зависимости в фоне по расписанию и в ответе отдаёт последний снимок, а не опрашивает провайдеров на каждый запрос. Эндпоинт публичный, поэтому повторный опрос на каждый запрос позволил бы усиливать трафик на внешние сервисы. Тексты ошибок наружу не отдаются — детальные причины сбоев приходят админам в Telegram-топик healthcheck.

Проверяемые зависимости

В checks могут присутствовать (в зависимости от подключённых сервисов):

  • postgres — база данных
  • remnawave — панель Remnawave
  • s3 — объектное хранилище
  • telegram_bot_api — Telegram Bot API
  • smtp — почтовый сервер
  • Платёжные провайдеры: yookassa, wata, cryptopay, pally, antilopay, cloudpayments, heleket, paykilla, platega