Мониторинг и наблюдаемость с помощью USE и RED

Вольный перевод с источника

Современные системы могут выдавать тысячи или миллионы метрик, и современные инструменты мониторинга могут собирать их все. Столкнувшись с таким обилием данных, бывает трудно понять, с чего начать поиск при попытке диагностировать проблему. И когда вы не находитесь в режиме диагностики, а просто хотите узнать, существует ли проблема вообще, вы можете столкнуться с той же проблемой. Какие наиболее важные KPI поступают из ваших систем?

Я уже много писал об этом раньше, но в этот раз я хочу обратиться к аббревиатурам - USE и RED соответственно - которые легко запомнить и которые обеспечивают хорошее высокоуровневое руководство для наблюдаемости системы.

Метод USE

USE - это сокращение от Utilization(использование), Saturation(насыщенность) и Errors(ошибки). Брендан Грегг предлагает использовать его для быстрого начала работы, когда вы погружаетесь в незнакомую систему: "Я разработал метод USE, чтобы научить других, как быстро решать общие проблемы производительности, не упуская из виду важные области. Подобно аварийному контрольному списку в руководстве по летной эксплуатации, он должен быть простым, понятным, полным и быстрым".

Краткое содержание USE звучит так: "Для каждого ресурса проверьте использование, насыщенность и ошибки". Что это значит? Брендан определяет терминологию:

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

Это разграничивает использование и насыщенность, давая понять, что использование - это "время занятости %", а насыщенность - это "отставание". Эти термины сильно отличаются от того, что человек может спутать с ними, например, "использование диска" как выражение того, сколько места на диске осталось.

Метод RED

Впервые я увидел эту аббревиатуру в докладе о мониторинге микросервисов в 2015 году. Аббревиатура расшифровывается как Rate(скорость), Errors(ошибки) и Duration(продолжительность). Эти показатели ориентированы на запросы, а не на ресурсы, как в методе USE. Продолжительность явно означает распределение, а не среднее значение.

USE и RED: Две стороны одной медали

Что может быть неочевидным, так это то, что USE и RED дополняют друг друга. Метод USE - это внутренний, ориентированный на услуги взгляд. Предполагается рабочая нагрузка системы или службы, а USE направляет внимание на ресурсы, выполняющие эту нагрузку. Цель - понять, как эти ресурсы ведут себя при наличии нагрузки.

Метод RED, с другой стороны, сосредоточен на самой рабочей нагрузке и рассматривает сервис как "черный ящик". Это видимый извне взгляд на поведение рабочей нагрузки, обслуживаемой ресурсами. Я определяю рабочую нагрузку как совокупность запросов за определенный период времени. Я уже много говорил и писал о важности измерения рабочей нагрузки, поскольку смысл существования системы заключается в выполнении полезной работы.

Взятые вместе, RED и USE составляют минимально полную, максимально полезную наблюдаемость - способ понять оба аспекта системы: ее пользователей/клиентов и работу, которую они запрашивают, и ее ресурсы/компоненты и то, как они реагируют на рабочую нагрузку. (Я включаю пользователей в систему. Пользователи не отделены от системы; они являются ее неотъемлемой частью).

Я часто называю эту двойственность "Дзен производительности", целостным, единым мировоззрением производительности системы, которое я разрабатываю. Работа идет полным ходом!

Сопоставление USE и RED со стандартной терминологией

USE и RED удобны, и часть причины их ценности заключается в том, что их атомы отображаются непосредственно на стандартные понятия, которые являются основными показателями производительности:

  • U = использование, согласно каноническому определению

  • S = параллелизм

  • E = коэффициент ошибок, как метрика пропускной способности

  • R = Пропускная способность запроса, в запросах в секунду

  • E = коэффициент ошибок запросов, как метрика пропускной способности или доля от общей пропускной способности.

  • D = Задержка, время пребывания или время отклика; все три показателя широко используются

В заключение, если вы не знаете, какие метрики наиболее полезны для мониторинга и диагностики, то USE и RED - это отличная отправная точка.