Monitorizar Config Sync con Cloud Monitoring

En esta página se describe cómo enviar métricas de Config Sync a Cloud Monitoring.

Config Sync usa OpenTelemetry para crear, registrar y exportar sus métricas. En esta página se explica cómo configurar las métricas de Cloud Monitoring.

Te recomendamos que uses Cloud Monitoring (esta página) o Prometheus para exportar métricas. También se pueden usar métricas personalizadas.

Para configurar las métricas de Cloud Monitoring, se necesita el permiso iam.serviceAccounts.setIamPolicyen el proyecto. Para ver ejemplos de cómo consultar estas métricas, consulta Ejemplos de procedimientos de depuración. Puedes ver estas métricas con el explorador de métricas o mediante la API Cloud Monitoring.

Conceder permiso de escritura de métricas para Cloud Monitoring

Para configurar Cloud Monitoring en Config Sync, debes conceder permiso de escritura de métricas a una cuenta de servicio de tu proyecto. El permiso necesario depende de si Workload Identity Federation para GKE está habilitado.

Configurar Cloud Monitoring con Workload Identity Federation para GKE

Si Workload Identity Federation for GKE está habilitado, permite que Config Sync envíe métricas ejecutando este comando:

gcloud projects add-iam-policy-binding PROJECT_ID \
   --role=roles/monitoring.metricWriter \
   --member="serviceAccount:PROJECT_ID.svc.id.goog[config-management-monitoring/default]"

Sustituye PROJECT_ID por el ID del proyecto del clúster.

Configurar Cloud Monitoring sin Workload Identity Federation para GKE

Si Workload Identity Federation para GKE no está habilitado y Config Sync se ejecuta en unGoogle Cloud entorno, puedes usar la cuenta de servicio predeterminada de Compute Engine. Si tu organización aplica la restricción de la política de organización iam.automaticIamGrantsForDefaultServiceAccounts, es posible que no se conceda automáticamente a esta cuenta de servicio el rol Editor (roles/editor) en tu proyecto. Debes asignar el rol de gestión de identidades y accesos Escritor de métricas de Monitoring (roles/monitoring.metricWriter) a la cuenta de servicio predeterminada de Compute Engine del proyecto ejecutando el siguiente comando:

gcloud projects add-iam-policy-binding PROJECT_ID \
   --role=roles/monitoring.metricWriter \
   --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com

Haz los cambios siguientes:

  • PROJECT_ID: tu ID de proyecto.
  • PROJECT_NUMBER: tu número de proyecto.

Lista predeterminada de métricas de Cloud Monitoring

Nombre Tipo
api_duration_seconds Distribución
apply_duration_seconds Distribución
apply_operations_total Recuento
declared_resources Último valor
internal_errors_total Recuento
last_sync_timestamp Último valor
pipeline_error_observed Último valor
reconciler_errors Último valor
resource_fights_total Recuento
reconcile_duration_seconds Distribución
resource_group_total Último valor
resource_count Último valor
ready_resource_count Último valor
resource_ns_count Último valor
cluster_scoped_resource_count Último valor
kcc_resource_count Indicador

Para modificar la lista de permitidos de métricas en Cloud Monitoring, sigue las instrucciones para aplicar un parche a la implementación del recolector de OpenTelemetry con ConfigMap.

Ejemplos de procedimientos de depuración de Cloud Monitoring

Los siguientes ejemplos de Cloud Monitoring ilustran algunos patrones para usar métricas de OpenCensus con el fin de detectar y diagnosticar problemas relacionados con Config Sync cuando se usan las APIs RootSync y RepoSync.

Formato de la métrica

En Cloud Monitoring, las métricas tienen el siguiente formato: custom.googleapis.com/opencensus/config_sync/METRIC.

El nombre de esta métrica se compone de los siguientes elementos:

  • custom.googleapis.com: todas las métricas personalizadas tienen este prefijo
  • opencensus: este prefijo se añade porque Config Sync usa la biblioteca OpenCensus.
  • config_sync/: métricas que Config Sync exporta a Cloud Monitoring tienen este prefijo
  • METRIC: el nombre de la métrica que quieres consultar

Consultar métricas por conciliador

Los objetos RootSync y RepoSync se instrumentan con métricas de alto nivel que te proporcionan información valiosa sobre cómo funciona Config Sync en el clúster. Casi todas las métricas se etiquetan con el nombre del reconciliador, por lo que puedes ver si se ha producido algún error y configurar alertas para ellos en Cloud Monitoring.

Un reconciliador es un pod que se implementa como un Deployment. Sincroniza manifiestos de una fuente de información veraz con un clúster. Cuando creas un objeto RootSync, Config Sync crea un reconciliador llamado root-reconciler-ROOT_SYNC_NAME o root-reconciler si el nombre de RootSync es root-sync. Cuando creas un objeto RepoSync, Config Sync crea un reconciliador llamado ns-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTH o ns-reconciler-NAMESPACE si el nombre de RepoSync es repo-sync, donde NAMESPACE es el espacio de nombres en el que has creado el objeto RepoSync.

En el siguiente diagrama se muestra cómo funcionan los pods de reconciliación cuando la fuente de información principal es un repositorio de Git:

Flujo de reconciliación

Por ejemplo, para filtrar por el nombre del reconciliador cuando usas Cloud Monitoring, completa las siguientes tareas:

  1. En la Google Cloud consola, ve a Monitoring:

    Ir a Monitoring

  2. En el panel de navegación Monitoring, haga clic en Explorador de métricas.

  3. En la lista desplegable Seleccionar una métrica, añada custom.googleapis.com/opencensus/config_sync/reconciler_errors.

  4. En la lista desplegable Filter (Filtro), selecciona reconciler (Conciliador). Aparecerá un cuadro de campos de filtro.

  5. En el cuadro de campos de filtro, selecciona = en el primer campo y el nombre del reconciliador (por ejemplo, root-reconciler) en el segundo.

  6. Haz clic en Aplicar.

Ahora puede ver las métricas de sus objetos RootSync.

Para obtener más instrucciones sobre cómo filtrar por un tipo de datos específico, consulta Filtrar los datos.

Consultar operaciones de Config Sync por componente y estado

Cuando hayas habilitado las APIs RootSync y RepoSync, los reconciliadores se encargarán de importar y obtener datos de una fuente de información fiable, así como de sincronizarlos con un clúster. La métrica reconciler_errors se etiqueta por componente para que puedas ver dónde se han producido los errores.

Por ejemplo, para filtrar por componente cuando usas Cloud Monitoring, completa las siguientes tareas:

  1. En la Google Cloud consola, ve a Monitoring:

    Ir a Monitoring

  2. En el panel de navegación Monitoring, haga clic en Explorador de métricas.

  3. En la lista desplegable Selecciona una métrica, añade custom.googleapis.com/opencensus/config_sync/reconciler_errors.

  4. En la lista desplegable Filtrar, selecciona componente. Aparecerá un cuadro de campos de filtro.

  5. En el cuadro de campos de filtro, selecciona = en el primer cuadro y source en el segundo.

  6. Haz clic en Aplicar.

Ahora puede ver los errores que se han producido al obtener datos de una fuente fiable para sus conciliadores.

También puede consultar las métricas de los procesos de origen y sincronización. Para ello, consulte las siguientes métricas y filtre por la etiqueta status:

custom.googleapis.com/opencensus/config_sync/parser_duration_seconds
custom.googleapis.com/opencensus/config_sync/apply_duration_seconds
custom.googleapis.com/opencensus/config_sync/remediate_duration_seconds