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. Puoi eseguire questa operazione in diversi modi:

Metriche di scraping

Prometheus raccoglie le metriche tramite lo scraping di un endpoint HTTP. Questa sezione descrive 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 all'indirizzo 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 recuperare i 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 le destinazioni di scraping dall'API REST di Kubernetes.

La configurazione di Prometheus per estrarre le metriche da Config Connector dipende da come hai installato Prometheus. Consulta la documentazione relativa all'installazione di Prometheus per informazioni su 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 query PromQL di esempio per le metriche di Config Connector. Puoi configurare Prometheus per generare avvisi da qualsiasi query PromQL valida.

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

Puoi visualizzare il conteggio delle richieste di riconciliazione non riuscite per tipo di risorsa e 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"}

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

Puoi visualizzare il conteggio delle 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 seguente query.

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

Esegui 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
status
Il numero totale di richieste di riconciliazione.
configconnector_reconcile_request_duration_seconds Istogramma Spazio dei nomi
group_version_kind
status
Distribuzioni del tempo necessario per completare le richieste di riconciliazione.
configconnector_applied_resources_total Misuratore Spazio dei nomi
group_version_kind
status
Il numero totale di risorse gestite.
configconnector_build_info Misuratore versione Versione attuale 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 in base alle singole risorse.

Per attivare l'aggregazione per nome risorsa, segui questi passaggi.

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

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

    Se utilizzi la modalità con spazio 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 di query, consulta la documentazione sul linguaggio di query e gli esempi di Prometheus.