Monitoring von Config Connector mit Prometheus

Sie können Prometheus verwenden, um Messwerte von Config Connector zu erhalten und anzuzeigen.

Hinweis

Damit Sie die Schritte auf dieser Seite ausführen können, müssen Sie Prometheus auf Ihrem Cluster installieren. Dazu können Sie

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 erhalten Sie unter Erste Schritte in der Dokumentation für den 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 Label 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.

  1. StatefulSet-Objekt cnrm-controller-manager bearbeiten

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

    Wenn Sie den Namespaced-Modus verwenden, ersetzen Sie NAMESPACE_NAME durch Ihren Namespace.

    kubectl edit statefulset cnrm-controller-manager -n NAMESPACE_NAME
  2. 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.