Дашборды «Кластер» и «Запросы»: системные таблицы через clusterAllReplicas #116

Closed
opened 2026-08-21 14:44:11 +03:00 by ddmitry · 1 comment
Owner

Part of #11. Блокируется #114.

Цель

Два оставшихся дашборда ADR 0002: «Кластер» — что с машиной, «Запросы» — что
выполнялось и сколько съело. Учебный результат у обоих один по форме: симптом
инфраструктуры оказывается следствием решения человека.

На приёмке они работают инструментом: этап 5 — партиционная переобработка, то
самое место, где рождаются лишние части; этап 8 — Superset с вопросом «почему
мой дашборд тормозит».

Что войдёт

Два дашборда в infra/grafana/provisioning/dashboards/. Состав обоих и довод
про clusterAllReplicas — ADR 0002, раздел «Решение».

Сверх ADR:

  • шкалы и окна «Кластера» выбираются так, чтобы под нагрузкой были видны подъём
    на вставке и оседание после слияний: форма кривой и есть урок;
  • урок про clusterAllReplicas называется в наборе docs/architecture/monitoring/, не в JSON панели.

Границы

  • Порогов и цветовых вердиктов нет — то же, что у #115 (спека, раздел 9).
  • system.text_log не включать: он в хвосте этапа, #117.
  • Разбирать текст на два дашборда, если один начнёт отвечать на оба вопроса:
    дашборд, отвечающий на три вопроса сразу, не отвечает ни на один.

Кому что

Заголовки панелей и SQL — Opus. Кодексу — сборка JSON, прогоны под нагрузкой,
снятие приёмки.

Сначала прочитать

  • docs/adr/0002-monitoring-scope.md — состав обоих дашбордов и довод про
    clusterAllReplicas;
  • docs/adr/0004-resource-limits.md — «коробка» и отказ ноды по памяти при
    здоровом виде снаружи;
  • docs/architecture/storage.md — раскладка таблиц и реплик.

Проверка

make config-test; на стенде make smoke и make check-clickhouse зелёные.

  • Обе ноды видны на каждой панели, где должны: панель по системной таблице
    без clusterAllReplicas не остаётся ни одной.
  • Под нагрузкой (make generate-batch) на «Кластере» виден подъём
    процессора и обращений к дискам и оседание после слияний.
  • «Запросы» показывают только что выполненный тяжёлый запрос с его памятью
    и числом прочитанных строк.
  • Ни одна панель не хранит команду, настройку или пометку про тик.
Part of #11. Блокируется #114. ## Цель Два оставшихся дашборда ADR 0002: «Кластер» — что с машиной, «Запросы» — что выполнялось и сколько съело. Учебный результат у обоих один по форме: симптом инфраструктуры оказывается следствием решения человека. На приёмке они работают инструментом: этап 5 — партиционная переобработка, то самое место, где рождаются лишние части; этап 8 — Superset с вопросом «почему мой дашборд тормозит». ## Что войдёт Два дашборда в `infra/grafana/provisioning/dashboards/`. Состав обоих и довод про `clusterAllReplicas` — ADR 0002, раздел «Решение». Сверх ADR: - шкалы и окна «Кластера» выбираются так, чтобы под нагрузкой были видны подъём на вставке и оседание после слияний: форма кривой и есть урок; - урок про `clusterAllReplicas` называется в наборе `docs/architecture/monitoring/`, не в JSON панели. ## Границы - Порогов и цветовых вердиктов нет — то же, что у #115 (спека, раздел 9). - `system.text_log` не включать: он в хвосте этапа, #117. - Разбирать текст на два дашборда, если один начнёт отвечать на оба вопроса: дашборд, отвечающий на три вопроса сразу, не отвечает ни на один. ## Кому что Заголовки панелей и SQL — Opus. Кодексу — сборка JSON, прогоны под нагрузкой, снятие приёмки. ## Сначала прочитать - `docs/adr/0002-monitoring-scope.md` — состав обоих дашбордов и довод про `clusterAllReplicas`; - `docs/adr/0004-resource-limits.md` — «коробка» и отказ ноды по памяти при здоровом виде снаружи; - `docs/architecture/storage.md` — раскладка таблиц и реплик. ## Проверка `make config-test`; на стенде `make smoke` и `make check-clickhouse` зелёные. - [ ] Обе ноды видны на каждой панели, где должны: панель по системной таблице без `clusterAllReplicas` не остаётся ни одной. - [x] Под нагрузкой (`make generate-batch`) на «Кластере» виден подъём процессора и обращений к дискам и оседание после слияний. - [x] «Запросы» показывают только что выполненный тяжёлый запрос с его памятью и числом прочитанных строк. - [x] Ни одна панель не хранит команду, настройку или пометку про тик.
ddmitry added the ready-for-agent label 2026-08-21 14:44:56 +03:00
ddmitry added a new dependency 2026-08-21 14:45:00 +03:00
Author
Owner

Слито в PR #123.

Три пункта приёмки закрыты как написаны, четвёртый — нет, и он оставлен без галочки намеренно.

«Панель по системной таблице без clusterAllReplicas не остаётся ни одной» — одна осталась: очередь распределённых DDL. Она лежит не у ноды, а в keeper, обе ноды читают из него одну и ту же очередь целиком, и запрос с обёрткой вернул каждую запись дважды (124 записи с каждой ноды на день замера). Обёртка там добавила бы не правды, а дублей.

Довод и замер записаны в ADR 0002 и в cluster.md. Там же второй, мягкий случай: панель слияний обёртку использует, но складывает ноды в один ряд намеренно — шарды сливают симметрично.

Слито в PR #123. Три пункта приёмки закрыты как написаны, четвёртый — нет, и он оставлен без галочки намеренно. «Панель по системной таблице без `clusterAllReplicas` не остаётся ни одной» — одна осталась: очередь распределённых DDL. Она лежит не у ноды, а в keeper, обе ноды читают из него одну и ту же очередь целиком, и запрос с обёрткой вернул каждую запись дважды (124 записи с каждой ноды на день замера). Обёртка там добавила бы не правды, а дублей. Довод и замер записаны в [ADR 0002](https://git.dementev.space/ddmitry/clickstream-data-platform/src/branch/main/docs/adr/0002-monitoring-scope.md) и в [cluster.md](https://git.dementev.space/ddmitry/clickstream-data-platform/src/branch/main/docs/architecture/monitoring/cluster.md). Там же второй, мягкий случай: панель слияний обёртку использует, но складывает ноды в один ряд намеренно — шарды сливают симметрично.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: ddmitry/clickstream-data-platform#116