Monitorize o Config Sync com o Cloud Monitoring

A página descreve como enviar métricas do Config Sync para o Cloud Monitoring.

O Config Sync usa o OpenTelemetry para criar, registar e exportar as respetivas métricas. Esta página explica como configurar as métricas do Cloud Monitoring.

Recomendamos que use o Cloud Monitoring (esta página) ou o Prometheus para exportar métricas. Também é possível usar métricas personalizadas.

A configuração de métricas do Cloud Monitoring requer a autorização iam.serviceAccounts.setIamPolicy no projeto. Para ver exemplos de como ver estas métricas, consulte os Procedimentos de depuração de exemplo. Pode ver estas métricas com o Explorador de métricas ou usando a API Cloud Monitoring.

Conceda autorização de escrita de métricas para o Cloud Monitoring

Para configurar o Cloud Monitoring para o Config Sync, tem de conceder autorização de escrita de métricas a uma conta de serviço no seu projeto. A autorização necessária depende de a federação de identidade da força de trabalho para o GKE estar ativada.

Configure o Cloud Monitoring com a Workload Identity Federation para o GKE

Se a federação de identidade da carga de trabalho para o GKE estiver ativada, permita que o Config Sync envie métricas executando 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]"

Substitua PROJECT_ID pelo ID do projeto do cluster.

Configure o Cloud Monitoring sem a Workload Identity Federation para o GKE

Se a Workload Identity Federation para o GKE não estiver ativada e o Config Sync estiver a ser executado num Google Cloud ambiente, pode usar a conta de serviço predefinida do Compute Engine. Se a sua organização aplicar a restrição da política da organização iam.automaticIamGrantsForDefaultServiceAccounts, esta conta de serviço pode não receber automaticamente a função de Editor (roles/editor) no seu projeto. Tem de conceder a função IAM Monitoring Metric Writer (roles/monitoring.metricWriter) no projeto à conta de serviço predefinida do Compute Engine executando o seguinte comando:

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

Substitua o seguinte:

  • PROJECT_ID: o ID do seu projeto.
  • PROJECT_NUMBER: o número do seu projeto.

Lista predefinida de métricas no Cloud Monitoring

Nome Tipo
api_duration_seconds Distribuição
apply_duration_seconds Distribuição
apply_operations_total Contagem
declared_resources Último valor
internal_errors_total Contagem
last_sync_timestamp Último valor
pipeline_error_observed Último valor
reconciler_errors Último valor
resource_fights_total Contagem
reconcile_duration_seconds Distribuição
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 a lista de autorizações de métricas no Cloud Monitoring, siga as instruções para aplicar patch à implementação do coletor otel com o ConfigMap.

Exemplos de procedimentos de depuração para o Cloud Monitoring

Os exemplos do Cloud Monitoring seguintes ilustram alguns padrões de utilização das métricas do OpenCensus para detetar e diagnosticar problemas relacionados com o Config Sync quando usa as APIs RootSync e RepoSync.

Formato da métrica

No Cloud Monitoring, as métricas têm o seguinte formato: custom.googleapis.com/opencensus/config_sync/METRIC.

O nome desta métrica é composto pelos seguintes componentes:

  • custom.googleapis.com: todas as métricas personalizadas têm este prefixo
  • opencensus: este prefixo é adicionado porque o Config Sync usa a biblioteca OpenCensus
  • config_sync/: as métricas que o Config Sync exporta para o Cloud Monitoring têm este prefixo
  • METRIC: o nome da métrica que quer consultar

Consulte métricas por reconciliador

Os objetos RootSync e RepoSync são instrumentados com métricas de alto nível que lhe dão estatísticas úteis sobre o funcionamento do Config Sync no cluster. Quase todas as métricas são etiquetadas pelo nome do reconciliador, para que possa ver se ocorreram erros e configurar alertas para os mesmos no Cloud Monitoring.

Um reconciliador é um pod implementado como uma implementação. Sincroniza manifestos de uma fonte de informação fidedigna para um cluster. Quando cria um objeto RootSync, o Config Sync cria um reconciliador denominado root-reconciler-ROOT_SYNC_NAME ou root-reconciler se o nome do RootSync for root-sync. Quando cria um objeto RepoSync, o Config Sync cria um reconciliador denominado ns-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTH ou ns-reconciler-NAMESPACE se o nome do RepoSync for repo-sync, em que NAMESPACE é o espaço de nomes no qual criou o objeto RepoSync.

O diagrama seguinte mostra como funcionam os pods de reconciliação quando a fonte de verdade é um repositório Git:

Fluxo do reconciliador

Por exemplo, para filtrar pelo nome do reconciliador quando estiver a usar o Cloud Monitoring, conclua as seguintes tarefas:

  1. Na Google Cloud consola, aceda a Monitorização:

    Aceder a Monitorização

  2. No painel de navegação Monitorização, clique em Explorador de métricas.

  3. Na lista pendente Selecionar uma métrica, adicione: custom.googleapis.com/opencensus/config_sync/reconciler_errors.

  4. Na lista pendente Filtrar, selecione reconciliador. É apresentada uma caixa de campos de filtro.

  5. Na caixa de campos de filtro, selecione = no primeiro campo e o nome do reconciliador (por exemplo, root-reconciler) no segundo.

  6. Clique em Aplicar.

Agora, pode ver as métricas dos seus objetos RootSync.

Para mais instruções sobre como filtrar por um tipo de dados específico, consulte Filtrar os dados.

Consulte as operações do Config Sync por componente e estado

Quando ativou as APIs RootSync e RepoSync, a importação e o fornecimento a partir de uma fonte de verdade e a sincronização com um cluster são processados pelos reconciliadores. A métrica reconciler_errors é etiquetada por componente para que possa ver onde ocorreram erros.

Por exemplo, para filtrar por componente quando estiver a usar o Cloud Monitoring, conclua as seguintes tarefas:

  1. Na Google Cloud consola, aceda a Monitorização:

    Aceder a Monitorização

  2. No painel de navegação Monitorização, clique em Explorador de métricas.

  3. Na lista pendente Selecionar uma métrica, adicione custom.googleapis.com/opencensus/config_sync/reconciler_errors.

  4. Na lista pendente Filtro, selecione componente. É apresentada uma caixa de campos de filtro.

  5. Na caixa de campos de filtro, selecione = na primeira caixa e source na segunda.

  6. Clique em Aplicar.

Agora, pode ver os erros que ocorreram ao obter dados de uma fonte fidedigna para os seus reconciliadores.

Também pode verificar as métricas dos processos de origem e sincronização consultando as seguintes métricas e filtrando pela 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