Мониторинг Turso / libSQL для SaaS
API отдаёт 200, а каждый запрос к Turso уходит в timeout. Это ложный зелёный БД: процесс жив, libSQL на edge недоступен. Честный мониторинг — разделить liveness приложения и доступность БД, read-only пробы и StillOnline на публичный /ready, а не прямой Turso URL с Bearer-токеном.
Краткий ответ
У Turso есть GET /health на HTTPS URL базы, но токен не кладите в StillOnline. Сделайте GET /ready в приложении с SELECT 1 (таймаут 3–5 с) → 503 при сбое. Free: один URL, ~5 мин, только код ответа.
База: быстрый старт health · Neon/PlanetScale.
1. Разделить health приложения и доступность БД
| Цель probe | Что доказывает | StillOnline? |
|---|---|---|
| GET /health | Процесс отвечает | Да, но без БД |
| GET /ready + libSQL | Клиент читает данные | Да — предпочтительно |
| Turso /health + Bearer | HTTP слой БД | Нет — секрет в конфиге |
Не вставляйте токены Turso в StillOnline. Паттерн как у пула соединений.
2. Безопасные read-only пробы
Только SELECT 1, без записи. Таймаут 3–5 с. Тот же пул, что у handlers.
app.get("/ready", async (req, res) => {
try {
await Promise.race([
client.execute("SELECT 1"),
new Promise((_, r) => setTimeout(() => r(new Error("timeout")), 5000))
]);
return res.json({ status: "ok" });
} catch (e) {
return res.status(503).json({ status: "down" });
}
});
Free не парсит JSON — 503 на /ready, 200 на /health только для процесса.
3. Пороги latency на edge replicas
Монитор смотрит из другой географии — фиксируйте p95 от региона probe, не из датацентра. StillOnline доказывает reachability; latency — в логах/APM.
4. StillOnline через API-слой
- stillonline.tech/app →
https://api.product.com/ready. - GET, ожидание 200.
/readyбез auth.- 2–3 цикла после деплоя.
- Один канал алертов на Free.
Компонент на странице статуса: «Database» или «API».
5. Текст страницы статуса при деградации БД
Пишите, что чувствует пользователь — «не сохраняются данные», не «libSQL heartbeat failed». Шаблоны — до первого ночного инцидента. Апдейт в течение 15 мин после DOWN. Resolve только после curl /ready снаружи.
Что дальше
/ready в StillOnline, шаблоны статуса, вторая проверка маркетинга на Pro, status Turso при массовых репортах.
FAQ
StillOnline бить Turso напрямую или через /ready?
Через /ready в приложении. Прямой URL — с Bearer, не для StillOnline.
Чем Turso отличается от Neon в мониторинге?
SQLite на edge vs Postgres serverless; оба — /ready с лёгким запросом.
Какой запрос в /ready?
SELECT 1, таймаут 3–5 с, 503 при ошибке.
Что видит StillOnline Free?
Только HTTP-код на одном URL.
Нужен ли status Turso?
Да для vendor-wide; /ready — для tenant-specific сбоев.
Когда копать latency?
Устойчивое удвоение p95, не один медленный probe.
Дополнительно
Health URL для SaaS — быстрый старт за 5 минут
Публичный GET /health или /api/health с ответом 200 и внешняя проверка StillOnline со страницей статуса. Лимиты Free указаны честно. StillOnline.
Проверки uptime для Neon и PlanetScale
Serverless Postgres и MySQL: лёгкий SELECT vs полный app health, ложные алерты при паузе compute — HTTP-мониторинг StillOnline для indie SaaS.
Health check пула соединений БД для API SaaS
DB ping в /health: исчерпание pool vs простой БД, шаблон JSON и HTTP-мониторинг StillOnline для API-only бэкендов.
Дизайн health URL: /health и /ready для SaaS
Выбор GET /health, /api/health или /ready для внешних проверок. JSON, auth, ping БД, страница статуса StillOnline и алерты Telegram через бота StillOnline.