← Блог

Uptime-мониторинг SaaS на Render

Render удобен для web-сервисов, фоновых воркеров и Postgres: деплой из Git, HTTPS из коробки, логи в одной панели. Эта панель отвечает на вопрос «прошёл ли деплой», но не на вопрос «достучится ли клиент из другого региона до API прямо сейчас» и не даёт спокойную ссылку, когда что-то падает.

StillOnline бьёт в ваш production health URL с интернета, поднимает страницу статуса на StillOnline для документации и при подключении клиентов и шлёт алерты владельцу на email, в Telegram (официальный бот StillOnline) или Slack — пока тикеты в поддержку не разрослись. Ниже — шаги для стека на Render; общая схема health — в быстром старте health URL.

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

StillOnline по расписанию выполняет HTTP GET на /health или /api/health вашего сервиса на Render извне сети Render, публикует страницу статуса на stillonline.tech/ru/s/{id} и уведомляет владельца о сбоях и восстановлении. На Free — один проект, один URL, интервал 5 минут; на Pro — больше проверок, приватные страницы, REST API и MCP. На Render ничего не ставится — только публичный HTTPS URL в кабинете.

Зачем Render-командам внешний мониторинг

Панель Render заточена под оператора: история деплоев, метрики, поток логов. Клиенты и интеграторы смотрят в другое место — им нужна публичная страница статуса и доказательство, что их hostname отвечает, а не только что последний билд зелёный внутри вашего аккаунта.

Внешний мониторинг закрывает разрыв: StillOnline проверяет тот же канонический HTTPS URL, что в документации API, с узлов вне Render и показывает простой на странице без доступа покупателя к вашей панели.

Render даётStillOnline добавляет
Деплой, логиСсылку на страницу статуса для клиентов
Проверку снаружи сети Render
Telegram/Slack до тикетов в поддержку

Шаг 1 — маршрут health на Render

Сначала на web-сервисе нужна лёгкая конечная точка, которую интернет вызывает без cookie сессии. Обычно это GET /health или GET /api/health с ответом 200, когда процесс может отдавать трафик; только на этом пути — без авторизации.

Держите handler быстрым — меньше 2 с — чтобы cold start и деплой не давали лишних красных статусов. После каждого деплоя проверьте с ноутбука (не через SSH в контейнер):

curl -sS -o /dev/null -w "%{http_code}\n" https://your-service.onrender.com/health

Про liveness vs readiness и пинг БД — дизайн health URL. Первый раз в StillOnline — быстрый старт health.

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

На free tier сервис может засыпать — внешняя проверка упадёт на cold start, хотя после прогрева всё работает. Тяжёлый пинг БД на каждый health шумит при миграциях. Со своим доменом мониторьте тот же HTTPS-хост, что вводят клиенты, а не внутреннее имя.

ПроблемаРешение
Sleep на freeХолодный старт — upgrade или редкий статус degraded
DB в каждом healthШум при миграциях — liveness без пинга БД
Свой доменМониторьте канонический HTTPS

Шаг 2 — StillOnline

Когда curl на production отдаёт 200, зарегистрируйте этот URL в StillOnline — проверки и страница статуса будут совпадать с тем, что вызывают интеграторы.

  1. Вход (Google или GitHub).
  2. Новый проект — имя продукта.
  3. HTTP-проверка → полный URL Render, GET, 200, интервал 5 мин на Free.
  4. Скопируйте ссылку на страницу статуса https://stillonline.tech/ru/s/{project-id} для документации и при подключении клиентов и писем при инциденте — не в подвал сайта (публичная страница статуса).

StillOnline не деплоит на Render и не читает логи Render — только HTTP GET по вашему URL.

Шаг 3 — Telegram (бот StillOnline)

Render не напишет вам в мессенджер, когда API лежит. Привяжите свой Telegram к официальному боту StillOnline, чтобы сбой дошёл на телефон, пока вы чините сервис.

  1. НастройкиПодключить Telegramбот StillOnlineStart.
  2. Включите Telegram-алертыгайд.
  3. Free: один канал владельца (email, Telegram или Slack). Pro / Ultimate: все три в настройках (тарифы).

Другие хосты

Тот же паттерн — публичный health, проверка StillOnline, ссылка на страницу статуса — работает на других PaaS:

Vercel · Railway · Fly

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

FAQ

StillOnline деплоит код на Render?

Нет. StillOnline только выполняет HTTP GET по расписанию с интернета на URL, которые вы укажете в кабинете. Пайплайн Render не меняется — см. быстрый старт health URL.

Какой URL Render добавить в StillOnline?

Production web service, который видят клиенты, плюс /health или /api/health. Не используйте preview и внутренние hostname, недоступные снаружи.

Можно ли в StillOnline отдельно мониторить Postgres на Render?

StillOnline проверяет HTTP, не сокеты БД. Добавьте ping Postgres в health приложения, если сбой БД должен краснить проверку — дизайн health URL.

Как работают алерты StillOnline при падении Render?

В настройках: email, Telegram (официальный бот StillOnline) или Slack Incoming Webhook. На Free — один канал; на Pro / Ultimate — все три — Алерты в Telegram · email.

Нужна ли нативная интеграция StillOnline с Render?

Нет. Достаточно публичного HTTPS health с ответом 200, затем передайте клиентам публичную страницу статуса из проекта.