將 Grafana 資訊主頁匯入 Cloud Monitoring

將 Grafana JSON 資訊主頁檔案匯入 Cloud Monitoring,即可將現有的 Prometheus 視覺化圖表,重複用於自訂資訊主頁。您可以使用 Google Cloud 控制台或指令列匯入工具,轉換及上傳 Grafana 資訊主頁。

您只能匯入使用 PromQL 運算式和 Prometheus 資料來源的資訊主頁。如果資訊主頁包含 Monitoring 不支援的 Grafana 功能,匯入程序會略過這些功能,並在匯入結果中列出差異。

如要遷移 Prometheus 警告規則,請參閱「從 Prometheus 遷移警告規則和接收器」。如要在匯入資訊主頁後進行管理,請參閱「建立及管理自訂資訊主頁」。

事前準備

無論是使用 Google Cloud 控制台或匯入工具匯入資訊主頁,都必須具備足夠的授權,且需要匯入資訊主頁。使用匯入工具時,必須符合其他必要條件。

授權

如要取得建立及修改自訂資訊主頁所需的權限,請要求管理員授予您專案的 Monitoring 編輯者 (roles/monitoring.editor) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

如要進一步瞭解角色,請參閱「使用 Identity and Access Management 控管存取權」。

收集要匯入的 Grafana 資訊主頁

如要匯入 Grafana 資訊主頁,您必須將其儲存在本機,並採用 JSON 格式。建議您為這些資訊主頁檔案建立專屬目錄。

使用 Google Cloud 控制台匯入資訊主頁

您可以從 Google Cloud 控制台的 Monitoring「Dashboards」(資訊主頁) 頁面,將 Grafana 資訊主頁匯入 Cloud Monitoring。

匯入 Grafana 資訊主頁

如要匯入一或多個 Grafana 資訊主頁,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,前往「Dashboards」(資訊主頁) 頁面:

    前往「Dashboards」(資訊主頁)

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。

  2. 在 Google Cloud 控制台的工具列中,選取 Google Cloud 專案。如要設定 App Hub,請選取 App Hub 主專案或管理專案。

  3. 按一下「Import Dashboard」(匯入資訊主頁)。

  4. 按一下「Browse」(瀏覽),前往儲存 JSON 格式 Grafana 資訊主頁的目錄,然後選取要匯入的資訊主頁。

    選取 JSON 檔案後,系統會將檔案暫存;「Staged Files」窗格會指出轉換過程中是否有任何問題。

    • 按一下「 查看轉換後的 JSON」,即可查看轉換結果。
    • 按一下 「Remove file」(移除檔案),即可從匯入作業中移除資訊主頁。
  5. 按一下「匯入」圖示 。「Import results」(匯入結果) 窗格會指出每個資訊主頁是否已成功匯入。

  6. 如要查看成功匯入的資訊主頁,請按一下 「View」(查看)。

查看匯入的資訊主頁

如要查看匯入的資訊主頁,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,前往「Dashboards」(資訊主頁) 頁面:

    前往「Dashboards」(資訊主頁)

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。

  2. 在 Google Cloud 控制台的工具列中,選取 Google Cloud 專案。如要設定 App Hub,請選取 App Hub 主專案或管理專案。
  3. 在清單中找出要查看的資訊主頁。如要篩選資訊主頁清單,請執行下列操作:

    • 在「Type」(類型) 選單中,選取「Custom」(自訂)。
    • 在「Labels」(標籤) 窗格中,選取 cloud-monitoring-dashboard-importer 標籤,即可只查看使用 Google Cloud 控制台匯入的 Grafana 資訊主頁。

    • 使用篩選列依名稱搜尋。

新增或移除使用者定義的標籤

您只能為自訂資訊主頁 (包括匯入的資訊主頁) 新增標籤。如果資訊主頁顯示 「Add labels to dashboard」(在資訊主頁中新增標籤) 按鈕,您就可以設定要將哪些標籤套用至資訊主頁。

如要在資訊主頁新增或移除使用者定義的標籤,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,前往「Dashboards」(資訊主頁) 頁面:

    前往「Dashboards」(資訊主頁)

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。

  2. 在資訊主頁清單中找出資訊主頁,然後按一下「 Add labels to dashboard」(為資訊主頁新增標籤)。
  3. 執行下列其中一項操作:
    • 如要建立標籤並新增至資訊主頁,請在「Create a new label」(建立新標籤) 區段的文字方塊中輸入標籤名稱,然後按一下「Create and apply」(建立並套用)。

    • 如要設定要新增至資訊主頁的標籤,請按一下「 選取要套用的標籤」,選取標籤,然後按一下「確定」。
  4. 如要儲存變更,請按一下「確認」。

使用匯入工具匯入資訊主頁

您可以使用匯入工具轉換 Grafana 資訊主頁,並透過單一作業上傳至 Cloud Monitoring,也可以分別執行轉換和上傳步驟。如果您想在上傳前編輯轉換後的資訊主頁,可以選擇這個方法。

其他必要條件

您必須先完成下列事項,才能安裝及執行資訊主頁匯入工具:

  1. 使用支援 Bash 殼層指令碼的環境。
  2. 安裝 Git。
  3. 具備或安裝 Node.js 20.4.1 以上版本。
  4. 已安裝 Google Cloud CLI。如果已安裝 gcloud CLI,請執行 gcloud components update 指令,確認您使用的是最新版本。

取得資訊主頁匯入工具

資訊主頁匯入工具儲存在 monitoring-dashboard-samples GitHub 存放區中。如要取得並設定匯入工具,請按照下列步驟操作:

  1. 複製存放區:

    git clone https://github.com/GoogleCloudPlatform/monitoring-dashboard-samples
    
  2. 切換至資訊主頁匯入工具的目錄:

    cd monitoring-dashboard-samples/scripts/dashboard-importer
    
  3. 安裝節點模組並建構檔案:

    npm install && npm run build
    

資訊主頁匯入工具包含下列指令碼:

  • import.sh,可轉換資訊主頁,並視需要將轉換後的資訊主頁上傳至 Cloud Monitoring。

  • upload.sh,將轉換後的資訊主頁 (或任何 Monitoring 資訊主頁) 上傳至 Cloud Monitoring。import.sh 指令碼會呼叫這個指令碼來執行上傳作業。

使用 import.sh 指令碼時,必須指定要轉換的 Grafana 資訊主頁位置。匯入工具會建立目錄,其中包含轉換後的資訊主頁和其他資訊。以下各節將說明這些目錄。

要轉換的 Grafana 資訊主頁

您可以使用資訊主頁匯入工具,指定資訊主頁檔案的路徑,一次轉換一或多個資訊主頁。

  • 您可以指定含有資訊主頁的目錄路徑。系統只會處理目錄中副檔名為 .json 的檔案。

  • 您可以指定單一 JSON 檔案的路徑。檔案名稱必須有 .json 副檔名。

轉換後的資訊主頁和其他資訊

匯入工具首次執行時,會建立 reports 子目錄。每次執行匯入工具時,系統都會在 reports 目錄下建立新的輸出目錄,並以日期和時間命名。輸出目錄的名稱結構如下:
reports/YYYY-M-D/HH:MM:SS

每次叫用匯入工具時,輸出目錄都會包含下列內容:

  • 一或多個檔案,名稱與原始 Grafana 資訊主頁相同,但現在採用 Cloud Monitoring JSON 格式。
  • report.json 檔案,記錄每個轉換後資訊主頁的下列資訊:
    • 已轉換的 Grafana 資訊主頁檔案名稱和位置。
    • 轉換後的 Monitoring 資訊主頁檔案名稱和位置。
    • Grafana 資訊主頁中任何功能在 Cloud Monitoring 中沒有對應功能,因此無法納入轉換後的資訊主頁。
    • 轉換期間發生的任何錯誤。

如果您已上傳資訊主頁,報表目錄也會包含 upload_HH:MM:SS.txt 檔案,其中包含資訊主頁上傳到的網址。

匯入 Grafana 資訊主頁

如要轉換 Grafana 資訊主頁並上傳至 Cloud Monitoring,請使用 import.sh 指令碼:

./import.sh PATH_TO_DIRECTORY_OR_FILE PROJECT_ID

這個指令碼會執行下列動作:

  1. 將 PATH_TO_DIRECTORY_OR_FILE 中的資訊主頁從 Grafana 使用的 JSON 格式轉換為 Cloud Monitoring 使用的 JSON 格式。
  2. 使用 Google Cloud CLI 將轉換後的資訊主頁上傳至 Google Cloud 專案 PROJECT_ID。

    如果您尚未向 gcloud CLI 驗證,請先執行 gcloud auth login 指令,再執行 import.sh 指令碼。

您可以匯入目錄中的所有 Grafana 資訊主頁,也可以指定匯入目錄中的單一資訊主頁。

  • 如要將 GRAFANA_DASHBOARDS_DIR 目錄中的所有資訊主頁匯入 PROJECT_ID Google Cloud 專案,請在叫用指令碼時,指定相對於匯入工具目錄的目錄,以及目的地專案 ID:

    ./import.sh GRAFANA_DASHBOARDS_DIR PROJECT_ID
    
  • 如要只轉換 GRAFANA_DASHBOARDS_DIR 目錄中的 MY_GRAFANA_DASHBOARD.json 資訊主頁,請在叫用指令碼時,加入相對於匯入工具目錄的資訊主頁檔案名稱:

    ./import.sh GRAFANA_DASHBOARDS_DIR/MY_GRAFANA_DASHBOARD.json PROJECT_ID
    

資訊主頁匯入工具包含範例 Grafana 資訊主頁,名為 examples/k8s_cluster_example.json。下列指令會將該資訊主頁匯入指定專案:

./import.sh examples/k8s_cluster_example.json PROJECT_ID

使用 PROJECT_ID my-project-test-1 叫用時,輸出內容大致如下:

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

import.sh 指令碼建立輸出目錄並轉換資訊主頁後,會先提示您確認,再將轉換後的資訊主頁上傳至專案。輸入 y,指令碼就會上傳資訊主頁,並輸出新資訊主頁的網址:

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 資訊主頁

如要在上傳前檢查或編輯轉換後的資訊主頁,請在叫用 import.sh 指令碼時省略 PROJECT_ID 值:

./import.sh PATH_TO_DIRECTORY_OR_FILE

匯入工具會按照「匯入 Grafana 資訊主頁」一文所述轉換資訊主頁,但不會將轉換後的資訊主頁上傳至 Cloud Monitoring。

您可以稍後再手動使用 upload.sh 指令碼執行上傳步驟。

手動上傳資訊主頁

如要手動上傳 Cloud Monitoring JSON 格式的資訊主頁,請使用 upload.sh 指令碼。

    ./upload.sh PATH_TO_DIRECTORY_OR_FILE PROJECT_ID

upload.sh 指令碼會使用 Google Cloud CLI 上傳 JSON 檔案。如果您尚未向 gcloud CLI 驗證,請先執行 gcloud auth login 指令,再執行 upload.sh 指令碼。

  • 如要上傳 reports/YYYY-M-D/HH:MM:SS 目錄中的所有資訊主頁,請在叫用指令碼時,指定相對於匯入工具目錄的目錄,以及目的地專案 ID:

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

    從目錄上傳所有資訊主頁時,指令碼會提示您繼續或退出,然後再上傳資訊主頁。

  • 如要上傳 reports/YYYY-M-D/HH:MM:SS 目錄中的特定資訊主頁,請在叫用指令碼時,指定相對於匯入工具目錄的目錄和檔案名稱,以及目的地專案 ID:

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

    從目錄上傳單一資訊主頁時,指令碼會直接執行,不會在上傳資訊主頁前提示您。

舉例來說,下列指令會將儲存在 reports 子目錄中的資訊主頁上傳至 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

查看上傳的資訊主頁

如要查看上傳的資訊主頁,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,前往「Dashboards」(資訊主頁) 頁面:

    前往「Dashboards」(資訊主頁)

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。

  2. 在清單中找出要查看的資訊主頁。如要篩選資訊主頁清單,請執行下列操作:

    • 選取「Custom」(自訂) 類別,即可只查看使用者定義的資訊主頁。
    • 選取 cloud-ops-grafana-importer 標籤,即可只查看使用匯入工具匯入的 Grafana 資訊主頁。
    • 使用篩選列依名稱搜尋。

疑難排解

我們會不定期發布工具的小型更新和錯誤修正。嘗試進一步疑難排解前,請先使用 git pull 提取最新版本的存放區,然後再次匯入,看看能否解決問題。

如要瞭解轉換後的資訊主頁問題 (例如圖表未顯示資料),請參閱匯入工具的 README 檔案。

後續步驟