Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
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 exportá-las 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:
O Config Sync e o Controlador de Grupos 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 das 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 da verdade para um cluster.
apply_operations_total
Contar
operation, status, controller
O número total de operações realizadas para sincronizar recursos da fonte da verdade com um cluster.
declared_resources
Último valor
O número de recursos declarados analisados do 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 de diferentes estágios envolvidos na sincronização da fonte da verdade com 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 de eventos de reconciliação do remediador.
resource_conflicts_total
Contar
O número total de conflitos de recursos resultantes de uma incompatibilidade entre os recursos em cache e os recursos de cluster. A métrica pode não aparecer nos resultados da consulta se não tiver ocorrido nenhum conflito de recursos.
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á-las no menu suspenso "Agrupar por" no console do Monitoring.
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.
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 do 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.
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.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2024-06-27 UTC."],[],[],null,["# Config Sync metrics\n\nThe page describes the OpenTelemetry metrics available to monitor your\nConfig Sync resources.\n\nHow Config Sync collects metrics\n--------------------------------\n\nConfig Sync uses [OpenCensus](https://opentelemetry.io/) to\ncreate and record metrics and\n[OpenTelemetry](https://opentelemetry.io/) to export its metrics to\n[Prometheus](https://prometheus.io/) and\n[Cloud Monitoring](/monitoring/docs). You can also export OpenTelemetry\nmetrics to a custom monitoring system. The following guides explain how to\nexport metrics:\n\n- [Cloud Monitoring](/kubernetes-engine/enterprise/config-sync/docs/how-to/monitor-config-sync-cloud-monitoring)\n- [Prometheus](/kubernetes-engine/enterprise/config-sync/docs/how-to/monitor-config-sync-prometheus)\n- [Custom monitoring system](/kubernetes-engine/enterprise/config-sync/docs/how-to/monitor-config-sync-custom)\n\nTo configure the OpenTelemetry Collector, by default, Config Sync creates a\nConfigMap named `otel-collector`. The `otel-collector` Deployment runs\nin the `config-management-monitoring` namespace.\n\nThe creation of the `otel-collector` ConfigMap configures the `prometheus`\nexporter, which exposes a metrics endpoint for Prometheus to scan.\n\nWhen you run Config Sync on GKE, or in another Kubernetes\nenvironment that's configured with Google Cloud credentials, Config Sync\ncreates a ConfigMap named `otel-collector-google-cloud`. The\n`otel-collector-google-cloud` overrides the configuration in the\n`otel-collector` ConfigMap. Config Sync reverts any changes to the\n`otel-collector` or `otel-collector-google-cloud` ConfigMaps.\n\nThe creation of the `otel-collector-google-cloud` ConfigMap also adds the\n`cloudmonitoring` exporter, which exports to Cloud Monitoring, and the\n`kubernetes` exporter, which exports to Google's internal metric service. The\n`kubernetes` exporter sends select, anonymized metrics to Google to help improve\nConfig Sync.\n\nCloud Monitoring stores the metrics that you send to it in your\nGoogle Cloud project. The `cloudmonitoring` and `kubernetes` exporters use the same\nGoogle Cloud service account, which needs IAM permission to write\nto Cloud Monitoring. To configure these permissions, see\n[Grant metric-writing permission for Cloud Monitoring](/kubernetes-engine/enterprise/config-sync/docs/how-to/monitor-config-sync-cloud-monitoring#metric-permission).\n\nOpenTelemetry metrics\n---------------------\n\nConfig Sync and the Resource Group Controller collect the following metrics\nwith [OpenCensus](https://opencensus.io/introduction/)\nand make them available through\n[OpenTelemetry Collector](https://opentelemetry.io/docs/collector/) .\nThe **Tags** column lists Config Sync specific\n[tags](https://opencensus.io/tag/) that are applicable to each\nmetric. Metrics with tags represent multiple measurements, one for each\ncombination of tag values.\n| **Note:** The reconciler tag is dynamically created from the RootSync and RepoSync objects. For examples on what this tag looks like and how to use it, see [Querying metrics by reconciler](/kubernetes-engine/enterprise/config-sync/docs/how-to/monitor-config-sync-cloud-monitoring#queryreconciler).\n\n### Config Sync metrics\n\n### Resource Group Controller metrics\n\nThe Resource Group Controller is a component in Config Sync that keeps track\nof the managed resources and checks if each individual resource is ready or\nreconciled. The following metrics are available.\n\n### Config Sync metric labels\n\nMetric labels can be used to aggregate metric data in Cloud Monitoring and\nPrometheus. They are selectable from the \"Group By\" drop-down list in the\n[Monitoring Console](https://console.cloud.google.com/monitoring).\n\nFor more information about Cloud Monitoring label and Prometheus metric label,\nsee the [Components of the metric model](/monitoring/api/v3/metric-model)\nand [Prometheus data model](https://prometheus.io/docs/concepts/data_model/).\n| **Note:** The Tags from [Config Sync metrics](#configsync-metrics) and [Resource Group Controller metrics](#resource-group-metrics) are conceptually equivalent to Labels in this section.\n\n### Metric labels\n\nThe following labels are used by Config Sync and Resource Group Controller\nmetrics, available when monitoring with Cloud Monitoring and Prometheus.\n\n| **Note:** Depending on the frequency of production repository commits and variance in Kubernetes Kinds being deployed, the metric labels `commit` and `type` can cause an increase in Cloud Monitoring metric write throughput compared to other metrics. The affected metrics are `apply_duration_seconds`, `api_duration_seconds`, `declared_resources`, `apply_operations_total`. To avoid an increase in billing or if these metrics are not needed, follow the instructions to [patch the otel collector deployment with ConfigMap](https://github.com/GoogleContainerTools/kpt-config-sync/blob/main/docs/custom-metric-filter.md#patch-the-otel-collector-deployment-with-configmap) and remove the aforementioned metrics from `filter/cloudmonitoring` allowlist.\n\n### Resource labels\n\nConfig Sync metrics sent to Prometheus and Cloud Monitoring have the following metric labels set to\nidentify the source Pod:\n\nConfig Sync metrics sent to Prometheus and Cloud Monitoring from `reconciler` Pods also have the\nfollowing metric labels set to identify the RootSync or RepoSync used to configure\nthe reconciler:\n\n### Cloud Monitoring resource labels\n\nCloud Monitoring Resource labels are used for indexing metrics in storage, which\nmeans they have negligible effect on cardinality, unlike metric labels, where\ncardinality is a significant performance concern. See\n[Monitored Resource Types](/monitoring/api/v3/metric-model) for more information.\n\nThe `k8s_container` resource type sets the following resource labels to identify the source Container:\n\nConfigure custom metric filtering\n---------------------------------\n\nYou can adjust the custom metrics that Config Sync exports to Prometheus,\nCloud Monitoring, and Google's internal monitoring service. Adjust custom\nmetrics to fine-tune the included metrics or configure different backends.\n\nTo modify custom metrics, create and then edit a ConfigMap named\n`otel-collector-custom`. Using this ConfigMap ensures that Config Sync\ndoesn't revert any of the modifications that you make. If you modify the\n`otel-collector` or `otel-collector-google-cloud` ConfigMaps, Config Sync\nreverts any changes.\n\nFor examples of how to adjust this ConfigMap, see\n[Custom Metric Filtering](https://github.com/GoogleContainerTools/kpt-config-sync/blob/main/docs/custom-metric-filter.md)\nin the open source Config Sync documentation.\n\nUnderstand the pipeline_error_observed metric\n---------------------------------------------\n\nThe `pipeline_error_observed` metric is a metric that can help you quickly identify\nRepoSync or RootSync CRs that are not in sync or contain resources that are not\nreconciled to the desired state.\n\n- For a successful sync by a RootSync or RepoSync, the metrics with all components\n (`rendering`, `source`, `sync`, `readiness`) are observed with value 0.\n\n- When the latest commit fails the\n [automated rendering](/kubernetes-engine/enterprise/config-sync/docs/tutorials/config-sync-helm), the\n metric with the component `rendering` is observed with value 1.\n\n- When checking out the latest commit encounters error or the latest commit\n contains invalid configuration, the metric with the component `source` is\n observed with value 1.\n\n- When a resource fails to be applied to the cluster, the metric with the\n component `sync` is observed with value 1.\n\n- When a resource is applied, but fails to reach its desired state, the\n metric with the component `readiness` is observed with value 1. For example, a\n Deployment is applied to the cluster, but the corresponding Pods are not created\n successfully.\n\nWhat's next\n-----------\n\n- Learn more about how to [monitor RootSync and RepoSync objects](/kubernetes-engine/enterprise/config-sync/docs/how-to/monitor-rootsync-reposync).\n- Learn how to [use the Config Sync SLIs](/kubernetes-engine/enterprise/config-sync/docs/how-to/config-sync-slis)."]]