Реализация Status Page для мониторинга SaaS-приложения
Status page — это публичная страница, на которой клиенты видят текущее состояние сервиса, историю инцидентов и плановые работы. Отсутствие такой страницы во время сбоя вынуждает поддержку отвечать на сотни одинаковых вопросов и усиливает панику. С правильно настроенной status page клиент сам находит актуальный статус за 5 секунд.
Компоненты системы
Минимальный набор включает несколько независимых частей:
- Страница статусов — список компонентов (API, Dashboard, Webhooks, CDN) с индикатором состояния
- История инцидентов — таймлайн с обновлениями в реальном времени
- Подписки — email/SMS/webhook уведомления при смене статуса
- Метрики uptime — процент доступности за 30/60/90 дней
- Плановые работы — maintenance окна с заблаговременным уведомлением
Варианты реализации
Готовые решения экономят 2–3 недели разработки:
- Statuspage.io (Atlassian) — интегрируется с Jira, PagerDuty, Datadog. API для автоматического обновления статуса. От $29/месяц.
- Instatus — более дешёвая альтернатива, REST API идентичный Statuspage. Бесплатный тариф с ограничениями.
- Cachet — open-source, self-hosted, PHP/Laravel. Подходит, если нельзя использовать SaaS.
Кастомная реализация нужна, когда требуется полная интеграция с внутренними системами мониторинга и брендинг без ограничений платформы.
Автоматическое обновление статусов
Ручное обновление статуса во время инцидента — плохая практика: дежурный занят тушением пожара, а не написанием постов. Автоматизация через Prometheus Alertmanager или PagerDuty webhooks:
# alertmanager.yml — webhook при срабатывании алерта
receivers:
- name: statuspage
webhook_configs:
- url: 'https://api.statuspage.io/v1/pages/PAGE_ID/incidents'
http_config:
authorization:
credentials: $STATUSPAGE_API_KEY
send_resolved: true
Скрипт обновляет статус компонента через Statuspage API при получении алерта и автоматически закрывает инцидент при resolved.
Отдельный хостинг — обязательное требование
Status page не должна быть на той же инфраструктуре, что и основное приложение. Если упал основной сервер, страница статусов тоже недоступна — именно тогда, когда она нужна больше всего.
Варианты: Netlify/Vercel (статический сайт с API обновлений), отдельный VPS в другом облаке, Cloudflare Pages.
Сроки
Настройка Statuspage.io с автоматическими алертами из Prometheus/Datadog — 1–2 дня. Кастомная страница на отдельном хостинге с подписками — 3–5 дней. Self-hosted Cachet с автоматизацией — 5–7 дней.







