∿Метрики и
наблюдаемость
Главы темы 1
Практический справочникМакаров Максим Николаевич
Справочник · Python и работающий сервис

Метрики
и наблюдаемость

От медленного запроса
к объяснённому инциденту

Как узнать, что происходит с приложением после запуска на сервере: что измерять, какие события записывать и как найти этап, на котором запрос теряет время. В главах — код, настоящие измерения и снимки стенда, который можно запустить у себя.

Макаров Максим Николаевич

Начать первую тему →
Тема 1 · 10 глав91 разделСнимки работающего стендаЗапускаемый Python-проект

IКак устроен справочник

Первая тема посвящена мониторингу, наблюдаемости и телеметрии. Мы начинаем с небольшого сервиса на FastAPI и разбираем, что разработчик теряет после его развёртывания. Затем по отдельности разбираем метрики, логи и трассы, проводим по ним расследование и смотрим, как данные собирают Prometheus и Grafana.

Каждая глава построена одинаково: объяснение по разделам, частые ошибки, вопросы для самопроверки с ответами и шпаргалка. Все числа и снимки получены на стенде справочника; его архив можно скачать и повторить опыт. Модуль 2 о том, как работает Prometheus, оформлен отдельной книгой со своим стендом. Следующие модули показаны в содержании как план.

Ситуация→Механизм→Измерения→Проверка вывода

IIСодержание по модулям

МОДУЛЬ 3 · ПЛАН

Метрика как данные

Главы готовятся.

  1. 3.1Измерение, timestamp и sample
  2. 3.2Имя и единица измерения
  3. 3.3Labels и идентичность ряда
  4. 3.4Counter: события и сбросы
  5. 3.5Gauge: состояние системы
  6. 3.6Histogram: распределение длительности
  7. 3.7Кардинальность и стоимость детализации
МОДУЛЬ 4 · ПЛАН

Сбор и хранение

Главы готовятся.

  1. 4.1Exporters и границы измерения
  2. 4.2Service discovery и relabeling
  3. 4.3Лимиты scrape и кардинальность
  4. 4.4TSDB: head, WAL, блоки и retention
  5. 4.5Пропуски, сбросы и устаревшие ряды
  6. 4.6Pushgateway и пакетные задачи
  7. 4.7Федерация и remote_write
МОДУЛЬ 5 · ПЛАН

Запросы PromQL

Главы готовятся.

  1. 5.1Селекторы и временные диапазоны
  2. 5.2rate и increase для счётчиков
  3. 5.3Агрегации и группировка
  4. 5.4Доля ошибок и нулевой трафик
  5. 5.5Перцентили и histogram_quantile
  6. 5.6Сопоставление рядов и vector matching
  7. 5.7Recording rules и проверка запросов
МОДУЛЬ 6 · ПЛАН

Grafana: от вопроса к панели

Главы готовятся.

  1. 6.1Источник данных и первый запрос
  2. 6.2Единицы, легенды и интервал
  3. 6.3Time series, stat, table и heatmap
  4. 6.4Переменные и повторение панелей
  5. 6.5Сравнение периодов и annotations
  6. 6.6Корреляция: перейти от метрики к событию
  7. 6.7Дашборд расследования
МОДУЛЬ 7 · ПЛАН

Python и зависимости

Главы готовятся.

  1. 7.1Инструментация FastAPI
  2. 7.2RED: rate, errors, duration
  3. 7.3PostgreSQL: соединения, ожидания и запросы
  4. 7.4Redis: память, попадания и вытеснения
  5. 7.5RabbitMQ: ready, unacked и throughput
  6. 7.6Celery: очередь, retries и результаты
  7. 7.7Процесс, хост и контейнер
МОДУЛЬ 8 · ПЛАН

Алерты и надёжность

Главы готовятся.

  1. 8.1SLI, SLO и бюджет ошибок
  2. 8.2Симптом, условие и уведомление
  3. 8.3Pending, firing и for
  4. 8.4Alertmanager: группировка и маршруты
  5. 8.5Silence, inhibition и шум
  6. 8.6Runbook и проверка восстановления
  7. 8.7Тестирование правил
МОДУЛЬ 9 · ПЛАН

OpenTelemetry и расследования

Главы готовятся.

  1. 9.1Resource, scope и semantic conventions
  2. 9.2Spans, context propagation и baggage
  3. 9.3HTTP и сообщения очереди
  4. 9.4Collector: receivers, processors, exporters
  5. 9.5Сэмплирование и потерянные данные
  6. 9.6Логи и трассы: Loki и Tempo
  7. 9.7Профилирование и стоимость наблюдаемости

IIIСтенд и материалы к теме

IVДанные и снимки экрана

Снимки страницы стенда, Swagger, /metrics, Prometheus и Grafana сделаны на стенде этого справочника. Длительности в главах 1.4–1.6 взяты из записанного прогона и совпадают с файлами в архиве. Данные кейса в главе 1.7 составлены для разбора, и это указано в самой главе.

Источники и происхождение снимков · Как повторить опыт