← Блог

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 /health200 + { "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 — проверки совпадут с документацией интеграторов.

  1. Старт.
  2. Новый проект.
  3. Проверка: https://your-app.fly.dev/health, GET, 200, 5 мин (Free).
  4. Страница /ru/s/... после зелёных проверок — в README или при подключении клиентов.

Другие хосты: Vercel · Railway.

Шаг 3 — Алерты

Метрики Fly не пишут в мессенджер. Настройки:

  1. Подключить Telegramбот StillOnlineStart
  2. Алерты в Telegramгайд

Free: один канал; Pro / Ultimate: все три.

Подводные камни Fly

Scale to zero, короткий red при деплое и приватный flycast — частые расхождения с внешним мониторингом. Всегда бейте в публичный HTTPS, лучше /health, а не / с редиректами.

ПроблемаРешение
Machine sleep / scale to zeroDOWN ожидаем — опишите режим или держите инстанс
ДеплойКороткий 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/... — в документации: публичная страница статуса.