Health URL для SaaS — быстрый старт

До полного стека наблюдаемости сделайте одну скучную вещь: стабильный URL, который отдаёт HTTP 200, когда приложение и критичные зависимости живы. Внешний мониторинг — включая StillOnline — видит только этот URL, не ваши логи.

Гайд без привязки к платформе. Для Vercel, Railway и FastAPI — отдельные статьи: Vercel, Railway, FastAPI /health и /ready.

Краткий ответ

Сделайте один публичный GET URL (например /api/health) с HTTP 200 примерно за 2 с, пока приложение живо. Проверьте curl извне, зарегистрируйте полный HTTPS URL в StillOnline — на Free один проект, одна проверка, проверки 5 мин и публичная страница статуса. Алерты владельца — в настройках (Алерты в Telegram, Алерты в Slack).

Шаг 1 — выберите путь

Один URL — часть контракта с мониторингом: зафиксируйте путь в README, runbook и StillOnline. Позже менять путь — ломать закладки и существующие проверки.

  • GET /health — liveness (процесс поднят).
  • GET /api/health — API за gateway.
  • GET /ready — readiness с БД (осторожно при деплоях).

Один канонический путь в документации и мониторинге.

Шаг 2 — быстрый handler

Handler должен быть скучным: быстрый, поверхностный, безопасный для опроса из интернета каждые несколько минут. Тяжёлую readiness выносите на отдельный маршрут, если она нужна.

  • Ответ меньше чем за 2 с.
  • JSON { "status": "ok" } или текст ok.
  • Пинг БД — только если готовы к downtime при кратком сбое БД.

Без секретов и stack trace в теле.

Шаг 3 — curl извне

Зелёный ответ в браузере на localhost не доказывает доступность с интернета. Запустите curl с другой сети (модем телефона, CI, машина коллеги) до регистрации URL в StillOnline.

curl -sS -o /dev/null -w "%{http_code}\n" https://api.yourproduct.com/health

Нужен 200. При 301 — поправьте редиректы. При 401 — health случайно закрыт авторизацией.

Шаг 4 — StillOnline

StillOnline бьёт ровно в тот URL, который вы вставили — стек сам не угадывается. Создайте проект, одну проверку на Free, подождите 2–3 интервала, прежде чем судить по красному/зелёному.

  1. Начать бесплатно.
  2. Новый проект → имя + slug страницы статуса.
  3. Проверка → полный HTTPS URL, GET, 200, интервал 5 мин (Free).
  4. Откройте страницу статуса — зелёный после 2–3 циклов.

Free: 1 проект, 1 URL, история 24 ч. Больше — Тарифы, Pro $9/мес.

Шаг 5 — люди и агенты

Health URL без канала связи оставляет поддержку в догадках. Отдайте ссылку на страницу статуса туда, где клиенты ищут ответы, включите алерты владельца себе, на Pro при смене инфраструктуры — опционально MCP.

  • Ссылку на страницу статуса — в документации для разработчиков и в шаблонах поддержки.
  • Email-подписка на странице статуса для подписчиков.
  • Алерты владельца при down, восстановлении и 24 ч без сбоев: email, Telegram (личные сообщения с ботом StillOnline) или Slack (Incoming Webhook). На Freeодин канал; на Pro / Ultimate — все три в настройках. Гайды: Алерты в Telegram · Алерты в Slack.
  • На Pro — stillonline-mcp в Cursor (статья про MCP).

Чего это не решает

Внешняя HTTP-проверка отвечает на вопрос «URL по расписанию вернул успех?» — не на все сбои в стеке. Не обещайте лишнего от одного /health.

  • SSL — отдельные инструменты или регистратор.
  • Только воркеры упали — лёгкий /health может врать; нужны метрики глубже.
  • OpenClaw локально — сначала tunnel (гайд).

Выбор инструмента: обзор 2026.

FAQ

Что указать в StillOnline — корень сайта или /api/health?

Мониторьте URL, без которого продукт «лежит» для платящих клиентов — обычно API (/api/health), не только лендинг. На Free StillOnline проверяет код ответа. Ссылку на странице статуса — гайд.

StillOnline health URL: 503 или 200 при падении БД?

На ваш выбор. 503 — StillOnline покажет down при недоступной БД; shallow 200 — меньше шума при кратких сбоях БД. На Free оценивается только HTTP-код, не поля JSON.

Можно ли в StillOnline использовать HEAD вместо GET?

По умолчанию проверка GET. Лучше GET, если не убедились, что HEAD на хостинге идентичен. Примеры — Vercel и Railway.

Чем health URL StillOnline отличается от Vercel Analytics?

Analytics — трафик и перформанс; health URL + StillOnline — доступность, история на странице статуса и алерты. Скорость лендинга — Page Speed, не /health.