Вопросы по Наблюдаемость и SRE
Метрики, логи и трейсы, Prometheus и PromQL, Grafana, алертинг, OpenTelemetry, SLO и бюджет ошибок, инциденты и постмортемы, ёмкость, хаос и профилирование. Закрывает SRE-часть собеса: от «напиши запрос p95» до «алерт в 3 ночи, что делаете».
Проверьте себя: тест по наблюдаемости и SRE
20 вопросов, 10 минут, уровень junior, middle или senior
Основы наблюдаемости
Мониторинг и наблюдаемость, метрики, логи и трейсы, RED, USE и золотые сигналы, кардинальность и стоимость.
Урок: Основы наблюдаемости за 6 минут 6 минPrometheus: сбор и хранение
Pull-модель, типы метрик, экспортёры, service discovery и relabeling, TSDB, кардинальность, HA и долгое хранение.
Урок: Prometheus за 8 минут 8 минPromQL
Селекторы, rate и increase, агрегации, histogram_quantile, сопоставление векторов, offset и предсказание.
Урок: PromQL за 8 минут 8 мин- Алерт на пропавший сервис
- Доля ошибок без sum
- Скорость изменения gauge
- rate, irate, increase
- RPS, ошибки, p95
- Алерт на исчезнувшую метрику
- Среднее время ответа из гистограммы
- Считаем долю ошибок
Ещё 20 вопросов и задач
- Считаем histogram_quantile вручную
- p95 по гистограмме
- predict_linear на 4 часа
- Считаем rate и increase
- Топ маршрутов по нагрузке
- Сравнение как фильтр
- group_left и info-метрика
- Квантиль в бакете +Inf
- histogram_quantile без le
- rate или irate
- Функция PromQL и задача
- Сравнить с прошлой неделей
- Порядок операций для p95
- Диск кончится через 4 часа
- Как смотреть на counter
- Сначала rate, потом sum
- Регулярка в матчере
- Запрос врёт: разбор
- Напишите запросы для дашборда
- Слишком короткое окно rate
Grafana и дашборды
Источники данных, переменные, панели, аннотации, дашборды как код и как сделать дашборд, который помогает в инциденте.
Урок: Grafana и дашборды за 6 минут 6 минАлертинг и усталость от алертов
Правила алертов, Alertmanager, группировка и подавление, алерты по симптомам, burn rate и борьба с шумом.
Урок: Алертинг без усталости за 8 минут 8 мин- Самые шумные алерты за сутки
- Что такое burn rate
- Как бороться с усталостью
- Таймеры Alertmanager
- Признаки хорошего алерта
- Multiwindow multi-burn-rate
- Сколько бюджета сгорает за час
- Считаем burn rate
Ещё 13 вопросов и задач
Логи: Loki и ELK
Структурные логи, уровни, корреляция, Loki и LogQL, Elasticsearch и OpenSearch, хранение, стоимость и персональные данные.
Урок: Логи, Loki и ELK за 7 минут 7 минТрейсы и OpenTelemetry
Span и trace, распространение контекста, сэмплирование, OpenTelemetry SDK и Collector, Jaeger и Tempo, exemplars.
Урок: Трейсы и OpenTelemetry за 7 минут 7 минSLI, SLO, SLA и error budget
Как выбрать SLI, задать SLO, посчитать бюджет ошибок и burn rate, политика бюджета и связь с SLA.
Урок: SLI, SLO, SLA и бюджет ошибок за 8 минут 8 мин- Почему не 100%
- Считать ли 4xx ошибками
- Отчёт по SLO за период
- Бюджет ошибок кончился
- SLO и зависимости
- Как внедрить SLO
- Таблица девяток
- Политика бюджета ошибок
Ещё 18 вопросов и задач
- Простой при 99.9% за месяц
- Простой при 99.9% за год
- Сколько бюджета осталось
- Когда закончится бюджет
- Сколько бюджета съел инцидент
- SLI задержки
- Резервирование
- Бюджет ошибок в запросах
- Последовательные зависимости
- Недельное окно
- SLI задержки как доля
- Термин и пример
- SLA и внутренний SLO
- Хороший SLI для API
- Объясните SLI, SLO и SLA
- Внедрить SLO в продуктовой команде
- SLI, SLO и SLA
- Скользящее или календарное окно
Инциденты, on-call и постмортемы
Уровни критичности, роли, коммуникация, разбор алерта ночью, дежурства, раннбуки и blameless-постмортем.
Урок: Инциденты, дежурства и постмортемы за 8 минут 8 мин- Хорошее действие из постмортема
- MTTA и MTTR по журналу инцидентов
- Blameless-постмортем
- Роль Incident Commander
- Объявлять ли инцидент
- Структура постмортема
- Роли в инциденте
- Что в раннбуке
Ещё 16 вопросов и задач
- Считаем MTTA и MTTR
- Ограничение метода «пять почему»
- Метрика реагирования
- Чинить или искать причину
- Что такое MTTR
- Нагрузка на дежурного
- Разбор причины после стабилизации
- Порядок действий при инциденте
- Алерт в 3 ночи: диск базы заполняется
- Алерт в 3 ночи: ошибки после релиза
- Алерт в 3 ночи: задержки без релизов
- Алерт в 3 ночи: растёт очередь
- Алерт в 3 ночи: сайт недоступен снаружи
- Организовать дежурства
- Расскажите о серьёзном инциденте
- Первый вопрос в инциденте
Ёмкость и хаос-инжиниринг
Прогноз нагрузки, запас мощности, нагрузочное тестирование, закон Литтла, принципы и практика хаос-экспериментов.
Урок: Ёмкость и хаос-инжиниринг за 7 минут 7 мин- Автоскейлинг и планирование
- Предел по результатам нагрузочного теста
- Coordinated omission
- Закон Литтла
- План ёмкости к распродаже
- Рост нагрузки
- Считаем по закону Литтла
- Сколько подов на пик с отказом зоны
Ещё 14 вопросов и задач
- Задержка и загрузка
- Закон Литтла
- Виды нагрузочных тестов
- Вид теста и цель
- Пик или среднее
- Алерт в 3 ночи: резкий рост трафика
- Подготовка к распродаже
- Почему не держать 95% загрузки
- Запас на отказ зоны
- Радиус поражения
- Принципы хаос-инжиниринга
- Порядок хаос-эксперимента
- С чего начинается хаос-эксперимент
- Как начать хаос-инжиниринг
Производительность и профилирование
Перцентили и хвостовые задержки, методика поиска узкого места, flame graph, профилирование в проде и eBPF.
Урок: Производительность и профилирование в проде за 7 минут 7 мин- Закон Амдала
- Анализ профиля в формате folded stacks
- Непрерывное профилирование
- Первые 60 секунд на медленном Linux-сервере
- On-CPU и off-CPU
- Как бороться с хвостовыми задержками
- Считаем по закону Амдала
- Снять CPU-профиль Go-сервиса
Ещё 12 вопросов и задач
- Считаем усиление хвоста
- Как читать flame graph
- Инструмент и задача
- N+1 в трейсе
- Медленно, а CPU свободен
- Методика поиска узкого места
- Профиль Python-сервиса в проде
- Алерт в 3 ночи: CPU 100% и рост задержек
- Сервис стал медленнее после релиза
- strace на продовом процессе
- Усиление хвоста задержек
- CPU throttling в контейнере