Monitoring Config Connector con Prometheus

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

Prima di iniziare

Per completare i passaggi descritti in questa pagina, devi installare Prometheus sul cluster. Puoi eseguire questa operazione in diversi modi:

Metriche di scraping

Prometheus raccoglie le metriche scrivendo un endpoint HTTP. In questa sezione vengono descritti gli endpoint di scraping di Config Connector e la configurazione di Prometheus.

Endpoint di scraping di Config Connector

Per Config Connector, gli endpoint di servizio si trovano sulla porta 8888 nei 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 lo scraping dei componenti di Config Connector da queste annotazioni ed etichette.

Configurazione di Prometheus

Prima di eseguire il scraping delle metriche, potresti dover configurare Prometheus per Kubernetes Service Discovery (SD) per rilevare i scrape dall'API REST di Kubernetes.

La configurazione di Prometheus per il scraping delle metriche da Config Connector dipende da come hai installato Prometheus. Controlla la documentazione per l'installazione di Prometheus per informazioni su come aggiornare la configurazione.

Ad esempio, se utilizzi l'operatore Prometheus e lo configuri con ServiceMonitor, puoi applicare la seguente configurazione per estrarre le 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"

Per ulteriori informazioni sulla configurazione di ServiceMonitor, consulta la guida introduttiva nella documentazione dell'operatore Prometheus.

Esempi di query

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

Query per riconciliare query per tipo e stato della risorsa

Puoi visualizzare il numero di richieste di riconciliazione non riuscite per tipo di risorsa e stato.

Ad esempio, per controllare il numero totale di errori delle risorse PubSubTopic, utilizza la query seguente.

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

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

Puoi vedere il numero di risorse che si trovano in uno spazio dei nomi.

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

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

Query sull'utilizzo dei worker 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 Spazio dei nomi
group_version_kind
Il numero totale di richieste di riconciliazione.
configconnector_reconcile_request_duration_seconds Istogramma Spazio dei nomi
group_version_kind
Distribuzioni del tempo necessario per completare le richieste di riconciliazione.
configconnector_applied_resources_total Gauge Spazio dei nomi
group_version_kind
Il numero totale di risorse in gestione.
configconfiguration_build_info Gauge version Versione attuale di Config Connector.
configconnector_reconcile_workers_total Gauge gruppo_versione_genere Il numero totale di worker di riconciliazione aggregati per tipo di risorsa.
configconnector_reconcile_occupied_workers_total Gauge gruppo_versione_genere Il numero totale di worker di riconciliazione occupati aggregati per tipo di risorsa.

Abilitazione delle etichette del nome della risorsa

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

Per abilitare l'aggregazione per nome della risorsa, procedi nel seguente modo.

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

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

    Se utilizzi la modalità Spazio dei nomi, sostituisci NAMESPACE_NAME con lo 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 ulteriori informazioni sulla scrittura di query, consulta la documentazione sul linguaggio di query e gli esempi di Prometheus