- Зачем: - подготовлен пол мониторинга для SQL-панелей и метрик отставания Kafka. - Что: - добавлены отдельная роль ClickHouse, источник Grafana и Kafka exporter. - образ Grafana собирается с закреплённым плагином вне тома данных. - Prometheus, смоук и документация обновлены под четыре цели. - Проверка: - make config-test; make lint. - make smoke; make check-clickhouse; make check-services. - make -C generator lint typecheck test.
5.7 KiB
Мониторинг: из чего собран и что скребёт
Документ описывает зону мониторинга: какие сервисы в неё входят, что собирает Prometheus, какие источники данных подготовлены в Grafana и каким пользователем она ходит в ClickHouse. Зачем зоне именно такой состав и какие дашборды на нём задуманы — ADR 0002; устройство доступа — ADR 0007.
Что здесь есть и чего ещё нет. Собран пол: свой образ Grafana с плагином
ClickHouse, два подготовленных источника данных, экспортёр метрик Kafka и цель
для него у Prometheus. Дашбордов пока ни одного — каталог под них заведён
пустым, панели приносят отдельные тикеты. Правил оповещения и серверного
журнала system.text_log тоже пока нет.
Состав
| Сервис | Образ | Что делает |
|---|---|---|
prometheus |
prom/prometheus:v3.13.2 |
опрашивает цели раз в 15 секунд, порт стенда 29090 |
grafana |
clickstream-grafana:local |
интерфейс мониторинга; собирается из infra/grafana/, порт стенда 23000 |
kafka-exporter |
danielqsj/kafka-exporter:v1.9.0 |
переводит состояние брокера в метрики Prometheus, порт 9308 |
Плагин ClickHouse 4.20.0 входит в образ Grafana. Фоновая установка плагинов при запуске отключена.
Что скребёт Prometheus
| Цель | Задание | Метка role |
Откуда метрики |
|---|---|---|---|
clickhouse-01:9363 |
clickhouse |
server |
встроенный экспортёр ноды |
clickhouse-02:9363 |
clickhouse |
server |
встроенный экспортёр ноды |
clickhouse-keeper:9363 |
clickhouse-keeper |
keeper |
встроенный экспортёр keeper |
kafka-exporter:9308 |
kafka |
exporter |
внешний экспортёр |
Ровно эти четыре цели пересчитывает check_prometheus_targets в
scripts/stand-smoke.sh — и по значению up, и по списку адресов. Пятая цель
красит смоук; это и есть способ заметить, что состав пола поменяли молча.
Источники данных Grafana
Оба источника подготовлены файлами в infra/grafana/provisioning/datasources/
и объявлены editable: false: править их через интерфейс нельзя, источник
истины — репозиторий.
prometheus— основной по умолчанию, ходит наhttp://prometheus:9090.clickhouse— плагинgrafana-clickhouse-datasource, нативный протокол,clickhouse-01:9000, пользовательgrafana, пароль из.env.
Источник ClickHouse смотрит на clickhouse-01. Системные таблицы обеих нод
панели читают через clusterAllReplicas, как принято в ADR 0002.
Доступ к ClickHouse
Grafana ходит пользователем grafana с ролью monitoring_reader: читает слои,
таблицы базы dic и системные таблицы. REMOTE разрешает
clusterAllReplicas, CLUSTER — запросы ON CLUSTER. Решение о своей роли
записано в ADR 0007. Пароль задаётся
переменной CLICKHOUSE_GRAFANA_PASSWORD.
Куда кладутся дашборды
Каталог infra/grafana/provisioning/dashboards/ смонтирован в контейнер и
объявлен провайдером в provider.yml: Grafana подхватывает оттуда файлы
дашбордов, удалять и править их через интерфейс запрещено. Сейчас в каталоге
только сам файл провайдера. Тикет с панелями кладёт туда JSON и в
compose.yaml уже не заходит — ради этого каталог и заведён заранее.
Что проверено
Права роли monitoring_reader сверены 21 августа 2026 года по документации
ClickHouse через MCP Context7; разбор — в
ADR 0007, раздел «Что проверено».
Сам состав проверен на живом стенде 21 августа 2026 года, собранном заново
после make clean.
- Grafana видит плагин
grafana-clickhouse-datasource4.20.0 (/api/plugins?type=datasource), оба подготовленных источника здоровы. - Запрос источника ClickHouse к
system.oneчерезclusterAllReplicasвернул 2 — с одной ноды видны обе. - Prometheus видит ровно четыре цели, все со значением
up = 1; запросkafka_consumergroup_lagвернул ряды по группамclickstream_*. make smoke21/21,make check-clickhouse10/10,make check-services7/7.