Это руководство посвящено самому процессу оператора (controller manager). Для метрик ClickHouse server (запросы, части, задержка репликации) используйте конечную точку Prometheus в ClickHouse, чтобы собирать их отдельно.
Конечные точки
Конечная точка метрик по умолчанию отключена, если запускать бинарный файл оператора напрямую (
--metrics-bind-address=0). Helm-чарт включает её с помощью metrics.enable: true и metrics.port: 8080.
Конечная точка проверки состояния всегда включена; шаблон развертывания связывает /healthz и /readyz с проверками работоспособности и готовности пода на порту 8081.
Флаги бинарного файла оператора
manager (определены в cmd/main.go):
Соглашение
8443 (HTTPS) / 8080 (HTTP) в тексте справки для флага — лишь подсказка. Helm-чарт обслуживает HTTPS на 8080, потому что задаёт и metrics.port: 8080, и metrics.secure: true. Автоопределения режима по порту нет — HTTP или HTTPS выбирается через --metrics-secure.Включение метрик через Helm
Service для порта метрик и, при необходимости, ServiceMonitor для prometheus-operator.
Сама конечная точка метрик включена по умолчанию (metrics.enable: true, порт 8080, доступна по HTTPS через metrics.secure: true). Обычно достаточно изменить только параметр prometheus.enable, чтобы чарт создал ServiceMonitor за вас:
certManager.enable: false, и тогда ServiceMonitor будет собирать метрики с insecureSkipVerify: true, полагаясь только на аутентификацию по bearer-токену.
Полный набор связанных с метриками значений по умолчанию:
Service/<resource-prefix>-metrics-service— предоставляет порт8080(HTTPS, еслиmetrics.secure: true).ServiceMonitor/<resource-prefix>-controller-manager-metrics-monitor— еслиprometheus.enable: true.ClusterRole/<resource-prefix>-metrics-reader— нересурсный URL/metricsс правомget.
Защита конечной точки метрик
metrics.secure: true, сервер метрик требует TLS и аутентификацию/авторизацию Kubernetes при каждом опросе. Scraper’ы должны:
- Предъявлять действительный Kubernetes Bearer-токен.
- Использовать ServiceAccount, привязанный к РольКластера, которая предоставляет
getдля нересурсного URL/metrics.
Справочник по ServiceMonitor
prometheus.enable: true:
tlsConfig.insecureSkipVerify: true и используйте только аутентификацию по bearer-токену — чарт уже делает это, когда certManager.enable: false.
Автономный пример Prometheus
examples/prometheus_secure_metrics_scraper.yaml. Он создаёт ServiceAccount, необходимые объекты RBAC и ресурс Prometheus (CR), который выбирает ServiceMonitor оператора.
Конечные точки проверки состояния
Обе конечные точки регистрируются с одной и той же простой ping-проверкой (
healthz.Ping из sigs.k8s.io/controller-runtime). Поэтому сбой пробы означает “процесс manager не обслуживает HTTP на :8081”, а не “с контроллерами что-то не так”. Чтобы выявлять проблемы на уровне контроллеров, используйте вместо этого метрики реконсиляции.
Обе конечные точки по умолчанию доступны на порту 8081. Они подключены к развертыванию следующим образом:
unable to start manager, сбоев RBAC или ошибок cache did not sync.
Каталог метрик
controller-runtime и client-go, лежащими в основе оператора. Ниже приведены наиболее полезные серии, сгруппированные по назначению:
Активность реконсиляции
Метка
controller определяется в controller-runtime на основе типа ресурса, зарегистрированного через For(...). В текущем коде в internal/controller/clickhouse и internal/controller/keeper это будут clickhousecluster и keepercluster соответственно. Если вы изменяли оператор, проверьте это с помощью однократного сбора /metrics.
Рабочая очередь
Метки
name и controller имеют одно и то же значение (имя контроллера).
Трафик API-сервера
Выбор лидера
В Helm-чарте флаг
--leader-elect включён по умолчанию, поэтому эта метрика присутствует в стандартных установках через Helm. При запуске бинарного файла напрямую без этого флага метрика отсутствует.
Среда выполнения
go_goroutines, go_memstats_*, process_cpu_seconds_total, process_resident_memory_bytes и т. д.
Полезные запросы PromQL
Обзор состояния
Выявление накопления очереди
Троттлинг и нагрузка на API
Статус лидера (HA-развертывание)
Рекомендуемые оповещения
Проверка установки
clickhouse-operator-system:
- Установка — значения Helm для мониторинга.
- Конфигурация — настройка TLS, общая с сервером метрик.