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, il existe des métriques qui enregistrent le nombre de contraintes et de modèles de contraintes, ainsi que le nombre de violations des règles 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 les exporte à la fois 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 entre Prometheus et Cloud Monitoring 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
Pour permettre à Policy Controller d'exporter des métriques vers Cloud Monitoring, le compte de service utilisé par Policy Controller doit disposer du rôle IAM roles/monitoring.metricsWriter
sur le projet. Pour attribuer ce rôle, effectuez l'une des opérations suivantes :
Si Policy Controller s'exécute dans un environnement Google Cloud disposant d'un compte de service par défaut, accordez le rôle
roles/monitoring.metricsWriter
sur le projet à ce compte de service :gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \ --role=roles/monitoring.metricsWriter
Remplacez les éléments suivants :
PROJECT_ID
: ID de votre projet Google Cloud .PROJECT_NUMBER
: numéro numérique de votre projet Google Cloud.
Si Workload Identity Federation for GKE ou Workload Identity Federation pour les parcs sont activés, attribuez le rôle
roles/monitoring.metricsWriter
sur le projet au compte de service Kubernetes utilisé par Policy Controller :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 du cluster. Google Cloud
Vous pouvez afficher ces métriques avec l'explorateur de métriques ou en utilisant l'API 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 s'exécute sur un cluster avec Google Cloud Managed Service pour Prometheus configuré, ces métriques seront 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 règles. 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 Premiers pas avec la collecte gérée.
Pour en savoir plus sur les tarifs de Cloud Monitoring, consultez Tarifs de Google Cloud Managed Service pour Prometheus.
Pour obtenir des exemples sur la façon d'afficher les métriques avec la solution Google Cloud Managed Service pour Prometheus, consultez 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 aux besoins de votre entreprise et de vos opérations.
Pour interroger l'API Cloud Monitoring, utilisez le langage de requête Prometheus (PromQL) (langage de requête de facto pour les métriques Kubernetes) ou le langage de requête Monitoring (MQL) (langage de requête de métriques propriétaire de Google).
Vous pouvez utiliser un modèle pour configurer un tableau de bord en recherchant "Policy Controller" sur la page "Tableaux de bord" de Cloud Monitoring. Pour en savoir plus sur la création et la modification de modèles de tableaux de bord, consultez 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
L'API Cloud Monitoring permet à n'importe quel outil d'observabilité tiers d'ingérer les 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 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 du préfixe OpenCensus/
) :
Nom | Type | Libellés | Description |
---|---|---|---|
OpenCensus/audit_duration_seconds |
Cumulative | 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 |
Cumulative | état | Nombre total d'actions d'ingestion de modèle de contrainte |
OpenCensus/constraint_template_ingestion_duration_seconds |
Cumulative | é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 |
Cumulative | 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. Il s'agit d'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 correspondre à OpenCensus/watch_manager_intended_watch_gvk . |
Si Policy Controller est configuré pour exporter vers Prometheus, vous pouvez interroger les métriques suivantes (toutes précédées du préfixe Prometheus/
) :
Nom | Type | Libellés | Description |
---|---|---|---|
Prometheus/gatekeeper_audit_duration_seconds/histogram |
Cumulative | Distribution de la durée du cycle d'audit | |
Prometheus/gatekeeper_audit_last_run_end_time/gauge |
Jauge | Horodatage de l'epoch de la fin de la dernière exécution d'audit, exprimé en secondes avec virgule flottante | |
Prometheus/gatekeeper_audit_last_run_time/gauge |
Jauge | Horodatage de l'epoch du début de la dernière exécution d'audit, exprimé en secondes avec virgule flottante | |
Prometheus/gatekeeper_constraint_template_ingestion_count/counter |
Cumulative | état | Nombre total d'actions d'ingestion de modèle de contrainte |
Prometheus/gatekeeper_constraint_template_ingestion_duration_seconds/histogram |
Cumulative | é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 |
Cumulative | admission_status, admission_dryrun | Décompte de requêtes d'admission du serveur d'API |
Prometheus/gatekeeper_validation_request_duration_seconds/histogram |
Cumulative | 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. Il s'agit d'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 correspondre à Prometheus/gatekeeper_watch_manager_intended_watch_gvk/gauge . |