Monitoraggio di Config Connector con Prometheus


Puoi utilizzare Prometheus per raccogliere e mostrare le metriche di Config Connector.

Prima di iniziare

Per completare i passaggi in questa pagina, devi installare Prometheus sul tuo cluster. A tal fine, puoi:

Metriche di scraping

Prometheus raccoglie le metriche mediante scraping di un endpoint HTTP. Questa sezione descrive gli endpoint di scansione di Config Connector e la configurazione di Prometheus.

Endpoint di scansione di Config Connector

Per Config Connector, gli endpoint del servizio si trovano sulla porta 8888 su cnrm-controller-manager-service e cnrm-resource-stats-recorder-service. Questi servizi hanno le annotazioni prometheus.io/scrape: "true" e prometheus.io/port: "8888". I servizi includono anche le etichette cnrm.cloud.google.com/monitored: "true" e cnrm.cloud.google.com/system: "true". Configura Prometheus per eseguire lo scraping dei componenti di Config Connector da queste annotazioni ed etichette.

Configurazione di Prometheus

Prima di poter eseguire lo scraping delle metriche, potrebbe essere necessario configurare Prometheus per la Service Discovery (SD) di Kubernetes per rilevare i target di scraping dall'API REST di Kubernetes.

La modalità di configurazione di Prometheus per estrarre le metriche da Config Connector dipende dalla modalità di installazione di Prometheus. Consulta la documentazione relativa all'installazione di Prometheus per scoprire come aggiornare la configurazione.

Ad esempio, se utilizzi Prometheus Operator e lo configuri con ServiceMonitor, puoi applicare la seguente configurazione per eseguire lo scraping delle metriche da 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"

Esempi di query

Prometheus utilizza un linguaggio di query chiamato PromQL. Questa sezione contiene esempi di query PromQL per le metriche di Config Connector. Puoi configurare Prometheus in modo da generare avvisi da qualsiasi query PromQL valida.

Esegui query sulle richieste di riconciliazione per tipo di risorsa e stato

Puoi vedere il conteggio delle richieste di riconciliazione non riuscite in base al tipo di risorsa e allo stato.

Ad esempio, per controllare il conteggio totale degli errori per le risorse PubSubTopic, utilizza la seguente query.

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

Controllare lo stato aggregato delle risorse per tipo e spazio dei nomi

Puoi vedere il conteggio delle risorse presenti in uno spazio dei nomi.

Ad esempio, per controllare il conteggio totale delle risorse PubSubTopic nello spazio dei nomi default, utilizza la seguente query.

configconnector_applied_resources_total{group_version_kind="PubSubTopic.pubsub.cnrm.cloud.google.com", Namespace="default"}

Esegui query sull'utilizzo dei job di riconciliazione per tipo di risorsa

(configconnector_reconcile_occupied_workers_total / configconnector_reconcile_workers_total)

Metriche disponibili

Config Connector raccoglie le seguenti metriche e le rende disponibili.

Nome Tipo Etichette Descrizione
configconnector_reconcile_requests_total Contatore Namespace
group_version_kind
status
Il numero totale di richieste di riconciliazione.
configconnector_reconcile_request_duration_seconds Istogramma Namespace
group_version_kind
status
Distribuzioni del tempo necessario per completare le richieste di riconciliazione.
configconnector_applied_resources_total Misuratore Namespace
group_version_kind
status
Il numero totale di risorse sotto la gestione.
configconnector_build_info Misuratore versione Versione corrente di Config Connector.
configconnector_reconcile_workers_total Misuratore group_version_kind Il numero totale di worker di riconciliazione aggregati per tipo di risorsa.
configconnector_reconcile_occupied_workers_total Misuratore group_version_kind Il numero totale di worker di riconciliazione occupati aggregati per tipo di risorsa.

Attivazione delle etichette dei nomi delle risorse

Per impostazione predefinita, le metriche vengono aggregate in base al tipo di risorsa (ad esempio PubSubTopic). Puoi attivare l'aggregazione delle metriche per singole risorse.

Per attivare l'aggregazione per nome della risorsa, svolgi i seguenti passaggi.

  1. Modifica l'oggetto cnrm-controller-manager StatefulSet

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

    Se utilizzi la modalità con spazi dei nomi, sostituisci NAMESPACE_NAME con il tuo spazio dei nomi.

    kubectl edit statefulset cnrm-controller-manager -n NAMESPACE_NAME
  2. Trova l'array spec.args e aggiungi --resource-name-label=true.

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

Passaggi successivi

Per saperne di più sulla scrittura delle query, consulta la documentazione del linguaggio di query di Prometheus e gli esempi.