Este guia trata do próprio processo do operador (o controller manager). Para métricas do ClickHouse server (consultas, partes, defasagem de replicação), use o Prometheus endpoint no ClickHouse para coletá-las separadamente.
Endpoints
O endpoint de métricas fica desativado por padrão ao executar o binário do operador diretamente (
--metrics-bind-address=0). O Chart do Helm o ativa com metrics.enable: true e metrics.port: 8080.
O endpoint da sonda de integridade está sempre ativado; o modelo de Implantação vincula /healthz e /readyz às sondas de liveness e readiness do pod do Kubernetes na porta 8081.
Flags do binário do operator
manager (definidas em cmd/main.go):
A convenção
8443 (HTTPS) / 8080 (HTTP) no texto de ajuda da flag é apenas uma indicação. O Chart do Helm expõe HTTPS em 8080 porque define tanto metrics.port: 8080 quanto metrics.secure: true. Não há detecção de modo com base na porta — --metrics-secure é o que seleciona HTTPS ou HTTP.Habilite métricas via Helm
Service para a porta de métricas e, opcionalmente, um ServiceMonitor para o prometheus-operator.
O endpoint de métricas em si já vem ativado por padrão (metrics.enable: true, porta 8080, disponibilizado via HTTPS com metrics.secure: true). A única configuração que você normalmente precisa alterar é prometheus.enable, para que o chart crie um ServiceMonitor para você:
certManager.enable: false, e o ServiceMonitor fará o scrape com insecureSkipVerify: true, baseando-se apenas em autenticação por bearer token.
O conjunto completo de valores padrão relacionados a métricas é:
Service/<resource-prefix>-metrics-service— expõe a porta8080(HTTPS quandometrics.secure: true).ServiceMonitor/<resource-prefix>-controller-manager-metrics-monitor— quandoprometheus.enable: true.Função de cluster/<resource-prefix>-metrics-reader— URL sem recurso/metricscom o verboget.
Protegendo o endpoint de métricas
metrics.secure: true, o servidor de métricas impõe TLS e autenticação/autorização do Kubernetes em cada coleta. Os scrapers devem:
- Apresentar um Bearer token válido do Kubernetes.
- Pertencer a uma ServiceAccount vinculada a uma Função de cluster que conceda
getà URL não associada a recurso/metrics.
Referência do ServiceMonitor
prometheus.enable: true:
tlsConfig.insecureSkipVerify: true e use apenas a autenticação com bearer token — o chart já faz isso quando certManager.enable: false.
Exemplo independente do Prometheus
examples/prometheus_secure_metrics_scraper.yaml. Ele cria uma ServiceAccount, o RBAC necessário e um CR Prometheus que seleciona o ServiceMonitor do operador.
Endpoints de sondas de integridade
Ambos os endpoints são registrados com a mesma verificação simples de ping (
healthz.Ping de sigs.k8s.io/controller-runtime). Portanto, uma sonda com falha significa “o processo do manager não está servindo HTTP em :8081” — não “os controllers estão com falha”. Para detectar problemas no nível do controller, use as métricas de reconciliação.
Por padrão, ambos os endpoints são servidos na porta 8081. Eles são conectados à Implantação da seguinte forma:
unable to start manager, falhas de RBAC ou erros cache did not sync.
Catálogo de métricas
controller-runtime e client-go. As séries mais úteis, agrupadas por finalidade:
Atividade de reconciliação
O label
controller é derivado pelo controller-runtime a partir do tipo de recurso registrado com For(...). Com o código atual em internal/controller/clickhouse e internal/controller/keeper, isso resulta em clickhousecluster e keepercluster, respectivamente. Se você tiver personalizado o operator, confirme com um scrape único de /metrics.
Fila de trabalho
Os labels
name e controller têm o mesmo valor (o nome do controller).
Tráfego do servidor de API
Eleição de líder
O Chart do Helm habilita
--leader-elect por padrão, portanto essa métrica está presente nas instalações padrão com Helm. Ao executar o binário diretamente sem a opção, a métrica não é exibida.
Runtime
go_goroutines, go_memstats_*, process_cpu_seconds_total, process_resident_memory_bytes, etc.
Consultas úteis em PromQL
Visão geral da saúde
Detecção de acúmulo
Limitação de taxa e sobrecarga na API
Status do líder (implantação de HA)
Alertas sugeridos
Verificando a configuração
clickhouse-operator-system:
- Instalação — values do Helm relevantes para o monitoramento.
- Configuração — configuração de TLS compartilhada com o servidor de métricas.