Usa las métricas de Policy Controller

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 las 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 el controlador de políticas 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 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 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 dentro de un entorno de Google Cloud que tiene una cuenta de servicio predeterminada, el controlador de políticas exporta las métricas a Cloud Monitoring de forma automática.

Si GKE Workload Identity o Fleet Workload Identity están habilitados, permite que el controlador de políticas envíe métricas mediante la ejecución del siguiente comando:

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.

Para ver ejemplos sobre cómo ver estas métricas, consulta Lee métricas de OpenCensus en Cloud Monitoring.

Exporta métricas a Prometheus

El controlador de políticas exporta métricas de 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 el controlador de políticas. 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. Si quieres obtener detalles sobre cómo otorgar permisos a Google Cloud Managed Service para Prometheus, consulta Habilita la recopilación administrada: GKE. Si quieres 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 la observabilidad de Google Cloud, incluido Google Cloud Managed Service para Prometheus. Si tenías instalado Policy Controller antes de requerir una licencia de GKE Enterprise y habilitaste 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 quieres ver ejemplos de cómo ver las métricas con la solución 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 mediante la API de Cloud Monitoring y un panel en la consola de Google Cloud. Puedes editar este panel para satisfacer tus necesidades empresariales y operativas.

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:

  1. En la consola de Google Cloud, ve a la página Paneles.

    Ir a Paneles

  2. En la página Descripción general de los paneles, haz clic en la pestaña Biblioteca de muestras. Esta pestaña muestra todos los paneles que puedes importar.

  3. En la columna Categorías, selecciona Anthos Config Management.

  4. En la tabla Muestras de Anthos Config Management, selecciona la casilla de verificación Controlador de políticas.

  5. Haz clic en Importar.

  6. 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:

  1. En la página Descripción general de los paneles, selecciona la pestaña Lista de paneles.
  2. Selecciona el panel Policy Controller.
  3. Para personalizar el panel, haz clic en Editar panel.
  4. Realiza los cambios necesarios y haz clic en Guardar. Si deseas obtener más información para personalizar los paneles, consulta Filtra un panel en 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

Mediante el uso de la API de Cloud Monitoring, cualquier herramienta de observabilidad de terceros puede transferir métricas del Controlador de políticas.

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 tu 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 Medidor Cantidad de GroupVersionKinds únicos que el controlador de políticas observa en realidad. Esta métrica tiene como objetivo converger y ser 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 Medidor La marca de tiempo de época del final de la última ejecución de auditoría, expresada como segundos en punto flotante
Prometheus/gatekeeper_audit_last_run_time/gauge Medidor La marca de tiempo de época del inicio de la última ejecución de auditoría, expresada como segundos en 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 y 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 Medidor Cantidad de GroupVersionKinds únicos que el controlador de políticas observa en realidad. Esta métrica tiene como objetivo converger y ser igual a Prometheus/gatekeeper_watch_manager_intended_watch_gvk/gauge.

¿Qué sigue?