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:
Utilizzo dell'operatore Prometheus fornito da CoreOS oppure
Seguire la documentazione di Prometheus per configurare il cluster per lo scraping.
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.
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
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