Utiliser les métriques Policy Controller
Cette page explique comment utiliser les métriques pour surveiller Policy Controller.
Policy Controller inclut plusieurs métriques liées à l'utilisation des règles. Par exemple, des métriques enregistrent le nombre de contraintes et de modèles de contraintes, ainsi que le nombre de violations d'audit détectées. Pour créer et enregistrer ces métriques, Policy Controller utilise OpenTelemetry. Vous pouvez configurer Policy Controller pour exporter ces métriques vers Prometheus ou Cloud Monitoring. Le paramètre par défaut pour l'exportation des métriques exporte les métriques vers Prometheus et Cloud Monitoring.
Configurer l'exportation des métriques
Vous pouvez configurer la manière dont Policy Controller exporte ses métriques. Vous pouvez choisir Prometheus, Cloud Monitoring ou les deux lors de l'installation de Policy Controller. Par défaut, Policy Controller tente d'exporter les métriques vers Prometheus et Cloud Monitoring.
Exporter des métriques vers Cloud Monitoring
Si Policy Controller est exécuté dans un environnement Google Cloud disposant d'un compte de service par défaut, il exporte automatiquement les métriques vers Cloud Monitoring.
Si GKE Workload Identity ou Workload Identity du parc sont activés, autorisez Policy Controller à envoyer des métriques en exécutant la commande suivante:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:PROJECT_ID.svc.id.goog[gatekeeper-system/gatekeeper-admin]" \
--role=roles/monitoring.metricWriter
Remplacez PROJECT_ID
par l'ID de projet Google Cloud du cluster.
Pour obtenir des exemples d'affichage de ces métriques, consultez la page Lire les métriques OpenCensus dans Cloud Monitoring.
Exporter des métriques vers Prometheus
Policy Controller exporte les métriques pour Prometheus sur le port 8888 du pod gatekeeper-controller-manager-*
sous l'espace de noms gatekeeper-system
.
Si Policy Controller est exécuté sur un cluster sur lequel Google Cloud Managed Service pour Prometheus est configuré, ces métriques sont automatiquement collectées et stockées dans Cloud Monitoring. Cela fonctionne également pour les clusters qui activent Google Cloud Managed Service pour Prometheus après l'installation de Policy Controller. Vous devrez peut-être également accorder des autorisations supplémentaires au compte de service Compute Engine par défaut utilisé par Google Cloud Managed Service pour Prometheus, en fonction de vos stratégies. Pour savoir comment accorder des autorisations à Google Cloud Managed Service pour Prometheus, consultez Activer la collecte gérée: GKE. Pour en savoir plus sur la configuration de Google Cloud Managed Service pour Prometheus, consultez la page Premiers pas avec la collecte gérée.
Policy Controller est disponible avec GKE Enterprise. Par conséquent, l'observabilité Google Cloud n'entraîne aucuns frais supplémentaires, y compris Google Cloud Managed Service pour Prometheus. Si Policy Controller était installé avant d'avoir besoin d'une licence GKE Enterprise et que Google Cloud Managed Service pour Prometheus est activé, des frais peuvent s'afficher pour les métriques collectées. Pour en savoir plus sur la tarification de Cloud Monitoring, consultez la page Tarifs de Google Cloud Managed Service pour Prometheus.
Pour obtenir des exemples sur l'affichage des métriques avec la solution Google Cloud Managed Service pour Prometheus, consultez la page Interroger à l'aide de Cloud Monitoring.
Afficher les métriques
Les métriques Policy Controller sont exportées vers votre projet Cloud Monitoring au format Prometheus. Par conséquent, vous pouvez interroger des métriques à l'aide de l'API Cloud Monitoring et d'un tableau de bord dans la console Google Cloud. Vous pouvez modifier ce tableau de bord pour répondre à vos besoins commerciaux et opérationnels.
Pour interroger l'API Cloud Monitoring, utilisez le langage de requête Prometheus (PromQL) (le langage de requête de facto pour les métriques Kubernetes) ou le langage de requête de surveillance (MQL) (le langage de requête de métriques propriétaire de Google).
Pour créer le tableau de bord Policy Controller, procédez comme suit:
Dans la console Google Cloud, accédez à la page Tableaux de bord.
Sur la page Aperçu des tableaux de bord, cliquez sur l'onglet Bibliothèque d'exemples. Cet onglet présente tous les tableaux de bord que vous pouvez importer.
Dans la colonne Categories (Catégories), sélectionnez Anthos Config Management.
Dans le tableau Exemples d'Anthos Config Management, cochez la case Policy Controller.
Cliquez sur download Import (Importer).
Pour créer le tableau de bord, cliquez sur Confirmer dans la fenêtre de confirmation.
Pour afficher et modifier le tableau de bord Policy Controller, procédez comme suit:
- Sur la page Aperçu des tableaux de bord, sélectionnez l'onglet Liste des tableaux de bord.
- Sélectionnez le tableau de bord Policy Controller.
- Pour personnaliser le tableau de bord, cliquez sur Modifier le tableau de bord.
- Apportez les modifications nécessaires, puis cliquez sur Enregistrer. Pour en savoir plus sur la personnalisation des tableaux de bord, consultez la section Filtrer un tableau de bord dans la documentation Cloud Monitoring.
Créer des alertes
Pour recevoir des notifications lorsque vos métriques atteignent certains seuils, créez des règles d'alerte dans Cloud Monitoring.
Intégration tierce
Grâce à l'API Cloud Monitoring, tout outil d'observabilité tiers peut ingérer des métriques Policy Controller.
Par exemple, si vous utilisez des tableaux de bord Grafana, ajoutez l'API Cloud Monitoring en tant que source de données dans Grafana. Pour en savoir plus, consultez Google Cloud Monitoring dans la documentation de Grafana.
Métriques disponibles
Si Policy Controller est activé sur votre cluster et configuré pour l'exportation vers Cloud Monitoring, vous pouvez interroger les métriques suivantes (toutes précédées de OpenCensus/
):
Nom | Type | Étiquettes | Description |
---|---|---|---|
OpenCensus/audit_duration_seconds |
Cumulé | Distribution de la durée du cycle d'audit | |
OpenCensus/audit_last_run_time |
Jauge | Horodatage de l'époch depuis la dernière exécution d'audit, exprimé en secondes avec virgule flottante | |
OpenCensus/constraint_template_ingestion_count |
Cumulé | état | Nombre total d'actions d'ingestion de modèle de contrainte |
OpenCensus/constraint_template_ingestion_duration_seconds |
Cumulé | état | Distribution de la durée d'ingestion de modèle de contrainte |
OpenCensus/constraint_templates |
Jauge | état | Nombre actuel de modèles de contraintes |
OpenCensus/validation_request_count |
Compteur | admission_status | Décompte de requêtes d'admission du serveur d'API |
OpenCensus/validation_request_duration_seconds |
Cumulé | admission_status | Distribution de la durée des requêtes d'admission |
OpenCensus/violations |
Jauge | enforcement_action | Nombre de violations des règles d'audit détectées au cours du dernier cycle d'audit |
OpenCensus/watch_manager_intended_watch_gvk |
Jauge | Nombre de GroupVersionKinds uniques que Policy Controller est censé surveiller. Cette métrique est une combinaison de ressources et de contraintes synchronisées. | |
OpenCensus/watch_manager_watched_gvk |
Jauge | Nombre de GroupVersionKinds uniques que Policy Controller surveille réellement. Cette métrique est censée converger pour être égale à OpenCensus/watch_manager_intended_watch_gvk . |
Si Policy Controller est configuré pour l'exportation vers Prometheus, vous pouvez interroger les métriques suivantes (toutes précédées de Prometheus/
):
Nom | Type | Étiquettes | Description |
---|---|---|---|
Prometheus/gatekeeper_audit_duration_seconds/histogram |
Cumulé | Distribution de la durée du cycle d'audit | |
Prometheus/gatekeeper_audit_last_run_end_time/gauge |
Jauge | Code temporel de l'epoch de fin de la dernière exécution d'audit, exprimé en secondes (valeur à virgule flottante) | |
Prometheus/gatekeeper_audit_last_run_time/gauge |
Jauge | Code temporel de l'epoch du début de la dernière exécution d'audit, exprimé en secondes à virgule flottante | |
Prometheus/gatekeeper_constraint_template_ingestion_count/counter |
Cumulé | état | Nombre total d'actions d'ingestion de modèle de contrainte |
Prometheus/gatekeeper_constraint_template_ingestion_duration_seconds/histogram |
Cumulé | état | Distribution de la durée d'ingestion de modèle de contrainte |
Prometheus/gatekeeper_constraint_templates/gauge |
Jauge | état | Nombre actuel de modèles de contraintes |
Prometheus/gatekeeper_validation_request_count/counter |
Cumulé | admission_status, admission_dryrun | Décompte de requêtes d'admission du serveur d'API |
Prometheus/gatekeeper_validation_request_duration_seconds/histogram |
Cumulé | admission_status | Distribution de la durée des requêtes d'admission |
Prometheus/gatekeeper_violations/gauge |
Jauge | enforcement_action | Nombre de violations des règles d'audit détectées au cours du dernier cycle d'audit |
Prometheus/gatekeeper_watch_manager_intended_watch_gvk/gauge |
Jauge | Nombre de GroupVersionKinds uniques que Policy Controller est censé surveiller. Cette métrique est une combinaison de ressources et de contraintes synchronisées. | |
Prometheus/gatekeeper_watch_manager_watched_gvk/gauge |
Jauge | Nombre de GroupVersionKinds uniques que Policy Controller surveille réellement. Cette métrique est censée converger pour être égale à Prometheus/gatekeeper_watch_manager_intended_watch_gvk/gauge . |