Надёжный healthcheck ClickHouse и пример запроса в DEPLOY

- healthcheck ClickHouse переведён на wget по http://127.0.0.1:8123/ping без зависимости от переменных окружения
- wget подтверждён в образе clickhouse-server (используется его entrypoint)
- пример запроса к событиям в DEPLOY выполняется от пользователя контейнера, а не от хостовой оболочки
- версия 0.3.6
This commit is contained in:
MpakobecEx 2026-10-16 15:31:21 +05:00
parent cd9004c10f
commit 575a0dd9fc
6 changed files with 7 additions and 15 deletions

View File

@ -69,8 +69,8 @@ ClickHouse наружу **не публикуется**: только loopback
make ch E=test # clickhouse-client контура make ch E=test # clickhouse-client контура
# пример: события за сегодня по типам # пример: события за сегодня по типам
docker compose -p test --env-file env/test.env -f docker-compose.prod.yml exec -T clickhouse \ docker compose -p test --env-file env/test.env -f docker-compose.prod.yml exec -T clickhouse \
clickhouse-client --user "$CLICKHOUSE_USER" --password "$CLICKHOUSE_PASSWORD" \ sh -lc 'clickhouse-client --user "$CLICKHOUSE_USER" --password "$CLICKHOUSE_PASSWORD" \
--query "SELECT event_type, count() FROM analytics.events WHERE toDate(event_time) = today() GROUP BY event_type" --query "SELECT event_type, count() FROM analytics.events WHERE toDate(event_time) = today() GROUP BY event_type"'
``` ```
Если ClickHouse недоступен, бот продолжает работать: события уходят в stdout (WARNING), Если ClickHouse недоступен, бот продолжает работать: события уходят в stdout (WARNING),

View File

@ -104,7 +104,7 @@ make backup E=test # ./scripts/clickhouse_backup.sh test
## Версионирование ## Версионирование
- Единый источник версии — `common/version.py` (`__version__`), текущая — `0.3.5`. - Единый источник версии — `common/version.py` (`__version__`), текущая — `0.3.6`.
- Схема — SemVer-подобная (`MAJOR.MINOR.PATCH`); git-тег = `v` + версия (`v0.1`). - Схема — SemVer-подобная (`MAJOR.MINOR.PATCH`); git-тег = `v` + версия (`v0.1`).
- Docker-образы тегируются версией (Блок 2), события ClickHouse получают `bot_version` (Блок 3). - Docker-образы тегируются версией (Блок 2), события ClickHouse получают `bot_version` (Блок 3).
- Выпуск: изменить `common/version.py` → коммит → аннотированный тег `vX.Y` → `git push --tags`. - Выпуск: изменить `common/version.py` → коммит → аннотированный тег `vX.Y` → `git push --tags`.

View File

@ -7,4 +7,4 @@
from __future__ import annotations from __future__ import annotations
__version__ = "0.3.5" __version__ = "0.3.6"

View File

@ -85,11 +85,7 @@ services:
soft: 262144 soft: 262144
hard: 262144 hard: 262144
healthcheck: healthcheck:
test: test: ["CMD-SHELL", "wget --spider -q -T 5 http://127.0.0.1:8123/ping || exit 1"]
- CMD-SHELL
- >-
clickhouse-client --user "$${CLICKHOUSE_USER}" --password "$${CLICKHOUSE_PASSWORD}"
--query "SELECT 1" > /dev/null || exit 1
interval: 15s interval: 15s
timeout: 10s timeout: 10s
retries: 10 retries: 10

View File

@ -86,11 +86,7 @@ services:
soft: 262144 soft: 262144
hard: 262144 hard: 262144
healthcheck: healthcheck:
test: test: ["CMD-SHELL", "wget --spider -q -T 5 http://127.0.0.1:8123/ping || exit 1"]
- CMD-SHELL
- >-
clickhouse-client --user "$${CLICKHOUSE_USER}" --password "$${CLICKHOUSE_PASSWORD}"
--query "SELECT 1" > /dev/null || exit 1
interval: 15s interval: 15s
timeout: 10s timeout: 10s
retries: 10 retries: 10

View File

@ -7,4 +7,4 @@ from common import __version__
def test_version_is_set(): def test_version_is_set():
assert __version__ assert __version__
assert __version__ == "0.3.5" assert __version__ == "0.3.6"