建立視覺化資訊主頁

本頁說明如何在 Grafana 執行個體中建立及管理資訊主頁,用於顯示 Google Distributed Cloud (GDC) 實體隔離專案的記錄和指標。

資訊主頁會以動態圖表呈現系統效能。其中包含一或多個可自訂的面板,每個面板都設為查詢及顯示 GDC 元件的特定指標。您可以在這些面板中執行下列操作:

  • 透過各種圖表類型呈現指標。
  • 定義快訊門檻,根據指標值觸發通知。
  • 自訂顯示屬性,例如標籤、單位和日期範圍。
  • 設定一致的時間解析度,確保比較結果準確無誤。

有效運用 Grafana 資訊主頁,即可深入瞭解 GDC 環境的效能和健康狀態。

事前準備

如要管理 Dashboard 和 ConfigMap 自訂資源,您必須具備必要權限。

要求 IAM 機構角色

請與機構 IAM 管理員聯絡,並要求授予下列角色,以便在機構中處理資訊主頁:

  • 資訊主頁 PA 建立工具 (dashboard-pa-creator):建立自訂資訊主頁。
  • 資訊主頁 PA 編輯器 (dashboard-pa-editor):編輯或刪除自訂資訊主頁。
  • 資訊主頁 PA 檢視者 (dashboard-pa-viewer):查看自訂資訊主頁。

要求 IAM 專案角色

請與專案 IAM 管理員聯絡,要求下列角色,以便在專案中使用資訊主頁和設定:

  • 資訊主頁編輯者 (dashboard-editor):在專案命名空間內建立、編輯及刪除自訂資訊主頁。
  • 資訊主頁檢視者 (dashboard-viewer):在專案命名空間中查看自訂資訊主頁。
  • ConfigMap 編輯者 (observabilitypipeline-configmap-editor):在專案命名空間中建立及編輯 ConfigMap。

準備環境

取得相應角色後,請先按照下列步驟操作,再建立資訊主頁:

  1. 收集工作負載的指標。
  2. 將 kubeconfig 檔案的路徑設為環境變數:

    export KUBECONFIG=KUBECONFIG_PATH
    

    將 KUBECONFIG_PATH 替換為 Management API 伺服器的 kubeconfig 檔案路徑,以便在該伺服器建立資訊主頁。

找出 Grafana 端點

下列網址是專案 Grafana 執行個體的端點:

https://GDC_URL/PROJECT_NAMESPACE/grafana

更改下列內容:

  • GDC_URL:組織在 GDC 中的網址。
  • PROJECT_NAMESPACE:您的專案命名空間。

舉例來說,org-1 組織中 platform-obs 專案的 Grafana 端點為 https://org-1/platform-obs/grafana。

建立自訂資訊主頁

請按照下列步驟建立 Grafana 資訊主頁,並自訂設定:

  1. 開啟 Grafana 端點,顯示使用者介面。
  2. 按一下導覽選單中的「新增」。
  3. 點選下拉式選單中的「資訊主頁」。Grafana 會建立空白資訊主頁。
  4. 在空白資訊主頁中,新增所需面板。

  5. 在每個面板的「Data source」(資料來源) 選單中,選取面板所需的資料來源,包括指標 (prometheus)、稽核記錄 (auditloki) 和作業記錄 (oploki)。

    如果是多可用區宇宙,Grafana 具有可用區標籤的資料來源,可用於建立包含多個可用區指標和記錄的資訊主頁圖表。這些資料來源的命名格式為 DATA_SOURCE-ZONE_ID,其中:

    • DATA_SOURCE 可以是下列其中一個值:

      • Prometheus (prometheus 或 metrics) 顯示指標。
      • 稽核記錄 (auditloki):顯示稽核記錄。
      • 作業記錄檔 (oploki):顯示作業記錄檔。
    • ZONE_ID 是要在資訊主頁中顯示資料的可用區 ID。

    此外,如要為跨區域資源建立視覺化資訊主頁,資料來源名稱為 --Mixed--。這個資料來源可讓您在每個區域新增多個查詢,並在單一資訊主頁中顯示跨區域的資料。您可以使用這項功能比較行為,例如在宇宙的多個可用區中,比較單一指標或記錄查詢。

  6. 自訂詳細資料並編輯面板,提供查詢或進行其他更新。

  7. 按一下選單列中的「資訊主頁設定」 ,開啟「設定」頁面。

  8. 在導覽選單中選取「JSON Model」(JSON 模型)。

  9. 複製資訊主頁的 JSON 模型,並貼到純文字檔案中,以供日後使用。

建立 ConfigMap 物件

請按照下列步驟建立 ConfigMap 物件,其中包含資訊主頁的 JSON 模型:

  1. 開啟終端機視窗。
  2. 建立 ConfigMap 物件。在 ConfigMap 物件的 data 區段中,貼上先前複製的 JSON 模型:

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

    更改下列內容:

    • PROJECT_NAMESPACE:您的專案命名空間。
    • CONFIGMAP_NAME:要為 ConfigMap 物件指定的名稱。
    • JSON_FILE_NAME:您要為資訊主頁的 JSON 模型檔案命名。
    • JSON_MODEL:自訂資訊主頁的 JSON 模型。

    如要查看這個物件的範例,請參閱ConfigMap 範例。

  3. 將 ConfigMap 物件套用至 Management API 伺服器:

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

ConfigMap 範例

下列 YAML 檔案顯示 platform-obs 命名空間中資訊主頁的 ConfigMap 物件範例:

  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
      }

建立 Dashboard 自訂資源

請按照下列步驟建立 Dashboard 自訂資源,並將自訂資訊主頁匯入專案的 Grafana 執行個體:

  1. 開啟終端機視窗。
  2. 建立 Dashboard 自訂資源,並使用您為 ConfigMap 物件指定的名稱設定檔案:

    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
    

    更改下列內容:

    • PROJECT_NAMESPACE:專案命名空間。
    • DASHBOARD_NAME:要為 Dashboard 自訂資源指定的名稱。
    • CONFIGMAP_NAME:您為 ConfigMap 物件指定的名稱。
    • JSON_FILE_NAME:您為檔案指定的名稱,該檔案包含 ConfigMap 物件中資訊主頁的 JSON 模型。
  3. 將Dashboard自訂資源套用至 Management API 伺服器:

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

系統會監控 Dashboard 自訂資源和相關聯 ConfigMap 物件的變更。如要更新或刪除資訊主頁,請修改這些資源。任何修改都會觸發 Grafana 更新。您無法儲存直接在 Grafana 使用者介面中執行的任何更新。