信息中心和布局示例

本指南介绍您可以使用 Cloud Monitoring API 创建的其他信息中心配置。如需其他示例,请参阅可安装的信息中心

何时使用 API

信息中心 API 为您提供了一种同时管理多个信息中心的方法。 虽然您也可以使用 Google Cloud Console 管理信息中心,但您会发现使用 API 来批量管理自定义信息中心更为轻松。

如果您想将 TextScorecard 或空白占位符窗口微件添加到信息中心,也需要使用 API。

信息中心布局

GridLayout 布局的信息中心

此信息中心会显示 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"
          }
        }
      }
    ]
  }
}

此信息中心类似于以下示例:

网格布局信息中心示例

RowLayout 布局的信息中心

此信息中心会显示 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 布局的信息中心

此信息中心会显示 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 Console 在信息中心创建图表,则这些图表会成为 XyChart 微件的实例。

与 Cloud Console 中提供的功能类似,API 提供了更改图表的 PlotType 或配置图表的视图模式 的选项。

{
  "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"
          }
        }
      }
    ]
  }
}

此信息中心类似于以下示例:

XyChart 示例

包含 STACKED_AREA PlotType 类型 XyChart 的信息中心

此信息中心会显示 STACKED_AREA PlotType 类型的 XyChart

{
  "displayName": "Demo dashboard",
  "gridLayout": {
    "widgets": [
      {
        "title": "Sample stacked-area 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": "STACKED_AREA"
            }
          ],
          "timeshiftDuration": "0s",
          "yAxis": {
            "label": "y1Axis",
            "scale": "LINEAR"
          },
          "chartOptions": {
            "mode": "COLOR"
          }
        }
      }
    ]
  }
}

此信息中心类似于以下示例:

具有堆积面积图的 XyChart 示例

包含 STACKED_BAR PlotType 类型 XyChart 的信息中心

此信息中心会显示 STACKED_BAR PlotType 类型的 XyChart

{
  "displayName": "Demo Dashboard",
  "gridLayout": {
    "widgets": [
      {
        "title": "My First 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": "STACKED_BAR"
            }
          ],
          "timeshiftDuration": "0s",
          "yAxis": {
            "label": "y1Axis",
            "scale": "LINEAR"
          },
          "chartOptions": {
            "mode": "COLOR"
          }
        }
      },
    ]
  }
}

此信息中心类似于以下示例:

具有堆叠条形图的 XyChart 示例

包含基本 Scorecard 的信息中心

此信息中心会显示 Scorecard,但不带仪表盘或迷你图。它显示了 Compute Engine CPU 利用率,并且有两个阈值,一个用黄色来表示 CPU 使用率超过 70%,另一个用红色来表示 CPU 使用率超过 90%。

由于当前的 CPU 利用率低于指定的阈值,因此被视为通过。

{
  "displayName": "Unadorned scorecard",
  "gridLayout": {
    "widgets": [
      {
        "title": "Compute Engine CPU utilization",
        "scorecard": {
          "timeSeriesQuery": {
            "timeSeriesFilter": {
              "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\"",
              "aggregation": {
                "perSeriesAligner": "ALIGN_MEAN",
                "crossSeriesReducer": "REDUCE_MAX",
              }
            },
            "unitOverride": "1"
          },
          "thresholds": [
            {
              "color": "RED",
              "direction": "ABOVE",
              "label": "Danger",
              "value": 0.9,
            },
            {
              "color": "YELLOW",
              "direction": "ABOVE",
              "label": "Warning",
              "value": 0.7,
            }
          ]
        }
      },
    ]
  }
}

此信息中心类似于以下示例:

包含统计信息摘要微件的信息中心示例

包含带有 GaugeViewScorecard 的信息中心

此信息中心为上一个示例中的基本统计信息摘要添加了一个仪表盘。GaugeView 对象可以指定上限和下限,以指定要在仪表盘上显示的值的范围。由于统计信息摘要显示 0 到 1 的值,因此这两个值是合理的上下限。要添加仪表盘,请将以下内容添加到基本统计信息摘要的 JSON 中:

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

下面显示了完整的修改后的信息中心规范:当前值低于阈值,该值在仪表盘上以适当颜色显示。

{
  "displayName": "Gauge scorecard",
  "gridLayout": {
    "widgets": [
      {
        "title": "Compute Engine CPU utilization",
        "scorecard": {
          "timeSeriesQuery": {
            "timeSeriesFilter": {
              "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\"",
              "aggregation": {
                "perSeriesAligner": "ALIGN_MEAN",
                "crossSeriesReducer": "REDUCE_MAX",
              }
            },
            "unitOverride": "1"
          },
          "gaugeView": {
            "lowerBound": 0,
            "upperBound": 1,
          },
          "thresholds": [
            {
              "color": "RED",
              "direction": "ABOVE",
              "label": "Danger",
              "value": 0.9,
            },
            {
              "color": "YELLOW",
              "direction": "ABOVE",
              "label": "Warning",
              "value": 0.7,
            }
          ]
        }
      },
    ]
  }
}

此信息中心类似于以下示例:

包含带有 GaugeView 的统计信息摘要微件的信息中心示例

包含带有 SparkChartViewScorecard 的信息中心

此信息中心将上一个示例中的仪表盘替换为迷你图。SparkChartView 对象可以在统计信息摘要上创建折线图或条形图。此示例使用了折线。只要值没有违反阈值,就会显示为绿色。要添加迷你图,请将上一个图表中的 gaugeView JSON 对象替换为以下内容:

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

此信息中心类似于以下示例:

包含带有 SparkChartView 的统计信息摘要微件的信息中心示例

包含 Text 微件的信息中心

此示例显示了一个包含 Text 微件的简单信息中心。

{
  "displayName": "Demo Dashboard"
  "gridLayout" {
    "widgets": [
      {
        "text" {
          "content": "Hello World"
        }
      }
    ]
  }
}

此信息中心类似于以下示例:

包含文本微件的信息中心示例

包含空白微件的信息中心

此示例展示了一个简单的信息中心,其中包含一个空的占位符微件。请注意,只有信息中心的 displayName 会显示在微件中。

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

此信息中心类似于以下示例:

包含空白微件的信息中心示例