Grafana-Dashboards in Cloud Monitoring importieren

Cloud Monitoring bietet einen Importer, mit dem Sie Dashboard-Dateien im JSON-Format Grafana in Cloud Monitoring importieren können. In diesem Dokument wird beschrieben, wie Sie mit dem Importer Grafana-Dashboards konvertieren und optional in Ihr Google Cloud-Projekt hochladen.

Sie können mit dem Importer in einem einzelnen Vorgang Grafana-Dashboards konvertieren und in Cloud Monitoring hochladen oder die Konvertierungs- und Uploadschritte separat ausführen. Möglicherweise wählen Sie diesen Ansatz, wenn Sie die konvertierten Dashboards bearbeiten möchten, bevor Sie sie hochladen.

Der Importer konvertiert Dashboard-Dateien im JSON-Format, das von Grafana verwendet wird, in das von Cloud Monitoring verwendete JSON-Format. Ein konvertiertes Dashboard kann sich vom ursprünglichen Grafana-Dashboard unterscheiden. Wenn ein Grafana-Dashboard Features verwendet, die in Cloud Monitoring-Dashboards nicht verfügbar sind, werden diese Aspekte des Grafana-Dashboards nicht konvertiert. Diese Unterschiede werden in der Konvertierungsausgabe aufgeführt. Der Importer ist nur für die Verarbeitung von Dashboards vorgesehen, die PromQL-Ausdrücke und Prometheus-Datenquellen verwenden. Dashboards, die andere Formen von Abfragen oder Datenquellen verwenden, werden möglicherweise nicht erfolgreich importiert.

Informationen zum Importieren von Prometheus-Benachrichtigungen in Cloud Monitoring finden Sie unter Benachrichtigungsregeln und Empfänger von Prometheus migrieren.

Hinweise

Bevor Sie den Dashboard-Importer installieren und ausführen können, müssen Sie Folgendes tun:

  1. Verwenden Sie eine Umgebung, die Bash-Shell-Scripts unterstützt.
  2. Sie müssen Git installieren oder verfügen bereits darüber.
  3. Sie müssen Node.js Version 20.4.1 oder höher installieren oder verfügen bereits darüber.
  4. Sie müssen die Google Cloud CLI installieren oder verfügen bereits darüber. Wenn bei Ihnen die gcloud CLI bereits installiert ist, vergewissern Sie sich, dass Sie die neueste Version haben. Führen Sie dazu den Befehl gcloud components update aus.

Dashboard-Importer abrufen

Der Dashboard-Importer ist im GitHub-Repository monitoring-dashboard-samples gespeichert. So rufen Sie den Importer ab:

  1. Klonen Sie das Repository:

    git clone https://github.com/GoogleCloudPlatform/monitoring-dashboard-samples
    
  2. Wechseln Sie in das Verzeichnis für den Dashboard-Importer:

    cd monitoring-dashboard-samples/scripts/dashboard-importer
    

Der Dashboard-Importer enthält die folgenden Scripts:

  • import.sh, das Dashboards konvertiert und optional die konvertierten Dashboards in Cloud Monitoring hochlädt.

  • upload.sh, wodurch die konvertierten Dashboards oder alle Monitoring-Dashboards in Cloud Monitoring hochgeladen werden. Das Script import.sh ruft dieses Script auf, um den Upload durchzuführen.

Wenn Sie das Script import.sh verwenden, müssen Sie den Speicherort der Grafana-Dashboards angeben, die konvertiert werden sollen. Der Importer erstellt ein Verzeichnis, das die konvertierten Dashboards und andere Informationen enthält. In den folgenden Abschnitten werden diese Verzeichnisse beschrieben.

Grafana-Dashboards, die konvertiert werden sollen

Sie können mit dem Dashboard-Importer ein oder mehrere Dashboards gleichzeitig konvertieren, indem Sie einen Pfad zu den Dashboard-Dateien angeben.

  • Sie können den Pfad zu einem Verzeichnis angeben, das Dashboards enthält. Es werden nur Dateien im Verzeichnis mit der Erweiterung .json verarbeitet.

  • Sie können den Pfad zu einer einzelnen JSON-Datei angeben. Der Dateiname muss die Erweiterung .json haben.

Konvertierte Dashboards und andere Informationen

Wenn der Importer zum ersten Mal ausgeführt wird, wird ein Unterverzeichnis reports erstellt. Jedes Mal, wenn Sie den Importer ausführen, erhalten Sie ein neues Ausgabeverzeichnis im Verzeichnis reports, das nach Datum und Uhrzeit benannt ist. Der Name des Ausgabeverzeichnisses hat die folgende Struktur:
reports/YYYY-M-D/HH:MM:SS

Für jeden Aufruf des Importers enthält das Ausgabeverzeichnis Folgendes:

  • Eine oder mehrere Dateien mit denselben Namen wie die ursprünglichen Grafana-Dashboards, jetzt jedoch im Cloud Monitoring-JSON-Format.
  • Eine report.json-Datei, in der für jedes konvertierte Dashboard die folgenden Informationen aufgezeichnet sind:
    • Der Name und der Speicherort der Grafana-Dashboard-Datei, die konvertiert wurde.
    • Der Name und der Speicherort der konvertierten Monitoring-Dashboard-Datei.
    • Hinweise zu Features im Grafana-Dashboard, die kein entsprechendes Feature in Cloud Monitoring haben und daher nicht in das konvertierte Dashboard aufgenommen werden konnten.
    • Alle Fehler, die in der Konvertierung aufgetreten sind.

Wenn Sie die Dashboards hochgeladen haben, enthält das Berichtsverzeichnis auch eine upload_HH:MM:SS.txt-Datei, die die URL enthält, in die das Dashboard hochgeladen wurde.

Grafana-Dashboards importieren

Verwenden Sie das Script import.sh, um Grafana-Dashboards zu konvertieren und in Cloud Monitoring hochzuladen:

./import.sh PATH_TO_DIRECTORY_OR_FILE PROJECT_ID

Dieses Script tut Folgendes:

  1. Konvertiert Dashboards in PATH_TO_DIRECTORY_OR_FILE aus dem von Grafana verwendeten JSON-Format in das von Cloud Monitoring verwendete JSON-Format.
  2. Lädt die konvertierten Dashboards mithilfe der Google Cloud CLI in Ihr Google Cloud-Projekt PROJECT_ID hoch.

    Wenn Sie sich nicht bei der gcloud CLI authentifiziert haben, führen Sie den Befehl gcloud auth login aus, bevor Sie das Script import.sh ausführen.

Sie können alle Grafana-Dashboards in ein Verzeichnis importieren oder ein einzelnes Dashboard im Verzeichnis angeben, das importiert werden soll.

  • Geben Sie beim Importieren aller Dashboards im Verzeichnis GRAFANA_DASHBOARDS_DIR in das Google Cloud-Projekt PROJECT_ID das Verzeichnis relativ zum Importerverzeichnis an und geben Sie beim Aufrufen des Scripts die Zielprojekt-ID an:

    ./import.sh GRAFANA_DASHBOARDS_DIR PROJECT_ID
    
  • Wenn Sie nur das Dashboard MY_GRAFANA_DASHBOARD.json im Verzeichnis GRAFANA_DASHBOARDS_DIR konvertieren möchten, fügen Sie beim Aufrufen des Scripts den Dateinamen des Dashboards relativ zum Importerverzeichnis hinzu:

    ./import.sh GRAFANA_DASHBOARDS_DIR/MY_GRAFANA_DASHBOARD.json PROJECT_ID
    

Der Dashboard-Importer enthält ein Grafana-Beispiel-Dashboard als examples/k8s_cluster_example.json. Mit dem folgenden Befehl wird dieses Dashboard in das angegebene Projekt importiert:

./import.sh examples/k8s_cluster_example.json PROJECT_ID

Bei Aufruf mit der PROJECT_ID my-project-test-1 sieht die Ausgabe etwa so aus:

Converting: Kubernetes Cluster Overview
✓ Kubernetes Cluster Overview converted successfully

Conversion of examples/k8s_cluster_example.json complete. Conversion Report located at: reports/2023-9-28/22:14:57/report.json

To upload these dashboard(s) manually, you can run:
./upload.sh reports/2023-9-28/22:14:57/ <PROJECT_ID>

Conversion Complete. Proceeding to uploading...

Now running: ./upload.sh reports/2023-9-28/22:14:57/ my-project-test-1

Uploading 1 dashboard(s) from a directory with the following args:
Directory: reports/2023-9-28/22:14:57/
Project: my-project-test-1

The following are your dashboards:
- k8s_cluster_example.json

Nachdem das Script import.sh das Ausgabeverzeichnis erstellt und die Dashboards konvertiert hat, werden Sie vor dem Hochladen der konvertierten Dashboards in Ihr Projekt aufgefordert, den Vorgang zu bestätigen. Geben Sie y ein. Das Script lädt das Dashboard hoch und gibt die URL für das neue Dashboard aus:

Would you like to continue? (y/n) y

✓ k8s_cluster_example.json successfully uploaded:
https://console.cloud.google.com/monitoring/dashboards/builder/9c341ef8-cfef-4bdd-98d5-821571c520ef?project=my-project-test-1

Upload log created in reports/2023-9-28/22:14:57/upload_22:14:57.txt

Need to troubleshoot? Please visit:
https://github.com/GoogleCloudPlatform/monitoring-dashboard-samples/tree/master/scripts/dashboard-importer/README.md#troubleshooting

Grafana-Dashboards ohne Hochladen konvertieren

Wenn Sie die konvertierten Dashboards vor dem Hochladen prüfen oder bearbeiten möchten, lassen Sie den Wert PROJECT_ID beim Aufrufen des Scripts import.sh weg:

./import.sh PATH_TO_DIRECTORY_OR_FILE

Der Importer konvertiert die Dashboards, wie unter Grafana-Dashboards importieren beschrieben, lädt die konvertierten Dashboards jedoch nicht in Cloud Monitoring hoch.

Sie können den Uploadschritt später mithilfe des Scripts upload.sh manuell ausführen.

Dashboards manuell hochladen

Verwenden Sie das Script upload.sh, um Dashboards im Cloud Monitoring-JSON-Format manuell hochzuladen.

    ./upload.sh PATH_TO_DIRECTORY_OR_FILE PROJECT_ID

Das Script upload.sh verwendet die Google Cloud CLI, um die JSON-Dateien hochzuladen. Wenn Sie sich nicht bei der gcloud CLI authentifiziert haben, führen Sie den Befehl gcloud auth login aus, bevor Sie das Script upload.sh ausführen.

  • Geben Sie beim Hochladen aller Dashboards in einem reports/YYYY-M-D/HH:MM:SS-Verzeichnis das Verzeichnis relativ zum Importerverzeichnis sowie die Zielprojekt-ID an, wenn Sie das Script aufrufen:

    ./upload.sh reports/YYYY-M-D/HH:MM:SS PROJECT_ID
    

    Wenn Sie alle Dashboards aus einem Verzeichnis hochladen, werden Sie vom Script aufgefordert, den Vorgang fortzusetzen oder zu beenden, bevor Sie die Dashboards hochladen.

  • Wenn Sie ein bestimmtes Dashboard in ein reports/YYYY-M-D/HH:MM:SS-Verzeichnis hochladen möchten, geben Sie beim Aufrufen des Scripts das Verzeichnis und den Dateinamen relativ zum Importerverzeichnis sowie die Zielprojekt-ID an:

    ./upload.sh reports/YYYY-M-D/HH:MM:SS/MY_MONITORING_DASHBOARD.json PROJECT_ID
    

    Wenn Sie ein einzelnes Dashboard aus einem Verzeichnis hochladen, wird das Script ausgeführt, ohne dass Sie zu einer Aktion aufgefordert werden, bevor die Dashboards hochgeladen werden.

Mit dem folgenden Befehl wird beispielsweise ein in einem Unterverzeichnis reports gespeichertes Dashboard in das Google Cloud-Projekt my-project-test-1 hochgeladen:

./upload.sh reports/2023-9-26/22:48:31/k8s_cluster_example.json my-project-test-1
Uploading json file: k8s_cluster_example.json to project: my-project-test-1...

✓ k8s_cluster_example.json successfully uploaded:
https://console.cloud.google.com/monitoring/dashboards/builder/25956d9a-93e2-410c-ada1-ec6872cb6665?project=my-project-test-1

Fehlerbehebung

Gelegentlich veröffentlichen wir kleine Updates und Fehlerkorrekturen für das Tool. Bevor Sie weitere Fehler beheben, versuchen Sie zuerst, das Problem zu beheben. Rufen Sie dazu mit git pull die neueste Version des Repositorys ab und importieren Sie dann noch einmal.

Informationen zu Problemen mit den konvertierten Dashboards, z. B. Diagrammen, die keine Daten anzeigen, finden Sie in der Datei README des Importers.

Nächste Schritte