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 — проверки и страница статуса будут совпадать с тем, что вызывают интеграторы.
- Вход (Google или GitHub).
- Новый проект — имя продукта.
- HTTP-проверка → полный URL Render, GET, 200, интервал 5 мин на Free.
- Скопируйте ссылку на страницу статуса
https://stillonline.tech/ru/s/{project-id}для документации и при подключении клиентов и писем при инциденте — не в подвал сайта (публичная страница статуса).
StillOnline не деплоит на Render и не читает логи Render — только HTTP GET по вашему URL.
Шаг 3 — Telegram (бот StillOnline)
Render не напишет вам в мессенджер, когда API лежит. Привяжите свой Telegram к официальному боту StillOnline, чтобы сбой дошёл на телефон, пока вы чините сервис.
- Настройки → Подключить Telegram → бот StillOnline → Start.
- Включите Telegram-алерты — гайд.
- Free: один канал владельца (email, Telegram или Slack). Pro / Ultimate: все три в настройках (тарифы).
Другие хосты
Тот же паттерн — публичный health, проверка StillOnline, ссылка на страницу статуса — работает на других PaaS:
Связанные материалы
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, затем передайте клиентам публичную страницу статуса из проекта.