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:
Utilizzando l'operatore Prometheus fornito da CoreOS oppure
Segui la documentazione di Prometheus per configurare il cluster per lo scraping.
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.
Modifica l'oggetto
cnrm-controller-manager
StatefulSetkubectl 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
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.