Visuelle Dashboards erstellen

Auf dieser Seite wird beschrieben, wie Sie Dashboards in Ihrer Systemmonitoring-Instanz. Mit Dashboards können Sie Monitoring-Vorgänge in Ihrem Projekt ausführen, z. B. Netzwerk- und Servermonitoring.

Nachdem die Observability-Plattform die Messwerte erfasst hat, die von Arbeitslasten in Ihrem GDC-Projekt generiert werden, werden in der Konfiguration die zugehörigen Messwertlabels und aggregierten Dateien aus allen Datenquellen gespeichert. Anschließend können Sie benutzerdefinierte Dashboards erstellen, um bestimmte Messwerte über die Benutzeroberfläche der Monitoring-Instanz abzufragen und zu visualisieren.

Ein Dashboard ist eine dynamische visuelle Anordnung von einem oder mehreren anpassbaren Feldern, die mit Prometheus-Messwerten interagieren, die in Datenquellen konfiguriert sind. Mit Abfragen können Sie in jedem dieser Bereiche bestimmte Messwerte aus Ihren GDC-Komponenten visualisieren und verfügbar machen.

Die Observability-Plattform bietet eine API, mit der Sie Anpassungen für die visuelle Darstellung Ihrer Messwerte konfigurieren können. Legen Sie beispielsweise Akzeptanzschwellen fest, zeigen Sie die richtigen Signale an, beschriften Sie Grafiken und wählen Sie eine einheitliche Zeitauflösung aus.

Verfügbare Dashboards

Wenn Ihre Umgebung ausgeführt wird, sehen Sie auf der Startseite der Monitoring-Instanz sofort einige Messwert-Dashboards. So können Sie beispielsweise den Schalterstatus und den Zustand von Systemkomponenten beobachten.

Verwenden Sie die Switch- und Cluster-Dashboards, um Cluster und Knotenmesswerte zu überwachen. Greifen Sie auf die Logging- und Monitoring-Dashboards zu, um Administratorcluster zu beobachten.

Startseite mit einer Liste der verfügbaren Dashboards und der zuletzt aufgerufenen Dashboards

Die relevantesten Messwerte für Plattformadministratoren sind:

  • Kubernetes / API-Server: Zeigt den API-Serverstatus pro Cluster in der Organisation an.
  • Kubernetes / Compute Resources / Multi-Cluster (Kubernetes / Computeressourcen / Multi-Cluster): Hier wird die organisationsweite Ressourcennutzung angezeigt.
  • Kubernetes / Compute Resources / Cluster (Kubernetes / Computeressourcen / Cluster): Hier wird die Ressourcennutzung pro Cluster angezeigt.
  • Kubernetes / Nichtflüchtige Volumes: Zeigt die Nutzung nichtflüchtiger Kubernetes-Volumes in den einzelnen Clustern an.
  • Knotenstatus: Hier wird die Ressourcennutzung auf jedem Knoten jedes Clusters angezeigt.
  • Pod-Status: Zeigt den Ressourcenverbrauch der einzelnen Pods in den einzelnen Clustern an.

Das folgende Bild zeigt ein Beispiel für das Dashboard Kubernetes / Compute Resources / Multi-Cluster.

Liniendiagramm zur CPU-Auslastung und Liste der Cluster mit CPU-Kontingenten

Auf die Monitoring-Instanz Ihres Projekts zugreifen

Sie müssen eine Autorisierung für den Zugriff auf Monitoring-Dashboards einholen. Bitten Sie Ihren Organisations-IAM-Administrator, Ihnen die Rolle „Organisations-Grafana-Betrachter“ (organization-grafana-viewer) zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Anmelden und Aufrufen von Messwerten in der Monitoring-Instanz Ihres Projekts benötigen. Der IAM-Administrator der Organisation kann Ihnen Zugriff gewähren, indem er eine Rollenbindung erstellt:

kubectl --kubeconfig ADMIN_KUBECONFIG create rolebinding pa-grafana-viewer-binding -n platform-obs --user=USER_NAME --clusterrole=organization-grafana-viewer

Ersetzen Sie Folgendes:

  • ADMIN_KUBECONFIG: der Pfad der kubeconfig-Datei für den Administratorcluster.
  • USER_NAME: der Kontoname des Nutzers, für den die Rollenbindung erforderlich ist.

Weitere Informationen zu Rollenzuweisungen finden Sie in den folgenden Ressourcen:

Grafana-Dashboards erstellen

In diesem Abschnitt wird beschrieben, wie Sie Dashboards in Ihrer Grafana-Instanz erstellen und verwalten.

Führen Sie die folgenden Schritte aus, um ein Dashboard in GDC zu erstellen:

  1. Erfüllen Sie die Voraussetzungen im Abschnitt „Vorbereitung“.
  2. Öffnen Sie den Grafana-Endpunkt Ihres Projekts.
  3. ConfigMap-Objekt für Ihr Dashboard erstellen:
  4. Erstellen Sie eine benutzerdefinierte Dashboard-Ressource (CR).

Hinweise

Bevor Sie Dashboards erstellen können, müssen Sie Zugriff auf die Monitoring-Instanz erhalten. Weitere Informationen finden Sie unter Zugriff auf Dashboards erhalten.

  1. Erheben Sie Messwerte aus Ihrem GDC-Projekt, bevor Sie Dashboards erstellen.
  2. Bitten Sie Ihren Projekt-IAM-Administrator, Ihnen die Rolle „Project Grafana Viewer“ (project-grafana-viewer) zuzuweisen, damit Sie sich anmelden, Dashboards erstellen und Messwerte visualisieren können.
  3. Legen Sie den Pfad der kubeconfig-Datei als Umgebungsvariable fest:

    export KUBECONFIG=KUBECONFIG_FILE
    

    Ersetzen Sie KUBECONFIG_FILE durch den Pfad der kubeconfig-Datei im Administratorcluster, in dem Sie das Dashboard erstellen möchten.

Monitoring-Endpunkt

Öffnen Sie die folgende URL, um auf den Endpunkt Ihres Projekts zuzugreifen:

https://GDC_URL/PROJECT_NAMESPACE/grafana

Ersetzen Sie Folgendes:

  • GDC_URL: Die URL Ihrer Organisation in GDC.
  • PROJECT_NAMESPACE: Der Namespace Ihres Projekts.

ConfigMap-Objekt für Ihr Dashboard erstellen

Gehen Sie so vor, um ein ConfigMap-Objekt mit dem JSON-Modell des Dashboards zu erstellen:

  1. Rufen Sie den Endpunkt Ihres Projekts auf.
  2. Klicken Sie im Navigationsmenü auf die Schaltfläche  Hinzufügen.
  3. Klicken Sie im Drop-down-Menü auf Dashboard. Die Instanz erstellt ein leeres Dashboard.
  4. Fügen Sie dem leeren Dashboard alle gewünschten Bereiche hinzu. Sie können Ihre Details anpassen und Ihre Panels bearbeiten, um Ihre Anfragen zu stellen oder andere Aktualisierungen vorzunehmen.

  5. Klicken Sie in der Menüleiste auf die Schaltfläche Dashboard-Einstellungen, um die Seite Einstellungen zu öffnen.

  6. Klicken Sie im Navigationsmenü auf die Option JSON-Modell.

  7. Kopieren Sie das JSON-Modell des Dashboards und fügen Sie es in eine Nur-Text-Datei ein, damit es für Sie verfügbar bleibt.

  8. Ersetzen Sie die Felder id und uid der obersten Ebene durch den Wert null im JSON-Modell.

  9. Erstellen Sie ein ConfigMap-Objekt über die Befehlszeile. Fügen Sie im Abschnitt data Ihres ConfigMap-Objekts das JSON-Modell ein, das Sie zuvor in eine .json-Datei kopiert haben:

    cat <<EOF | kubectl --kubeconfig ${KUBECONFIG} apply -f -
    apiVersion: v1
    kind: ConfigMap
    metadata:
      namespace: PROJECT_NAMESPACE
      name: DASHBOARD_CONFIGMAP_NAME
    data:
      JSON_FILE_NAME.json: |
        {
        <JSON model of the dashboard>
        }
    EOF
    

    Ersetzen Sie Folgendes:

    • PROJECT_NAMESPACE: Der Namespace Ihres Projekts.
    • DASHBOARD_CONFIGMAP_NAME: Der Name, den Sie dem ConfigMap-Objekt geben möchten.
    • JSON_FILE_NAME: Der Name, den Sie der Datei geben möchten, in die Sie das JSON-Modell des Dashboards einfügen.

    Ein Beispiel dafür, wie dieses Objekt aussehen muss, finden Sie im ConfigMap-Beispiel für ein Dashboard.

  10. Stellen Sie das ConfigMap-Objekt Ihres Dashboards im Administratorcluster bereit.

ConfigMap Beispiel für ein Dashboard

Die folgende YAML-Datei zeigt ein Beispiel für das ConfigMap-Objekt eines Dashboards für Messwerte im Namespace platform-obs:

  apiVersion: v1
  kind: ConfigMap
  metadata:
    namespace: platform-obs
    name: my-project-dashboard-configmap
  data:
    my-project-dashboard.json: |
      {
      "annotations": {
        "list": [
          {
            "builtIn": 1,
            "datasource": "-- Grafana --",
            "enable": true,
            "hide": true,
            "iconColor": "rgba(0, 211, 255, 1)",
            "name": "Annotations & Alerts",
            "type": "dashboard"
          }
        ]
      },
      "editable": true,
      "graphTooltip": 0,
      "id": null,
      "links": [],
      "panels": [],
      "schemaVersion": 27,
      "style": "dark",
      "tags": [],
      "templating": {
        "list": []
      },
      "time": {
        "from": "now-6h",
        "to": "now"
      },
      "timepicker": {},
      "timezone": "",
      "title": "Sample dashboard",
      "uid": null,
      "version": 0
      }

Benutzerdefinierte Dashboard-Ressource erstellen

So erstellen Sie eine benutzerdefinierte Ressource (Custom Resource, CR) Dashboard und aktivieren das Dashboard für Ihr Projekt:

  1. Erstellen Sie über die Befehlszeile eine Dashboard-CR und konfigurieren Sie die Datei mit dem Namen, den Sie dem ConfigMap-Objekt Ihres Dashboards gegeben haben:

    cat <<EOF | kubectl --kubeconfig ${KUBECONFIG} apply -f -
    apiVersion: observability.gdc.goog/v1alpha1
    kind: Dashboard
    metadata:
      namespace: PROJECT_NAMESPACE
      name: CUSTOM_RESOURCE_NAME
    spec:
      configMapRef:
        name: DASHBOARD_CONFIGMAP_NAME
        namespace: PROJECT_NAMESPACE
        key: JSON_FILE_NAME.json
      foldername: Default
    EOF
    

    Ersetzen Sie Folgendes:

    • PROJECT_NAMESPACE: Der Namespace Ihres Projekts.
    • CUSTOM_RESOURCE_NAME: Der Name, den Sie der benutzerdefinierten Ressource Dashboard geben möchten.
    • DASHBOARD_CONFIGMAP_NAME: Der Name, den Sie dem ConfigMap-Objekt für Ihr Dashboard gegeben haben.
    • JSON_FILE_NAME: Der Name, den Sie der Datei mit dem JSON-Modell des Dashboards im ConfigMap-Objekt gegeben haben.
  2. Stellen Sie die Dashboard-CR im Projekt-Namespace bereit. Dadurch wird der Observability-Dienst so konfiguriert, dass das vordefinierte Dashboard in die Monitoring-Instanz Ihres Projekts importiert wird.

Dashboards sind von anderen Projekten isoliert, ebenso wie Messwerte und Logs. Wenn Sie dasselbe Dashboard in mehreren Projekten verwenden möchten, müssen Sie also in jedem Projekt eine Dashboard-CR bereitstellen. Außerdem müssen die Protokollierungs- und Monitoringdaten, auf die das Dashboard zugreift, in allen diesen Projekten verfügbar sein.

Der Prozess, der die Dashboards verarbeitet, erkennt Änderungen sowohl am Dashboard CR als auch am ConfigMap-Objekt. Wenn Sie eine der beiden ändern, wird die Änderung im Programm in der Monitoring-Instanz berücksichtigt. Wenn Sie ein Dashboard aktualisieren oder löschen möchten, müssen Sie die Änderungen im CR vornehmen und es noch einmal bereitstellen. Aktualisierungen, die direkt in der Monitoring-Benutzeroberfläche vorgenommen werden, können nicht gespeichert werden.

Wenn Sie ein Dashboard in einem Ordner erstellen oder die Ordner ändern möchten, ändern Sie den Wert foldername im Abschnitt spec der Dashboard-CR. Lassen Sie es andernfalls auf Default. Dabei werden Ordner automatisch erstellt, falls sie nicht vorhanden sind.