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 des métriques Cloud Monitoring. Pour découvrir d'autres moyens d'exporter des métriques, consultez la page Surveiller Config Sync avec Prometheus ou Surveiller Config Sync avec une surveillance personnalisée.

La configuration des métriques Cloud Monitoring nécessite une autorisation iam.serviceAccounts.setIamPolicy sur le projet. Pour obtenir des exemples sur la façon d'afficher ces métriques, consultez la page Exemples de procédures de débogage. Vous pouvez afficher ces métriques avec l'explorateur de métriques ou à l'aide de l'API Cloud Monitoring.

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

Pour configurer Cloud Monitoring pour Config Sync, vous devez autoriser un compte de service de votre projet à écrire des métriques. 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 de projet du cluster.

Configurer Cloud Monitoring sans Workload Identity

Si Workload Identity n'est pas activé et que Config Sync s'exécute dans un environnement Google Cloud, vous pouvez utiliser le compte de service Compute Engine par défaut. Si les attributions de rôles automatiques d'é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 par défaut des métriques 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 de métriques dans Cloud Monitoring, suivez les instructions pour 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/ : les métriques exportées par Config Sync vers Cloud Monitoring ont 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 fiable avec 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 correspond à 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 fiable 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

Lorsque vous avez activé les API RootSync et RepoSync, l'importation et l'approvisionnement à partir d'une source fiable, ainsi que la synchronisation avec un cluster, sont gérées 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 lorsque vous approvisionnez un compte à partir d'une source fiable.

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