可視化ダッシュボードを作成する

このページでは、Google Distributed Cloud(GDC)エアギャップ プロジェクトのログと指標の可視化に使用される Grafana インスタンス内でダッシュボードを作成して管理するプロセスについて説明します。

ダッシュボードは、システムのパフォーマンスを動的に視覚化したものです。1 つ以上のカスタマイズ可能なパネルで構成され、各パネルは GDC コンポーネントから特定の指標をクエリして表示するように構成されています。これらのパネルを使用すると、次のことができます。

  • さまざまなグラフタイプで指標を可視化する。
  • 指標値に基づいて通知をトリガーするアラートのしきい値を定義する。
  • ラベル、単位、時間範囲などの表示プロパティをカスタマイズする。
  • 正確な比較を行うために、一貫した時間分解能を設定する。

Grafana ダッシュボードを効果的に使用することで、GDC 環境のパフォーマンスと健全性に関する貴重な分析情報を得ることができます。

始める前に

組織全体のダッシュボードを操作するために必要な権限を取得するには、組織 IAM 管理者に次のロールの付与を依頼してください

  • カスタム ダッシュボードを作成する: ダッシュボード PA 作成者(dashboard-pa-creator
  • カスタム ダッシュボードを編集して削除する: ダッシュボード PA 編集者(dashboard-pa-editor
  • カスタム ダッシュボードを表示する: ダッシュボード PA 閲覧者(dashboard-pa-viewer

プロジェクトのダッシュボードを操作するために必要な権限を取得するには、プロジェクト IAM 管理者にプロジェクト名前空間で次のロールの付与を依頼してください

  • カスタム ダッシュボードを作成、編集、削除する: ダッシュボード編集者(dashboard-editor
  • カスタム ダッシュボードを表示する: ダッシュボード閲覧者(dashboard-viewer
  • ConfigMap を作成して編集する: ConfigMap 編集者(observabilitypipeline-configmap-editor

対応するロールを取得したら、ダッシュボードを作成する前に次の手順を行います。

  1. ワークロードから指標を収集します
  2. kubeconfig ファイルのパスを環境変数として設定します。

    export KUBECONFIG=KUBECONFIG_PATH
    

    KUBECONFIG_PATH は、ダッシュボードを作成する Management API サーバーの kubeconfig ファイルのパスに置き換えます。

Grafana エンドポイントを特定する

次の URL は、プロジェクトの Grafana インスタンスのエンドポイントです。

https://GDC_URL/PROJECT_NAMESPACE/grafana

次のように置き換えます。

  • GDC_URL: GDC 内の組織の URL。
  • PROJECT_NAMESPACE: プロジェクトの名前空間。

たとえば、org-1 組織の platform-obs プロジェクトの Grafana エンドポイントは https://org-1/platform-obs/grafana です。

カスタム ダッシュボードを作成する

次の手順に沿って Grafana ダッシュボードを作成し、設定をカスタマイズします。

  1. Grafana エンドポイントを開いて、ユーザー インターフェースを表示します。
  2. ナビゲーション メニューで [Add] をクリックします。
  3. プルダウン メニューで [ダッシュボード] をクリックします。Grafana によって空のダッシュボードが作成されます。
  4. 空のダッシュボードに、必要なパネルをすべて追加します。

  5. 各パネルの [データソース] メニューで、パネルに必要なデータソース(指標(prometheus)、監査ログ(auditloki)、オペレーション ログ(oploki)など)を選択します。

    マルチゾーン ユニバースの場合、Grafana にはゾーンラベル付きのデータソースがあり、これを使用して複数のゾーンの指標とログを含むダッシュボードの可視化を作成できます。これらのデータソースの名前は DATA_SOURCE-ZONE_ID の形式で、次のようになります。

    • DATA_SOURCE には、次のいずれかの 値を指定できます。

      • 指標を表示する Prometheusprometheus または metrics)。
      • 監査ログを表示する 監査ログauditloki)。
      • オペレーション ログを表示する オペレーション ログoploki)。
    • ZONE_ID は、ダッシュボードにデータを表示するゾーンの ID です。

    また、クロスゾーン リソースの可視化ダッシュボードを作成する場合、データソース名は --Mixed-- です。このデータソースを使用すると、ゾーンごとに複数のクエリを追加し、1 つのダッシュボードでクロスゾーンのデータを可視化できます。この機能を使用すると、たとえば、ユニバースの複数のゾーンにわたる単一の指標またはログクエリの動作を比較できます。

  6. 詳細をカスタマイズし、パネルを編集してクエリを指定するか、他の更新を行います。

  7. メニューバーで [Dashboard settings] をクリックして、[Settings] ページを開きます。

  8. ナビゲーション メニューで [JSON モデル] を選択します。

  9. ダッシュボードの JSON モデルをコピーして、後で使用するためにプレーン テキスト ファイルに貼り付けます。

ConfigMap オブジェクトを作成する

次の手順に沿って、ダッシュボードの JSON モデルを含む ConfigMap オブジェクトを作成します。

  1. ターミナル ウィンドウを開きます。
  2. ConfigMap オブジェクトを作成します。ConfigMap オブジェクトの data セクションに、先ほどコピーした JSON モデルを貼り付けます。

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

    次のように置き換えます。

    このオブジェクトの形式の例については、 ConfigMapをご覧ください

  3. Management API サーバーに ConfigMap オブジェクトを適用します。

    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. Management API サーバーに Dashboard カスタム リソースを適用します。

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

システムは、Dashboard カスタム リソースと関連する ConfigMap オブジェクトの両方の変更をモニタリングします。ダッシュボードを更新または削除するには、これらのリソースを変更します。変更を行うと、Grafana が更新されます。Grafana ユーザー インターフェースで直接行った更新は保存できません。