docs(labs): добавлено задание по мониторингу
- Зачем: - Завершить ТЗ основной программы расследованиями нагрузки и свежести данных. - Что: - Добавлено ТЗ ступени 7 с наблюдением запросов Grafana и доставки слепка заказов. - В индексе лаб открыта ссылка на последнее задание программы. - Проверка: - Проверены относительные ссылки, git diff --check и соответствие панелям стенда.
This commit is contained in:
1 parent
9734449eae
commit
3ec4d79576
2 files changed
+115
-3
No files matched your search
@@ -0,0 +1,114 @@
|
||||
# Мониторинг: куда смотреть
|
||||
|
||||
**Чему учит:** начать расследование с подходящего экрана, найти источник
|
||||
нагрузки и объяснить свежесть данных через путь доставки.
|
||||
|
||||
## Перед началом
|
||||
|
||||
Откройте Grafana и Airflow по адресам из раздела [«Адреса и
|
||||
пароли»](../../README.md#адреса-и-пароли). Для первого знакомства в Grafana
|
||||
есть три дашборда:
|
||||
|
||||
- «Данные» - путь сообщений от источника до хранилища;
|
||||
- «Кластер» - процессор, память, диски и внутренняя работа ClickHouse;
|
||||
- «Запросы» - выполненные запросы, их стоимость и ошибки.
|
||||
|
||||
Откройте все три дашборда и запишите по одному вопросу, на который каждый из
|
||||
них помогает ответить. «Данные» оставьте открытым в соседней вкладке.
|
||||
|
||||
Проведите два расследования на работающем стенде. Службы останавливать и данные
|
||||
портить не понадобится.
|
||||
|
||||
## Расследование 1. Кто читает больше всех
|
||||
|
||||
Начните в спокойный момент: не запускайте одновременно свои тяжелые запросы.
|
||||
Откройте дашборд «Запросы». На панели «Тяжёлые запросы: что прочитало больше
|
||||
всех» найдите запрос пользователя `grafana`. Он часто оказывается наверху, но
|
||||
при другой нагрузке первым будет другой запрос.
|
||||
|
||||
Сохраните:
|
||||
|
||||
- границы окна и время запроса;
|
||||
- место запроса в списке, пользователя и ноду;
|
||||
- текст запроса;
|
||||
- длительность, память, число прочитанных и отданных строк.
|
||||
|
||||
По тексту найдите панель, которая выполнила запрос. Ищите ее среди трех
|
||||
дашбордов по названиям колонок, таблиц и показателей. Запишите, зачем панели
|
||||
нужно читать столько строк и согласуется ли цена с вопросом, на который она
|
||||
отвечает.
|
||||
|
||||
Затем через меню панели откройте «Inspect» -> «Query» у панели «Кто спрашивает:
|
||||
сколько запросов и какой у них аппетит». Ответьте на два вопроса:
|
||||
|
||||
1. Почему журнал читают сразу с обеих нод?
|
||||
2. Почему из счета исключены строки начала запроса и работа шардов?
|
||||
|
||||
Проверьте второе объяснение по панели ошибок: там правило для работы шардов
|
||||
другое. Объясните, почему различаются вопросы панелей, а не только их SQL.
|
||||
|
||||
## Расследование 2. Как меняется свежесть заказов
|
||||
|
||||
Откройте дашборд «Данные». Панель «Свежесть: сколько прошло с последней
|
||||
доехавшей строки» показывает текущее число, а не историю. До наблюдения
|
||||
нарисуйте ожидаемую форму свежести событий и заказов в течение одного живого
|
||||
дня. Отдельно отметьте момент доставки слепка заказов.
|
||||
|
||||
Если `world_live` снят с паузы, наблюдайте его текущий или следующий
|
||||
`world_live_day`: новый ручной запуск встанет в очередь. Если выключатель на
|
||||
паузе и активного живого дня нет, запустите один `world_live_day` вручную.
|
||||
Модельные сутки занимают около 24 реальных минут.
|
||||
|
||||
Запишите несколько наблюдений до конца дня и сразу после него:
|
||||
|
||||
| Реальное время | Свежесть событий, с | Свежесть заказов, с | Что происходило в Airflow |
|
||||
|---|---:|---:|---|
|
||||
| | | | |
|
||||
|
||||
Дашборд обновляется раз в минуту, поэтому точного совпадения момента
|
||||
доставки со строкой таблицы ждать не нужно. Рост и сброс свежести заказов
|
||||
перенесите на свой набросок. Объясните форму линии: какую метку времени
|
||||
вычитает панель из текущего времени, почему число растет и какое событие его
|
||||
сбрасывает. Модельную дату сыгранного дня подпишите отдельно от реального
|
||||
времени наблюдения.
|
||||
|
||||
Подтвердите сброс двумя следами:
|
||||
|
||||
- в Airflow завершился прием слепка `orders_ingest`;
|
||||
- на панели «Дневной слепок заказов: какой доехал, когда и после какой паузы»
|
||||
появилась новая верхняя строка.
|
||||
|
||||
Если вы начали после доставки, дождитесь следующего дня либо честно запишите,
|
||||
какую часть формы увидели. Одно текущее значение не доказывает ни рост, ни
|
||||
сброс.
|
||||
|
||||
## Объясните путь данных
|
||||
|
||||
Не открывая справочник, объясните своими словами:
|
||||
|
||||
- почему свежесть считают в ODS, а поток - в STG;
|
||||
- почему знаменатель доли брака берут из STG;
|
||||
- почему числитель и знаменатель доли брака должны использовать одно окно.
|
||||
|
||||
Свяжите ответы с тем, что вы видели на панелях. Затем сверьте объяснение с
|
||||
[главой о мониторинге](../handbook/monitoring.md) и справочниками дашбордов
|
||||
[«Запросы»](../architecture/monitoring/queries.md) и
|
||||
[«Данные»](../architecture/monitoring/data.md). Устройство живого дня и
|
||||
доставки слепка описано в [главе об Airflow](../handbook/airflow-dags.md).
|
||||
|
||||
## Приемка
|
||||
|
||||
- [ ] для каждого из трех дашбордов записан вопрос, на который он отвечает;
|
||||
- [ ] сохранены окно, текст и показатели стоимости одного реального запроса,
|
||||
найдена выполнившая его панель;
|
||||
- [ ] объяснено, как журнал собирают с двух нод и какие записи учитывают для
|
||||
счета запросов;
|
||||
- [ ] до наблюдения нарисован прогноз свежести событий и заказов, а форма
|
||||
линии объяснена через метку последней доставки;
|
||||
- [ ] записаны несколько наблюдений, на наброске видны рост и сброс свежести
|
||||
заказов, а доставка подтверждена в Airflow и на панели слепков;
|
||||
- [ ] модельная дата отделена от реального времени наблюдения;
|
||||
- [ ] объяснен выбор слоев для свежести, потока и доли брака, а также общее
|
||||
окно числителя и знаменателя;
|
||||
- [ ] службы не остановлены, данные вручную не правились, стендовые дашборды
|
||||
не изменены.
|
||||
+1
-3
@@ -14,9 +14,7 @@
|
||||
| 4 | [Перепиши нарезку стенда](4-1-session-pipeline.md) | изменить расчетную сущность внутри готового конвейера и проверить ее внешним эталоном |
|
||||
| 5 | [Сначала сторож, потом ломай: заказы](5-1-order-checks.md)<br>[Перепишите разбор заказов в ODS](5-2-order-parsing.md)<br>[Перепишите сборку заказов в DDS](5-3-order-pipeline.md) | написать проверки качества до рискованного изменения, затем переписать разбор и сборку заказов |
|
||||
| 6 | [Разбери сырые события и сверь результат со стендом](6-1-event-parsing.md) | изучить разбор потока отдельно от живого приема и сверить его со стендовым результатом |
|
||||
| 7 | Мониторинг: куда смотреть | выбрать, куда и на что смотреть в живой системе |
|
||||
|
||||
ТЗ для ступени 7 появится по мере продвижения программы.
|
||||
| 7 | [Мониторинг: куда смотреть](7-1-monitoring.md) | выбрать, куда и на что смотреть в живой системе |
|
||||
|
||||
## Ступень 1: пять витрин слоя DM
|
||||
|
||||
|
||||
Reference in new issue
Block a user