Uptime-мониторинг SaaS на Fly.io
Fly.io крутит приложение рядом с пользователями (Machines, *.fly.dev или свой домен). Панель Fly показывает, живы ли ваши машины; она не заменяет внешнюю проверку того же URL, что клиенты вызывают curl, и не даёт покупателю ссылку на статус, когда API тормозит в регионе.
StillOnline проверяет снаружи сети Fly, поднимает страницу статуса и может написать вам в Telegram через бота StillOnline при сбое — до писем «у вас упало?» в поддержку.
Краткий ответ
На Fly.io опубликуйте публичный GET /health с 200 быстрее двух секунд на том же HTTPS-хосте, что видят клиенты. Зарегистрируйте URL в StillOnline для внешних проверок, добавьте ссылку на страницу статуса StillOnline в документацию API и подключите бота StillOnline для алертов. Метрики панели Fly не заменяют внешнюю HTTP-правду.
Шаг 1 — /health на Fly
Добавьте лёгкий маршрут в приложении (Node, Go, Elixir и т.д.), который доказывает, что процесс отвечает по HTTP без авторизации для внешней проверки.
GET /health→ 200 +{ "status": "ok" }- Без auth только на этом пути
- Ответ < 2 с
После fly deploy снаружи:
curl -sS -o /dev/null -w "%{http_code}\n" https://your-app.fly.dev/health
С своим доменом — curl по prod DNS; в StillOnline — тот же URL, а не hostname только для flycast.
Подробнее: дизайн health URL · быстрый старт.
Шаг 2 — StillOnline
Когда production curl отдаёт 200, вставьте этот URL в StillOnline — проверки совпадут с документацией интеграторов.
- Старт.
- Новый проект.
- Проверка:
https://your-app.fly.dev/health, GET, 200, 5 мин (Free). - Страница
/ru/s/...после зелёных проверок — в README или при подключении клиентов.
Другие хосты: Vercel · Railway.
Шаг 3 — Алерты
Метрики Fly не пишут в мессенджер. Настройки:
- Подключить Telegram → бот StillOnline → Start
- Алерты в Telegram — гайд
Free: один канал; Pro / Ultimate: все три.
Подводные камни Fly
Scale to zero, короткий red при деплое и приватный flycast — частые расхождения с внешним мониторингом. Всегда бейте в публичный HTTPS, лучше /health, а не / с редиректами.
| Проблема | Решение |
|---|---|
| Machine sleep / scale to zero | DOWN ожидаем — опишите режим или держите инстанс |
| Деплой | Короткий red — обслуживание |
| Только flycast | Нужен публичный HTTPS |
Цикл редиректов на / | Мониторьте /health |
Страница статуса в документации клиента
Ссылку stillonline.tech/.../s/... — в README и API reference (публичная страница статуса). Не прячьте единственную ссылку в подвал сайта — документации и при подключении клиентов понятнее.
Связанные материалы
FAQ
StillOnline мониторит каждый регион Fly.io отдельно?
Нет. StillOnline шлёт внешние HTTP-проверки на один URL на проверку — не multi-region synthetic по регионам. Выберите prod-хост интеграторов: дизайн health URL.
Нужно ли в health StillOnline пинговать Postgres на Fly?
Только если «up» = «БД доступна». Shallow /health сглаживает шум деплоя; ping БД в /ready — осознанный компромисс. Быстрый старт health.
Сколько приложений Fly помещается на StillOnline Free?
На Free — один проект, один URL; обычно мониторят API, от которого зависят клиенты. На Pro — больше: тарифы, API-only SaaS.
StillOnline работает с кастомным доменом и TLS на Fly?
Да. Укажите финальный HTTPS URL, как в curl после fly deploy. Ссылку /s/... — в документации: публичная страница статуса.