← Блог

Uptime-проверки для Neon и PlanetScale

Neon (serverless Postgres) и PlanetScale (Vitess MySQL) умеют scale-to-zero и паузу compute ради экономии. Для мониторинга это путаница: StillOnline не проверяет сокет БД — только HTTP URL; ваш /health решает, считать ли паузу ветки или timeout соединения «down» для клиентов.

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

Neon и PlanetScale доступны приложению, не прямому HTTP-мониторингу. Добавьте GET /health в app (опционально SELECT 1 с таймаутом 1 с); при suspend compute — liveness без DB ping. В StillOnline — HTTPS URL приложения; Free, один URL, интервал пять минут (тарифы).

Лёгкий SELECT vs полный app health

ПодходДоказываетРиск ложного срабатывания
Только liveness ({ "status": "ok" })Процесс отвечаетБД может лежать при зелёной проверке
SELECT 1 в /healthБД доступна из appResume Neon / cold start замедляет внешнюю проверку
Отдельный /readyСтрогие зависимостиВторая проверка на Pro
Прямой DB URL в StillOnlineНе поддерживаетсяStillOnline — только HTTP

Подробнее: дизайн health URL.

Neon: пауза compute и ветки

Neon может приостанавливать compute на free/dev tier. Первый запрос после простоя будит БД — /health с DB ping может один раз не уложиться в таймаут внешней проверки.

СитуацияРекомендация
Dev-ветка с auto-suspendНе мониторьте dev URL в production-проекте StillOnline
Prod не должен спатьОтключите suspend на prod; DB ping в /health
Принимаете latency пробужденияLiveness-only /health; page только при повторных fail

PlanetScale: ветки и scale

Мониторьте production branch через приложение, не admin UI. Лимиты соединений при деплое могут кратко валить SELECT 1 — запрос минимальный.

Пример (концепт)

Маршрут приложения:

SELECT 1;

с timeout 1 с200 или 503. StillOnline регистрирует:

curl -sS https://api.yourproduct.com/health

Не hostname neon.tech или planetscale.com.

StillOnline

  1. Вход.
  2. Новый проект.
  3. /health приложения, GET, 200.
  4. Страница статусабыстрый старт.

Настройкибот StillOnlineTelegram.

Связанные материалы

FAQ

StillOnline мониторит Neon или PlanetScale напрямую?

Нет. Только публичные HTTP URL. Uptime БД — через health маршрут приложениядизайн health.

Почему StillOnline алертит, когда Neon был на паузе?

/health с DB ping может не уложиться в timeout при resume. Liveness-only, отключите suspend на prod или подстройте интервал — редиректы и антибот.