feat(monitoring): подготовлена основа мониторинга Kafka и ClickHouse

- Зачем:
  - подготовлен пол мониторинга для 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.
This commit is contained in:
ddadmin committed 2026-08-21 09:56:56 -04:00
1 parent 0bb07fd91d
commit c5dd9c2d34
14 files changed
+326 -47

No files matched your search

+19
View File
@@ -44,6 +44,18 @@
<query>GRANT SELECT ON system.settings</query>
</grants>
</analyst_reader>
<monitoring_reader>
<grants>
<query>GRANT SELECT ON stg.*</query>
<query>GRANT SELECT ON ods.*</query>
<query>GRANT SELECT ON dds.*</query>
<query>GRANT SELECT ON dm.*</query>
<query>GRANT SELECT ON dic.*</query>
<query>GRANT SELECT ON system.*</query>
<query>GRANT CLUSTER ON *.*</query>
<query>GRANT REMOTE ON *.*</query>
</grants>
</monitoring_reader>
<!-- Учётка словаря: пароля нет намеренно, см. ADR 0007. -->
<dict_reader>
<grants>
@@ -77,6 +89,13 @@
<query>GRANT analyst_reader</query>
</grants>
</analyst>
<grafana>
<password from_env="CLICKHOUSE_GRAFANA_PASSWORD"/>
<quota>default</quota>
<grants>
<query>GRANT monitoring_reader</query>
</grants>
</grafana>
<dict>
<no_password/>
<quota>default</quota>
+11
View File
@@ -0,0 +1,11 @@
FROM grafana/grafana:13.1.1
# Именованный том закрывает /var/lib/grafana, поэтому плагин остаётся в образе.
# Фоновая установка выключена: нужная версия уже закреплена, а каталог образа
# доступен процессу Grafana только для чтения.
USER root
ENV GF_PATHS_PLUGINS=/usr/share/grafana/plugins \
GF_PLUGINS_PREINSTALL_DISABLED=true
RUN grafana cli --pluginsDir "$GF_PATHS_PLUGINS" \
plugins install grafana-clickhouse-datasource 4.20.0
USER grafana
@@ -0,0 +1,11 @@
apiVersion: 1
providers:
- name: clickstream
orgId: 1
folder: ""
type: file
disableDeletion: true
editable: false
options:
path: /etc/grafana/provisioning/dashboards
@@ -0,0 +1,17 @@
apiVersion: 1
datasources:
- name: ClickHouse
uid: clickhouse
type: grafana-clickhouse-datasource
access: proxy
isDefault: false
editable: false
jsonData:
host: clickhouse-01
port: 9000
protocol: native
username: grafana
defaultDatabase: system
secureJsonData:
password: ${CLICKHOUSE_GRAFANA_PASSWORD}
+6
View File
@@ -16,3 +16,9 @@ scrape_configs:
- clickhouse-keeper:9363
labels:
role: keeper
- job_name: kafka
static_configs:
- targets:
- kafka-exporter:9308
labels:
role: exporter