Золотые сигналы, RED и USE

Урок про проверенные методики выбора метрик: золотые сигналы, RED и USE.

Золотые сигналы — это четыре ключевые метрики (latency, traffic, errors, saturation), достаточные, чтобы понять здоровье большинства сервисов.

Новички тонут в выборе: какие из сотен возможных метрик действительно важны? Готовые методики избавляют от паралича. Они говорят: начни вот с этих, и ты закроешь 80% потребностей.

Четыре золотых сигнала

Подход из книги Google по SRE. Для сервиса, обрабатывающего запросы, измеряйте:

  • Latency — задержка ответа. Отдельно считайте задержку успешных и ошибочных запросов, иначе быстрые ошибки замаскируют медленные успехи.
  • Traffic — нагрузка: запросов в секунду.
  • Errors — доля неуспешных запросов.
  • Saturation — насыщенность: насколько близко система к пределу ресурсов (память, очередь, пул соединений).

Метод RED

RED — это удобная адаптация золотых сигналов именно для сервисов с запросами:

  • Rate — запросов в секунду.
  • Errors — ошибочных запросов в секунду.
  • Duration — распределение длительности запросов.
# Rate: запросов в секунду
rate(http_requests_total[5m])

# Errors: доля 5xx
rate(http_requests_total{status=~"5.."}[5m])
  / rate(http_requests_total[5m])

Метод USE

USE придуман для ресурсов (CPU, диск, сеть, пул соединений), а не для сервисов:

  • Utilization — доля времени, когда ресурс занят.
  • Saturation — сколько работы стоит в очереди сверх возможностей ресурса.
  • Errors — число ошибок ресурса.

Правило простое: RED — для того, что обслуживает запросы; USE — для того, что эти запросы потребляют.

Как работает под капотом

Эти методики не магия, а чек-листы, которые превращают абстрактное «надо мониторить сервис» в конкретный набор PromQL-запросов и панелей. Для каждого сервиса вы заводите три графика RED, для каждого важного ресурса — три графика USE, и уже получаете рабочий минимум наблюдаемости.

ОбъектМетодикаЧто меряем
HTTP-сервисREDRate, Errors, Duration
CPU / диск / пулUSEUtilization, Saturation, Errors

Частые ошибки

  • Считать среднюю задержку. Среднее прячет хвосты. Смотрите процентили: p95, p99.
  • Мешать успехи и ошибки в одной метрике задержки. Быстрый отказ 500 может «улучшить» среднее.
  • Применять USE к сервису, а RED к диску. Перепутали объект — получили бессмысленные графики.

Итог

  • Золотые сигналы: latency, traffic, errors, saturation.
  • RED — для сервисов с запросами, USE — для ресурсов.
  • Смотрите процентили задержки, а не среднее.
Проверьте себя
1. Что измеряет метод RED?
ARate, Errors, Duration
BRead, Edit, Delete
CResource, Engine, Disk
DRam, Energy, Disk
2. Для чего предназначена методика USE?
AДля UI-тестирования
BДля ресурсов: utilization, saturation, errors
CДля логирования
DДля деплоя
3. Почему опасно смотреть на среднюю задержку?
AОна всегда равна нулю
BСреднее прячет медленные хвосты запросов
CЕё нельзя посчитать
DОна требует трейсов