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 Policy Controller para exportar estas métricas a Prometheus o Cloud Monitoring. La configuración predeterminada para exportar métricas las exporta a Prometheus y 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 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
Si el controlador de políticas se ejecuta en un entorno de Google Cloud que tiene una cuenta de servicio predeterminada, el controlador de políticas exporta automáticamente las métricas a Cloud Monitoring.
Si la Workload Identity Federation for GKE o la Workload Identity Federation de flota están habilitadas, ejecuta este comando para permitir que Policy Controller envíe métricas:
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 de 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 Policy Controller se ejecuta en un clúster con el 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 cómo configurar Google Cloud Managed Service para Prometheus, consulta Comienza a usar la recopilación administrada.
Debido a que Policy Controller está disponible con GKE Enterprise, no hay costos adicionales por Google Cloud Observability, incluido Google Cloud Managed Service para Prometheus. Si tenías instalado Policy Controller antes de necesitar una licencia de GKE Enterprise y tienes habilitado Google Cloud Managed Service para Prometheus, es posible que veas cargos por las métricas recopiladas. 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 sobre cómo consultar métricas con la solución de Google Cloud Managed Service para Prometheus, consulta Cómo consultar 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 consola de Google Cloud . Puedes editar este panel para satisfacer tus necesidades operativas y empresariales.
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).
Para crear el panel de Policy Controller, haz lo siguiente:
En la consola de Google Cloud , ve a la página Paneles.
En la página Descripción general de los paneles, haz clic en la pestaña Biblioteca de muestra. En esta pestaña, se muestran todos los paneles que puedes importar.
En la columna Categorías, selecciona Anthos Config Management.
En la tabla Muestras de Anthos Config Management, selecciona la casilla de verificación Controlador de políticas.
Haz clic en download Importar.
Para crear el panel, haz clic en Confirmar en la ventana de confirmación.
Para ver y editar el panel de Policy Controller, haz lo siguiente:
- En la página Descripción general de los paneles, selecciona la pestaña Lista de paneles.
- Selecciona el panel de Policy Controller.
- Para personalizar el panel, haz clic en Editar panel.
- Realiza los cambios necesarios y haz clic en Guardar. Para obtener más información sobre cómo personalizar paneles, consulta Cómo filtrar un panel en 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 las 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 | 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 | 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 . |