ビジュアル ダッシュボードを作成する

このページでは、 システム モニタリング インスタンス。 ダッシュボードを使用して、ネットワーク モニタリングやサーバー モニタリングなど、プロジェクトでモニタリング オペレーションを実行します。

オブザーバビリティ プラットフォームが GDC プロジェクトにデプロイされたワークロードによって生成された指標を収集すると、構成によって関連する指標ラベルが保存され、すべてのデータソースからファイルが集計されます。次に、カスタマイズされたダッシュボードを作成して、モニタリング インスタンスのユーザー インターフェース(UI)から特定の指標をクエリして可視化できます。

ダッシュボードは、データソースで構成された Prometheus 指標とやり取りする 1 つ以上のカスタマイズ可能なパネルの動的な視覚的配置です。クエリを作成することで、これらの各パネルを使用して、GDC コンポーネントの特定の指標を可視化して公開できます。

オブザーバビリティ プラットフォームは、指標の視覚的な配置のカスタマイズを構成できる API を公開します。たとえば、受け入れしきい値を設定し、適切なシグナルを表示し、グラフにラベルを付け、一貫した時間分解能を選択します。

使用可能なダッシュボード

環境が稼働している場合、モニタリング インスタンスのホームページにいくつかの指標ダッシュボードがすぐに表示されます。たとえば、スイッチのステータスとシステム コンポーネントの健全性を確認できます。

スイッチとクラスタのダッシュボードを使用して、クラスタとノードの指標をモニタリングします。ロギングとモニタリングのダッシュボードにアクセスして、管理クラスタをモニタリングします。

利用可能なダッシュボードと最近表示したダッシュボードのリストが表示されたホームページ

最も関連性の高いプラットフォーム管理者(PA)の指標は次のとおりです。

  • Kubernetes / API サーバー: 組織内のクラスタごとの API サーバーの健全性を示します。
  • Kubernetes / コンピューティング リソース / マルチクラスタ: 組織全体のリソース使用率が表示されます。
  • Kubernetes / コンピューティング リソース / クラスタ: クラスタごとのリソース使用率が表示されます。
  • Kubernetes / Persistent Volumes: 各クラスタの Kubernetes 永続ボリュームの使用率が表示されます。
  • ノードのステータス: 各クラスタの各ノードのリソース使用量が表示されます。
  • Pod のステータス: 各クラスタの各 Pod のリソース消費量が表示されます。

次の図は、Kubernetes / コンピューティング リソース / マルチクラスタ ダッシュボードの例を示しています。

CPU 使用率を示す折れ線グラフと、CPU 割り当てを示すクラスタのリスト

プロジェクトのモニタリング インスタンスにアクセスする

モニタリング ダッシュボードにアクセスするには、承認を取得する必要があります。プロジェクトのモニタリング インスタンスにログインして指標を表示するために必要な権限を取得するには、組織 IAM 管理者に組織 Grafana 閲覧者(organization-grafana-viewer)ロールの付与を依頼してください。組織の IAM 管理者は、ロール バインディングを作成してアクセス権を付与できます。

kubectl --kubeconfig ADMIN_KUBECONFIG create rolebinding pa-grafana-viewer-binding -n platform-obs --user=USER_NAME --clusterrole=organization-grafana-viewer

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

  • ADMIN_KUBECONFIG: 管理クラスタの kubeconfig ファイルのパス。
  • USER_NAME: ロール バインディングが必要なユーザーのアカウント名。

ロールの割り当ての詳細については、次のリソースをご覧ください。

Grafana ダッシュボードを作成する

このセクションでは、Grafana インスタンスでダッシュボードを作成して管理するプロセスについて説明します。

次の手順に沿って、GDC でダッシュボードを作成します。

  1. 始める前にセクションの前提条件を完了します
  2. プロジェクトの Grafana エンドポイントを開きます
  3. ダッシュボードの ConfigMap オブジェクトを作成します
  4. Dashboard カスタム リソース(CR)を作成します

始める前に

ダッシュボードを作成する前に、モニタリング インスタンスへのアクセス権を取得する必要があります。詳細については、ダッシュボードへのアクセス権を取得するをご覧ください。

  1. ダッシュボードを作成する前に、GDC プロジェクトから指標を収集します。
  2. ログイン、ダッシュボードの作成、指標の可視化を行うには、プロジェクト IAM 管理者に Project Grafana 閲覧者(project-grafana-viewer)ロールの付与を依頼してください。
  3. kubeconfig ファイルのパスを環境変数として設定します。

    export KUBECONFIG=KUBECONFIG_FILE
    

    KUBECONFIG_FILE は、ダッシュボードを作成する管理クラスタの kubeconfig ファイルのパスに置き換えます。

モニタリング エンドポイント

次の URL を開いて、プロジェクトのエンドポイントにアクセスします。

https://GDC_URL/PROJECT_NAMESPACE/grafana

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

  • GDC_URL: GDC 内の組織の URL。
  • PROJECT_NAMESPACE: プロジェクトの Namespace。

ダッシュボードの ConfigMap オブジェクトを作成する

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

  1. プロジェクトのエンドポイントに移動します。
  2. ナビゲーション メニューで [追加] ボタンをクリックします。
  3. 表示されたプルダウン メニューで、[ダッシュボード] をクリックします。インスタンスによって空のダッシュボードが作成されます。
  4. 空のダッシュボードに、必要なパネルをすべて追加します。詳細をカスタマイズしたり、パネルを編集してクエリを指定したり、その他の更新を行ったりできます。

  5. メニューバーの [ダッシュボードの設定] ボタンをクリックして、[設定] ページを開きます。

  6. ナビゲーション メニューで [JSON モデル] オプションをクリックします。

  7. ダッシュボードの JSON モデルをコピーし、書式なしテキスト ファイルに貼り付けて、いつでも使用できるようにします。

  8. 最上位の id フィールドと uid フィールドを、JSON モデルの null 値に置き換えます。

  9. コマンドラインから ConfigMap オブジェクトを作成します。ConfigMap オブジェクトの data セクションに、以前に .json ファイル内にコピーした JSON モデルを貼り付けます。

    cat <<EOF | kubectl --kubeconfig ${KUBECONFIG} apply -f -
    apiVersion: v1
    kind: ConfigMap
    metadata:
      namespace: PROJECT_NAMESPACE
      name: DASHBOARD_CONFIGMAP_NAME
    data:
      JSON_FILE_NAME.json: |
        {
        <JSON model of the dashboard>
        }
    EOF
    

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

    • PROJECT_NAMESPACE: プロジェクトの Namespace。
    • DASHBOARD_CONFIGMAP_NAME: ConfigMap オブジェクトに付ける名前。
    • JSON_FILE_NAME: ダッシュボードの JSON モデルを貼り付けるファイルに付ける名前。

    このオブジェクトの例については、ダッシュボードの ConfigMap の例をご覧ください。

  10. ダッシュボードの ConfigMap オブジェクトを管理クラスタにデプロイします。

ダッシュボードの 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": "-- Grafana --",
            "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 カスタム リソース(CR)を作成し、指定されたプロジェクトでダッシュボードを有効にします。

  1. コマンドラインから Dashboard CR を作成し、ダッシュボードの ConfigMap オブジェクトに付けた名前でファイルを構成します。

    cat <<EOF | kubectl --kubeconfig ${KUBECONFIG} apply -f -
    apiVersion: observability.gdc.goog/v1alpha1
    kind: Dashboard
    metadata:
      namespace: PROJECT_NAMESPACE
      name: CUSTOM_RESOURCE_NAME
    spec:
      configMapRef:
        name: DASHBOARD_CONFIGMAP_NAME
        namespace: PROJECT_NAMESPACE
        key: JSON_FILE_NAME.json
      foldername: Default
    EOF
    

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

    • PROJECT_NAMESPACE: プロジェクトの Namespace。
    • CUSTOM_RESOURCE_NAME: Dashboard カスタム リソースに付ける名前。
    • DASHBOARD_CONFIGMAP_NAME: ダッシュボードの ConfigMap オブジェクトに付けた名前。
    • JSON_FILE_NAME: ConfigMap オブジェクト内のダッシュボードの JSON モデルを含むファイルに付けた名前。
  2. Dashboard CR をプロジェクト Namespace にデプロイします。この操作により、事前定義されたダッシュボードをプロジェクトのモニタリング インスタンスにインポートするように Observability サービスが構成されます。

ダッシュボードは、指標やログと同様に、他のプロジェクトから分離されています。したがって、複数のプロジェクトで同じダッシュボードを使用する場合は、各プロジェクトに Dashboard CR をデプロイします。また、ダッシュボードがアクセスするロギング データとモニタリング データは、これらのすべてのプロジェクトで使用可能である必要があります。

ダッシュボードを処理するプロセスは、Dashboard CR と ConfigMap オブジェクトの両方の変更を検出します。どちらかを変更すると、プログラムはモニタリング インスタンスに変更を反映します。ダッシュボードを更新または削除するには、CR で変更を適用して、再度デプロイする必要があります。モニタリング UI で直接行った更新は保存できません。

フォルダにダッシュボードを作成する、またはフォルダを変更するには、Dashboard CR の spec セクションで foldername の値を変更します。それ以外の場合は、Default のままにします。フォルダが存在しない場合は、プロセスによって自動的に作成されます。