本页面介绍如何使用 Cloud Monitoring API 创建信息中心。对于每个示例,信息中心定义 和相应的信息中心你可以提供 JSON 传输到 Google Cloud CLI 和 Cloud Monitoring API 端点。
Cloud Monitoring 还在 GitHub 上提供了一组精选的信息中心定义。您可以在 Google Cloud 项目中将这些定义安装为自定义信息中心。如需了解此代码库以及如何安装这些信息中心,请参阅安装示例信息中心。
何时使用 API 或 Google Cloud CLI
Cloud Monitoring API 和 Google Cloud CLI 为您提供了一种方法, 同时管理多个信息中心 虽然您也可以使用 Google Cloud 控制台管理信息中心,但您会发现使用脚本批量管理自定义信息中心更为轻松。
如果您想将空白占位符窗口微件添加到信息中心,也需要使用 API。
通过 API 使用 MQL 或 PromQL
您可以使用 dashboards.create
创建信息中心
方法。您需要向 API 方法传递一个 Dashboard
对象,其中包含信息中心显示的每个微件的条目。
当某个微件显示时间序列数据时,例如图表微件,
它在 Dashboard
对象中的条目
包含 TimeSeriesQuery
对象。
此对象描述时间序列数据,
并且您可以使用
“监控”过滤条件
MQL 查询或 PromQL 查询:
如需使用 Monitoring 过滤器,请填充
timeSeriesField
字段。本页面上的示例使用了 Cloud Monitoring 过滤条件。如需使用 MQL 查询,请填充
timeSeriesQueryLanguage
字段。有关详情,请参阅构建图表。如需使用 PromQL 查询,请填充
prometheusQuery
字段。 如需了解一般信息,请参阅 Cloud Monitoring 中的 PromQL。
信息中心布局
本部分包含有关不同信息中心布局的信息 可用
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"
}
}
}
]
}
}
此信息中心类似于以下示例:
MosaicLayout
布局的信息中心
此信息中心会显示包含两个微件的 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
布局的信息中心
此信息中心会显示 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"
}
}
]
}
]
}
}
此信息中心类似于以下示例:
启用信息中心事件,以及添加过滤条件和标签
本部分介绍如何向信息中心添加过滤条件和标签, 以及如何配置信息中心以显示事件
在信息中心内启用事件
您可以将信息中心配置为显示事件、
例如 Google Kubernetes Engine 更新事件或虚拟机故障事件,
方法是在 Dashboard
中添加 annotations
字段
对象。annotations
字段包含
DashboardAnnotations
对象,该对象包含两个字段:
defaultResourceName
字段会列出 用于搜索事件的 Google Cloud 项目。如果您未指定此字段 则系统会搜索您所选的项目。EventAnnotation
对象数组。每个对象都包含以下内容:displayName
字段,用于定义特定于事件的切换开关上的标签。未指定此字段或当值 为空字符串, 系统会显示事件的默认名称。enabled
字段,用于控制事件切换开关的值。 当true
时,切换开关位于on
位置,且会显示事件 。当false
时,开关处于off
位置。eventType
字段,其中包含EventType
中的值 枚举。filter
字段,用于指定要附加到事件专用查询的查询。如果此字段的值为空字符串,则系统会使用特定于事件的查询。resourceNames
字段,可让您定义 用于搜索事件的 Google Cloud 项目。当此字段 是一个空数组,则表示搜索您所选的项目。
以下示例展示了一个 annotations
字段,用于指定
Google Kubernetes Engine 事件:
{
"displayName": "Annotation example",
"annotations": {
"defaultResourceNames": [],
"eventAnnotations": [
{
"displayName": "",
"enabled": true,
"eventType": "GKE_CLUSTER_UPDATE",
"filter": "resource.labels.cluster_name=my-cluster",
"resourceNames": []
}
]
},
"dashboardFilters": [],
"mosaicLayout": {
...
},
"labels": {}
}
在前面的示例中,filter
字段用于限制查询
发送到集群 my-name
。displayName
字段设置为
空字符串,因此事件类型的默认名称显示在
事件的切换开关。最后,由于 resourceNames
设为
空数组,即当前 Google Cloud 项目中的日志条目
查询。
添加信息中心过滤条件
您可以向信息中心添加永久性过滤条件,以控制 显示微件 如需查看包含永久过滤条件的信息中心示例,请参阅信息中心过滤条件。
添加信息中心标签
此示例展示了一个 Dashboard
对象,
指定名为 playbook
的标签。
{
"displayName": "Example",
"mosaicLayout": {
"columns": 12,
"tiles": [
...
]
},
"dashboardFilters": [],
"labels": {
"playbook": ""
}
}
如前面的示例所示,labels
字段实现为 map
,其中 key
和 value
字段均为字符串。添加
将标签设置为信息中心,将 key
设置为标签的名称,然后将
value
字段为空字符串。
向信息中心添加标签是可选操作。
包含 Widgets
的信息中心
本部分包含包含不同类型信息中心的示例 各种小组件
包含 XyChart
的信息中心
此信息中心会显示一个包含基本 XyChart
的信息中心。如果
您曾使用 Google Cloud 控制台在信息中心上创建过图表
是 XyChart
widget 的实例。
与 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
}
]
}
}
信息中心内的图表与以下示例类似:
下一部分将介绍如何创建 Log Analytics 图表微件、如何在图表中显示阈值,以及如何配置图表是使用左侧 Y 轴还是右侧 Y 轴,或者同时使用这两者。
包含 Log Analytics 图表的信息中心
此信息中心显示了一个包含 Log Analytics 图表的信息中心。示例 JSON 包含一个 SQL 查询。
{
"displayName": "Example",
"dashboardFilters": [],
"mosaicLayout": {
"columns": 48,
"tiles": [
{
"width": 24,
"height": 16,
"widget": {
"title": "Sample 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_NAME_OF_LOG_VIEW`"
}
}
}
],
"thresholds": [],
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
}
}
]
},
"labels": {}
}
信息中心上的图表类似于以下示例:
包含 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 指定使用左侧 Y 轴,因为它包含 y2Axis
结构。在 targetAxis
字段中,将“Y1”用于右 Y 轴,将“Y2”用于左 Y 轴。如果省略 targetAxis
字段,则使用右 Y 轴。
此信息中心上的图表类似于以下示例:
您可以构建显示多种指标类型并使用
左轴和右轴上面的示例展示了包含以下内容的图表:
单个指标类型,即 dataSets
数组中有一个元素。
为两种指标类型绘制图表时,dataSets
数组包含两个元素:
并且每个元素都指定自己的 targetAxis
。
包含 STACKED_AREA PlotType
类型 XyChart
的信息中心
此信息中心会显示 STACKED_AREA
PlotType
类型的 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
}
]
}
}
信息中心内的图表与以下示例类似:
包含 STACKED_BAR PlotType
类型 XyChart 的信息中心
此信息中心会显示 STACKED_BAR
PlotType
类型的 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
}
]
}
}
此信息中心类似于以下示例:
包含基本 Scorecard
的信息中心
此信息中心会显示 Scorecard
,但不带仪表盘或迷你图。此示例显示了 Compute Engine CPU 利用率,统计信息摘要图表有两个阈值。一个阈值用黄色来表示 CPU 利用率超过 70%,另一个阈值用红色来表示 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
}
]
}
}
此信息中心类似于以下示例:
包含带有 GaugeView
的 Scorecard
的信息中心
此信息中心为上一个示例中的基本统计信息摘要添加了一个仪表盘。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
}
]
}
}
此信息中心上的图表类似于以下示例:
包含带有 SparkChartView
的 Scorecard
的信息中心
此信息中心将上一个示例中的仪表盘替换为迷你图。SparkChartView
对象可以在统计信息摘要上创建折线图或条形图。此示例使用了折线。只要值没有违反阈值,就会显示为绿色。要添加迷你图,请将上一个图表中的 gaugeView
JSON 对象替换为以下内容:
"sparkChartView": {
"sparkChartType": "SPARK_LINE"
},
统计信息摘要与以下示例类似:
包含 PieChart
微件的信息中心
信息中心可以使用饼图来显示数据。每个时序 将一片披萨放到这个派上饼图不显示随时间变化的数据;改为 因此仅显示最新值
所有饼图均由 PieChart
widget 指定。
要将图表配置为显示最近测量值的总和,请执行以下操作:
将 chartType
字段设置为 DONUT
。否则,请将此字段设置为
的值为 PIE
。
"pieChart": {
"chartType": "DONUT",
},
以下示例配置了一个包含两个饼图的信息中心,其中 配置为圆环的饼图:
{
"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
},
]
}
}
如以下屏幕截图所示,这两个 widget 均以饼图的形式显示数据, 其中一个 widget 显示最近值的总和:
包含 TimeSeriesTable
微件的信息中心
信息中心能够以表格格式显示数据 行。表格未显示以下日期范围的数据: 时间;而是会显示最新值或汇总值。
所有表均由 TimeSeriesTable
微件指定:
如需配置要显示的时序,请使用
dataSets
字段。每个 对象对应于单个指标类型。dataSets
如果您查询多种指标类型,Google Cloud 控制台 尝试显示同一个查询中每个查询的最新值 表格行。如需了解详情,请参阅 表如何合并来自多个指标类型的数据。TimeSeriesQuery
字段用于指定指标类型。- 如果您希望表格显示汇总值,其中数据
根据信息中心设置的时间范围值进行汇总,请将
将
timeSeriesQuery.outputFullDuration
字段更改为true
。
如需配置要显示的行数上限,请设置
pickTimeSeriesFilter
字段。例如,如需仅显示过去 10 分钟内平均值最大的两个时间序列,请添加以下代码:"pickTimeSeriesFilter": { "direction": "TOP", "numTimeSeries": 2, "rankingMethod": "METHOD_MEAN" },
如果您省略
pickTimeSeriesFilter
字段,则表格最多可显示 300 行。要配置表格显示数据的方式, 使用
metricVisualization
字段:- 要仅显示“25%”之类的值,请忽略此字段或将
值设为
"NUMBER"
。使用此配置时, Google Cloud 控制台会将该 widget 显示为 Table widget。 - 要显示该值以及该值相对于
在可能的值范围内,请将此字段的值设置为
"BAR"
。 使用此配置时, Google Cloud 控制台会将该 widget 显示为顶级列表 widget。
- 要仅显示“25%”之类的值,请忽略此字段或将
值设为
要配置要显示的列以及该列的属性, 请使用
columnSettings
数组。如果未指定此字段,则 表格会针对每个标签显示一个列。"column"
字段的值必须设置为标签键或value
,后者是指时间序列的最新值。您可以为列设置显示名称,还可以配置表格单元格中数据的对齐方式:- 如需自定义列标题,请设置
displayName
字段。 - 根据颜色
值与阈值的比较,添加一个
thresholds
对象。 - 如需更改文本对齐方式,请添加
alignment
字段。
以下示例展示了两列:
"columnSettings": [ { "column": "device_name", "displayName": "Device", "visible": true }, { "alignment": "CENTER", "column": "value", "displayName": "Disk Write Bytes", "thresholds": [ { "color": "YELLOW", "direction": "ABOVE", "value": 4000 }, { "color": "RED", "direction": "ABOVE", "value": 5000 } ], "visible": true } ],
- 如需自定义列标题,请设置
以下 JSON 描述了一个包含两个表的信息中心。第一个表 显示两种指标类型:从实例读取的字节数和 写入实例的字节数。汇总值与 参考栏第二个表显示的是一种指标类型的最新值 并且值列已配置为根据 值与阈值的比较结果:
{
"displayName": "Example",
"mosaicLayout": {
"columns": 48,
"tiles": [
{
"width": 44,
"height": 17,
"widget": {
"title": "VM Instance - Disk read bytes [RATE], Disk write bytes [RATE]",
"timeSeriesTable": {
"dataSets": [
{
"timeSeriesQuery": {
"timeSeriesFilter": {
"filter": "metric.type=\"compute.googleapis.com/instance/disk/read_bytes_count\" resource.type=\"gce_instance\"",
"aggregation": {
"alignmentPeriod": "60s",
"perSeriesAligner": "ALIGN_RATE",
"groupByFields": []
},
"pickTimeSeriesFilter": {
"rankingMethod": "METHOD_MEAN",
"numTimeSeries": 30,
"direction": "TOP"
}
},
"unitOverride": "",
"outputFullDuration": true
},
"tableTemplate": "",
"minAlignmentPeriod": "60s"
},
{
"timeSeriesQuery": {
"timeSeriesFilter": {
"filter": "metric.type=\"compute.googleapis.com/instance/disk/write_bytes_count\" resource.type=\"gce_instance\"",
"aggregation": {
"alignmentPeriod": "60s",
"perSeriesAligner": "ALIGN_RATE",
"groupByFields": []
},
"pickTimeSeriesFilter": {
"rankingMethod": "METHOD_MEAN",
"numTimeSeries": 30,
"direction": "TOP"
}
},
"unitOverride": "",
"outputFullDuration": true
},
"tableTemplate": "",
"minAlignmentPeriod": "60s"
}
],
"metricVisualization": "BAR",
"columnSettings": [
{
"column": "Name (from instance_id)",
"visible": true
},
{
"column": "zone",
"visible": true
},
{
"column": "device_name",
"visible": true
},
{
"column": "storage_type",
"visible": true
},
{
"column": "device_type",
"visible": true
},
{
"column": "value",
"visible": true,
"displayName": "Read bytes"
},
{
"column": "value-1",
"visible": true,
"displayName": "Written bytes"
}
],
"opsAnalyticsSettings": {
"maxRows": "0",
"showFilterBar": false,
"pageSize": "0"
},
"displayColumnType": false
},
"id": ""
}
},
{
"yPos": 17,
"width": 44,
"height": 16,
"widget": {
"title": "VM Instance - Disk write bytes [RATE]",
"timeSeriesTable": {
"columnSettings": [
{
"column": "device_name",
"displayName": "Device",
"visible": true
},
{
"alignment": "LEFT",
"column": "instance_name",
"displayName": "Instance name",
"visible": true
},
{
"column": "storage_type",
"displayName": "Storage type",
"visible": true
},
{
"column": "device_type",
"displayName": "Device Type",
"visible": true
},
{
"alignment": "CENTER",
"column": "value",
"displayName": "Disk Write Bytes",
"thresholds": [
{
"color": "YELLOW",
"direction": "ABOVE",
"label": "",
"value": 4000
},
{
"color": "RED",
"direction": "ABOVE",
"label": "",
"value": 5000
}
],
"visible": true
},
{
"alignment": "LEFT",
"column": "Name (from instance_id)",
"displayName": "ID",
"visible": true
}
],
"dataSets": [
{
"minAlignmentPeriod": "60s",
"timeSeriesQuery": {
"timeSeriesFilter": {
"aggregation": {
"alignmentPeriod": "60s",
"perSeriesAligner": "ALIGN_RATE"
},
"filter": "metric.type=\"compute.googleapis.com/instance/disk/write_bytes_count\" resource.type=\"gce_instance\""
}
}
}
],
"displayColumnType": false,
"metricVisualization": "NUMBER",
"opsAnalyticsSettings": {
"maxRows": "0",
"pageSize": "0",
"showFilterBar": false
}
}
}
}
]
},
"dashboardFilters": [],
"labels": {}
}
以下屏幕截图展示了之前定义的表格:
包含 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
}
]
}
}
文本 widget 类似于以下示例:
包含 AlertChart
微件的信息中心
此信息中心示例展示了一个包含 AlertChart
微件的信息中心:
{
"category": "CUSTOM",
"displayName": "Alerting policy chart example",
"mosaicLayout": {
"columns": 12,
"tiles": [
{
"height": 4,
"widget": {
"alertChart": {
"name": "projects/my-project/alertPolicies/14205854094151528373"
}
},
"width": 6,
}
]
}
}
与其他信息中心微件不同,您不需要为这些微件指定标题或指标过滤条件。但是,您可以为提醒政策指定资源名称。name
字段中的最后一个条目是提醒政策标识符。
信息中心内的图表与以下示例类似:
在此示例中,提醒政策会监控两个不同的虚拟机的 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,
}
]
}
}
我们建议您将错误报告面板的高度配置为 至少 16 个单位,宽度至少为 24 个单位。在上一个 例如,微件的高度为 16 个单位,宽度为 24 个单位。
错误报告面板会显示所选 这个面板可以将错误组的范围限制为特定资源, 服务的类型、服务或版本。以下示例展示了 一个错误报告面板:
包含 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 个单位。
日志面板显示所列 Google Cloud 项目的日志
(在 resourceNames
字段中)。上例仅指定了一个项目;但是,您可以在此列表中添加多个项目。
日志面板类似于以下示例:
如需了解问题排查信息,请参阅使用日志面板创建信息中心的 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
}
]
}
}
在前面的示例中,可收起的组 widget 包含一个图表
显示虚拟机实例的 CPU 利用率。可收起组 widget 会跨越表格的整行。当一个 widget 被添加到某个组中时,
组的 (x,y) 位置和高度规范包括 (x,y)
调整该微件的位置在前面的示例中,该组位于
为 (0,0) 且高度为 4。xyChart
位于 (0,0) 位置,因此包含在组中。但是,如果将该图表的位置更改为 (0,5),则系统会将该图表从组中排除。最后,当 widget 的 (x,y) 位置导致 widget 包含在组中时,可收起的组 widget 的高度可能会扩展。
要在信息中心中添加群组微件,信息中心必须具有一个
MosaicLayout
。
可收起的组 widget 类似于以下示例:
包含 SingleViewGroup
微件的信息中心
SingleViewGroup
widget 会显示
。您可以指定属于成员的图表和其他微件
。此外,您还可以控制要显示群组中的哪个微件
方法是使用 SingleViewGroup
widget 上的菜单。
此信息中心显示了一个包含 SingleViewGroup
widget 的信息中心:
{
"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
数组包含一个
SingleViewGroup
对象;但该对象不会指定
资源。而是确定 SingleViewGroup
对象中的成员资格
按 width
和 yPos
字段的值进行比较。其值的对象
width
和 yPos
字段与
SingleViewGroup
对象的
SingleViewGroup
对象。在前面的示例中,SingleViewGroup
对象
包含两个图表。
包含 SectionHeader
微件的信息中心
SectionHeader
widget 可在以下位置创建水平分隔线:
并且会在信息中心的表格中
内容。您可以自定义目录中的条目,并添加
添加额外的信息您还可以配置该 widget,以便在目录的部分标题条目后面添加分隔符。
此信息中心显示的是包含单个图表和
SectionHeader
widget:
{
"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
字段的值
在 widget 和目录中。
subtitle
字段仅由 widget 显示。当 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 微件与以下示例类似:
包含空白微件的信息中心
此示例展示了一个包含空占位符 widget 的信息中心。
displayName
字段的值会显示在微件中。
{
"displayName": "Demo Dashboard",
"gridLayout": {
"widgets": [
{
"blank": {}
}
]
}
}
此信息中心类似于以下示例: