Visualisierungs-Dashboards erstellen

Mit Grafana-Dashboards können Sie Logs und Messwerte in Google Distributed Cloud (GDC) mit Air Gap visualisieren. Diese Dashboards bieten dynamische Ansichten des Systemzustands und der Leistung über anpassbare Bereiche.

Ein Dashboard bietet eine dynamische visuelle Darstellung der Leistung Ihres Systems. Es besteht aus einem oder mehreren anpassbaren Bereichen, die jeweils so konfiguriert sind, dass bestimmte Messwerte aus Ihren GDC-Komponenten abgefragt und angezeigt werden. In diesen Bereichen können Sie Folgendes tun:

  • Messwerte mit verschiedenen Diagrammtypen visualisieren
  • Benachrichtigungsgrenzwerte definieren, um Benachrichtigungen basierend auf Messwerten auszulösen.
  • Anzeigeeigenschaften wie Labels, Einheiten und Zeiträume anpassen
  • Legen Sie einheitliche Zeitauflösungen für genaue Vergleiche fest.

Durch die effektive Nutzung von Grafana-Dashboards können Sie wertvolle Einblicke in die Leistung und den Zustand Ihrer GDC-Umgebung gewinnen.

Hinweis

Zum Verwalten der benutzerdefinierten Ressourcen Dashboard und ConfigMap benötigen Sie die erforderlichen Berechtigungen.

IAM-Organisationsrollen anfordern

Wenden Sie sich an Ihren IAM-Organisationsadministrator, um die folgenden Rollen für die Arbeit mit Dashboards in einer Organisation anzufordern:

  • Dashboard PA Creator (dashboard-pa-creator): Erstellen benutzerdefinierter Dashboards.
  • Dashboard PA Editor (dashboard-pa-editor): Kann benutzerdefinierte Dashboards bearbeiten oder löschen.
  • Dashboard PA Viewer (dashboard-pa-viewer): Benutzerdefinierte Dashboards ansehen.

IAM-Projektrollen anfordern

Wenden Sie sich an Ihren IAM-Projektadministrator, um die folgenden Rollen für die Arbeit mit Dashboards und Konfigurationen in einem Projekt anzufordern:

  • Dashboard-Bearbeiter (dashboard-editor): Erstellen, Bearbeiten und Löschen von benutzerdefinierten Dashboards im Projekt-Namespace.
  • Dashboard-Betrachter (dashboard-viewer): Kann benutzerdefinierte Dashboards im Projekt-Namespace aufrufen.
  • ConfigMap-Bearbeiter (observabilitypipeline-configmap-editor): Erstellen und Bearbeiten einer ConfigMap im Projekt-Namespace.

Umgebung vorbereiten

Nachdem Sie die entsprechenden Rollen erhalten haben, führen Sie die folgenden Schritte aus, bevor Sie Dashboards erstellen:

  1. Messwerte aus Ihren Arbeitslasten erfassen
  2. Legen Sie den Pfad der kubeconfig-Datei als Umgebungsvariable fest:

    export KUBECONFIG=KUBECONFIG_PATH
    

    Ersetzen Sie KUBECONFIG_PATH durch den Pfad zur kubeconfig-Datei für den Management-API-Server, auf dem Sie das Dashboard erstellen möchten.

Grafana-Endpunkt identifizieren

Die folgende URL ist der Endpunkt der Grafana-Instanz Ihres Projekts:

https://GDC_URL/PROJECT_NAMESPACE/grafana

Ersetzen Sie Folgendes:

  • GDC_URL: die URL Ihrer Organisation in GDC.
  • PROJECT_NAMESPACE: Ihr Projekt-Namespace.

Der Grafana-Endpunkt für das Projekt platform-obs in der Organisation org-1 lautet beispielsweise https://org-1/platform-obs/grafana.

Benutzerdefiniertes Dashboard erstellen

So erstellen Sie ein Grafana-Dashboard und passen Ihre Einstellungen an:

  1. Öffnen Sie den Grafana-Endpunkt, um die Benutzeroberfläche aufzurufen.
  2. Klicken Sie im Navigationsmenü auf Hinzufügen.
  3. Klicken Sie im Drop-down-Menü auf Dashboard. Grafana erstellt ein leeres Dashboard.
  4. Fügen Sie dem leeren Dashboard alle gewünschten Bereiche hinzu.

  5. Wählen Sie im Menü Datenquelle jedes Bereichs die gewünschte Datenquelle aus, einschließlich Messwerten (prometheus), Audit-Logs (auditloki) und Betriebslogs (oploki).

    Für Multi-Zonen-Universen bietet Grafana mit Zonen gekennzeichnete Datenquellen, mit denen Sie Dashboard-Visualisierungen mit Messwerten und Logs aus mehreren Zonen erstellen können. Diese Datenquellen werden im Format DATA_SOURCE-ZONE_ID benannt, wobei:

    • DATA_SOURCE kann einen der folgenden Werte haben:

      • Prometheus (prometheus oder metrics) zum Anzeigen von Messwerten.
      • Audit-Logs (auditloki), um Audit-Logs aufzurufen.
      • Betriebslogs (oploki), um Betriebslogs anzuzeigen.
    • ZONE_ID ist die ID der Zone, aus der Sie Daten im Dashboard anzeigen möchten.

    Wenn Sie ein Visualisierungs-Dashboard für zonenübergreifende Ressourcen erstellen möchten, lautet der Name der Datenquelle --Mixed--. Mit dieser Datenquelle können Sie mehrere Abfragen pro Zone hinzufügen und zonenübergreifende Datenvisualisierungen in einem einzigen Dashboard erstellen. Mit dieser Funktion können Sie Verhaltensvergleiche zwischen beispielsweise einem einzelnen Messwert oder einer einzelnen Logabfrage in mehreren Zonen Ihres Universums anstellen.

  6. Passen Sie Ihre Details an und bearbeiten Sie Ihre Bereiche, um Ihre Abfragen bereitzustellen oder andere Aktualisierungen vorzunehmen.

  7. Klicken Sie in der Menüleiste auf Dashboard-Einstellungen, um die Seite Einstellungen zu öffnen.

  8. Wählen Sie im Navigationsmenü JSON-Modell aus.

  9. Kopieren Sie das JSON-Modell des Dashboards und fügen Sie es zur späteren Verwendung in eine Nur-Text-Datei ein.

Erstellen Sie ein ConfigMap-Objekt

So erstellen Sie ein ConfigMap-Objekt, das das JSON-Modell des Dashboards enthält:

  1. Öffnen Sie ein Terminalfenster.
  2. Erstellen Sie ein ConfigMap-Objekt. Fügen Sie im Abschnitt data des ConfigMap-Objekts das zuvor kopierte JSON-Modell ein:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      namespace: PROJECT_NAMESPACE
      name: CONFIGMAP_NAME
    data:
      JSON_FILE_NAME.json: |
        {
        JSON_MODEL
        }
    

    Ersetzen Sie Folgendes:

    • PROJECT_NAMESPACE: Ihr Projekt-Namespace.
    • CONFIGMAP_NAME: der Name, den Sie dem ConfigMap-Objekt geben möchten.
    • JSON_FILE_NAME: der Name, den Sie der Datei für das JSON-Modell des Dashboards geben möchten.
    • JSON_MODEL: das JSON-Modell Ihres benutzerdefinierten Dashboards.

    Ein Beispiel für dieses Objekt finden Sie unter ConfigMap-Beispiel.

  3. Wenden Sie das ConfigMap-Objekt auf den Management API-Server an:

    kubectl --kubeconfig ${KUBECONFIG} apply -f CONFIGMAP_NAME.yaml
    

Beispiel für ConfigMap

Die folgende YAML-Datei zeigt ein Beispiel für das ConfigMap-Objekt eines Dashboards 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": "--",
            "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 Dashboard-Ressource und importieren Ihr benutzerdefiniertes Dashboard in die Grafana-Instanz Ihres Projekts:

  1. Öffnen Sie ein Terminalfenster.
  2. Erstellen Sie eine benutzerdefinierte Dashboard-Ressource und konfigurieren Sie die Datei mit dem Namen, den Sie dem ConfigMap-Objekt gegeben haben:

    apiVersion: observability.gdc.goog/v1
    kind: Dashboard
    metadata:
      namespace: PROJECT_NAMESPACE
      name: DASHBOARD_NAME
    spec:
      configMapRef:
        name: CONFIGMAP_NAME
        namespace: PROJECT_NAMESPACE
        key: JSON_FILE_NAME.json
      foldername: Default
    

    Ersetzen Sie Folgendes:

    • PROJECT_NAMESPACE: Ihr Projekt-Namespace.
    • DASHBOARD_NAME: der Name, den Sie Ihrer benutzerdefinierten Dashboard-Ressource geben möchten.
    • CONFIGMAP_NAME: der Name, den Sie dem ConfigMap-Objekt gegeben haben.
    • JSON_FILE_NAME: der Name, den Sie der Datei gegeben haben, die das JSON-Modell des Dashboards im Objekt ConfigMap enthält.
  3. Wenden Sie die benutzerdefinierte Ressource Dashboard auf den Management API-Server an:

    kubectl --kubeconfig ${KUBECONFIG} apply -f DASHBOARD_NAME.yaml
    

Das System überwacht Änderungen sowohl an der benutzerdefinierten Ressource Dashboard als auch am zugehörigen ConfigMap-Objekt. Wenn Sie ein Dashboard aktualisieren oder löschen möchten, ändern Sie diese Ressourcen. Alle Änderungen lösen ein Update von Grafana aus. Sie können keine Aktualisierungen speichern, die direkt in der Grafana-Benutzeroberfläche vorgenommen wurden.