En esta página, se explica cómo usar las métricas para supervisar Policy Controller.
El controlador de políticas incluye varias métricas relacionadas con el uso de políticas. Por ejemplo, hay métricas que registran la cantidad de restricciones y plantillas de restricciones, y la cantidad de incumplimientos de auditoría detectados. Para crear y registrar estas métricas, Policy Controller usa OpenTelemetry. Puedes configurar Policy Controller para exportar estas métricas a Prometheus o Cloud Monitoring. La configuración predeterminada para exportar métricas exporta las métricas a Prometheus y Cloud Monitoring.
Precios
Las métricas de Policy Controller usan Google Cloud Managed Service para Prometheus para cargar métricas en Cloud Monitoring. Cloud Monitoring cobra por la transferencia de estas métricas según la cantidad de muestras transferidas.
Para obtener más información, consulta los Precios de Cloud Monitoring.
Configura la exportación de métricas
Puedes configurar cómo Policy Controller exporta sus métricas. Puedes elegir entre Prometheus, Cloud Monitoring, ambos o ninguno cuando instalas Policy Controller. De forma predeterminada, Policy Controller intenta exportar métricas a Prometheus y Cloud Monitoring.
Exporta métricas a Cloud Monitoring
Para permitir que Policy Controller exporte métricas a Cloud Monitoring, la cuenta de servicio que usa Policy Controller debe tener el rol de IAM roles/monitoring.metricsWriter en el proyecto. Para otorgar este rol, realiza una de las siguientes acciones:
Si el controlador de políticas se ejecuta en un Google Cloud entorno que tiene una cuenta de servicio predeterminada, otorga el rol
roles/monitoring.metricsWriteren el proyecto a esa cuenta de servicio:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \ --role=roles/monitoring.metricsWriterReemplaza lo siguiente:
PROJECT_ID: Es el ID del Google Cloud proyecto.PROJECT_NUMBER: Es el número de proyecto numérico Google Cloud.
Si Workload Identity Federation for GKE o fleet Workload Identity Federation están habilitadas, otorga el rol
roles/monitoring.metricsWriteren el proyecto a la Kubernetes ServiceAccount que usa Policy Controller:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:PROJECT_ID.svc.id.goog[gatekeeper-system/gatekeeper-admin]" \ --role=roles/monitoring.metricWriterReemplaza
PROJECT_IDpor el ID del proyecto del clúster. Google Cloud
Puedes ver estas métricas con el Explorador de métricas o mediante la API de Cloud Monitoring.
Exporta métricas a Prometheus
El Policy Controller exporta las métricas para Prometheus en el puerto 8888 del Pod gatekeeper-controller-manager-* en el espacio de nombres gatekeeper-system.
Si el controlador de políticas se ejecuta en un clúster con Google Cloud Managed Service para Prometheus configurado, estas métricas se recopilarán y almacenarán automáticamente en Cloud Monitoring. Esto también funciona para los clústeres que habilitan Google Cloud Managed Service para Prometheus después de instalar Policy Controller. Es posible que también debas otorgar permisos adicionales a la cuenta de servicio predeterminada de Compute Engine que usa Google Cloud Managed Service para Prometheus, según tus políticas. Para obtener detalles sobre cómo otorgar permisos a Google Cloud Managed Service para Prometheus, consulta Habilita la recopilación administrada: GKE. Para obtener más información sobre la configuración de Google Cloud Managed Service para Prometheus, consulta Comienza a usar la recopilación administrada.
Para obtener más información sobre los precios de Cloud Monitoring, consulta Precios de Google Cloud Managed Service para Prometheus.
Para obtener ejemplos de cómo ver métricas con la solución de Google Cloud Managed Service para Prometheus, consulta Consulta con Cloud Monitoring.
Ver métricas
Las métricas de Policy Controller se exportan a tu proyecto de Cloud Monitoring en formato Prometheus. Como resultado, puedes consultar las métricas mediante la API de Cloud Monitoring y un panel en la Google Cloud consola. Puedes editar este panel para satisfacer tus necesidades operativas y comerciales.
Para consultar la API de Cloud Monitoring, usa el lenguaje de consulta de Prometheus (PromQL) (el lenguaje de consulta de facto para las métricas de Kubernetes) o el lenguaje de consulta de Monitoring (MQL) (el lenguaje de consulta de métricas propiedad de Google).
Puedes usar una plantilla para configurar un panel. Para ello, busca "Policy Controller" en la página Paneles de Cloud Monitoring. Para obtener más información sobre cómo crear y editar plantillas de paneles, consulta la documentación de Cloud Monitoring.
Crea alertas
Para recibir notificaciones cuando tus métricas cumplan con ciertos umbrales, crea políticas de alertas en Cloud Monitoring.
Integración con terceros
Con la API de Cloud Monitoring, cualquier herramienta de observabilidad de terceros puede transferir métricas de Policy Controller.
Por ejemplo, si usas paneles de Grafana, agrega la API de Cloud Monitoring como fuente de datos en Grafana. Para obtener más información, consulta Google Cloud Monitoring en la documentación de Grafana.
Métricas disponibles
Si Policy Controller está habilitado en el clúster y está configurado para exportar a Cloud Monitoring, puedes consultar las siguientes métricas (todas con el prefijo OpenCensus/):
| Nombre | Tipo | Etiquetas | Descripción |
|---|---|---|---|
OpenCensus/audit_duration_seconds |
Acumulativo | Distribución de la duración del ciclo de auditoría | |
OpenCensus/audit_last_run_time |
Indicador | La marca de tiempo de época desde el último tiempo de ejecución de auditoría, expresado como segundos de punto flotante | |
OpenCensus/constraint_template_ingestion_count |
Acumulativo | status | Cantidad total de acciones de transferencia de las plantillas de restricciones |
OpenCensus/constraint_template_ingestion_duration_seconds |
Acumulativo | status | Distribución de la duración de transferencia de las plantillas de restricciones |
OpenCensus/constraint_templates |
Indicador | status | Cantidad actual de plantillas de restricciones |
OpenCensus/validation_request_count |
Contador | admission_status | Recuento de solicitudes de admisión del servidor de API |
OpenCensus/validation_request_duration_seconds |
Acumulativo | admission_status | Distribución de la duración de las solicitudes de admisión |
OpenCensus/violations |
Indicador | enforcement_action | Cantidad de incumplimientos de auditoría detectados en el último ciclo de auditorías |
OpenCensus/watch_manager_intended_watch_gvk |
Indicador | Cantidad de GroupVersionKinds únicos que el Policy Controller debe observar. Esta métrica es una combinación de restricciones y recursos sincronizados. | |
OpenCensus/watch_manager_watched_gvk |
Sección de control | Cantidad de GroupVersionKinds únicos que el Policy Controller observa en realidad. El objetivo de esta métrica es que converja y sea igual a OpenCensus/watch_manager_intended_watch_gvk. |
Si el Policy Controller está configurado para exportar a Prometheus, puedes consultar las siguientes métricas (todas con el prefijo Prometheus/):
| Nombre | Tipo | Etiquetas | Descripción |
|---|---|---|---|
Prometheus/gatekeeper_audit_duration_seconds/histogram |
Acumulativo | Distribución de la duración del ciclo de auditoría | |
Prometheus/gatekeeper_audit_last_run_end_time/gauge |
Sección de control | La marca de tiempo de época del final de la última ejecución de auditoría, expresado como segundos de punto flotante | |
Prometheus/gatekeeper_audit_last_run_time/gauge |
Sección de control | La marca de tiempo de época del inicio de la última ejecución de auditoría, expresado como segundos de punto flotante | |
Prometheus/gatekeeper_constraint_template_ingestion_count/counter |
Acumulativo | status | Cantidad total de acciones de transferencia de las plantillas de restricciones |
Prometheus/gatekeeper_constraint_template_ingestion_duration_seconds/histogram |
Acumulativo | status | Distribución de la duración de transferencia de las plantillas de restricciones |
Prometheus/gatekeeper_constraint_templates/gauge |
Indicador | status | Cantidad actual de plantillas de restricciones |
Prometheus/gatekeeper_validation_request_count/counter |
Acumulativo | admission_status, admission_dryrun | Recuento de solicitudes de admisión del servidor de API |
Prometheus/gatekeeper_validation_request_duration_seconds/histogram |
Acumulativo | admission_status | Distribución de la duración de las solicitudes de admisión |
Prometheus/gatekeeper_violations/gauge |
Indicador | enforcement_action | Cantidad de incumplimientos de auditoría detectados en el último ciclo de auditorías |
Prometheus/gatekeeper_watch_manager_intended_watch_gvk/gauge |
Indicador | Cantidad de GroupVersionKinds únicos que el Policy Controller debe observar. Esta métrica es una combinación de restricciones y recursos sincronizados. | |
Prometheus/gatekeeper_watch_manager_watched_gvk/gauge |
Sección de control | Cantidad de GroupVersionKinds únicos que el Policy Controller observa en realidad. El objetivo de esta métrica es que converja y sea igual a Prometheus/gatekeeper_watch_manager_intended_watch_gvk/gauge. |