Monitoring von Config Connector mit Prometheus
Sie können Prometheus verwenden, um Messwerte von Config Connector zu erhalten und anzuzeigen.
Hinweis
Zur Ausführung der Schritte auf dieser Seite müssen Sie Prometheus in Ihrem Cluster installieren. Dazu können Sie
Den von CoreOS bereitgestellten Prometheus-Operator verwenden oder
Wenn Sie dem Prometheus-Dokumentation um Ihren Cluster für Scraping zu konfigurieren.
Messwerte extrahieren
Prometheus sammelt Messwerte durch Extraktion eines HTTP-Endpunkts. In diesem Abschnitt werden die Config Connector-Extraktionsendpunkte und die Konfiguration von Prometheus beschrieben.
Config Connector-Extraktionsendpunkte
Bei Config Connector befinden sich die Dienstendpunkte an Port 8888 unter cnrm-controller-manager-service
und cnrm-resource-stats-recorder-service
.
Diese Dienste haben die Annotationen prometheus.io/scrape: "true"
und prometheus.io/port: "8888"
. Die Dienste umfassen auch die Labels cnrm.cloud.google.com/monitored: "true"
und cnrm.cloud.google.com/system: "true"
. Sie konfigurieren Prometheus so, dass Config Connector-Komponenten von diesen Annotationen und Labels extrahiert werden.
Prometheus konfigurieren
Bevor Sie Messwerte extrahieren können, müssen Sie möglicherweise Prometheus für Kubernetes Service Discovery (SD) konfigurieren, um Extraktionsziele über die Kubernetes REST API zu erkennen.
Die Konfiguration von Prometheus für das Extrahieren von Messwerten aus Config Connector hängt davon ab, wie Sie Prometheus installiert haben. Informationen zum Aktualisieren der Konfiguration finden Sie in der Dokumentation zu Ihrer Prometheus-Installation.
Wenn Sie beispielsweise den Prometheus-Operator verwenden und ihn mit ServiceMonitor konfigurieren, können Sie die folgende Konfiguration anwenden, um Messwerte aus Config Connector zu extrahieren.
spec:
endpoints:
- interval: 10s
port: metrics
namespaceSelector:
matchNames:
- cnrm-system
selector:
matchLabels:
cnrm.cloud.google.com/monitored: "true"
cnrm.cloud.google.com/system: "true"
Weitere Informationen zum Einrichten von ServiceMonitor finden Sie unter Erste Schritte in der Dokumentation zum Prometheus Operator.
Beispielabfragen
Prometheus nutzt eine Abfragesprache namens PromQL. Dieser Abschnitt enthält Beispiel-PromQL-Abfragen für die Messwerte von Config Connector. Sie können Prometheus so konfigurieren, dass aus jeder gültigen PromQL-Abfrage Benachrichtigungen generiert werden.
Abfrageabgleichanfragen nach Ressourcentyp und -status
Sie können die Anzahl der fehlgeschlagenen Abgleichanfragen nach Ressourcentyp und -status anzeigen.
Verwenden Sie beispielsweise die folgende Abfrage, um die Gesamtzahl der Fehler für PubSubTopic
-Ressourcen zu prüfen.
configconnector_reconcile_requests_total{group_version_kind="PubSubTopic.pubsub.cnrm.cloud.google.com", status="ERROR"}
Gesamtstatus der Ressourcen nach Art und Namespace prüfen
Sie können die Anzahl der Ressourcen in einem Namespace anzeigen lassen.
Verwenden Sie beispielsweise die folgende Abfrage, um die Gesamtzahl der PubSubTopic
-Ressourcen im default
Namespace zu prüfen.
configconnector_applied_resources_total{group_version_kind="PubSubTopic.pubsub.cnrm.cloud.google.com", Namespace="default"}
Verwendung von Abgleich-Workern pro Ressourcentyp abfragen
(configconnector_reconcile_occupied_workers_total / configconnector_reconcile_workers_total)
Verfügbare Messwerte
Config Connector sammelt die folgenden Messwerte und stellt sie zur Verfügung.
Name | Typ | Labels | Beschreibung |
---|---|---|---|
configconnector_reconcile_requests_total | Zähler | Namespace group_version_kind status |
Die Gesamtzahl der Abgleichanfragen. |
configconnector_reconcile_request_duration_seconds | Histogramm | Namespace group_version_kind status |
Zeitverteilungen zum Abschließen von Abgleichanfragen. |
configconnector_applied_resources_total | Gauge | Namespace group_version_kind status |
Die Gesamtzahl der verwalteten Ressourcen. |
configconnector_build_info | Gauge | version | Aktuelle Version von Config Connector. |
configconnector_reconcile_workers_total | Gauge | group_version_kind | Die Gesamtzahl der nach Ressourcenart aggregierten Abgleich-Worker. |
configconnector_reconcile_occupied_workers_total | Gauge | group_version_kind | Die Gesamtzahl der belegten Abgleich-Worker, aggregiert nach Ressourcenart. |
Ressourcennamenlabels aktivieren
Standardmäßig werden Messwerte nach Ressourcentyp aggregiert (z. B. PubSubTopic). Sie können die Aggregation von Messwerten nach einzelnen Ressourcen aktivieren.
Zum Aktivieren der Aggregation nach Ressourcenname führen Sie die im Folgenden aufgeführten Schritte aus.
StatefulSet-Objekt
cnrm-controller-manager
bearbeitenkubectl edit statefulset cnrm-controller-manager -n cnrm-system
Wenn Sie den Namespace-Modus verwenden, ersetzen Sie
NAMESPACE_NAME
durch Ihren Namespace.kubectl edit statefulset cnrm-controller-manager -n NAMESPACE_NAME
Suchen Sie das Array
spec.args
und fügen Sie--resource-name-label=true
hinzu.apiVersion: apps/v1 kind: StatefulSet name: cnrm-controller-manager spec: template: spec: containers: - name: manager args: - --resource-name-label=true
Nächste Schritte
Weitere Informationen zum Schreiben von Abfragen finden Sie in der Prometheus-Dokumentation zur Abfragesprache und in den Beispielen.