このページでは、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)
対応するロールを取得したら、ダッシュボードを作成する前に次の手順を行います。
- ワークロードから指標を収集します。
kubeconfig ファイルのパスを環境変数として設定します。
export KUBECONFIG=KUBECONFIG_PATHKUBECONFIG_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 ダッシュボードを作成し、設定をカスタマイズします。
- Grafana エンドポイントを開いて、ユーザー インターフェースを表示します。
- ナビゲーション メニューで [Add] をクリックします。
- プルダウン メニューで [ダッシュボード] をクリックします。Grafana によって空のダッシュボードが作成されます。
空のダッシュボードに、必要なパネルをすべて追加します。
各パネルの [データソース] メニューで、パネルに必要なデータソース(指標(
prometheus)、監査ログ(auditloki)、オペレーション ログ(oploki)など)を選択します。マルチゾーン ユニバースの場合、Grafana にはゾーンラベル付きのデータソースがあり、これを使用して複数のゾーンの指標とログを含むダッシュボードの可視化を作成できます。これらのデータソースの名前は
DATA_SOURCE-ZONE_IDの形式で、次のようになります。DATA_SOURCEには、次のいずれかの 値を指定できます。- 指標を表示する Prometheus (
prometheusまたはmetrics)。 - 監査ログを表示する 監査ログ (
auditloki)。 - オペレーション ログを表示する オペレーション ログ (
oploki)。
- 指標を表示する Prometheus (
ZONE_IDは、ダッシュボードにデータを表示するゾーンの ID です。
また、クロスゾーン リソースの可視化ダッシュボードを作成する場合、データソース名は
--Mixed--です。このデータソースを使用すると、ゾーンごとに複数のクエリを追加し、1 つのダッシュボードでクロスゾーンのデータを可視化できます。この機能を使用すると、たとえば、ユニバースの複数のゾーンにわたる単一の指標またはログクエリの動作を比較できます。詳細をカスタマイズし、パネルを編集してクエリを指定するか、他の更新を行います。
メニューバーで [Dashboard settings] をクリックして、[Settings] ページを開きます。
ナビゲーション メニューで [JSON モデル] を選択します。
ダッシュボードの JSON モデルをコピーして、後で使用するためにプレーン テキスト ファイルに貼り付けます。
ConfigMap オブジェクトを作成する
次の手順に沿って、ダッシュボードの JSON モデルを含む ConfigMap オブジェクトを作成します。
- ターミナル ウィンドウを開きます。
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をご覧ください。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 インスタンスにインポートします。
- ターミナル ウィンドウを開きます。
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 モデルを含むファイルに付けた名前。
Management API サーバーに
Dashboardカスタム リソースを適用します。kubectl --kubeconfig ${KUBECONFIG} apply -f DASHBOARD_NAME.yaml
システムは、Dashboard カスタム リソースと関連する ConfigMap
オブジェクトの両方の変更をモニタリングします。ダッシュボードを更新または削除するには、これらのリソースを変更します。変更を行うと、Grafana
が更新されます。Grafana ユーザー インターフェースで直接行った更新は保存できません。