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:

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.

  1. Edita el objeto cnrm-controller-manager StatefulSet

    kubectl 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
  2. 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.