Решение проблем¶
Telegram: сигнал в Postgres есть, в чат не приходит¶
- Убедитесь, что в
.envзаданыTELEGRAM_BOT_TOKENиTELEGRAM_CHAT_ID, контейнерdetectorперезапущен после правок.env(docker compose up -d detector). - Смотрите логи:
docker compose logs detector | findstr /i telegram(Windows) илиdocker compose logs detector 2>&1 | grep -i telegram(Linux/macOS).
При ошибке Bot API в лог пишется тело ответа (description). Частые причины: - в режиме
parse_mode=HTMLне поддерживаются теги<br>/<br/>— в проекте переносы делаются символом новой строки; - неверный
chat_id(для супергрупп часто нужен id вида-100…); - бот не добавлен в канал/группу или нет прав писать в топик (
message_thread_id). - При HTTP 400 детектор повторяет отправку без HTML (plain text), чтобы сообщение всё равно дошло.
Быстрая проверка: сигнал без живого рынка¶
С хоста при работающем Redpanda и детекторе:
Ожидается trading_status_changed в Postgres и в GET /signals/recent. Параметры: KAFKA_HOST_BOOTSTRAP_SERVERS, KAFKA_RAW_TOPIC, опционально --instrument-id (ключ как в conf/instruments.yaml).
ClickHouse: clickhouse-init завершился с ошибкой¶
- TTL / DateTime64: в
001_market_raw.sqlдля MergeTree TTL используетсяtoDateTime(source_time), иначе в новых версиях CH возможна ошибкаBAD_TTL_EXPRESSION. - Представления VWAP: во
002_feature_store_bars.sqlагрегаты во внешнем SELECT не вкладываютsum()внутрь другогоsum()— см. подзапросы сtrades_total.
Dagster UI недоступен¶
Проверьте порт HOST_DAGSTER_PORT (по умолчанию 30300) и что подняты dagster-webserver и dagster-daemon. Подробности — orchestration.md.
Redis: ModuleNotFoundError: redis в детекторе¶
Пакет redis входит в зависимости основного pyproject.toml; пересоберите образ: docker compose build detector && docker compose up -d detector.