Usa las métricas de Policy Controller

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.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: 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.metricsWriter en 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.metricWriter
    

    Reemplaza PROJECT_ID por 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.

¿Qué sigue?