[SRE] Целевые показатели на практике Определить целевой показатель SLO — важно и непросто.
Как мыслить? Смотрите на то, что критично для пользователя, а не только на то, что легко измерять. Часто хочется брать простые метрики, но они не всегда отражают «боли» клиента. Научиться видеть настоящие проблемы — задача номер один!
Определение целей на пальцах Для прозрачности в SLO важно четко описывать:
- Как метрику измеряют
- Когда она действует
Хорошие примеры:
- 99 % вызовов GET запросов за минуту будут завершены менее чем за 100 миллисекунд для всех backend серверов.
- 99 % вызовов GET запросов будут завершены менее чем за 100 миллисекунд
Или если нам важна форма кривых производительности, можем указать в SLO несколько значений:
- 90 % вызовов GET запросов будут завершены менее чем за 10 миллисекунд
- 99 % вызовов GET запросов будут завершены менее чем за 100 миллисекунд
- 99,9 % вызовов GET запросов будут завершены менее чем за 1 секунду
Ну а если, у нас неоднородная загрузка, то можно делать вот так:
- 95% вызовов GET запросов для которых важна скорость работы, будут завершены менее чем за 1 секунду
Почему не стоит ставить 100%? Стремление к идеалу затормаживает релизы, делает продукт дорогим и излишне консервативным. Используйте допустимый уровень ошибок — это практика, одобренная SRE.
Вывод SLO дают инструмент управления и прозрачность: команда оперирует понятным критерием качества, а не догадками. Дальше — про выбор показателей и работу с ними! Пишите свои вопросы, делитесь постом — делаем сервисы надёжными вместе!