En esta página se describen las métricas de OpenTelemetry disponibles para monitorizar los recursos de Config Sync.
Cómo recoge métricas Config Sync
Config Sync usa OpenCensus para crear y registrar métricas, y OpenTelemetry para exportar sus métricas a Prometheus y Cloud Monitoring. En las siguientes guías se explica cómo exportar métricas:
- Cloud Monitoring
- Prometheus
- Sistema de monitorización personalizado (no recomendado)
Para configurar el Collector de OpenTelemetry, Config Sync crea de forma predeterminada un ConfigMap llamado otel-collector
. La otel-collector
implementación se ejecuta
en el espacio de nombres config-management-monitoring
.
La creación de otel-collector
ConfigMap configura el exportador prometheus
, que expone un endpoint de métricas para que Prometheus lo analice.
Cuando ejecutas Config Sync en GKE o en otro entorno de Kubernetes configurado con Google Cloud credenciales, Config Sync crea un ConfigMap llamado otel-collector-google-cloud
. El
otel-collector-google-cloud
anula la configuración del
otel-collector
ConfigMap. Config Sync revierte los cambios realizados en los ConfigMaps otel-collector
o otel-collector-google-cloud
.
La creación del otel-collector-google-cloud
ConfigMap también añade el exportador cloudmonitoring
, que exporta a Cloud Monitoring, y el exportador kubernetes
, que exporta al servicio de métricas interno de Google. El exportador de kubernetes
envía métricas seleccionadas y anonimizadas a Google para ayudar a mejorar Config Sync.
Cloud Monitoring almacena las métricas que le envías en tuGoogle Cloud proyecto. Los exportadores cloudmonitoring
y kubernetes
usan la misma cuenta de servicioGoogle Cloud , que necesita permiso de IAM para escribir en Cloud Monitoring. Para configurar estos permisos, consulta Conceder permiso de escritura de métricas para Cloud Monitoring.
Métricas de OpenTelemetry
Config Sync y Resource Group Controller recogen las siguientes métricas con OpenCensus y las ponen a disposición a través de OpenTelemetry Collector . En la columna Etiquetas se muestran las etiquetas específicas de Config Sync que se pueden aplicar a cada métrica. Las métricas con etiquetas representan varias mediciones, una por cada combinación de valores de etiqueta.
Métricas de Config Sync
Nombre | Tipo | Etiquetas | Descripción |
---|---|---|---|
api_duration_seconds | Distribución | operación, estado | La distribución de la latencia de las llamadas al servidor de la API. |
apply_duration_seconds | Distribución | status | La distribución de la latencia de la aplicación de los recursos declarados desde la fuente de información veraz a un clúster. |
apply_operations_total | Recuento | operación, estado, controlador | El número total de operaciones que se han realizado para sincronizar recursos de la fuente de información veraz con un clúster. |
declared_resources | Último valor | Número de recursos declarados analizados de Git. | |
internal_errors_total | Recuento | fuente | El número total de errores internos que ha detectado Config Sync. Es posible que la métrica no aparezca en los resultados de la consulta si no se ha producido ningún error interno. |
last_sync_timestamp | Último valor | status | Marca de tiempo de la sincronización más reciente de Git. |
parser_duration_seconds | Distribución | estado, activador y origen | La distribución de la latencia de las diferentes fases implicadas en la sincronización desde la fuente de información veraz hasta un clúster. |
pipeline_error_observed | Último valor | nombre, reconciliador y componente | El estado de los recursos personalizados RootSync y RepoSync. El valor 1 indica un error. |
reconcile_duration_seconds | Distribución | status | La distribución de la latencia de los eventos de conciliación gestionados por el gestor de conciliadores. |
reconciler_errors | Último valor | component, errorclass | Número de errores que se han producido al sincronizar recursos desde la fuente de información veraz con un clúster. |
remediate_duration_seconds | Distribución | status | Distribución de la latencia de los eventos de conciliación de remediadores. |
resource_conflicts_total | Recuento | El número total de conflictos de recursos derivados de una discrepancia entre los recursos almacenados en caché y los recursos del clúster. Es posible que la métrica no aparezca en los resultados de la consulta si no se ha producido ningún conflicto de recursos. | |
resource_fights_total | Recuento | Número total de recursos que se están sincronizando con demasiada frecuencia. Si el resultado es superior a cero, significa que hay un problema. Para obtener más información, consulta KNV2005: ResourceFightWarning. Es posible que la métrica no aparezca en los resultados de la consulta si no se ha producido ninguna lucha de recursos. |
Métricas de controlador de grupos de recursos
El controlador de grupo de recursos es un componente de Config Sync que monitoriza los recursos gestionados y comprueba si cada recurso está listo o sincronizado. Están disponibles las siguientes métricas.
Nombre | Tipo | Etiquetas | Descripción |
---|---|---|---|
rg_reconcile_duration_seconds | Distribución | stallreason | Distribución del tiempo necesario para reconciliar un CR de ResourceGroup |
resource_group_total | Último valor | Número actual de CRs de ResourceGroup | |
resource_count | Último valor | resourcegroup | Número total de recursos monitorizados por un ResourceGroup |
ready_resource_count | Último valor | resourcegroup | Número total de recursos listos en un ResourceGroup |
resource_ns_count | Último valor | resourcegroup | Número de espacios de nombres usados por los recursos de un ResourceGroup |
cluster_scoped_resource_count | Último valor | resourcegroup | Número de recursos con permisos de clúster en un ResourceGroup |
crd_count | Último valor | resourcegroup | Número de CRDs de un ResourceGroup |
kcc_resource_count | Último valor | resourcegroup | El número total de recursos de KCC de un ResourceGroup |
pipeline_error_observed | Último valor | nombre, reconciliador y componente | El estado de los recursos personalizados RootSync y RepoSync. El valor 1 indica un error. |
Etiquetas de métricas de Config Sync
Las etiquetas de métricas se pueden usar para agregar datos de métricas en Cloud Monitoring y Prometheus. Se pueden seleccionar en la lista desplegable "Agrupar por" de la consola de monitorización.
Para obtener más información sobre las etiquetas de Cloud Monitoring y las etiquetas de métricas de Prometheus, consulta los artículos Componentes del modelo de métricas y Modelo de datos de Prometheus.
Etiquetas de métricas
Config Sync y Resource Group Controller usan las siguientes etiquetas de métricas, que están disponibles al monitorizar con Cloud Monitoring y Prometheus.
Nombre | Valores | Descripción |
---|---|---|
operation |
create, patch, update, delete | El tipo de operación realizada |
status |
success, error | El estado de ejecución de una operación |
reconciler |
rootsync, reposync | Tipo de reconciliador |
source |
analizador, differ, remediator | El origen del error interno |
trigger |
retry, watchUpdate, managementConflict, resync, reimport | El activador de un evento de conciliación |
name |
Nombre del conciliador | Nombre del conciliador |
component |
parsing, source, sync, rendering, readiness | Nombre del componente o fase actual de la conciliación |
container |
Reconciliador, git-sync | Nombre del contenedor |
resource |
CPU y memoria | Tipo de recurso |
controller |
applier, remediator | El nombre del controlador en un reconciliador de raíz o de espacio de nombres |
type |
Cualquier recurso de Kubernetes, como ClusterRole, Namespace, NetworkPolicy, Role, etc. | Tipo de API de Kubernetes |
commit |
---- | El hash de la última confirmación sincronizada |
Etiquetas de recurso
Las métricas de Config Sync enviadas a Prometheus y Cloud Monitoring tienen las siguientes etiquetas de métricas definidas para identificar el pod de origen:
Nombre | Descripción |
---|---|
k8s.node.name |
Nombre del nodo que aloja un pod de Kubernetes |
k8s.pod.namespace |
El espacio de nombres del pod |
k8s.pod.uid |
El UID del pod |
k8s.pod.ip |
La IP del pod |
k8s.deployment.name |
Nombre de la implementación propietaria del pod |
Las métricas de Config Sync enviadas a Prometheus y Cloud Monitoring desde los pods reconciler
también tienen las siguientes etiquetas de métricas definidas para identificar el RootSync o RepoSync que se ha usado para configurar el reconciliador:
Nombre | Descripción |
---|---|
configsync.sync.kind |
El tipo de recurso que configura este reconciliador: RootSync o RepoSync |
configsync.sync.name |
Nombre del RootSync o RepoSync que configura este reconciliador. |
configsync.sync.namespace |
Espacio de nombres de RootSync o RepoSync que configura este reconciliador. |
Etiquetas de recursos de Cloud Monitoring
Las etiquetas de recursos de Cloud Monitoring se usan para indexar métricas en el almacenamiento, lo que significa que tienen un efecto insignificante en la cardinalidad, a diferencia de las etiquetas de métricas, donde la cardinalidad es un problema de rendimiento importante. Consulta el artículo sobre tipos de recursos supervisados para obtener más información.
El tipo de recurso k8s_container
asigna las siguientes etiquetas de recurso para identificar el contenedor de origen:
Nombre | Descripción |
---|---|
container_name |
Nombre del contenedor |
pod_name |
Nombre del pod |
namespace_name |
El espacio de nombres del pod |
location |
La región o zona del clúster que aloja el nodo. |
cluster_name |
Nombre del clúster que aloja el nodo |
project |
El ID del proyecto que aloja el clúster |
Configurar el filtrado de métricas personalizadas
Puedes ajustar las métricas personalizadas que Config Sync exporta a Prometheus, Cloud Monitoring y el servicio de monitorización interno de Google. Ajusta las métricas personalizadas para optimizar las métricas incluidas o configurar diferentes back-ends.
Para modificar métricas personalizadas, cree y edite un ConfigMap llamado otel-collector-custom
. Al usar este ConfigMap, te aseguras de que Config Sync no revierta ninguna de las modificaciones que hagas. Si modificas los ConfigMaps otel-collector
o otel-collector-google-cloud
, Config Sync revierte los cambios.
Para ver ejemplos de cómo ajustar este ConfigMap, consulta la sección Filtrado de métricas personalizadas de la documentación de Config Sync de código abierto.
Información sobre la métrica pipeline_error_observed
La métrica pipeline_error_observed
puede ayudarte a identificar rápidamente los CRs de RepoSync o RootSync que no están sincronizados o que contienen recursos que no se han conciliado con el estado deseado.
Para que un objeto RootSync o RepoSync se sincronice correctamente, las métricas con todos los componentes (
rendering
,source
,sync
yreadiness
) se observan con el valor 0.Cuando la última confirmación falla en la renderización automática, la métrica con el componente
rendering
se observa con el valor 1.Si se produce un error al consultar la última confirmación o esta contiene una configuración no válida, la métrica con el componente
source
se observa con el valor 1.Cuando no se puede aplicar un recurso al clúster, la métrica con el componente
sync
se observa con el valor 1.Cuando se aplica un recurso, pero no alcanza el estado deseado, se observa la métrica con el componente
readiness
con el valor 1. Por ejemplo, se aplica un Deployment al clúster, pero no se crean los Pods correspondientes correctamente.
Siguientes pasos
- Consulte más información sobre cómo monitorizar objetos RootSync y RepoSync.
- Consulta cómo usar los SLIs de Config Sync.