From 900e9498ca1d3f75031b05b349bc12547c7e63d3 Mon Sep 17 00:00:00 2001 From: Dmitry Dementev Date: Tue, 7 Jul 2026 22:00:00 +0300 Subject: [PATCH] =?UTF-8?q?docs(course):=20=D1=83=D1=81=D1=82=D1=80=D0=B0?= =?UTF-8?q?=D0=BD=D0=B5=D0=BD=D1=8B=20=D1=88=D0=B5=D1=80=D0=BE=D1=85=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D1=82=D0=BE=D1=81=D1=82=D0=B8=20=D0=BF=D1=83=D1=82?= =?UTF-8?q?=D0=B8=20=D0=BC=D0=B5=D0=BD=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Зачем: - ревью пути менти 2026-07-07 нашло четыре места, где документация сбивает новичка: скрытый шаг с паузой etl_pipeline, два рецепта первого запуска без связки, неверное число дашбордов и пустые панели Airflow на backfill-only пути. - Что: - README: добавлен шаг «снимите паузу с etl_pipeline» перед backfill и пометка, что generated-history-analytics — тот же путь одной командой; - курс: README курса связывает оба рецепта первого запуска, урок 05 называет четыре дашборда (включая Generator Overview) и объясняет, почему панели Airflow пусты до запуска etl_pipeline. - Проверка: - чтение задетых разделов; имена дашбордов сверены с provisioning Grafana в ходе ревью. Co-Authored-By: Claude Fable 5 --- README.md | 8 ++++++-- docs/course/README.md | 4 +++- docs/course/lessons/05_monitoring.md | 12 ++++++++---- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index d312d5c..f9d8bb2 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,9 @@ make ddl docker compose ps ``` -Откройте Airflow: `http://localhost:8080` (`admin/admin`). Запустите +Откройте Airflow: `http://localhost:8080` (`admin/admin`). Сначала снимите +паузу с DAG `etl_pipeline` (переключатель слева от имени): на свежем стенде он +создаётся на паузе, и `backfill` откажется стартовать. Затем запустите `generator_control` с операцией `backfill`: DAG создаст стартовую историю, запустит ETL и выполнит `check`. `make up` не запускает live-генератор; live включается отдельно командой `make generator-continue`. @@ -49,7 +51,9 @@ Airflow-образ и подтягивает новые зависимости собирается позже, когда DM уже готов: через `make generated-history-analytics` или `make superset-init`. -Для полностью автоматического чистого прогона из консоли остаётся команда: +Для полностью автоматического чистого прогона из консоли есть команда — это +тот же путь, что выше через Airflow UI, но одной командой и без ручных шагов +(DDL она применяет сама, отдельный `make ddl` не нужен): ```bash make generated-history-analytics diff --git a/docs/course/README.md b/docs/course/README.md index 42d9f1d..5b0608e 100644 --- a/docs/course/README.md +++ b/docs/course/README.md @@ -36,7 +36,9 @@ ``` Эта команда проводит штатный путь стенда: готовый источник данных создаёт стартовую - историю, события попадают в Kafka, затем в STG, ODS, DDS, DM и Superset. Файлы + историю, события попадают в Kafka, затем в STG, ODS, DDS, DM и Superset. Это тот же + путь, что ручной вариант из README (Airflow UI и операция `backfill`), но одной + командой — выбери один из двух, оба ведут к одинаковому стенду. Файлы `data/*.jsonl` пока остаются только кладовкой готовых значений для генератора (браузеры, страны, устройства, UTM), а не источником аналитического контура. `make up` после неё поднимает остальные UI-сервисы курса: Kafka UI, Airflow, Prometheus и Grafana. diff --git a/docs/course/lessons/05_monitoring.md b/docs/course/lessons/05_monitoring.md index 4b24d7a..0555a1c 100644 --- a/docs/course/lessons/05_monitoring.md +++ b/docs/course/lessons/05_monitoring.md @@ -67,8 +67,10 @@ make generated-history-analytics make up ``` -Если хочешь отдельно посмотреть Airflow-run после готовой истории, запусти `etl_pipeline` -в Airflow с конфигом: +Учти: путь `generated-history-analytics` собирает витрины напрямую, без запуска +`etl_pipeline`, поэтому панели про задачи Airflow в `Airflow Overview` останутся +пустыми, пока ты хотя бы раз не запустишь `etl_pipeline` сам (это делалось в +уроке 4). Запустить его можно в Airflow с конфигом: ```json {"full_refresh": true} @@ -118,11 +120,13 @@ curl -s http://localhost:9090/api/v1/targets | grep -o '"health":"[^"]*"' - строка поиска сверху помогает быстро найти `ClickHouse Overview`, `Kafka Overview` или `Airflow Overview`, если меню выглядит иначе. -В **Dashboards** должны быть три дашборда: +В **Dashboards** должны быть четыре дашборда: - `ClickHouse Overview`; - `Kafka Overview`; -- `Airflow Overview`. +- `Airflow Overview`; +- `Generator Overview` — про live-генератор; на backfill-only стенде он пуст, + как и target `generator` выше, и в этом уроке не понадобится. Открой каждый и смотри не на красоту графиков, а на смысл: какой слой стенда он показывает и какой вопрос помогает задать.