Мониторинг 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 при массовых репортах.
Связанные материалы
- Быстрый старт health URL
- Uptime Neon и PlanetScale
- Health check пула соединений
- Дизайн health endpoint
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.