Cloud Monitoring fournit un outil permettant d'importer des fichiers de tableau de bord Grafana au format JSON dans Cloud Monitoring. Ce document explique comment utiliser l'outil d'importation pour convertir des tableaux de bord Grafana et éventuellement les importer dans votre projet Google Cloud.
Vous pouvez utiliser l'importateur pour convertir des tableaux de bord Grafana et les importer dans Cloud Monitoring en une seule opération, ou effectuer les étapes de conversion et d'importation séparément. Vous pouvez choisir cette approche si vous souhaitez modifier les tableaux de bord convertis avant de les importer.
L'outil d'importation convertit les fichiers de tableau de bord au format JSON utilisé par Grafana au format JSON utilisé par Cloud Monitoring. Un tableau de bord converti peut différer du tableau de bord Grafana d'origine. Si un tableau de bord Grafana utilise des fonctionnalités qui ne sont pas disponibles dans les tableaux de bord Cloud Monitoring, ces aspects du tableau de bord Grafana ne sont pas convertis. Ces différences sont incluses dans le résultat de la conversion. L'outil d'importation n'est conçu que pour gérer les tableaux de bord qui utilisent des expressions PromQL et des sources de données Prometheus. Il est possible que les tableaux de bord qui utilisent d'autres formes d'interrogation ou d'autres sources de données ne s'importent pas correctement.
Pour en savoir plus sur l'importation d'alertes Prometheus dans Cloud Monitoring, consultez la page Migrer des règles d'alerte et des récepteurs depuis Prometheus.
Avant de commencer
Avant de pouvoir installer et exécuter l'outil d'importation de tableaux de bord, vous devez effectuer les opérations suivantes :
- Utilisez un environnement compatible avec les scripts shell Bash.
- Si ce n'est pas déjà fait, installez Git.
- Si ce n'est pas déjà fait, installez Node.js version 20.4.1 ou ultérieure.
- Si ce n'est pas déjà fait, installez Google Cloud CLI. Si la gcloud CLI est déjà installée, assurez-vous de disposer de la dernière version en exécutant la commande
gcloud components update
.
Obtenir l'outil d'importation de tableaux de bord
L'outil d'importation de tableaux de bord est stocké dans le dépôt GitHub monitoring-dashboard-samples
.
Pour obtenir l'outil d'importation, procédez comme suit :
Clonez le dépôt :
git clone https://github.com/GoogleCloudPlatform/monitoring-dashboard-samples
Accédez au répertoire de l'outil d'importation de tableaux de bord :
cd monitoring-dashboard-samples/scripts/dashboard-importer
L'outil d'importation de tableaux de bord inclut les scripts suivants :
import.sh
, qui convertit les tableaux de bord et éventuellement les importe dans Cloud Monitoring.upload.sh
, qui importe les tableaux de bord convertis ou tous les tableaux de bord Monitoring dans Cloud Monitoring. Le scriptimport.sh
appelle ce script pour effectuer l'importation.
Lorsque vous utilisez le script import.sh
, vous devez spécifier l'emplacement des tableaux de bord Grafana à convertir. L'outil d'importation crée un répertoire contenant les tableaux de bord convertis ainsi que d'autres informations.
Les sections suivantes décrivent ces répertoires.
Tableaux de bord Grafana à convertir
Vous pouvez utiliser l'outil d'importation de tableaux de bord pour convertir un ou plusieurs tableaux de bord à la fois en spécifiant un chemin d'accès aux fichiers de tableaux de bord.
Vous pouvez spécifier le chemin d'accès à un répertoire contenant des tableaux de bord. Seuls les fichiers du répertoire comportant l'extension
.json
sont traités.Vous pouvez spécifier le chemin d'accès à un seul fichier JSON. Le nom du fichier doit comporter l'extension
.json
.
Tableaux de bord convertis et autres informations
Lorsque l'importateur s'exécute pour la première fois, il crée un sous-répertoire reports
.
Chaque fois que vous exécutez l'outil d'importation, vous obtenez un nouveau répertoire de sortie sous reports
, dont le nom correspond à la date et à l'heure. Le nom du répertoire de sortie présente la structure suivante :
reports/YYYY-M-D/HH:MM:SS
Pour chaque appel de l'outil d'importation, le répertoire de sortie contient les éléments suivants :
- Un ou plusieurs fichiers dotés des mêmes noms que les tableaux de bord Grafana d'origine, mais convertis au format JSON utilisé par Cloud Monitoring.
- Un fichier
report.json
, qui enregistre les informations suivantes pour chaque tableau de bord converti :- Nom et emplacement du fichier du tableau de bord Grafana qui a été converti.
- Nom et emplacement du fichier de tableau de bord Monitoring converti.
- Avis concernant les fonctionnalités du tableau de bord Grafana qui n'ont pas de fonctionnalité correspondante dans Cloud Monitoring et qui ne peuvent donc pas être incluses dans le tableau de bord converti.
- Toutes les erreurs survenues lors de la conversion.
Si vous avez importé les tableaux de bord, le répertoire du rapport inclut également un fichier upload_HH:MM:SS.txt
, qui inclut l'URL vers laquelle le tableau de bord a été importé.
Importer des tableaux de bord Grafana
Pour convertir des tableaux de bord Grafana et les importer dans Cloud Monitoring, utilisez le script import.sh
:
./import.sh PATH_TO_DIRECTORY_OR_FILE PROJECT_ID
Ce script effectue les opérations suivantes :
- Convertit les tableaux de bord au format JSON utilisé par Grafana situés dans
PATH_TO_DIRECTORY_OR_FILE
au format JSON utilisé par Cloud Monitoring. Importe les tableaux de bord convertis dans votre projet Google Cloud PROJECT_ID à l'aide de Google Cloud CLI.
Si vous ne vous êtes pas authentifié auprès de la gcloud CLI, exécutez la commande
gcloud auth login
avant d'exécuter le scriptimport.sh
.
Vous pouvez importer tous les tableaux de bord Grafana d'un répertoire ou spécifier un seul tableau de bord dans le répertoire à importer.
Pour importer tous les tableaux de bord du répertoire
GRAFANA_DASHBOARDS_DIR
dans le projet Google Cloud PROJECT_ID, spécifiez le répertoire par rapport au répertoire d'importation, et l'ID du projet de destination lorsque vous appelez le script :./import.sh GRAFANA_DASHBOARDS_DIR PROJECT_ID
Pour convertir uniquement le tableau de bord
MY_GRAFANA_DASHBOARD.json
du répertoireGRAFANA_DASHBOARDS_DIR
, incluez le nom de fichier du tableau de bord, par rapport au répertoire d'importation, lorsque vous appelez le script :./import.sh GRAFANA_DASHBOARDS_DIR/MY_GRAFANA_DASHBOARD.json PROJECT_ID
L'outil d'importation de tableaux de bord inclut un exemple de tableau de bord Grafana en tant que examples/k8s_cluster_example.json
. La commande suivante importe ce tableau de bord dans le projet spécifié :
./import.sh examples/k8s_cluster_example.json PROJECT_ID
Lorsqu'elle est appelée avec la commande PROJECT_ID my-project-test-1
, le résultat se présente comme suit :
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
Une fois que le script import.sh
a créé le répertoire de sortie et converti les tableaux de bord, mais avant d'importer les tableaux de bord convertis dans votre projet, il vous invite à confirmer l'opération. Saisissez y
. Le script importe le tableau de bord et affiche l'URL du nouveau tableau de bord :
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
Convertir des tableaux de bord Grafana sans les importer
Si vous souhaitez inspecter ou modifier les tableaux de bord convertis avant de les importer, omettez la valeur PROJECT_ID lorsque vous appelez le script import.sh
:
./import.sh PATH_TO_DIRECTORY_OR_FILE
L'outil d'importation convertit les tableaux de bord comme décrit dans la section Importer des tableaux de bord Grafana, mais ne les importe pas dans Cloud Monitoring.
Vous pouvez exécuter l'étape d'importation ultérieurement en utilisant manuellement le script upload.sh
.
Importer des tableaux de bord manuellement
Pour importer manuellement des tableaux de bord au format JSON utilisé par Cloud Monitoring, utilisez le script upload.sh
.
./upload.sh PATH_TO_DIRECTORY_OR_FILE PROJECT_ID
Le script upload.sh
utilise la Google Cloud CLI pour importer les fichiers JSON. Si vous ne vous êtes pas authentifié auprès de la gcloud CLI, exécutez la commande gcloud auth login
avant d'exécuter le script upload.sh
.
Pour importer tous les tableaux de bord d'un répertoire
reports/YYYY-M-D/HH:MM:SS
, spécifiez le répertoire, par rapport au répertoire d'importation, et l'ID du projet de destination lorsque vous appelez le script :./upload.sh
reports/YYYY-M-D/HH:MM:SS
PROJECT_IDLorsque vous importez tous les tableaux de bord depuis un répertoire, le script vous invite à continuer ou à quitter avant d'importer les tableaux de bord.
Pour importer un tableau de bord spécifique dans un répertoire
reports/YYYY-M-D/HH:MM:SS
, spécifiez le répertoire et le nom du fichier, par rapport au répertoire d'importation, et l'ID du projet de destination lorsque vous appelez le script :./upload.sh
reports/YYYY-M-D/HH:MM:SS
/MY_MONITORING_DASHBOARD.json PROJECT_IDLors de l'importation d'un seul tableau de bord à partir d'un répertoire, le script s'exécute sans vous demander confirmation avant d'importer les tableaux de bord.
Par exemple, la commande suivante importe un tableau de bord stocké dans un sous-répertoire reports
dans le projet Google Cloud my-project-test-1
:
./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
Dépannage
Nous publions occasionnellement de petites mises à jour et des corrections de bugs sur l'outil. Avant d'effectuer d'autres procédures de dépannage, essayez d'abord de résoudre le problème en utilisant git pull
pour extraire la dernière version du dépôt, puis en procédant à nouveau à l'importation.
Pour en savoir plus sur les problèmes liés aux tableaux de bord convertis, comme des graphiques n'affichant pas de données, consultez le fichier README
de l'outil d'importation.
Étapes suivantes
- Créez et gérez des tableaux de bord personnalisés
- Affichez le code source et le fichier
README
pour l'outil d'importation de tableaux de bord - Migrez des règles d'alerte et des récepteurs depuis Prometheus
- Affichez et gérez l'utilisation des métriques