Ce guide porte sur le processus de l’opérateur lui-même (le controller-manager). Pour les métriques du ClickHouse server (requêtes, parts, retard de réplication), utilisez l’point de terminaison Prometheus de ClickHouse pour le scraper séparément.
Points de terminaison
Le point de terminaison des métriques est désactivé par défaut lorsque le binaire de l’opérateur est exécuté directement (
--metrics-bind-address=0). Le chart Helm l’active avec metrics.enable: true et metrics.port: 8080.
Le point de terminaison de la sonde de santé est toujours activé ; le template de déploiement relie /healthz et /readyz aux sondes de liveness et de readiness du pod sur le port 8081.
Options du binaire de l’opérateur
manager pertinentes (définies dans cmd/main.go) :
La convention
8443 (HTTPS) / 8080 (HTTP) dans le texte d’aide de l’option n’est qu’une indication. Le chart Helm expose HTTPS sur 8080, car il définit à la fois metrics.port: 8080 et metrics.secure: true. Il n’y a pas de détection du mode basée sur le port : c’est --metrics-secure qui sélectionne HTTPS ou HTTP.Activer les métriques via Helm
Service pour le port des métriques et, si besoin, un ServiceMonitor pour prometheus-operator.
Le point de terminaison des métriques est lui-même activé par défaut (metrics.enable: true, port 8080, exposé en HTTPS via metrics.secure: true). Le seul paramètre que vous devez généralement modifier est prometheus.enable pour que le chart crée un ServiceMonitor pour vous :
certManager.enable: false et le ServiceMonitor collectera les métriques avec insecureSkipVerify: true, en s’appuyant uniquement sur l’authentification par bearer token.
L’ensemble complet des valeurs par défaut liées aux métriques est :
Service/<resource-prefix>-metrics-service— expose le port8080(HTTPS lorsquemetrics.secure: true).ServiceMonitor/<resource-prefix>-controller-manager-metrics-monitor— lorsqueprometheus.enable: true.ClusterRole/<resource-prefix>-metrics-reader— URL non liée à une ressource/metricsavec le verbeget.
Sécurisation du point de terminaison des métriques
metrics.secure: true, le serveur de métriques impose TLS et l’authentification/l’autorisation Kubernetes pour chaque collecte. Les scrapers doivent :
- Présenter un Bearer token Kubernetes valide.
- Appartenir à un ServiceAccount lié à un rôle de cluster accordant
getsur l’URL hors ressource/metrics.
Référence du ServiceMonitor
prometheus.enable: true :
tlsConfig.insecureSkipVerify: true et utilisez uniquement l’authentification par jeton porteur — le chart le fait déjà lorsque certManager.enable: false.
Exemple Prometheus autonome
examples/prometheus_secure_metrics_scraper.yaml. Il crée un ServiceAccount, les objets RBAC nécessaires, ainsi qu’une ressource personnalisée Prometheus qui sélectionne le ServiceMonitor de l’opérateur.
Points de terminaison des sondes de santé
Les deux points de terminaison sont enregistrés avec la même vérification Ping triviale (
healthz.Ping de sigs.k8s.io/controller-runtime). Une sonde en échec signifie donc “le processus manager ne sert pas HTTP sur :8081” — et non “les contrôleurs sont défaillants”. Pour détecter les problèmes au niveau des contrôleurs, utilisez plutôt les métriques de réconciliation.
Les deux points de terminaison sont exposés sur le port 8081 par défaut. Ils sont connectés au déploiement comme suit :
unable to start manager, des échecs RBAC ou des erreurs cache did not sync.
Catalogue des métriques
controller-runtime et client-go. Les séries les plus utiles, regroupées par fonction :
Activité de réconciliation
Le label
controller est dérivé par controller-runtime à partir du type de ressource enregistré avec For(...). Avec le code actuel dans internal/controller/clickhouse et internal/controller/keeper, cela correspond respectivement à clickhousecluster et keepercluster. Si vous avez personnalisé l’opérateur, vérifiez-le en effectuant un scrape ponctuel de /metrics.
File d’attente de travail
Les labels
name et controller ont la même valeur (le nom du contrôleur).
Trafic du serveur API
Élection du leader
Le chart Helm active
--leader-elect par défaut ; cette métrique est donc présente dans les installations Helm standard. Lorsque le binaire est exécuté directement sans ce flag, la métrique n’est pas présente.
Runtime
go_goroutines, go_memstats_*, process_cpu_seconds_total, process_resident_memory_bytes, etc.
Requêtes PromQL utiles
Vue d’ensemble de l’état de santé
Détection de l’engorgement
Limitation du débit et charge sur l’API
Statut du leader (déploiement HA)
Alertes suggérées
Vérification de l’installation
clickhouse-operator-system :
- Installation — Valeurs Helm relatives à la supervision.
- Configuration — Configuration TLS commune au serveur de métriques.