Commit Graph
53 Commits
Author SHA1 Message Date
ddadminandClaude Opus 5 63c42bc068 feat(infra): стенд целиком — Kafka, Airflow 3, Superset и мониторинг одной командой
Зачем: рядом с кластером ClickHouse не хватало остальной платформы, а
поднимать её по кускам — значит каждый раз вспоминать порядок. Теперь
`make up` даёт стенд целиком, а `make smoke` честно отвечает, работает он
или нет.

Что:
- Kafka в режиме KRaft (без ZooKeeper), Postgres под метаданные, Airflow
  3.3 четырьмя сервисами и Superset 6.1 с драйверами ClickHouse;
- мониторинг: Prometheus снимает метрики с обеих нод ClickHouse и keeper,
  Grafana получает подготовленный источник данных;
- подключение Airflow ведёт на ноду 1, подключение Superset — на ноду 2:
  ловушка правильных ошибок, забытый `ON CLUSTER` виден в дашборде сам;
- `scripts/stand-smoke.sh` — сквозная проверка из 24 пунктов: топик в
  Kafka, цели Prometheus, запуск примера DAG через API Airflow, проверка
  подключения Superset и расход памяти против порога 3,4 ГБ;
- `make config-test` — статические ворота: Compose, синтаксис Bash и
  Python, стражи README; стражи smoke проверяют, что отчёт краснеет на
  сломанном стенде и зеленеет после восстановления;
- решения записаны в `docs/adr/0001-stand-services.md`, состав стенда и
  порядок работы — в README.

Проверка: на чистых томах `make clean` → `cp .env.example .env` →
`make up` (1 мин 51 с) → `make smoke` — 24 пройдено, 0 ошибок, 2171 MiB.
Перезапуск `make down` → `make up` → `make smoke` — 24/0. Также зелены
`make config-test` (3/0 и 5/0), `make smoke-cluster` (8/8) и
`make smoke-guards` (3/0 и 3/0).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-31 08:46:04 +03:00
Dmitry DementievandClaude Fable 5 4bb0bdfd1a docs(spec): зафиксирована Airflow 3.x как версия стенда v2
Зачем: при нарезке этапов выяснилось, что образцы DAG'ов из v1 написаны под
Airflow 2 и переносятся не буквально — в третьей версии Datasets
переименованы в Assets. Без явной записи в спеке версия всплыла бы уже при
написании DAG'ов этапа 5.

Что: в раздел «Проверить при исполнении» добавлен пункт про Airflow 3.x —
версия фиксируется на этапе 1 (каркас стенда), DAG'и этапа 5 пишутся под API
третьей версии, операторы и сенсоры сверяются через Context7.

Проверка: правка текстовая, только спека; тот же порядок продублирован в
тикетах этапов 1 и 5 в трекере.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-30 16:52:09 +03:00
Dmitry Dementiev 8046e543d0 chore(repo): заложен репозиторий v2 — контракт, спека, исследование
- Зачем:
  - спека «Боевой реализм стенда» исполняется в новом репозитории:
    предшественник замораживается как стабильный учебный стенд,
    v2 стартует пустым и переносит только нужное
- Что:
  - README: что это, статус «строится по спеке», ссылки на спеку и на
    репозиторий-предшественник
  - AGENTS.md написан заново, а не скопирован: язык, uv, обязательная
    проверка API через MCP Context7, контракт трекера Gitea (спека —
    источник истины, корневой issue тонкий), метки триажа, новые доки в docs/
  - .gitignore: Python и uv, .env, секреты, IDE, логи
  - docs/specs/2026-07-30-stand-v2-realism.md перенесена из v1; содержание
    не менялось, поправлены только ссылки: добавлена строка о переезде,
    ссылка на generator-realism.md переведена на абсолютный URL v1
  - docs/research/2026-07-26-yandex-clickstream-format.md перенесено:
    источник истины по формату широкого события
  - лицензии у предшественника нет, переносить нечего
- Проверка:
  - git show --stat: 5 файлов
  - относительные ссылки спеки ведут на существующие файлы репозитория
2026-07-30 15:47:55 +03:00