En esta página, se explica cómo usar las métricas para supervisar el controlador de políticas.
Policy Controller 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, el controlador de políticas usa OpenTelemetry. Puedes configurar el Controlador de políticas para exportar estas métricas a Prometheus o Cloud Monitoring. El parámetro de configuración predeterminado para exportar métricas las exporta a Prometheus y a Cloud Monitoring.
Configura la exportación de métricas
Puedes configurar cómo el controlador de políticas exporta sus métricas. Puedes elegir entre Prometheus, Cloud Monitoring, ambos o ninguno cuando instalas el controlador de políticas. De forma predeterminada, el controlador de políticas 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 entorno de Google Cloud que tiene unacuenta de servicio predeterminada, otorga el rol
roles/monitoring.metricsWriter
en 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.metricsWriter
Reemplaza lo siguiente:
PROJECT_ID
: El ID de tu proyecto de Google Cloud .PROJECT_NUMBER
: El número de proyecto numérico Google Cloud.
Si están habilitadas la federación de identidades para cargas de trabajo para GKE o la federación de identidades para cargas de trabajo de la flota, otorga el rol de
roles/monitoring.metricsWriter
en el proyecto a la ServiceAccount de Kubernetes 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.metricWriter
Reemplaza
PROJECT_ID
por el ID del proyecto Google Cloud del clúster.
Puedes ver estas métricas con el Explorador de métricas o usando la API de Cloud Monitoring.
Exporta métricas a Prometheus
El controlador de políticas 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 que se instala 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 cómo configurar 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.
Si deseas ver ejemplos para consultar métricas con la solución de Google Cloud Managed Service para Prometheus, consulta Cómo realizar consultas con Cloud Monitoring.
Ver métricas
Las métricas del Controlador de políticas se exportan a tu proyecto de Cloud Monitoring en formato Prometheus. Como resultado, puedes consultar las métricas con la API de Cloud Monitoring y un panel en la consola de Google Cloud . 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 alcancen 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 el controlador de políticas 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 controlador de políticas debe observar. Esta métrica es una combinación de restricciones y recursos sincronizados. | |
OpenCensus/watch_manager_watched_gvk |
Indicador | Cantidad de GroupVersionKinds únicos que el controlador de políticas observa en realidad. El objetivo de esta métrica es que converja y sea igual a OpenCensus/watch_manager_intended_watch_gvk . |
Si el controlador de políticas 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 |
Indicador | Es la marca de tiempo de época del final de la última ejecución de auditoría, expresada como segundos de punto flotante. | |
Prometheus/gatekeeper_audit_last_run_time/gauge |
Indicador | Es la marca de tiempo de época del inicio de la última ejecución de auditoría, expresada 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 controlador de políticas debe observar. Esta métrica es una combinación de restricciones y recursos sincronizados. | |
Prometheus/gatekeeper_watch_manager_watched_gvk/gauge |
Indicador | Cantidad de GroupVersionKinds únicos que el controlador de políticas observa en realidad. El objetivo de esta métrica es que converja y sea igual a Prometheus/gatekeeper_watch_manager_intended_watch_gvk/gauge . |