feat(infra): добавлен автономный генератор событий для Kafka

- Зачем:
  - нужен постоянный поток данных для демонстрации работы стека
  - текущий batch-загрузчик не позволяет показать streaming-сценарии
- Что:
  - добавлен сервис generator с режимом steady (Poisson-интенсивность)
  - генератор публикует в 4 топика: browser/location/device/geo_events
  - сохраняются связи event_id и click_id между событиями
  - сборка через uv для скорости и компактности образа
  - добавлены команды generator-* в Makefile
  - комплексные тесты: валидация, статистика, формат сообщений
- Проверка:
  - `docker run --rm -v $(pwd)/..:/workspace -w /workspace/generator generator:test python test_comprehensive.py` — 8/8 тестов
  - `make generator-up` — 3 тика без ошибок, отправлено 2904 сообщения
This commit is contained in:
2026-06-09 17:27:01 +03:00
committed by Dmitry Dementiev
parent 7c6cfd7d18
commit e8d1c9efa9
9 changed files with 1332 additions and 1 deletions
+22 -1
View File
@@ -1,6 +1,7 @@
.PHONY: up down clean ddl data transform logs \
reload-monitoring recover-monitoring \
superset-init superset-dashboard superset-ui superset-restart
superset-init superset-dashboard superset-ui superset-restart \
generator-up generator-down generator-logs generator-restart
COMPOSE ?= docker compose
@@ -85,3 +86,23 @@ superset-ui:
# Перезапуск Superset
superset-restart:
$(COMPOSE) restart superset
# ============================================================================
# Генератор событий (автономный стриминг)
# ============================================================================
# Запустить только генератор (полезно для отладки)
generator-up:
$(COMPOSE) up -d --build generator
# Остановить генератор
generator-down:
$(COMPOSE) stop generator
# Логи генератора
generator-logs:
$(COMPOSE) logs -f --tail=100 generator
# Перезапуск генератора с пересборкой
generator-restart:
$(COMPOSE) up -d --build --force-recreate generator