awesome-everything EN
↑ Обратно к восхождению

Наблюдаемость

RED и USE: два чек-листа, одна дисциплина триажа

Суть RED (Rate, Errors, Duration) описывает, что почувствовал пользователь. USE (Utilization, Saturation, Errors) описывает, какой ресурс это вызвал. Оба чек-листа по порядку — первый рефлекс senior-инженера, когда срабатывает пейджер.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на junior-высоте — поверхность
◷ 10 min

Пейджер сработал. p99-задержка checkout-сервиса подскочила с 80 мс до 1.2 с. У тебя секунды, чтобы найти нужный дашборд, пока incident commander уже спрашивает обновление. Открыть все панели — ошибка. Правильное действие — два коротких чек-листа.

Что такое RED

Tom Wilkie представил RED на London Prometheus meetup в 2015. RED описывает сервис с точки зрения вызывающего:

  • Rate — запросов в секунду, поступающих в сервис.
  • Errors — упавших запросов в секунду (HTTP 5xx, gRPC non-OK, таймауты).
  • Duration — распределение задержки (p50 / p95 / p99) запросов, которые завершились.

Если RED болеет — болеет пользователь. Rate говорит, нормален ли трафик. Errors говорят, падают ли запросы. Duration говорит, медленны ли выжившие.

Что такое USE

Brendan Gregg назвал USE в 2012 как чек-лист экстренной диагностики производительности. USE описывает каждый ресурс (CPU, память, диск, сеть, локи, thread pool’ы) с трёх сторон:

  • Utilization — средний процент времени, когда ресурс был занят.
  • Saturation — объём работы в очереди, которую ресурс ещё не успел обслужить (длина run queue, время ожидания).
  • Errors — счётчик ошибочных событий на ресурсе (ECC-ошибки, disk EIO, NIC CRC, ENOSPC).

Если USE болеет на боксе — этот ресурс кандидат в причины RED-симптома.

Послойная ментальная модель

МетодЧто меряетОтвечает на вопросАвтор
REDСервисы (request-driven)Пользователю плохо? Какой симптом?Tom Wilkie, 2015
USEРесурсы (CPU, память, диск, …)Какой ресурс это вызвал?Brendan Gregg, 2012

Ритм чтения в инциденте всегда RED первым, USE вторым:

  1. Открой RED-дашборд затронутого сервиса.
  2. Определи, какой из R / E / D аномален — это назовёт симптом.
  3. Переключись на USE-дашборд ресурсов под этим сервисом.
  4. Найди ресурс, где utilization или saturation скакнули — это назовёт кандидата в причины.
  5. Опускайся в трейсы, логи или профили только после того, как RED и USE сузили область поиска.

Метафора больницы

Представь больницу. RED — жизненные показатели пациента: пульс, давление, температура — измеряемые снаружи. USE — мониторинг каждой машины интенсивной терапии: расход кислорода, давление насоса, лампочки ошибок — измеряемые на самом оборудовании. Нужны оба. Если падают показатели пациента — действуешь быстро, но чтобы понять почему — идёшь к машинам. Врачи, смотрящие только на одно, пропускают очевидные проблемы.

Конкретный триаж

On-call-инженер Bea получает пейджер: p99-задержка checkout-сервиса подскочила с 80 мс до 1.2 с. RED-дашборд: Rate стабилен 400 req/s, Errors ниже 0.1%, Duration p99 в 15 раз хуже. Это RED-триаж — запросы приходят и в большинстве успешны, но медленно. Bea переключается на USE по машинам: CPU 92%, run queue прыгнул с 0 до 14. Машины CPU-saturated; треды стоят в очереди за циклами. Решение: scale out. Диагноз занял меньше минуты.

Почему это работает

USE Saturation — самый диагностически ценный из трёх сигналов. Utilization говорит, насколько ресурс был занят в среднем — CPU на 100% нормален, если нет ожидающей работы (он просто успевает). Что важно — длина run queue. Диск на 80% utilization с queue depth 50 хуже, чем диск на 95% с queue depth 1, потому что очередь — это ведущий индикатор задержки: каждая задача в очереди платит queueing delay.

Викторина

Мониторинг-дашборд показывает Rate, Errors и Duration сервиса. Что это за методология?

Викторина

Метод USE: для каждого ресурса проверь Utilization, Saturation и Errors. Что такое 'saturation' в USE?

Закончи аналогию

Заполни пропуск: RED — это методология измерения _______, а USE — методология измерения ресурсов.

Расставь шаги по порядку

Расставь шаги типового инцидент-ответа RED+USE по порядку:

  1. 1 Пейджер сработал — описан симптом (latency, ошибки, capacity)
  2. 2 Открой RED-дашборд затронутого сервиса
  3. 3 Определи, какой из R / E / D аномален — это назовёт симптом
  4. 4 Переключись на USE-дашборд ресурсов под этим сервисом
  5. 5 Найди ресурс, где utilization или saturation скакнули — это назовёт причину
  6. 6 Опускайся в трейсы, логи или профили только после того, как RED и USE сузили область
  7. 7 Применяй фикс (scale up, рестарт, throttle, rollback) и смотри, как RED возвращается к baseline
Вспомните перед уходом
  1. 01
    В двух предложениях: почему запускать только RED или только USE обычно недостаточно для инцидент-ответа?
  2. 02
    Что означают три буквы USE и что каждая меряет?
  3. 03
    Кто ввёл RED и когда? Кто ввёл USE и когда?
Итог

RED и USE — два коротких чек-листа с разницей в два года, которые вместе покрывают и сервис, к которому обращается пользователь, и ресурсы, на которых этот сервис стоит. RED (Rate, Errors, Duration) меряет поток запросов с точки зрения вызывающего — если RED болеет, болеет пользователь. USE (Utilization, Saturation, Errors) меряет каждый физический и логический ресурс с трёх сторон — если USE болеет на боксе, это кандидат в причины. Рефлекс senior-инженера в инциденте: RED первым (назвать симптом), USE вторым (найти причину), и всё остальное — логи, трейсы, профили — только после того, как эти два чек-листа сузили область. Saturation, а не utilization, — самое диагностически ценное измерение USE: очередь ожидающей работы — ведущий индикатор видимой пользователю задержки даже при умеренном среднем utilization.

Связанные уроки
встречается в167
Продолжить восхождение ↑Инструментация RED в Prometheus: счётчики, гистограммы и дисциплина cardinality
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.