Google Cloud Platform

Stackdriver Cloud Monitoring Dashboards API のご紹介

Google-Management-tools.jpg

※この投稿は米国時間 2020 年 2 月 19 日に、Google Cloud blog に投稿されたものの抄訳です。

Stackdriver Cloud Monitoring でダッシュボードを使用すると、重要な指標が時間の経過とともにどう変化しているかを簡単に追跡できます。ダッシュボードでは、アプリケーションの高レイテンシをデバッグするためのデータ可視化や、アプリケーションの主な指標の追跡などが可能です。Stackdriver Cloud Monitoring Dashboards API でのダッシュボードの手動作成は、多数の反復が必要な手間のかかる作業になる場合があります。ダッシュボードの作成後は、組織内の複数のワークスペースでそのダッシュボードを使用して時間を節約できます。

このたび、Google Cloud の Stackdriver Cloud Monitoring Dashboards API の一般提供が開始されたことをお知らせいたします。この Dashboard API を使用すると、既存のダッシュボード構成の読み込みや、新しいダッシュボードの作成、既存のダッシュボードの更新、使用していないダッシュボードの削除が可能になります。使用するメソッドは REST と gRPC のセマンティクスに従っていて、他の Google Cloud APIs との整合性があります。

Dashboards API の一般的なユースケースとして、Monitoring Workspace で開発されたダッシュボードを、別の 1 つまたは複数のワークスペースにデプロイする場合があります。たとえば、開発、品質保証、本番それぞれの環境用に別々のワークスペースを用意するようなケースです(詳しくは、ワークスペース構造の選択方法をご覧ください)。このうち 1 つの環境で標準的なオペレーション ダッシュボードを開発済みなら、それをすべてのワークスペースで使用できます。それにはまず、projects.dashboards.get メソッドでダッシュボード構成を読み込みます。このダッシュボード構成は保存できます。次に、projects.dashboards.create メソッドを使用して、他の環境にも同じダッシュボードを作成します。

Dashboard API の仕組み

ダッシュボードを作成する際は、レイアウトと、その中に配置するウィジェットを指定する必要があります。ダッシュボードで使用できるレイアウトは、GridLayout、RowLayout、ColumnLayout の 3 種類です。

GridLayout: 利用可能なスペースを等幅の縦の列に分割し、行優先戦略を使用してウィジェットのセットを配置します。

RowLayout: 利用可能なスペースを行に分割し、ウィジェットのセットを各行に水平に配置します。

ColumnLayout: 利用可能なスペースを縦の列に分割し、各列にウィジェットのセットを縦に並べます。

レイアウト内に配置できるウィジェットには、XyChart、Scorecard、Text オブジェクトなどがあります。

XyChart: X 軸と Y 軸を使用してデータを表示します。Google Cloud Console から作成されたグラフは、このウィジェットのインスタンスです。

Scorecard: 指標の最新の値と、この値が 1 つ以上のしきい値とどのように関連するかを示します。

Text: 生のテキスト文字列またはマークダウン文字列としてテキスト コンテンツを表示します。

以下に、GridLayout に 1 つの XyChart ウィジェットを配置するよう指定した JSON ダッシュボード構成の例を示します。その他の例については、ダッシュボードとレイアウトのサンプルのドキュメントでご確認いただけます。

  {
  "displayName": "Demo dashboard",
  "gridLayout": {
    "widgets": [
      {
        "title": "Sample line chart",
        "xyChart": {
          "dataSets": [
            {
              "timeSeriesQuery": {
                "timeSeriesFilter": {
                  "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\"",
                  "aggregation": {
                    "perSeriesAligner": "ALIGN_MEAN",
                    "crossSeriesReducer": "REDUCE_MAX",
                    "groupByFields": [
                      "resource.label.zone"
                    ]
                  }
                },
                "unitOverride": "1"
              },
              "plotType": "LINE"
            }
          ],
          "timeshiftDuration": "0s",
          "yAxis": {
            "label": "y1Axis",
            "scale": "LINEAR"
          },
          "chartOptions": {
            "mode": "COLOR"
          }
        }
      }
    ]
  }
}

テンプレートとしてのダッシュボード構成

ダッシュボード構成を簡単に構築する方法としては、まず Stackdriver Cloud Monitoring コンソールでダッシュボードを作成し、次に Dashboards API の projects.dashboards.get メソッドでその JSON 構成をエキスポートする方法があります。その構成を、ソース コントロールから、またはいつも同僚とファイルを共有する際に使用する方法で、テンプレートとして共有します。

Dashboard API は、API ドキュメントの [この API を試す] セクションでお試しいただけます。ダッシュボードの管理方法について詳しくはダッシュボードの管理に関するドキュメントをご覧ください。Google Cloud では、gcloud コマンドラインでの操作など、この API をもっと便利にお使いいただくための機能開発に取り組んでいます。また、github コントリビューターの間では、Monitoring Dashboard API 用の Terraform モジュールの計画が話し合われています。


この投稿に協力してくれた Google Cloud の技術リーダーである David Batelu と、Stackdriver Cloud Monitoring のプロダクト マネージャーである Joy Wang に感謝します。

- By Google Cloud ソフトウェア エンジニア Brian Corwin、ソリューション アーキテクト Charles Baer