Usar métricas de Policy Controller

En esta página se explica cómo usar las métricas para monitorizar Policy Controller.

Policy Controller incluye varias métricas relacionadas con el uso de las políticas. Por ejemplo, hay métricas que registran el número de restricciones y plantillas de restricciones, así como el número de infracciones de auditoría detectadas. 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 a Cloud Monitoring.

Configurar la exportación de métricas

Puedes configurar cómo exporta sus métricas Policy Controller. Puedes elegir Prometheus, Cloud Monitoring, ambos o ninguno al instalar Policy Controller. De forma predeterminada, Policy Controller intenta exportar métricas a Prometheus y a Cloud Monitoring.

Exportar métricas a Cloud Monitoring

Para permitir que Policy Controller exporte métricas a Cloud Monitoring, la cuenta de servicio que utilice Policy Controller debe tener el rol de gestión de identidades y accesos roles/monitoring.metricsWriter en el proyecto. Para conceder este rol, haz una de las siguientes acciones:

  • Si Policy Controller se ejecuta en un entorno que tiene una cuenta de servicio predeterminada, concede el rol roles/monitoring.metricsWriter en el proyecto a esa cuenta de servicio: Google Cloud

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:PROJECT_NUMBER[email protected]" \
        --role=roles/monitoring.metricsWriter
    

    Haz los cambios siguientes:

    • PROJECT_ID: tu ID de proyecto Google Cloud .
    • PROJECT_NUMBER: tu número de proyecto Google Cloud numérico.
  • Si Workload Identity Federation para GKE o Workload Identity Federation de la flota están habilitados, asigna el rol roles/monitoring.metricsWriter al proyecto a la cuenta de servicio 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
    

    Sustituye 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 Cloud Monitoring.

Exportar métricas a Prometheus

Policy Controller exporta 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 Google Cloud Managed Service for Prometheus configurado, estas métricas se recogerán y almacenarán automáticamente en Cloud Monitoring. Esto también funciona en clústeres que habilitan Google Cloud Managed Service para Prometheus después de instalar Policy Controller. También es posible que tengas que conceder permisos adicionales a la cuenta de servicio predeterminada de Compute Engine que usa Google Cloud Managed Service para Prometheus, en función de tus políticas. Para obtener información sobre cómo conceder permisos a Google Cloud Managed Service para Prometheus, consulta Habilitar la recogida gestionada: GKE. Para obtener más información sobre cómo configurar Google Cloud Managed Service para Prometheus, consulta el artículo Primeros pasos con la recogida gestionada.

Para obtener más información sobre los precios de Cloud Monitoring, consulta la página Precios de Google Cloud Managed Service for Prometheus.

Para ver ejemplos de cómo consultar métricas con la solución Managed Service para Prometheus de Google Cloud, consulta Consultar con Cloud Monitoring.

Ver métricas

Las métricas de Policy Controller se exportan a tu proyecto de Cloud Monitoring en formato Prometheus. Por lo tanto, puedes consultar métricas mediante la API Cloud Monitoring y un panel de control en la Google Cloud consola. Puede editar este panel de control para adaptarlo a las necesidades de su empresa y de sus operaciones.

Para consultar la API Cloud Monitoring, usa el lenguaje de consultas de Prometheus (PromQL) (el lenguaje de consultas estándar para las métricas de Kubernetes) o el lenguaje de consultas de Monitoring (MQL) (el lenguaje de consultas de métricas propietario de Google).

Para configurar un panel de control con una plantilla, busca "Policy Controller" en la página Paneles de control de Cloud Monitoring. Para obtener más información sobre cómo crear y editar plantillas de panel de control, consulta la documentación de Cloud Monitoring.

Crear alertas

Para recibir notificaciones cuando tus métricas alcancen determinados umbrales, crea políticas de alertas en Cloud Monitoring.

Integración con productos de terceros

Al usar la API Cloud Monitoring, cualquier herramienta de observabilidad de terceros puede ingerir métricas de Policy Controller.

Por ejemplo, si usas paneles de Grafana, añade la API 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 tu clúster y configurado para exportar datos a Cloud Monitoring, puedes consultar las siguientes métricas (todas ellas tienen 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 Marca de tiempo de la época desde la última ejecución de la auditoría, expresada en segundos con decimales.
OpenCensus/constraint_template_ingestion_count Acumulativo status Número total de acciones de ingestión de plantillas de restricción
OpenCensus/constraint_template_ingestion_duration_seconds Acumulativo status Distribución de la duración de la ingestión de plantillas de restricción
OpenCensus/constraint_templates Indicador status Número actual de plantillas de restricción
OpenCensus/validation_request_count Encimera admission_status Número de solicitudes de admisión del servidor de la 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 Número de infracciones de auditoría detectadas en el último ciclo de auditoría
OpenCensus/watch_manager_intended_watch_gvk Indicador Número de GroupVersionKinds únicos que debe monitorizar Policy Controller. Esta métrica es una combinación de recursos y restricciones sincronizados.
OpenCensus/watch_manager_watched_gvk Indicador Cuántos GroupVersionKinds únicos está monitorizando Policy Controller. Esta métrica debe converger para ser igual a OpenCensus/watch_manager_intended_watch_gvk.

Si Policy Controller está configurado para exportar a Prometheus, puede consultar las siguientes métricas (todas ellas tienen 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 Marca de tiempo de la época del final de la última auditoría, expresada en segundos con decimales
Prometheus/gatekeeper_audit_last_run_time/gauge Indicador Marca de tiempo de la época del inicio de la última auditoría, expresada en segundos con decimales
Prometheus/gatekeeper_constraint_template_ingestion_count/counter Acumulativo status Número total de acciones de ingestión de plantillas de restricción
Prometheus/gatekeeper_constraint_template_ingestion_duration_seconds/histogram Acumulativo status Distribución de la duración de la ingestión de plantillas de restricción
Prometheus/gatekeeper_constraint_templates/gauge Indicador status Número actual de plantillas de restricción
Prometheus/gatekeeper_validation_request_count/counter Acumulativo admission_status, admission_dryrun Número de solicitudes de admisión del servidor de la 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 Número de infracciones de auditoría detectadas en el último ciclo de auditoría
Prometheus/gatekeeper_watch_manager_intended_watch_gvk/gauge Indicador Número de GroupVersionKinds únicos que debe monitorizar Policy Controller. Esta métrica es una combinación de recursos y restricciones sincronizados.
Prometheus/gatekeeper_watch_manager_watched_gvk/gauge Indicador Cuántos GroupVersionKinds únicos está monitorizando Policy Controller. Esta métrica debe converger para ser igual a Prometheus/gatekeeper_watch_manager_intended_watch_gvk/gauge.

Siguientes pasos