Supervisa Config Connector con Prometheus


Puedes usar Prometheus para recopilar y mostrar métricas desde Config Connector.

Antes de comenzar

Para completar los pasos de esta página, debes instalar Prometheus en tu clúster. Para ello, tienes las siguientes opciones:

Copia métricas

Prometheus recopila métricas mediante la copia de un extremo HTTP. En esta sección, se describen extremos de copia de Config Connector y la configuración de Prometheus.

Extremos de copia de Config Connector

En Config Connector, los extremos del 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". Debes configurar Prometheus para recopilar los componentes de Config Connector de estas anotaciones y etiquetas.

Configura a Prometeo

Antes de que puedas copiar las métricas, es posible que debas configurar Prometheus para Kubernetes Service Discovery (SD) a fin de descubrir objetivos de copia de la API REST de Kubernetes.

La forma en que configuras Prometheus para borrar las métricas de Config Connector depende de cómo instalaste Prometheus. Consulta la documentación de la instalación de Prometheus para saber cómo actualizar la configuración.

Por ejemplo, si está usando el operador Prometheus y lo configuras con ServiceMonitor, puedes aplicar la siguiente configuración para borrar las 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"

Para obtener más información sobre cómo configurar ServiceMonitor, consulta los Primeros pasos en la documentación del operador de Prometheus.

Consultas de ejemplo

Prometheus usa un lenguaje de consulta llamado PromQL. Esta sección contiene consultas de PromQL de ejemplo para las métricas de Config Connector. Puedes configurar Prometheus para que genere alertas de cualquier consulta válida de PromQL.

Consulta solicitudes conciliadas por tipo de recurso y estado

Puedes ver el recuento de solicitudes de conciliación fallidas por tipo de recurso y estado.

Por ejemplo, para verificar el recuento total de errores para los recursos PubSubTopic, usa la siguiente consulta.

configconnector_reconcile_requests_total{group_version_kind="PubSubTopic.pubsub.cnrm.cloud.google.com", status="ERROR"}

Verifica el estado agregado de los recursos por tipo y espacio de nombres

Puedes ver el recuento de recursos que se encuentran en un espacio de nombres.

Por ejemplo, para verificar el recuento 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"}

Consulta el uso de trabajadores conciliados por tipo de recurso

(configconnector_reconcile_occupied_workers_total / configconnector_reconcile_workers_total)

Métricas disponibles

Config Connector recopila las siguientes métricas y las pone a disposición.

Nombre Tipo Etiquetas Descripción
configconnector_reconcile_requests_total Counter Espacio de nombres
group_version_kind
estado
La cantidad total de solicitudes de conciliación.
configconnector_reconcile_request_duration_seconds Histograma Espacio de nombres
group_version_kind
estado
Distribuciones de tiempo para completar las solicitudes de conciliación.
configconnector_applied_resources_total Gauge Espacio de nombres
group_version_kind
estado
El número total de recursos bajo administración.
configconnector_build_info Gauge version Versión actual de Config Connector.
configconnector_reconcile_workers_total Gauge group_version_kind La cantidad total de trabajadores conciliados que se agregaron por tipo de recurso.
configconnector_reconcile_occupied_workers_total Gauge group_version_kind La cantidad total de trabajadores de conciliación ocupados que se agregaron por tipo de recurso.

Habilita etiquetas de nombre de recurso

De forma predeterminada, las métricas se agregan en el tipo de recurso (por ejemplo, PubSubTopic). Puedes habilitar las métricas que se agregaran por recursos individuales.

Para habilitar la agregación por nombre de recurso, realiza los siguientes pasos.

  1. Edita el objeto cnrm-controller-manager de StatefulSet

    kubectl edit statefulset cnrm-controller-manager -n cnrm-system

    Si usas el modo con espacio de nombres, reemplaza NAMESPACE_NAME por tu espacio de nombres.

    kubectl edit statefulset cnrm-controller-manager -n NAMESPACE_NAME
  2. Encuentra el arreglo spec.args y agrega --resource-name-label=true.

    apiVersion: apps/v1
    kind: StatefulSet
      name: cnrm-controller-manager
    spec:
      template:
        spec:
          containers:
          - name: manager
      args:
            - --resource-name-label=true
    

¿Qué sigue?

Para obtener más información sobre cómo escribir consultas, consulta la documentación del lenguaje de consulta y ejemplos de Prometheus.