Surveiller Config Connector à l'aide de Prometheus
Vous pouvez utiliser Prometheus pour collecter et afficher des métriques à partir de Config Connector.
Avant de commencer
Pour réaliser les étapes décrites dans cette page, vous devez installer Prometheus sur votre cluster. Pour ce faire, vous pouvez utiliser au choix l'une des méthodes suivantes :
Utilisez l’opérateur Prometheus fourni par CoreOS, ou
Suivez le Documentation Prometheus pour configurer votre cluster pour le scraping.
Récupérer les métriques
Prometheus rassemble les métriques en récupérant un point de terminaison HTTP. Cette section décrit les points de terminaison récupérés de Config Connector et la configuration de Prometheus.
Points de terminaison récupérés de Config Connector
Pour Config Connector, les points de terminaison de service se trouvent sur le port 8888 à cnrm-controller-manager-service
et cnrm-resource-stats-recorder-service
.
Ces services ont les annotations prometheus.io/scrape: "true"
et prometheus.io/port: "8888"
. Les services incluent également les libellés cnrm.cloud.google.com/monitored: "true"
et cnrm.cloud.google.com/system: "true"
. Vous configurez Prometheus pour récupérer les composants Config Connector à partir de ces annotations et libellés.
Configurer Prometheus
Avant de pouvoir scraper des métriques, vous devrez peut-être configurer Prometheus Découverte de services Kubernetes (SD) pour découvrir des cibles de scraping à partir de l'API REST Kubernetes.
La manière dont vous configurez Prometheus pour récupérer les métriques à partir de Config Connector dépend de la façon dont vous avez installé Prometheus. Consultez la documentation de votre installation Prometheus pour savoir comment mettre à jour la configuration.
Par exemple, si vous utilisez l'opérateur Prometheus et que vous le configurez à l'aide de ServiceMonitor, vous pouvez appliquer la configuration suivante pour récupérer les métriques à partir de Config Connector.
spec:
endpoints:
- interval: 10s
port: metrics
namespaceSelector:
matchNames:
- cnrm-system
selector:
matchLabels:
cnrm.cloud.google.com/monitored: "true"
cnrm.cloud.google.com/system: "true"
Pour en savoir plus sur la configuration de ServiceMonitor, consultez Premiers pas dans la documentation de l'opérateur Prometheus.
Exemples de requêtes
Prometheus utilise un langage de requête appelé PromQL. Cette section contient des exemples de requêtes PromQL pour les métriques de Config Connector. Vous pouvez configurer Prometheus pour générer des alertes à partir de n'importe quelle requête PromQL valide.
Requêtes de réconciliation par genre et état des ressources
Vous pouvez voir le nombre de requêtes de réconciliation qui ont échoué par genre et état des ressources.
Par exemple, pour vérifier le nombre total d'erreurs pour les ressources PubSubTopic
, utilisez la requête suivante.
configconnector_reconcile_requests_total{group_version_kind="PubSubTopic.pubsub.cnrm.cloud.google.com", status="ERROR"}
Vérifier l'état global des ressources par genre et espace de noms
Vous pouvez voir le nombre de ressources qui se trouvent dans un espace de noms.
Par exemple, pour vérifier le nombre total de ressources PubSubTopic
dans l'espace de noms default
, utilisez la requête suivante.
configconnector_applied_resources_total{group_version_kind="PubSubTopic.pubsub.cnrm.cloud.google.com", Namespace="default"}
Interroger l'utilisation des nœuds de calcul réconciliés par genre de ressource
(configconnector_reconcile_occupied_workers_total / configconnector_reconcile_workers_total)
Métriques disponibles
Config Connector collecte les métriques suivantes et les rend disponibles.
Nom | Type | Libellés | Description |
---|---|---|---|
configconnector_reconcile_requests_total | Nombre | Namespace group_version_kind status |
Nombre total de requêtes de réconciliation. |
configconnector_reconcile_request_duration_seconds | Histogramme | Namespace group_version_kind status |
Répartition du temps pour les requêtes de réconciliation. |
configconnector_applied_resources_total | Jauge | Namespace group_version_kind status |
Le nombre total de ressources sous gestion. |
configconnector_build_info | Jauge | version | Version actuelle de Config Connector. |
configconnector_reconcile_workers_total | Jauge | group_version_kind | Nombre total de nœuds de calcul réconciliés agrégés par genre de ressource. |
configconnector_reconcile_occupied_workers_total | Jauge | group_version_kind | Nombre total de nœuds de calcul réconciliés et occupés, agrégés par genre de ressource. |
Activer les libellés de nom des ressources
Par défaut, les métriques sont agrégées par genre de ressource (par exemple, sujet Pub/Sub). Vous pouvez activer l'agrégation des métriques par ressources individuelles.
Pour activer l'agrégation par nom de ressource, procédez comme suit.
Modifiez l'objet StatefulSet
cnrm-controller-manager
kubectl edit statefulset cnrm-controller-manager -n cnrm-system
Si vous utilisez le mode espace de noms, remplacez
NAMESPACE_NAME
par votre espace de noms.kubectl edit statefulset cnrm-controller-manager -n NAMESPACE_NAME
Recherchez le tableau
spec.args
et ajoutez--resource-name-label=true
.apiVersion: apps/v1 kind: StatefulSet name: cnrm-controller-manager spec: template: spec: containers: - name: manager args: - --resource-name-label=true
Étape suivante
Pour en savoir plus sur l'écriture de requêtes, consultez la documentation sur le langage de requête de Prometheus et les exemples.