Mengimpor dasbor Grafana ke Cloud Monitoring

Cloud Monitoring menyediakan pengimpor yang dapat Anda gunakan untuk mengimpor file dasbor dalam format JSON Grafana ke Cloud Monitoring. Dokumen ini menjelaskan cara menggunakan pengimpor untuk mengonversi dasbor Grafana dan menguploadnya secara opsional ke project Google Cloud Anda.

Anda dapat menggunakan pengimpor untuk mengonversi dasbor Grafana dan menguploadnya ke Cloud Monitoring sebagai operasi tunggal, atau Anda dapat melakukan langkah konversi dan upload secara terpisah. Anda dapat memilih pendekatan ini jika ingin mengedit dasbor yang dikonversi sebelum menguploadnya.

Pengimpor mengonversi file dasbor dalam format JSON yang digunakan oleh Grafana menjadi format JSON yang digunakan oleh Cloud Monitoring. Dasbor yang dikonversi mungkin berbeda dari dasbor Grafana asli. Jika dasbor Grafana menggunakan fitur yang tidak tersedia di dasbor Cloud Monitoring, aspek dasbor Grafana tersebut tidak akan dikonversi. Perbedaan ini tercantum dalam output konversi. Pengimpor hanya dirancang untuk menangani dasbor yang menggunakan ekspresi PromQL dan sumber data Prometheus. Dasbor yang menggunakan bentuk kueri atau sumber data lain mungkin tidak berhasil diimpor.

Untuk mengetahui informasi tentang cara mengimpor pemberitahuan Prometheus ke Cloud Monitoring, lihat Memigrasikan aturan dan penerima pemberitahuan dari Prometheus.

Sebelum memulai

Sebelum dapat menginstal dan menjalankan pengimpor dasbor, Anda harus melakukan hal berikut:

  1. Gunakan lingkungan yang mendukung skrip shell Bash.
  2. Miliki atau instal Git.
  3. Memiliki atau instal Node.js, versi 20.4.1 atau yang lebih baru.
  4. Memiliki atau menginstal Google Cloud CLI. Jika sudah menginstal gcloud CLI, pastikan Anda memiliki versi terbaru dengan menjalankan perintah gcloud components update.

Mendapatkan pengimpor dasbor

Pengimpor dasbor disimpan di repositori GitHub monitoring-dashboard-samples. Untuk mendapatkan pengimpor, lakukan hal berikut:

  1. Meng-cloning repository

    git clone https://github.com/GoogleCloudPlatform/monitoring-dashboard-samples
    
  2. Ubah ke direktori untuk pengimpor dasbor:

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

Pengimpor dasbor menyertakan skrip berikut:

  • import.sh, yang mengonversi dasbor dan secara opsional mengupload dasbor yang dikonversi ke Cloud Monitoring.

  • upload.sh, yang mengupload dasbor yang dikonversi, atau dasbor Monitoring, ke Cloud Monitoring. Skrip import.sh memanggil skrip ini untuk melakukan upload.

Saat menggunakan skrip import.sh, Anda harus menentukan lokasi dasbor Grafana yang akan dikonversi. Pengimpor membuat direktori yang berisi dasbor yang dikonversi dan informasi lainnya. Bagian berikut menjelaskan direktori ini.

Dasbor Grafana untuk dikonversi

Anda dapat menggunakan pengimpor dasbor untuk mengonversi satu atau beberapa dasbor sekaligus dengan menentukan jalur ke file dasbor.

  • Anda dapat menentukan jalur ke direktori yang berisi dasbor. Hanya file dalam direktori yang memiliki ekstensi .json yang diproses.

  • Anda dapat menentukan jalur ke satu file JSON. Nama file harus memiliki ekstensi .json.

Dasbor yang dikonversi dan informasi lainnya

Saat menjalankan pertama kalinya, pengimpor akan membuat subdirektori reports. Setiap kali menjalankan pengimpor, Anda akan mendapatkan direktori output baru di bawah direktori reports, yang diberi nama berdasarkan tanggal dan waktu. Nama direktori output memiliki struktur berikut:
reports/YYYY-M-D/HH:MM:SS

Untuk setiap pemanggilan pengimpor, direktori output berisi hal berikut:

  • File dengan nama yang sama seperti dasbor Grafana asli, tetapi kini dalam format JSON Cloud Monitoring.
  • File report.json, yang mencatat informasi berikut untuk setiap dasbor yang dikonversi:
    • Nama dan lokasi file dasbor Grafana yang dikonversi.
    • Nama dan lokasi file dasbor Monitoring yang dikonversi.
    • Pemberitahuan tentang fitur apa pun di dasbor Grafana yang tidak memiliki fitur terkait di Cloud Monitoring sehingga tidak dapat disertakan dalam dasbor yang dikonversi.
    • Error apa pun yang terjadi dalam konversi.

Jika Anda telah mengupload dasbor, direktori laporan juga menyertakan file upload_HH:MM:SS.txt, yang menyertakan URL tujuan upload dasbor.

Mengimpor dasbor Grafana

Untuk mengonversi dasbor Grafana dan menguploadnya ke Cloud Monitoring, gunakan skrip import.sh:

./import.sh PATH_TO_DIRECTORY_OR_FILE PROJECT_ID

Skrip ini melakukan hal berikut:

  1. Mengonversi dasbor di PATH_TO_DIRECTORY_OR_FILE dari format JSON yang digunakan oleh Grafana ke dalam format JSON yang digunakan oleh Cloud Monitoring.
  2. Mengupload dasbor yang dikonversi ke project Google Cloud PROJECT_ID menggunakan Google Cloud CLI.

    Jika Anda belum melakukan autentikasi ke gcloud CLI, jalankan perintah gcloud auth login sebelum menjalankan skrip import.sh.

Anda dapat mengimpor semua dasbor Grafana di direktori, atau Anda dapat menentukan satu dasbor di direktori yang akan diimpor.

  • Untuk mengimpor semua dasbor di direktori GRAFANA_DASHBOARDS_DIR ke project Google Cloud PROJECT_ID, tentukan direktorinya, secara relatif terhadap direktori pengimpor, dan project ID tujuan saat memanggil skrip:

    ./import.sh GRAFANA_DASHBOARDS_DIR PROJECT_ID
    
  • Untuk mengonversi dasbor MY_GRAFANA_DASHBOARD.json di direktori GRAFANA_DASHBOARDS_DIR saja, sertakan nama file dasbor, yang sesuai dengan direktori pengimpor, saat memanggil skrip:

    ./import.sh GRAFANA_DASHBOARDS_DIR/MY_GRAFANA_DASHBOARD.json PROJECT_ID
    

Pengimpor dasbor menyertakan contoh dasbor Grafana sebagai examples/k8s_cluster_example.json. Perintah berikut mengimpor dasbor tersebut ke dalam project yang ditentukan:

./import.sh examples/k8s_cluster_example.json PROJECT_ID

Saat dipanggil dengan PROJECT_ID my-project-test-1, outputnya akan terlihat seperti berikut:

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

Setelah membuat direktori output dan mengonversi dasbor, skrip import.sh akan meminta konfirmasi Anda sebelum mengupload dasbor yang dikonversi ke project Anda. Masukkan y, lalu skrip akan mengupload dasbor dan mencetak URL untuk dasbor baru:

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

Konversi dasbor Grafana tanpa mengupload

Jika Anda ingin memeriksa atau mengedit dasbor yang dikonversi sebelum menguploadnya, hapus nilai PROJECT_ID saat memanggil skrip import.sh:

./import.sh PATH_TO_DIRECTORY_OR_FILE

Pengimpor mengonversi dasbor seperti yang dijelaskan dalam dasbor Impor Grafana, tetapi tidak mengupload dasbor yang dikonversi ke Cloud Monitoring.

Anda dapat menjalankan langkah upload nanti, dengan menggunakan skrip upload.sh secara manual.

Mengupload dasbor secara manual

Untuk mengupload dasbor secara manual dalam format JSON Cloud Monitoring, gunakan skrip upload.sh.

    ./upload.sh PATH_TO_DIRECTORY_OR_FILE PROJECT_ID

Skrip upload.sh menggunakan Google Cloud CLI untuk mengupload file JSON. Jika Anda belum melakukan autentikasi ke gcloud CLI, jalankan perintah gcloud auth login sebelum menjalankan skrip upload.sh.

  • Untuk mengupload semua dasbor di direktori reports/YYYY-M-D/HH:MM:SS, tentukan direktorinya, secara relatif terhadap direktori pengimpor, dan project ID tujuan saat memanggil skrip:

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

    Saat mengupload semua dasbor dari direktori, skrip akan meminta Anda untuk melanjutkan atau keluar sebelum mengupload dasbor.

  • Untuk mengupload dasbor tertentu di direktori reports/YYYY-M-D/HH:MM:SS, tentukan direktori dan nama file, secara relatif terhadap direktori pengimpor, dan project ID tujuan saat memanggil skrip:

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

    Saat mengupload satu dasbor dari direktori, skrip akan berjalan tanpa meminta Anda sebelum mengupload dasbor.

Misalnya, perintah berikut mengupload dasbor yang disimpan di subdirektori reports ke project 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

Pemecahan masalah

Kami sesekali memublikasikan update kecil dan perbaikan bug pada alat ini. Sebelum mencoba pemecahan masalah lebih lanjut, pertama-tama coba perbaiki masalah dengan menggunakan git pull untuk mengambil versi terbaru repositori, lalu impor lagi.

Untuk informasi tentang masalah pada dasbor yang dikonversi, seperti diagram yang tidak menampilkan data, lihat file README pengimpor.

Langkah selanjutnya