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 :

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.

  1. 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
  2. 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.