Métricas do Config Sync

Nesta página, descrevemos as métricas do OpenTelemetry disponíveis para monitorar seus recursos do Config Sync.

O Config Sync usa o OpenCensus para criar e registrar métricas e o OpenTelemetry para exportar as métricas para o Prometheus e o Cloud Monitoring. É possível exportar as métricas do OpenTelemetry para outro sistema de monitoramento. Os guias a seguir explicam como exportar métricas:

Métricas do OpenTelemetry

O Config Sync e o controlador do grupo de recursos coletam as seguintes métricas com o OpenCensus e as disponibilizam por meio do coletor do OpenTelemetry. A coluna Tags lista as tags específicas do Config Sync aplicáveis a cada métrica. As métricas com tags representam várias medidas, uma para cada combinação de valores de tag.

Métricas do Config Sync

Nome Tipo Tags Descrição
api_duration_seconds Distribuição operação, status A distribuição de latência de chamadas do servidor de API.
apply_duration_seconds Distribuição status A distribuição de latência da aplicação de recursos declarados da fonte de verdade a um cluster.
apply_operations_total Contagem operation, status, controller O número total de operações executadas para sincronizar recursos da fonte de verdade com um cluster.
declared_resources Último valor O número de recursos declarados analisados no Git.
internal_errors_total Contagem source O número total de erros internos encontrados pelo Config Sync. É possível que a métrica não apareça nos resultados da consulta se nenhum erro interno tiver ocorrido.
last_sync_timestamp Último valor status O carimbo de data/hora da sincronização mais recente do Git.
parser_duration_seconds Distribuição status, trigger, source A distribuição de latência dos diferentes estágios envolvidos na sincronização da fonte da verdade para um cluster.
pipeline_error_observed Último valor nome, reconciliador, componente O status dos recursos personalizados RootSync e RepoSync. Um valor de 1 indica uma falha.
reconcile_duration_seconds Distribuição status A distribuição de latência de eventos de reconciliação manipulados pelo gerenciador de reconciliação.
reconciler_errors Último valor component, errorclass O número de erros encontrados ao sincronizar os recursos da fonte da verdade com um cluster.
remediate_duration_seconds Distribuição status A distribuição de latência dos eventos de reconciliação do remediador.
resource_conflicts_total Contagem O número total de conflitos de recursos resultantes de uma incompatibilidade entre os recursos armazenados em cache e os recursos de cluster. A métrica pode não aparecer nos resultados da consulta se nenhum conflito de recursos tiver ocorrido.
resource_fights_total Contagem O número total de recursos que estão sendo sincronizados com muita frequência. Qualquer resultado maior que zero indica um problema. Para mais informações, consulte KNV2005: ResourceFackWarning. A métrica pode não aparecer nos resultados da consulta se não tiver ocorrido nenhuma disputa de recursos.

Métricas do controlador de grupo de recursos

O controlador de grupo de recursos é um componente do Config Sync que monitora os recursos gerenciados e verifica se cada recurso individual está pronto ou reconciliado. As seguintes métricas estão disponíveis.

Nome Tipo Tags Descrição
rg_reconcile_duration_seconds Distribuição parada A distribuição do tempo necessário para reconciliar uma resposta automática do ResourceGroup
resource_group_total Último valor O número atual de CRs de ResourceGroup
resource_count Último valor resourcegroup O número total de recursos rastreados por um ResourceGroup
ready_resource_count Último valor resourcegroup O número total de recursos prontos em um ResourceGroup
resource_ns_count Último valor resourcegroup O número de namespaces usados por recursos em um ResourceGroup
cluster_scoped_resource_count Último valor resourcegroup O número de recursos com escopo de cluster em um ResourceGroup
crd_count Último valor resourcegroup O número de CRDs em um ResourceGroup
kcc_resource_count Último valor resourcegroup O número total de recursos KCC em um ResourceGroup
pipeline_error_observed Último valor nome, reconciliador, componente O status dos recursos personalizados RootSync e RepoSync. Um valor de 1 indica uma falha.

Rótulos de métricas do Config Sync

É possível usar identificadores de métricas para agregar dados de métricas no Cloud Monitoring e no Prometheus. É possível selecioná-los na lista suspensa "Agrupar por" do Console do Monitoring.

Para mais informações sobre os identificadores do Cloud Monitoring e os identificadores de métricas do Prometheus, consulte Componentes do modelo de métrica e Modelo de dados do Prometheus.

Rótulos de métrica

Os rótulos a seguir são usados pelas métricas do Config Sync e do controlador de grupos de recursos, disponíveis durante o monitoramento com o Cloud Monitoring e o Prometheus.

Nome Valores Descrição
operation criar, patch, atualizar, excluir O tipo de operação realizada
status sucesso, erro O status de execução de uma operação
reconciler rootsync, reposync Tipo de reconciliador
source Analisar, diferenciar, remediar A origem do erro interno
trigger tentar novamente, watchUpdate, managementConflict, sincronizar novamente, importar novamente Acionador de um evento de reconciliação
name Nome do reconciliador O nome do reconciliador
component análise, origem, sincronização, renderização, prontidão O nome do componente / estágio em que a reconciliação está no momento
container reconciliador, git-sync O nome do contêiner
resource CPU, memória O tipo de recurso;
controller aplicador, remediador O nome do controlador em uma reconciliação ou namespace raiz
type Qualquer recurso do Kubernetes, por exemplo, ClusterRole, Namespace, NetworkPolicy, Role e assim por diante. O tipo de API Kubernetes
commit ---- O hash do commit sincronizado mais recente

Rótulos de recursos

As métricas do Config Sync enviadas ao Prometheus e ao Cloud Monitoring têm os seguintes identificadores de métricas definidos para identificar o pod de origem:

Nome Descrição
k8s.node.name O nome do nó que hospeda um pod do Kubernetes
k8s.pod.namespace O namespace do pod
k8s.pod.uid O UID do pod
k8s.pod.ip O IP do pod
k8s.deployment.name O nome da implantação proprietária do pod

As métricas do Config Sync enviadas ao Prometheus e ao Cloud Monitoring pelos pods reconciler também têm os seguintes identificadores de métricas definidos para identificar o RootSync ou o RepoSync usados para configurar o reconciliador:

Nome Descrição
configsync.sync.kind O tipo de recurso que configura este reconciliador: RootSync ou RepoSync
configsync.sync.name O nome de RootSync ou RepoSync que configura este reconciliador
configsync.sync.namespace O namespace do RootSync ou RepoSync que configura esse reconciliador.

Identificadores de recursos do Cloud Monitoring

Os identificadores de recursos do Cloud Monitoring são usados para indexar métricas no armazenamento. Isso significa que eles têm um efeito insignificante na cardinalidade, ao contrário dos identificadores de métricas, em que a cardinalidade é uma questão de desempenho importante. Consulte Tipos de recursos monitorados para mais informações.

O tipo de recurso k8s_container define os seguintes rótulos de recursos para identificar o contêiner de origem:

Nome Descrição
container_name O nome do contêiner
pod_name O nome do pod
namespace_name O namespace do pod
location A região ou a zona do cluster que hospeda o nó
cluster_name O nome do cluster que hospeda o nó
project O ID do projeto que hospeda o cluster

Compreender a métrica pipeline_error_observed

A métrica pipeline_error_observed é uma métrica que pode ajudar a identificar rapidamente as respostas automáticas do RepoSync ou RootSync que não estão sincronizadas ou contêm recursos que não são reconciliados para o estado desejado.

  • Para uma sincronização bem-sucedida por um RootSync ou RepoSync, as métricas com todos os componentes (rendering, source, sync e readiness) são observadas com o valor 0.

    Uma captura de tela da métrica pipeline_error_observed com todos os componentes observados com valor 0

  • Quando a confirmação mais recente falha na renderização automática, a métrica com o componente rendering é observada com o valor 1.

  • Ao verificar que a ocorrência do erro mais recente ou a confirmação mais recente contém uma configuração inválida, a métrica com o componente source é observada com o valor 1.

  • Quando algum recurso não é aplicado ao cluster, a métrica com o componente sync é observada com o valor 1.

  • Quando um recurso é aplicado, mas não atinge o estado desejado, a métrica com o componente readiness é observada com o valor 1. Por exemplo, uma implantação é aplicada ao cluster, mas os pods correspondentes não são criados.

A seguir