ダッシュボードとレイアウトのサンプル

このページでは、Cloud Monitoring API を使用してダッシュボードを作成する方法について説明します。各例に、JSON 形式のダッシュボード定義と対応するダッシュボードが示されています。

Cloud Monitoring には、GitHub の厳選された一連のダッシュボード定義も用意されています。これらの定義をカスタム ダッシュボードとして Google Cloud プロジェクトにインストールできます。このリポジトリと、これらのダッシュボードのインストール方法については、サンプル ダッシュボードのインストールをご覧ください。

API を使用するケース

Cloud Monitoring API を使用すると、一度に多くのダッシュボードを管理できます。Google Cloud コンソールでダッシュボードを管理することもできますが、API を使用してカスタム ダッシュボードを一括で管理するほうが簡単になります。

空白のプレースホルダ ウィジェットをダッシュボードに追加する場合、API を使用する必要があります。

API での MQL または PromQL の使用

dashboards.create メソッドを使用して、ダッシュボードを作成します。ダッシュボードに表示されるウィジェットごとに 1 つのエントリが含まれる Dashboard オブジェクトに、API メソッドを渡します。

ウィジェットにグラフ ウィジェットなどの時系列データを表示する場合、Dashboard オブジェクトのエントリには TimeSeriesQuery オブジェクトが含まれます。このオブジェクトは、グラフ化する時系列データを記述します。データは、Monitoring フィルタMQL クエリ、または PromQL クエリを使用して指定します。

  • Monitoring フィルタを使用するには、timeSeriesField フィールドに値を入力します。このページの例では、Cloud Monitoring フィルタを使用します。

  • MQL クエリを使用するには、timeSeriesQueryLanguage フィールドに値を入力します。詳細については、グラフの作成をご覧ください。

  • PromQL クエリを使用するには、prometheusQuery フィールドに値を入力します。一般的な情報については、Cloud Monitoring の PromQL をご覧ください。

ダッシュボードのレイアウト

このセクションでは、使用可能なさまざまなダッシュボード レイアウトについて説明します。

GridLayout のダッシュボード

このダッシュボードには、3 つのウィジェットを含む GridLayout が表示されます。

{
  "displayName": "Grid Layout Example",
  "gridLayout": {
    "columns": "2",
    "widgets": [
      {
        "title": "Widget 1",
        "xyChart": {
          "dataSets": {
            "timeSeriesQuery": {
              "timeSeriesFilter": {
                "filter": "metric.type=\"agent.googleapis.com/nginx/connections/accepted_count\"",
                "aggregation": {
                  "perSeriesAligner": "ALIGN_RATE"
                }
              },
              "unitOverride": "1"
            },
            "plotType": "LINE"
          },
          "timeshiftDuration": "0s",
          "yAxis": {
            "label": "y1Axis",
            "scale": "LINEAR"
          }
        }
      },
      {
        "text": {
          "content": "Widget 2"
        }
      },
      {
        "title": "Widget 3",
        "xyChart": {
          "dataSets": {
            "timeSeriesQuery": {
              "timeSeriesFilter": {
                "filter": "metric.type=\"agent.googleapis.com/nginx/connections/accepted_count\"",
                "aggregation": {
                  "perSeriesAligner": "ALIGN_RATE"
                }
              },
              "unitOverride": "1"
            },
            "plotType": "STACKED_BAR"
          },
          "timeshiftDuration": "0s",
          "yAxis": {
            "label": "y1Axis",
            "scale": "LINEAR"
          }
        }
      }
    ]
  }
}

ダッシュボードの表示は、次の例のようになります。

グリッド レイアウトのダッシュボードの例

MosaicLayout のダッシュボード

このダッシュボードには、2 つのウィジェットを含む MosaicLayout が表示されます。

{
  "displayName": "Mosaic Layout Example",
  "mosaicLayout": {
    "columns": 12,
    "tiles": [
      {
        "xPos": 2,
        "yPos": 2,
        "width": 7,
        "height": 2,
        "widget": {
          "title": "CPU utilization in us-central1-a",
          "scorecard": {
            "timeSeriesQuery": {
              "timeSeriesFilter": {
                "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\" resource.label.zone=\"us-central1-a\"",
                "aggregation": {
                  "perSeriesAligner": "ALIGN_MEAN",
                  "crossSeriesReducer": "REDUCE_MAX"
                }
              },
              "unitOverride": "1"
            },
            "gaugeView": {
              "upperBound": 1.5
            },
            "thresholds": [
              {
                "value": 0.8,
                "color": "YELLOW",
                "direction": "ABOVE"
              },
              {
                "value": 1,
                "color": "RED",
                "direction": "ABOVE"
              }
            ]
          }
        }
      },
      {
        "xPos": 1,
        "yPos": 5,
        "width": 4,
        "height": 4,
        "widget": {
          "title": "My 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",
                "minAlignmentPeriod": "60s"
              }
            ],
            "yAxis": {
              "label": "y1Axis",
              "scale": "LINEAR"
            }
          }
        }
      }
    ]
  }
}

ダッシュボードの表示は、次の例のようになります。

モザイク レイアウトのダッシュボードの例

RowLayout のダッシュボード

このダッシュボードには、3 つのウィジェットを含む RowLayout が表示されます。

{
  "displayName": "Row Layout Example",
  "rowLayout": {
    "rows": [
      {
        "weight": "1",
        "widgets": [
          {
            "text": {
              "content": "Widget 1",
              "format": "MARKDOWN"
            }
          },
          {
            "text": {
              "content": "Widget 2",
              "format": "MARKDOWN"
            }
          },
          {
            "text": {
              "content": "Widget 3",
              "format": "MARKDOWN"
            }
          }
        ]
      }
    ]
  }
}

ダッシュボードの表示は、次の例のようになります。

行レイアウトのダッシュボードの例

ColumnLayout のダッシュボード

このダッシュボードには、3 つのウィジェットを含む ColumnLayout が表示されます。

{
  "displayName": "Column Layout Example",
  "columnLayout": {
    "columns": [
      {
        "weight": "1",
        "widgets": [
          {
            "text": {
              "content": "Widget 1",
              "format": "MARKDOWN"
            }
          },
          {
            "text": {
              "content": "Widget 2",
              "format": "MARKDOWN"
            }
          },
          {
            "text": {
              "content": "Widget 3",
              "format": "MARKDOWN"
            }
          }
        ]
      }
    ]
  }
}

ダッシュボードの表示は、次の例のようになります。

列レイアウトのダッシュボードの例

Widgets を含むダッシュボード

XyChart を含むダッシュボード

このダッシュボードには、基本的な XyChart を含むダッシュボードが表示されます。Google Cloud コンソールを使用してダッシュボードのグラフを作成した場合、そのグラフは XyChart ウィジェットのインスタンスになります。

Google Cloud コンソールで提供される機能と同様、API によっても、グラフの PlotType の変更やグラフの表示モードの構成を行うオプションが提供されます。

{
  "dashboardFilters": [],
  "displayName": "Example line chart",
  "labels": {},
  "mosaicLayout": {
    "columns": 48,
    "tiles": [
      {
        "height": 16,
        "widget": {
          "title": "VM Instance - CPU utilization [MEAN]",
          "xyChart": {
            "chartOptions": {
              "mode": "COLOR"
            },
            "dataSets": [
              {
                "minAlignmentPeriod": "60s",
                "plotType": "LINE",
                "targetAxis": "Y1",
                "timeSeriesQuery": {
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "crossSeriesReducer": "REDUCE_MEAN",
                      "groupByFields": [
                        "resource.label.\"zone\""
                      ],
                      "perSeriesAligner": "ALIGN_MEAN"
                    },
                    "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\""
                  }
                }
              }
            ],
            "thresholds": [],
            "yAxis": {
              "label": "",
              "scale": "LINEAR"
            }
          }
        },
        "width": 24
      }
    ]
  }
}

ダッシュボードのグラフは、次の例のようになります。

XyChart の例。

次のセクションでは、ログ分析グラフ ウィジェットを作成する方法、グラフにしきい値を表示する方法、グラフで左 Y 軸、右 Y 軸、またはその両方を使用するかどうかを構成する方法について説明します。

ログ分析グラフを含むダッシュボード

このダッシュボードには、ログ分析グラフを含むダッシュボードが表示されます。サンプル JSON には SQL クエリが含まれています。

{
  "displayName": "Example Log Analytics",
  "dashboardFilters": [],
  "mosaicLayout": {
    "columns": 48,
    "tiles": [
      {
        "width": 24,
        "height": 16,
        "widget": {
          "title": "Sample Log Analytics chart",
          "xyChart": {
            "chartOptions": {
              "mode": "COLOR"
            },
            "dataSets": [
              {
                "breakdowns": [],
                "dimensions": [
                  {
                    "column": "location",
                    "columnType": "STRING",
                    "maxBinCount": 5,
                    "sortColumn": "location",
                    "sortOrder": "SORT_ORDER_ASCENDING"
                  }
                ],
                "measures": [
                  {
                    "aggregationFunction": {
                      "parameters": [],
                      "type": "count"
                    },
                    "column": ""
                  }
                ],
                "plotType": "STACKED_BAR",
                "targetAxis": "Y1",
                "timeSeriesQuery": {
                  "opsAnalyticsQuery": {
                    "queryHandle": "",
                    "sql": "SELECT\n  CAST(JSON_VALUE(resource.labels.location) AS STRING) AS location,\n  severity,\nFROM\n  `TABLE`"
                  }
                }
              }
            ],
            "thresholds": [],
            "yAxis": {
              "label": "",
              "scale": "LINEAR"
            }
          }
        }
      }
    ]
  },
  "labels": {}
}

ダッシュボードのグラフは、次の例のようになります。

ログ分析 SQL クエリを使用した XyChart の例。

XyChart としきい値を含むダッシュボード

このダッシュボードには、基本的な XyChart、しきい値、左側の Y 軸が構成されたダッシュボードが表示されます。

{
  "dashboardFilters": [],
  "displayName": "Example line with threshold",
  "labels": {},
  "mosaicLayout": {
    "columns": 48,
    "tiles": [
      {
        "height": 16,
        "widget": {
          "title": "VM Instance - CPU utilization [MEAN]",
          "xyChart": {
            "chartOptions": {
              "mode": "COLOR"
            },
            "dataSets": [
              {
                "minAlignmentPeriod": "60s",
                "plotType": "LINE",
                "targetAxis": "Y1",
                "timeSeriesQuery": {
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "crossSeriesReducer": "REDUCE_MEAN",
                      "groupByFields": [
                        "resource.label.\"zone\""
                      ],
                      "perSeriesAligner": "ALIGN_MEAN"
                    },
                    "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\""
                  }
                }
              }
            ],
            "thresholds": [
              {
                "label": "",
                "targetAxis": "Y1",
                "value": 0.2
              }
            ],
            "yAxis": {
              "label": "",
              "scale": "LINEAR"
            }
          }
        },
        "width": 24
      }
    ]
  }
}

上の例では、JSON に y2Axis 構造が含まれているため、左側の Y 軸の使用が指定されています。targetAxis フィールドで、右の Y 軸に「Y1」、左側の Y 軸に「Y2」を使用します。targetAxis フィールドを省略すると、右の Y 軸が使用されます。

このダッシュボードのグラフは、次の例のようになります。

左側の Y 軸を使用し、しきい値がある XyChart の例。

複数の指標タイプを表示し、左右の軸を使用するグラフを作成できます。上の例は、単一の指標タイプ、つまり dataSets 配列に 1 つの要素が含まれるグラフを示しています。2 つの指標タイプをグラフ化する場合、dataSets 配列には 2 つの要素が含まれ、各要素は targetAxis を指定します。

STACKED_AREA PlotTypeXyChart を含むダッシュボード

このダッシュボードには、STACKED_AREAPlotType を含む XyChart が表示されます。

{
  "dashboardFilters": [],
  "displayName": "Example stacked area",
  "labels": {},
  "mosaicLayout": {
    "columns": 48,
    "tiles": [
      {
        "height": 16,
        "widget": {
          "title": "VM Instance - CPU utilization [MEAN]",
          "xyChart": {
            "chartOptions": {
              "mode": "COLOR"
            },
            "dataSets": [
              {
                "minAlignmentPeriod": "60s",
                "plotType": "STACKED_AREA",
                "targetAxis": "Y1",
                "timeSeriesQuery": {
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "crossSeriesReducer": "REDUCE_MEAN",
                      "groupByFields": [
                        "resource.label.\"zone\""
                      ],
                      "perSeriesAligner": "ALIGN_MEAN"
                    },
                    "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\""
                  }
                }
              }
            ],
            "thresholds": [],
            "yAxis": {
              "label": "",
              "scale": "LINEAR"
            }
          }
        },
        "width": 24
      }
    ]
  }
}

ダッシュボードのグラフは、次の例のようになります。

積み上げ面グラフの XyChart の例。

STACKED_BAR PlotType の XyChart を含むダッシュボード

このダッシュボードには、STACKED_BARPlotType を含む XyChart が表示されます。

{
  "dashboardFilters": [],
  "displayName": "Example stacked bar",
  "labels": {},
  "mosaicLayout": {
    "columns": 48,
    "tiles": [
      {
        "height": 16,
        "widget": {
          "title": "VM Instance - CPU utilization [MEAN]",
          "xyChart": {
            "chartOptions": {
              "mode": "COLOR"
            },
            "dataSets": [
              {
                "minAlignmentPeriod": "60s",
                "plotType": "STACKED_BAR",
                "targetAxis": "Y1",
                "timeSeriesQuery": {
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "crossSeriesReducer": "REDUCE_MEAN",
                      "groupByFields": [
                        "resource.label.\"zone\""
                      ],
                      "perSeriesAligner": "ALIGN_MEAN"
                    },
                    "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\""
                  }
                }
              }
            ],
            "thresholds": [],
            "yAxis": {
              "label": "",
              "scale": "LINEAR"
            }
          }
        },
        "width": 24
      }
    ]
  }
}

ダッシュボードの表示は、次の例のようになります。

積み上げ棒グラフの XyChart の例。

基本的な Scorecard を含むダッシュボード

このダッシュボードには、ゲージやスパークラインのない Scorecard が表示されます。この例は、Compute Engine の CPU 使用率を示し、スコアカードには 2 つのしきい値があります。1 つの閾値は黄色を使用し、CPU 使用率が 70% 超であることを示し、もう 1 つの閾値は赤色を使用し、CPU 使用率が 90% 超であることを示します。

現在の CPU 使用率は、指定したしきい値未満となるため、緑色になります。

{
  "dashboardFilters": [],
  "displayName": "Example-basic scorecard",
  "labels": {},
  "mosaicLayout": {
    "columns": 48,
    "tiles": [
      {
        "height": 8,
        "widget": {
          "scorecard": {
            "thresholds": [
              {
                "color": "YELLOW",
                "direction": "ABOVE",
                "label": "",
                "value": 0.7
              },
              {
                "color": "RED",
                "direction": "ABOVE",
                "label": "",
                "value": 0.9
              }
            ],
            "timeSeriesQuery": {
              "outputFullDuration": true,
              "timeSeriesFilter": {
                "aggregation": {
                  "alignmentPeriod": "60s",
                  "crossSeriesReducer": "REDUCE_MEAN",
                  "groupByFields": [],
                  "perSeriesAligner": "ALIGN_MEAN"
                },
                "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\""
              }
            }
          },
          "title": "VM Instance - CPU utilization [MEAN]"
        },
        "width": 16
      }
    ]
  }
}

ダッシュボードの表示は、次の例のようになります。

Scorecard ウィジェットを使用したダッシュボードの例。

GaugeViewScorecard を含むダッシュボード

このダッシュボードでは、前の例の基本スコアカードにメーターが追加されます。GaugeView オブジェクトでは、上限と下限を指定することで、メーターに表示する値の範囲を指定できます。スコアカードには 0 から 1 までの値が表示されるため、そうした上限と下限は妥当です。メーターを追加するには、基本的なスコアカードの JSON に次の行を追加します。

  "gaugeView": {
    "lowerBound": 0,
    "upperBound": 1,
  },

変更後の完全なダッシュボード仕様は次のとおりです。現在の値はしきい値の下にあり、ゲージに適切に色付けされています。

{
  "dashboardFilters": [],
  "displayName": "Example-Gauge",
  "labels": {},
  "mosaicLayout": {
    "columns": 48,
    "tiles": [
      {
        "height": 8,
        "widget": {
          "scorecard": {
            "gaugeView": {
              "lowerBound": 0,
              "upperBound": 1
            },
            "thresholds": [
              {
                "color": "YELLOW",
                "direction": "ABOVE",
                "label": "",
                "value": 0.7
              },
              {
                "color": "RED",
                "direction": "ABOVE",
                "label": "",
                "value": 0.9
              }
            ],
            "timeSeriesQuery": {
              "outputFullDuration": true,
              "timeSeriesFilter": {
                "aggregation": {
                  "alignmentPeriod": "60s",
                  "crossSeriesReducer": "REDUCE_MEAN",
                  "groupByFields": [],
                  "perSeriesAligner": "ALIGN_MEAN"
                },
                "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\""
              }
            }
          },
          "title": "VM Instance - CPU utilization [MEAN]"
        },
        "width": 16
      }
    ]
  }
}

このダッシュボードのグラフは、次の例のようになります。

GaugeView を使用した Scorecard ウィジェットを含むダッシュボードの例。

SparkChartViewScorecard を含むダッシュボード

このダッシュボードは、前の例のゲージをスパークラインに置き換えます。SparkChartView オブジェクトでは、スコアカードに折れ線グラフまたは棒グラフを作成できます。この例では折れ線を使用しています。値がしきい値に違反しない限り、緑色になります。スパークラインを追加するには、上のグラフの gaugeView JSON オブジェクトを次のように置き換えます。

  "sparkChartView": {
    "sparkChartType": "SPARK_LINE"
  },

ダッシュボードの表示は、次の例のようになります。

GaugeView を使用した Scorecard ウィジェットを含むダッシュボードの例。

PieChart ウィジェットを含むダッシュボード

ダッシュボードでは、円グラフを使用してデータを表示できます。各時系列は 1 つのスライスを円グラフに加算します。円グラフには時間の経過に伴うデータは表示されません。代わりに、最新の値のみが表示されます。

円グラフは、すべて PieChart ウィジェットで指定されます。最新の測定値の合計を表示するようにグラフを構成するには、chartType フィールドを DONUT に設定します。それ以外の場合は、このフィールドに PIE の値を設定します。

"pieChart": {
  "chartType": "DONUT",
},

次の例では、2 つの円グラフと 1 つの円グラフをドーナツとして構成したダッシュボードを構成しています。

{
  "dashboardFilters": [],
  "displayName": "Example Pie Donut",
  "labels": {},
  "mosaicLayout": {
    "columns": 48,
    "tiles": [
      {
        "height": 16,
        "widget": {
          "pieChart": {
            "chartType": "DONUT",
            "dataSets": [
              {
                "minAlignmentPeriod": "60s",
                "timeSeriesQuery": {
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "perSeriesAligner": "ALIGN_RATE"
                    },
                    "filter": "metric.type=\"compute.googleapis.com/instance/disk/read_bytes_count\" resource.type=\"gce_instance\"",
                    "secondaryAggregation": {
                      "alignmentPeriod": "60s",
                      "perSeriesAligner": "ALIGN_MEAN"
                    }
                  }
                }
              }
            ]
          },
          "title": "VM Instance - Disk read bytes [MEAN]"
        },
        "width": 24
      },
      {
        "height": 16,
        "widget": {
          "pieChart": {
            "chartType": "PIE",
            "dataSets": [
              {
                "minAlignmentPeriod": "60s",
                "timeSeriesQuery": {
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "perSeriesAligner": "ALIGN_RATE"
                    },
                    "filter": "metric.type=\"compute.googleapis.com/instance/disk/read_bytes_count\" resource.type=\"gce_instance\"",
                    "secondaryAggregation": {
                      "alignmentPeriod": "60s",
                      "perSeriesAligner": "ALIGN_MEAN"
                    }
                  }
                }
              }
            ]
          },
          "title": "VM Instance - Disk read bytes [MEAN]"
        },
        "width": 24,
        "xPos": 24
      },
    ]
  }
}

次のスクリーンショットに示すように、両方のウィジェットにはデータが円グラフとして表示され、1 つのウィジェットに最新の値の合計が表示されます。

**PieChart** ウィジェットの例。

TimeSeriesTable ウィジェットを含むダッシュボード

ダッシュボードでは、表形式でデータを表示できます。ここでは、モニタリング対象の時系列ごとに 1 行が表示されます。テーブルでは時系列でデータが表示されるのではなく、最新の値のみが表示されます。

すべてのテーブルは、TimeSeriesTable ウィジェットで指定されます。

  • 表示する最大行数を構成するには、pickTimeSeriesFilter フィールドを設定します。たとえば、過去 10 分間の平均値が最大の 2 つの時系列のみを表示するには、次を含めます。

    "pickTimeSeriesFilter": {
        "direction": "TOP",
        "numTimeSeries": 2,
        "rankingMethod": "METHOD_MEAN"
    },
    

    pickTimeSeriesFilter フィールドを省略すると、テーブルには最大 300 行が表示されます。

  • テーブルに対するデータの表示方法を構成するには、metricVisualization フィールドを使用します。

    • 「25%」などの値のみを表示するには、このフィールドを省略するか、値を "NUMBER" に設定します。この構成を使用すると、Google Cloud Console にウィジェットが [テーブル] ウィジェットとして表示されます。
    • 値と、可能な値の範囲と比較した値の視覚的なインジケーターを表示するには、このフィールドの値を "BAR" に設定します。この構成を使用すると、Google Cloud コンソールにウィジェットが [トップ リスト] ウィジェットとして表示されます。
  • 表示する列を構成するには、columnSettings フィールドを使用します。次の例では、Latest Value と言う名前の列(必須列)と、Name (from instance_id) という名前の列の 2 つの列があるテーブルになります。

    "columnSettings": [
      {
        "column": "Name (from instance_id)",
        "visible": true
      }
    ],
    

    columnSettings フィールドを省略すると、テーブルにはラベルごとに 1 つの列が表示されます。

次の例は、テーブル ウィジェットと トップリスト ウィジェットを含むダッシュボードを示しています。

{
  "dashboardFilters": [],
  "displayName": "Example",
  "labels": {},
  "mosaicLayout": {
    "columns": 48,
    "tiles": [
      {
        "height": 16,
        "widget": {
          "timeSeriesTable": {
            "columnSettings": [
              {
                "column": "value",
                "visible": false
              }
            ],
            "dataSets": [
              {
                "minAlignmentPeriod": "60s",
                "timeSeriesQuery": {
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "perSeriesAligner": "ALIGN_MEAN"
                    },
                    "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\""
                  }
                }
              }
            ],
            "metricVisualization": "NUMBER"
          },
          "title": "Table"
        },
        "width": 24,
        "yPos": 16
      },
      {
        "height": 16,
        "widget": {
          "timeSeriesTable": {
            "columnSettings": [
              {
                "column": "value",
                "visible": false
              }
            ],
            "dataSets": [
              {
                "minAlignmentPeriod": "60s",
                "timeSeriesQuery": {
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "perSeriesAligner": "ALIGN_MEAN"
                    },
                    "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\""
                  }
                }
              }
            ],
            "metricVisualization": "BAR"
          },
          "title": "Top List"
        },
        "width": 24
      }
    ]
  }
}

次のスクリーンショットに示すように、両方のウィジェットにはデータが表形式で表示され、どちらにもフィルタバーが含まれています。ただし、2 つのウィジェットは、異なる列を表示し、数値を別々に表すように事前構成されています。

テーブル ウィジェットを含むダッシュボードの例。

テーブルの列はラベルに対応しています。各行は時系列に対応します。

Text ウィジェットを含むダッシュボード

この例では、Text ウィジェットを含むダッシュボードが表示されます。

{
  "dashboardFilters": [],
  "displayName": "DB2+TE",
  "labels": {},
  "mosaicLayout": {
    "columns": 48,
    "tiles": [
    ...
      {
        "height": 16,
        "widget": {
          "text": {
            "content": "# Support information\n\n\nContact information: my-support-team@example.com\nOnline help: [Playbooks](https://example.com)\n\n",
            "format": "MARKDOWN",
            "style": {
              "backgroundColor": "",
              "fontSize": "FS_LARGE",
              "horizontalAlignment": "H_LEFT",
              "padding": "P_EXTRA_SMALL",
              "textColor": "",
              "verticalAlignment": "V_TOP"
            }
          }
        },
        "width": 24,
        "yPos": 14
      }
    ]
  }
}

テキスト ウィジェットは、次の例のようになります。

テキスト ウィジェットの例。

AlertChart ウィジェットを含むダッシュボード

このダッシュボードには、AlertChart ウィジェットを含むダッシュボードが表示されます。

{
  "category": "CUSTOM",
  "displayName": "Alert chart example",
  "mosaicLayout": {
    "columns": 12,
    "tiles": [
      {
        "height": 4,
        "widget": {
          "alertChart": {
            "name": "projects/my-project/alertPolicies/14205854094151528373"
          }
        },
        "width": 6,
      }
    ]
  }
}

他のダッシュボード ウィジェットとは異なり、これらのウィジェットではタイトルや指標フィルタを指定しません。代わりに、アラート ポリシーのリソース名を指定します。name フィールドの最後のエントリは、アラート ポリシーの識別子です。

ダッシュボードのグラフは、次の例のようになります。

アラートのグラフの例。

この例では、アラート ポリシーにより、2 つの異なる仮想マシンの CPU 使用率がモニタリングされています。点線は、条件のしきい値(50% に設定されている)を示しています。No incidents というラベルが付いた緑色のチップは、アラート ポリシーに対応待ちのインシデントがないことを示しています。インシデント チップの上にポインタを置くと、基盤となるアラート ポリシーにリンクするダイアログが開きます。

ErrorReportingPanel ウィジェットを含むダッシュボード

このダッシュボードには、ErrorReportingPanel ウィジェットを含むダッシュボードが表示されます。

{
  "dashboardFilters": [],
  "displayName": "Error reporting widget",
  "labels": {},
  "mosaicLayout": {
    "columns": 48,
    "tiles": [
      {
        "height": 16,
        "widget": {
          "errorReportingPanel": {
            "projectNames": [
              "projects/my-project"
            ],
            "services": [],
            "versions": []
          },
          "title": "Error Reporting Panel"
        },
        "width": 24,
      }
    ]
  }
}

Error-Reporting パネルの高さは 16 ユニット以上、幅は 24 ユニット以上に構成することをおすすめします。上記の例では、ウィジェットの高さは 16 ユニット、幅は 24 ユニットです。

Error-Reporting パネルには、選択したプロジェクトのエラーグループが表示されます。このパネルでは、エラーグループを特定のリソースタイプ、サービス、サービスのバージョンに制限できます。次の例は、Error-Reporting パネルを示しています。

Error-Reporting パネルの構成ペインの例。

IncidentList ウィジェットを含むダッシュボード

このダッシュボードには、IncidentList ウィジェットを含むダッシュボードが表示されます。

{
  "category": "CUSTOM",
  "dashboardFilters": [],
  "displayName": "Incident widget",
  "labels": {},
  "mosaicLayout": {
    "columns": 12,
    "tiles": [
      {
        "height": 5,
        "widget": {
          "incidentList": {
            "monitoredResources": [],
            "policyNames": []
          },
          "title": "Incidents"
        },
        "width": 8,
        "xPos": 0,
        "yPos": 0
      }
    ]
  }
}

上記の例では、title フィールドを Incidents に設定し、gce_instance タイプのリソースのすべてのインシデントを表示するようにウィジェットを構成しています。このウィジェットを構成するときに、複数のアラート ポリシーまたは複数のリソースタイプを選択できます。

ダッシュボードのインシデント ウィジェットは、次の例のようになります。

インシデント ウィジェットの例。

LogsPanel ウィジェットを含むダッシュボード

このダッシュボードには、LogsPanel ウィジェットを含むダッシュボードが表示されます。

{
  "category": "CUSTOM",
  "displayName": "Logs Panel",
  "mosaicLayout": {
    "columns": 12,
    "tiles": [
      {
        "height": 4,
        "widget": {
          "logsPanel": {
            "filter": "",
            "resourceNames": [
              "projects/012012012012"
            ]
          },
          "title": "Logs Panel"
        },
        "width": 6,
        "xPos": 0,
        "yPos": 0
      }
    ]
  }
}

ログパネルの高さは 3 ユニット以上、幅は 4 ユニット以上に構成することをおすすめします。上記の例では、ウィジェットの高さは 4 ユニット、幅は 6 ユニットです。

ログパネルには、resourceNames フィールドに記述された Google Cloud プロジェクトのログが表示されます。上記の例では、1 つのプロジェクトのみが指定されていますが、このリストには複数のプロジェクトを含めることができます。

ログパネルは次の例のようになります。

ログパネル ウィジェットを使用したダッシュボードの例。

トラブルシューティング情報については、[ログ] パネルでダッシュボードを作成するための API 呼び出しが失敗するをご覧ください。

CollapsibleGroup ウィジェットを含むダッシュボード

このダッシュボードには、CollapsibleGroup ウィジェットを含むダッシュボードが表示されます。

{
  "category": "CUSTOM",
  "displayName": "Group testing",
  "mosaicLayout": {
    "columns": 12,
    "tiles": [
      {
        "height": 4,
        "widget": {
          "collapsibleGroup": {
            "collapsed": false
          },
          "title": "My group"
        },
        "width": 12,
        "xPos": 0,
        "yPos": 0
      },
      {
        "height": 4,
        "widget": {
          "title": "VM Instance - CPU utilization [MEAN]",
          "xyChart": {
            "chartOptions": {
              "mode": "COLOR"
            },
            "dataSets": [
              {
                "minAlignmentPeriod": "60s",
                "plotType": "LINE",
                "targetAxis": "Y1",
                "timeSeriesQuery": {
                  "apiSource": "DEFAULT_CLOUD",
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "crossSeriesReducer": "REDUCE_NONE",
                      "perSeriesAligner": "ALIGN_MEAN"
                    },
                    "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\"",
                    "secondaryAggregation": {
                      "alignmentPeriod": "60s",
                      "crossSeriesReducer": "REDUCE_NONE",
                      "perSeriesAligner": "ALIGN_NONE"
                    }
                  }
                }
              }
            ],
            "thresholds": [],
            "timeshiftDuration": "0s",
            "yAxis": {
              "label": "y1Axis",
              "scale": "LINEAR"
            }
          }
        },
        "width": 6,
        "xPos": 0,
        "yPos": 0
      }
    ]
  }
}

上記の例では、折りたたみ可能なグループ ウィジェットには、VM インスタンスの CPU 使用率を表示する単一のグラフが含まれています。折りたたみ可能なグループ ウィジェットは、テーブルの行全体にまたがります。グループの(x、y)位置と高さの指定にウィジェットの(x、y)位置が含まれている場合、ウィジェットはグループに含まれます。上の例では、グループは(0,0)の位置にあり、高さは 4 です。xyChart は(0,0)の位置にあるため、グループに含まれます。ただし、グラフの位置が(0,5)に変更されると、グラフはグループから除外されます。最後に、ウィジェットの(x、y)位置によりウィジェットがグループに含まれる場合、折りたたみ可能なグループ ウィジェットの高さが拡張されることがあります。

ダッシュボードにグループ ウィジェットを含めるには、ダッシュボードに MosaicLayout が必要です。

閉じることが可能なグループ ウィジェットは、次の例のようになります。

閉じることが可能なグループ ウィジェットを含むダッシュボードの例。

SingleViewGroup ウィジェットを含むダッシュボード

SingleViewGroup ウィジェットには、一度につき 1 つのグループの 1 つのメンバーが表示されます。ユーザーはグループのメンバーであるグラフなどのウィジェットを指定します。また、SingleViewGroup ウィジェットのメニューを使用して、グループ内のどのウィジェットを表示するかを制御します。

次のダッシュボードでは、SingleViewGroup ウィジェットを含むダッシュボードを表示しています。

{
  "dashboardFilters": [],
  "displayName": "Example",
  "labels": {},
  "mosaicLayout": {
    "columns": 48,
    "tiles": [
      {
        "height": 16,
        "widget": {
          "singleViewGroup": {},
          "title": "Untitled group"
        },
        "width": 24,
        "yPos": 16
      },
      {
        "height": 16,
        "widget": {
          "title": "VM Instance - Disk read bytes [RATE]",
          "xyChart": {
            "chartOptions": {
              "mode": "COLOR"
            },
            "dataSets": [
              {
                "minAlignmentPeriod": "60s",
                "plotType": "LINE",
                "targetAxis": "Y1",
                "timeSeriesQuery": {
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "perSeriesAligner": "ALIGN_RATE"
                    },
                    "filter": "metric.type=\"compute.googleapis.com/instance/disk/read_bytes_count\" resource.type=\"gce_instance\""
                  }
                }
              }
            ],
            "thresholds": [],
            "yAxis": {
              "label": "",
              "scale": "LINEAR"
            }
          }
        },
        "width": 24,
        "yPos": 16
      },
      {
        "height": 16,
        "widget": {
          "title": "VM Instance - Disk write bytes [RATE]",
          "xyChart": {
            "chartOptions": {
              "mode": "COLOR"
            },
            "dataSets": [
              {
                "minAlignmentPeriod": "60s",
                "plotType": "LINE",
                "targetAxis": "Y1",
                "timeSeriesQuery": {
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "perSeriesAligner": "ALIGN_RATE"
                    },
                    "filter": "metric.type=\"compute.googleapis.com/instance/disk/write_bytes_count\" resource.type=\"gce_instance\""
                  }
                }
              }
            ],
            "thresholds": [],
            "yAxis": {
              "label": "",
              "scale": "LINEAR"
            }
          }
        },
        "width": 24,
        "yPos": 16
      }
    ]
  }
}

前の例で示すように、tiles 配列には 1 つの SingleViewGroup オブジェクトが含まれています。ただし、このオブジェクトがどのオブジェクトを含んでいるのかは特定されません。代わりに、SingleViewGroup オブジェクトのメンバーであるかどうかは、width および yPos フィールドの値によって決まります。widthyPos フィールドの値が SingleViewGroup オブジェクトの値と一致するオブジェクトは、SingleViewGroup オブジェクトに含まれます。前の例では、SingleViewGroup オブジェクトに 2 つのグラフが含まれています。

SectionHeader ウィジェットを含むダッシュボード

SectionHeader ウィジェットは、ダッシュボードに水平方向の分割線を作成し、ダッシュボードの目次のエントリを作成します。目次のエントリをカスタマイズし、ウィジェットに追加情報を含めることができます。また、ウィジェットを構成して、セクション ヘッダー エントリの後に目次に分割線を追加することもできます。

このダッシュボードには、単一のグラフと SectionHeader ウィジェットを含むダッシュボードが表示されます。

{
  "dashboardFilters": [],
  "displayName": "Example",
  "labels": {},
  "mosaicLayout": {
    "columns": 48,
    "tiles": [
      {
        "height": 16,
        "widget": {
          "title": "VM Instance - Disk write bytes [RATE]",
          "xyChart": {
            "chartOptions": {
              "mode": "COLOR"
            },
            "dataSets": [
              {
                "minAlignmentPeriod": "60s",
                "plotType": "LINE",
                "targetAxis": "Y1",
                "timeSeriesQuery": {
                  "timeSeriesFilter": {
                    "aggregation": {
                      "alignmentPeriod": "60s",
                      "perSeriesAligner": "ALIGN_RATE"
                    },
                    "filter": "metric.type=\"compute.googleapis.com/instance/disk/write_bytes_count\" resource.type=\"gce_instance\""
                  }
                }
              }
            ],
            "thresholds": [],
            "yAxis": {
              "label": "",
              "scale": "LINEAR"
            }
          }
        },
        "width": 24,
        "yPos": 4
      },
      {
        "height": 4,
        "widget": {
          "sectionHeader": {
            "dividerBelow": true,
            "subtitle": "Instance metrics"
          },
          "title": "Metrics"
        },
        "width": 48
      }
    ]
  }
}

SectionHeader オブジェクトでは、title フィールドの値がウィジェットと目次の両方に表示されます。subtitle フィールドの値は、ウィジェットによってのみ表示されます。dividerBelow の値が true の場合、分割線が目次に追加されます。

SLO ウィジェットを含むダッシュボード

このダッシュボードには、SLO ウィジェットを含むダッシュボードが表示されます。

{
  "dashboardFilters": [],
  "displayName": "Example",
  "labels": {},
  "mosaicLayout": {
    "columns": 48,
    "tiles": [
      {
        "height": 16,
        "widget": {
          "title": "SLO Error Budget: 99.5% - Distribution Cut - Calendar month",
          "xyChart": {
            "chartOptions": {
              "mode": "COLOR"
            },
            "dataSets": [
              {
                "breakdowns": [],
                "dimensions": [],
                "legendTemplate": "Remaining error requests before SLO is burned",
                "measures": [],
                "plotType": "LINE",
                "targetAxis": "Y1",
                "timeSeriesQuery": {
                  "timeSeriesFilter": {
                    "aggregation": {
                      "perSeriesAligner": "ALIGN_NEXT_OLDER"
                    },
                    "filter": "select_slo_budget(\"projects/Project_Number/services/SERVICE_ID/serviceLevelObjectives/SLO_ID\")",
                  },
                  "unitOverride": "1"
                }
              }
            ],
            "thresholds": []
          }
        },
        "width": 24
      }
    ]
  }
}

前の JSON に示すように、SLO グラフは XyChart オブジェクトとして表されます。これらのオブジェクトには、すべての集計フィールドとしきい値を指定します。filter フィールドの値は時系列セレクタです。これらのセレクタの詳細については、SLO データの取得をご覧ください。

SLO ウィジェットは、次の例のようになります。

SLO ウィジェットを含むダッシュボードの例。

空白のウィジェットを含むダッシュボード

次の例では、空白のプレースホルダ ウィジェットを含むダッシュボードが表示されます。 displayName フィールドの値は、ウィジェットに表示されます。

{
  "displayName": "Demo Dashboard",
  "gridLayout": {
    "widgets": [
      {
        "blank": {}
      }
    ]
  }
}

ダッシュボードの表示は、次の例のようになります。

空白のウィジェットを含むダッシュボードの例。

永続的なフィルタを含むダッシュボード

永続的なフィルタを含むダッシュボードの例については、ダッシュボード フィルタをご覧ください。