SLA-мониторинг для SaaS: как считать аптайм и держать его
Коротко. SLA для SaaS — это публичное обещание доступности, выраженное в процентах аптайма за период. 99,9% звучит надёжно, но означает почти 9 часов простоя в год. Чтобы держать SLA, нужно измерять реальную доступность независимым мониторинг сайтов с коротким интервалом, считать аптайм по формуле и автоматически фиксировать инциденты. Ниже — таблица «девяток», формула и практическая настройка.
Что такое SLA и из чего он состоит
SLA (Service Level Agreement) фиксирует целевой уровень доступности и санкции за его нарушение — обычно кредиты или возврат части оплаты. Ключевые элементы: целевой процент аптайма, окно измерения (месяц/квартал), что считается простоем и кто его измеряет. Если измеряет только провайдер, у клиента нет рычага. Поэтому SaaS-команды разворачивают независимый мониторинг.
Таблица «девяток»: сколько простоя допустимо
| SLA | Простой в месяц | Простой в год |
|---|---|---|
| 99% («две девятки») | ~7,2 часа | ~3,65 дня |
| 99,9% («три девятки») | ~43,8 минуты | ~8,76 часа |
| 99,95% | ~21,9 минуты | ~4,38 часа |
| 99,99% («четыре девятки») | ~4,38 минуты | ~52,6 минуты |
| 99,999% («пять девяток») | ~26 секунд | ~5,26 минуты |
Чем больше девяток, тем дороже инфраструктура и тем короче должен быть интервал мониторинга, иначе вы просто не успеете зафиксировать короткий инцидент.
Формула расчёта аптайма
Аптайм считается как доля времени, когда сервис был доступен, от общего времени периода:
uptime_% = (total_time - downtime) / total_time * 100
# Пример: месяц = 30 дней = 43 200 минут
# Зафиксировано 25 минут простоя
uptime_% = (43200 - 25) / 43200 * 100 = 99.942%
# Это укладывается в SLA 99,9%, но нарушает 99,95%
Чтобы формула отражала реальность, источником downtime должны быть зафиксированные инциденты независимого мониторинга, а не оценка «на глаз».
Health-check эндпоинт
Надёжный SLA-мониторинг опирается на специальный health-эндпоинт, который проверяет не только то, что веб-сервер жив, но и доступность зависимостей (БД, кэш, очередь). Пример проверки:
# Проверяем health-эндпоинт и измеряем время отклика
curl -s -o /dev/null -w "HTTP %{http_code}, %{time_total}s\n" \
https://api.example.com/health
# Ожидаемый вывод при здоровом сервисе:
# HTTP 200, 0.142s
В enterno.io вы добавляете этот URL как HTTP-монитор с ожидаемым кодом 200 и интервалом 1 минута — и аптайм считается автоматически.
Как держать SLA на практике
- Короткий интервал. Для 99,99% нужен интервал 30 секунд — на пятиминутном вы не зафиксируете 4-минутный инцидент.
- Мультирегион. Проверки из РФ, ЕС и США отличают сетевой сбой от реального отказа.
- Порог инцидента. Не создавайте инцидент по одной неудачной проверке — используйте порог из нескольких подряд, чтобы исключить шум.
- SSL-контроль. истёкший сертификат сертификат — это 100% простоя для пользователей, поэтому пороги 14/3 дня обязательны.
Отчётность и прозрачность
Публичная статус-страница и история инцидентов превращают SLA из обещания в проверяемый факт. Клиенты видят реальный аптайм, а ваша команда — точную базу для расчёта SLA-кредитов.
FAQ
Чем 99,9% отличается от 99,99% на практике?
99,9% допускает ~8,76 часа простоя в год, а 99,99% — всего ~52,6 минуты. Разница в инфраструктуре и стоимости огромна.
Какой интервал мониторинга нужен для SLA 99,99%?
30 секунд. На большем интервале короткие инциденты просто не попадут в измерение, и аптайм будет завышен.
Считать аптайм по своему мониторингу или по провайдеру?
По независимому. Измерение только провайдером лишает вас рычага при споре о SLA-кредитах.
Что включать в downtime?
Любое время, когда сервис недоступен для пользователя: 5xx-ошибки, таймауты, недоступность DNS, истёкший SSL.
Настройте health-монитор и считайте SLA автоматически на странице мониторинга аптайма. Дополнительно: расчёт SLA и аптайма, гайд по мониторингу, лучшие практики статус-страниц и проверка сайта онлайн.