Monitorar o Config Sync com o Cloud Monitoring

Nesta página, descrevemos como enviar métricas do Config Sync para o Cloud Monitoring.

O Config Sync usa o OpenTelemetry para criar, registrar e exportar as métricas. Nesta página, explicamos como configurar as métricas do Cloud Monitoring. Para ver outras maneiras de exportar métricas, consulte Monitorar o Config Sync com o Prometheus ou Monitorar o Config Sync com o monitoramento personalizado.

A configuração das métricas do Cloud Monitoring requer a permissão iam.serviceAccounts.setIamPolicy no projeto. Para ver exemplos de como visualizar essas métricas, consulte Exemplos de procedimentos de depuração e o artigo Métricas do OpenCensus no Cloud Monitoring (em inglês).

Conceder permissão de gravação de métricas para o Cloud Monitoring

Para configurar o Cloud Monitoring para o Config Sync, é necessário conceder permissão de gravação de métricas a uma conta de serviço no projeto. A permissão necessária depende da ativação da Identidade da carga de trabalho.

Configurar o Cloud Monitoring com a Identidade da carga de trabalho

Se a Identidade da carga de trabalho 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.

Configurar o Cloud Monitoring sem a Identidade da carga de trabalho

Se a Identidade da carga de trabalho não estiver ativada e o Config Sync estiver em execução em um ambiente do Google Cloud, será possível usar a conta de serviço padrão do Compute Engine. Se as concessões do papel Editor automático (roles/editor) estiverem desativadas, conceda à conta de serviço o papel do IAM de Gravador de métricas do Monitoring (roles/monitoring.metricWriter) 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:

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

Lista padrão 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 Medidor

Para modificar a lista de permissões de métricas no Cloud Monitoring, siga as instruções para corrigir a implantação do coletor de otel com o ConfigMap.

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

Os exemplos do Cloud Monitoring a seguir ilustram alguns padrões para usar as métricas do OpenCensus para detectar e diagnosticar problemas relacionados ao Config Sync, quando você está usando 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.

Esse nome de métrica é composto dos seguintes componentes:

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

Consultar métricas por reconciliador

Objetos do RootSync e RepoSync são instrumentados com métricas de alto nível que fornecem insights úteis sobre como o Config Sync está operando no cluster. Quase todas as métricas são marcadas com tag pelo nome do reconciliador. Assim, você vê se ocorreu algum erro e pode configurar alertas para ele no Cloud Monitoring.

Um reconciliador é um pod implantado como uma implantação. Ele sincroniza manifestos de uma fonte de informações com um cluster. Quando você cria um objeto RootSync, o Config Sync cria um reconciliador chamado root-reconciler-ROOT_SYNC_NAME ou root-reconciler se o nome do RootSync for root-sync. Quando você cria um objeto RepoSync, o Config Sync cria um reconciliador chamado 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 namespace em que você criou o objeto RepoSync.

O diagrama a seguir mostra como os pods reconciliadores funcionam quando a fonte de verdade é um repositório Git:

Fluxo do reconciliação

Por exemplo, para filtrar pelo nome do validador, quando estiver usando o Cloud Monitoring, conclua as seguintes tarefas:

  1. No Console do Google Cloud, acesse o Monitoring:

    Acessar Monitoring

  2. No painel de navegação do Monitoring, clique em Metrics explorer.

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

  4. Na lista suspensa Filtro, selecione reconciliador. Uma caixa de campos de filtro é exibida.

  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 você pode ver as métricas dos seus objetos RootSync.

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

Consultar operações do Config Sync por componente e status

Quando você ativa as APIs RootSync e RepoSync, a importação e o fornecimento de uma fonte de informações e a sincronização com um cluster são operados pelos reconciliadores. A métrica reconciler_errors é identificada pelo componente para que você possa ver onde ocorreram erros.

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

  1. No Console do Google Cloud, acesse o Monitoring:

    Acessar Monitoring

  2. No painel de navegação do Monitoring, clique em Metrics explorer.

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

  4. Na lista suspensa Filtro, selecione componente. Uma caixa de campos de filtro é exibida.

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

  6. Clique em Aplicar.

Agora é possível ver os erros que ocorreram ao buscar uma fonte de informações para seus reconciliadores.

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