Surveiller Config Sync avec Cloud Monitoring

Cette page explique comment envoyer des métriques depuis Config Sync vers Cloud Monitoring.

Config Sync utilise OpenTelemetry pour créer, enregistrer et exporter ses métriques. Cette page explique comment configurer les métriques Cloud Monitoring. Pour connaître d'autres façons d'exporter des métriques, consultez Surveiller Config Sync avec Prometheus ou Surveiller Config Sync avec une surveillance personnalisée.

La configuration des métriques Cloud Monitoring nécessite l'autorisation iam.serviceAccounts.setIamPolicy sur le projet. Pour obtenir des exemples d'affichage de ces métriques, consultez la page Exemples de procédures de débogage et l'article Métriques OpenCensus dans Cloud Monitoring.

Accorder l'autorisation d'écriture de métriques pour Cloud Monitoring

Pour configurer Cloud Monitoring pour Config Sync, vous devez accorder une autorisation d'écriture de métriques à un compte de service de votre projet. L'autorisation nécessaire varie selon que Workload Identity est activé ou non.

Configurer Cloud Monitoring avec Workload Identity

Si Workload Identity est activé, autorisez Config Sync à envoyer des métriques en exécutant la commande suivante:

gcloud projects add-iam-policy-binding PROJECT_ID \
   --role=roles/monitoring.metricWriter \
   --member="serviceAccount:PROJECT_ID.svc.id.goog[config-management-monitoring/default]"

Remplacez PROJECT_ID par l'ID du projet du cluster.

Configurer Cloud Monitoring sans Workload Identity

Si Workload Identity n'est pas activé et que Config Sync est exécuté dans un environnement Google Cloud, vous pouvez utiliser le compte de service Compute Engine par défaut. Si les attributions automatiques du rôle Éditeur (roles/editor) sont désactivées, attribuez au compte de service le rôle IAM "Rédacteur de métriques Monitoring (roles/monitoring.metricWriter)" en exécutant la commande suivante:

gcloud projects add-iam-policy-binding PROJECT_ID \
   --role=roles/monitoring.metricWriter \
   --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet.
  • PROJECT_NUMBER : votre numéro de projet.

Liste de métriques par défaut dans Cloud Monitoring

Nom Type
api_duration_seconds Distribution
apply_duration_seconds Distribution
apply_operations_total Nombre
declared_resources Dernière valeur
internal_errors_total Nombre
last_sync_timestamp Dernière valeur
pipeline_error_observed Dernière valeur
reconciler_errors Dernière valeur
resource_fights_total Nombre
reconcile_duration_seconds Distribution
resource_group_total Dernière valeur
resource_count Dernière valeur
ready_resource_count Dernière valeur
resource_ns_count Dernière valeur
cluster_scoped_resource_count Dernière valeur
kcc_resource_count Jauge

Pour modifier la liste d'autorisation des métriques dans Cloud Monitoring, suivez les instructions permettant d'appliquer un correctif au déploiement du collecteur otel avec ConfigMap.

Exemples de procédures de débogage pour Cloud Monitoring

Les exemples Cloud Monitoring suivants illustrent certains modèles d'utilisation des métriques OpenCensus pour détecter et diagnostiquer les problèmes liés à Config Sync lorsque vous utilisez les API RootSync et RepoSync.

Format de la métrique

Dans Cloud Monitoring, les métriques sont au format suivant : custom.googleapis.com/opencensus/config_sync/METRIC.

Ce nom de métrique comprend les composants suivants :

  • custom.googleapis.com : toutes les métriques personnalisées ont ce préfixe
  • opencensus : ce préfixe est ajouté, car Config Sync utilise la bibliothèque OpenCensus.
  • config_sync/: métriques que Config Sync exporte vers Cloud Monitoring et comporte ce préfixe.
  • METRIC : nom de la métrique que vous souhaitez interroger.

Interroger des métriques par rapprochement

Les objets RootSync et RepoSync sont instrumentés avec des métriques de haut niveau qui vous donnent des informations précieuses sur le fonctionnement de Config Sync sur le cluster. La quasi-totalité des métriques sont marquées par le nom du rapprochement. Vous pouvez donc voir si des erreurs se sont produites et configurer des alertes pour Cloud Monitoring.

Un rapprochement est un pod qui est déployé en tant que déploiement. Il synchronise les fichiers manifestes d'une source de référence vers un cluster. Lorsque vous créez un objet RootSync, Config Sync crée un rapprochement appelé root-reconciler-ROOT_SYNC_NAME ou root-reconciler si le nom de RootSync est root-sync. Lorsque vous créez un objet RepoSync, Config Sync crée un rapprochement appelé ns-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTH ou ns-reconciler-NAMESPACE si le nom de RepoSync est repo-sync, où NAMESPACE est l'espace de noms dans lequel vous avez créé votre objet RepoSync.

Le schéma suivant montre comment fonctionnent les pods de rapprochement lorsque la source de référence est un dépôt Git:

Flux de rapprochement

Par exemple, pour filtrer par nom de rapprochement lorsque vous utilisez Cloud Monitoring, effectuez les tâches suivantes :

  1. Dans Google Cloud Console, accédez à Monitoring.

    Accéder à Monitoring

  2. Dans le volet de navigation Surveillance, cliquez sur Explorateur de métriques.

  3. Dans la liste déroulante Sélectionner une métrique, ajoutez : custom.googleapis.com/opencensus/config_sync/reconciler_errors.

  4. Dans la liste déroulante Filtre, sélectionnez Rapprochement. Une zone de filtre s'affiche.

  5. Dans la zone des champs de filtre, sélectionnez = dans le premier champ et le nom du rapprochement (par exemple, root-reconciler) dans le second.

  6. Cliquez sur Appliquer.

Vous pouvez maintenant voir les métriques de vos objets RootSync.

Pour en savoir plus sur le filtrage par type de données, consultez la section Filtrer les données.

Interroger les opérations Config Sync par composant et état

Une fois que vous avez activé les API RootSync et RepoSync, l'importation et le sourcing à partir d'une source fiable, ainsi que la synchronisation avec un cluster, sont gérés par les rapprochements. La métrique reconciler_errors est libellée par composant, ce qui vous permet de savoir où se sont produites les erreurs.

Par exemple, pour filtrer par composant lorsque vous utilisez Cloud Monitoring, effectuez les tâches suivantes :

  1. Dans Google Cloud Console, accédez à Monitoring :

    Accéder à Monitoring

  2. Dans le volet de navigation Surveillance, cliquez sur Explorateur de métriques.

  3. Dans le menu déroulant Sélectionner une métrique, ajoutez custom.googleapis.com/opencensus/config_sync/reconciler_errors.

  4. Dans la liste déroulante Filtre, sélectionnez composant. Une zone de filtre s'affiche.

  5. Dans la zone des champs de filtre, sélectionnez = dans la première case et source dans la seconde.

  6. Cliquez sur Appliquer.

Vous pouvez désormais voir les erreurs qui se sont produites lors de l'approvisionnement auprès d'une source fiable pour vos rapprochements.

Vous pouvez également vérifier les métriques des processus source et de synchronisation en interrogeant les métriques suivantes et en filtrant par le tag status :

custom.googleapis.com/opencensus/config_sync/parser_duration_seconds
custom.googleapis.com/opencensus/config_sync/apply_duration_seconds
custom.googleapis.com/opencensus/config_sync/remediate_duration_seconds