Monitorizar Config Connector con Prometheus
Puedes usar Prometheus para recoger y mostrar métricas de Config Connector.
Antes de empezar
Para completar los pasos de esta página, debes instalar Prometheus en tu clúster. Para ello, puedes:
Sigue la documentación de Prometheus para configurar tu clúster de forma que pueda raspar métricas.
Métricas de raspado
Prometheus recoge métricas raspando un endpoint HTTP. En esta sección se describen los endpoints de raspado de Config Connector y cómo configurar Prometheus.
Endpoints de raspado de Config Connector
En el caso de Config Connector, los endpoints de servicio están en el puerto 8888 en cnrm-controller-manager-service
y cnrm-resource-stats-recorder-service
.
Estos servicios tienen las anotaciones prometheus.io/scrape: "true"
y prometheus.io/port: "8888"
. Los servicios también incluyen las etiquetas cnrm.cloud.google.com/monitored: "true"
y cnrm.cloud.google.com/system: "true"
. Configura Prometheus para que
raspe los componentes de Config Connector a partir de estas anotaciones y etiquetas.
Configurar Prometheus
Antes de poder recoger métricas, es posible que tengas que configurar descubrimiento de servicios (SD) de Kubernetes para descubrir los objetivos de recogida de la API REST de Kubernetes.
La forma de configurar Prometheus para que extraiga métricas de Config Connector depende de cómo hayas instalado Prometheus. Consulta la documentación de tu instalación de Prometheus para saber cómo actualizar la configuración.
Por ejemplo, si usas Prometheus Operator y lo configuras con ServiceMonitor, puedes aplicar la siguiente configuración para extraer métricas de Config Connector.
spec:
endpoints:
- interval: 10s
port: metrics
namespaceSelector:
matchNames:
- cnrm-system
selector:
matchLabels:
cnrm.cloud.google.com/monitored: "true"
cnrm.cloud.google.com/system: "true"
Consultas de ejemplo
Prometheus usa un lenguaje de consulta llamado PromQL. En esta sección se incluyen ejemplos de consultas PromQL para las métricas de Config Connector. Puedes configurar Prometheus para que genere alertas a partir de cualquier consulta de PromQL válida.
Consultar solicitudes de conciliación por tipo de recurso y estado
Puede ver el número de solicitudes de conciliación fallidas por tipo de recurso y estado.
Por ejemplo, para comprobar el número total de errores de los recursos PubSubTopic
, usa la siguiente consulta.
configconnector_reconcile_requests_total{group_version_kind="PubSubTopic.pubsub.cnrm.cloud.google.com", status="ERROR"}
Comprobar el estado agregado de los recursos por tipo y espacio de nombres
Puedes ver el número de recursos que hay en un espacio de nombres.
Por ejemplo, para comprobar el número total de recursos PubSubTopic
en el espacio de nombres default
, usa la siguiente consulta.
configconnector_applied_resources_total{group_version_kind="PubSubTopic.pubsub.cnrm.cloud.google.com", Namespace="default"}
Consultar la utilización de los elementos de trabajo de conciliación por tipo de recurso
(configconnector_reconcile_occupied_workers_total / configconnector_reconcile_workers_total)
Métricas disponibles
Config Connector recoge las siguientes métricas y las pone a disposición de los usuarios.
Nombre | Tipo | Etiquetas | Descripción |
---|---|---|---|
configconnector_reconcile_requests_total | Encimera | Espacio de nombres group_version_kind status |
Número total de solicitudes de conciliación. |
configconnector_reconcile_request_duration_seconds | Histograma | Espacio de nombres group_version_kind status |
Distribuciones del tiempo necesario para completar las solicitudes de conciliación. |
configconnector_applied_resources_total | Indicador | Espacio de nombres group_version_kind status |
El número total de recursos gestionados. |
configconnector_build_info | Indicador | version | Versión actual de Config Connector. |
configconnector_reconcile_workers_total | Indicador | group_version_kind | Número total de trabajadores de conciliación agregados por tipo de recurso. |
configconnector_reconcile_occupied_workers_total | Indicador | group_version_kind | Número total de trabajadores de conciliación ocupados, agregado por tipo de recurso. |
Habilitar etiquetas de nombre de recurso
De forma predeterminada, las métricas se agregan por tipo de recurso (por ejemplo, PubSubTopic). Puede habilitar la agregación de métricas por recursos individuales.
Para habilitar la agregación por nombre de recurso, sigue estos pasos.
Edita el objeto
cnrm-controller-manager
StatefulSetkubectl edit statefulset cnrm-controller-manager -n cnrm-system
Si usas el modo con espacio de nombres, sustituye
NAMESPACE_NAME
por tu espacio de nombres.kubectl edit statefulset cnrm-controller-manager -n NAMESPACE_NAME
Busca la matriz
spec.args
y añade--resource-name-label=true
.apiVersion: apps/v1 kind: StatefulSet name: cnrm-controller-manager spec: template: spec: containers: - name: manager args: - --resource-name-label=true
Siguientes pasos
Para obtener más información sobre cómo escribir consultas, consulta la documentación del lenguaje de consulta de Prometheus y los ejemplos.