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:
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 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.
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
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.