本文档介绍了如何向自定义信息中心添加信息中心级永久性过滤条件。永久过滤条件可让您修改信息中心显示的数据,而无需修改每个微件。永久过滤条件具有默认状态,可应用于整个信息中心,也可以仅应用于特定微件。信息中心工具栏会显示每个永久性过滤器 一个菜单,供您临时更改过滤条件的值。
如果您想在信息中心中定义数据的默认呈现方式,以及用于修改该显示方式的菜单选项,请添加永久过滤条件。对于
例如,如果您想查看所有可用区的指标
然后根据 zone
标签创建一个永久过滤条件。
您可以使用 Google Cloud 控制台或 Cloud Monitoring API。本文档介绍了如何使用 Google Cloud 控制台。如需了解如何使用 Cloud Monitoring API,请参阅 通过 API 创建和管理信息中心:信息中心过滤条件。
要了解如何添加和修改临时分组和过滤器, 请参阅向自定义信息中心添加临时过滤器。
信息中心过滤条件的运作方式
信息中心过滤条件指定标签和值。信息中心显示的时序决定了可用于过滤的标签。微件支持全信息中心过滤条件的方式取决于微件显示的数据类型和微件的配置:
对于显示时间序列数据的微件(例如折线图), 以下规则适用:
如果微件显示的时间序列不支持过滤条件中的标签,则信息中心范围的过滤条件不会更改显示的数据。
例如,如果您对标签
instance_id
添加过滤条件,但标签为图表 不显示带有instance_id
标签的数据,则 过滤器不会更改显示的数据。如果 widget 为某个标签指定了值,则 信息中心级过滤条件不会更改显示的数据。
例如,如果您针对标签
instance_id
添加过滤条件,但信息中心中的图表包含基于instance_id
标签的过滤条件,则信息中心范围的过滤条件不会更改显示的数据。否则,图表会过滤其显示的数据,仅显示满足信息中心范围过滤条件的时序。
对于日志面板微件,基于资源标签的信息中心范围的过滤条件会更新查询。例如,如果您将 信息中心范围的过滤条件 cluster_name: mycluster,则查询 已更新为包含 resource.labels."cluster_name"="mycluster"。
您可以添加多个信息中心范围内的过滤条件。这些过滤器通过 逻辑与。
准备工作
如需获得使用 Google Cloud 控制台添加或修改永久性过滤条件所需的权限,请让管理员向您授予项目的 Monitoring Editor (roles/monitoring.editor
) IAM 角色。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
如需详细了解角色,请参阅使用 Identity and Access Management 控制访问权限。
创建永久过滤器
在设计信息中心时,您可以确定多种查看信息中心显示的数据的方式。例如,当信息中心显示
您可能想查看所有虚拟机的指标
您可能需要查看特定可用区中虚拟机的指标。您可以创建
设置为 zone
标签的永久过滤器
所有可用区,*
。查看信息中心时,您可以使用 zone
过滤条件中的菜单来选择特定可用区。
您可以将永久性过滤条件限制为仅适用于特定微件。设想这样一个场景:您希望并排查看两个不同可用区中虚拟机的指标。您可以构建两个图表集合,并为每个集合创建一个过滤条件。默认配置可满足您的原始目标。不过,在查看信息中心时 其中列出了变量和包含各种菜单的菜单 值。您可以使用这些菜单查看不同区域的数据。
仅适用于特定微件的永久过滤器有时称为 模板变量。创建此类过滤器后,如果您 向信息中心添加微件时,您也可以将该过滤条件应用于该微件。 如需更多信息 请参阅对微件应用永久过滤器。
如需创建永久过滤条件,请执行以下操作:
-
在 Google Cloud 控制台中,转到 信息中心页面:
如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
- 在信息中心工具栏中,点击 settings 设置。 然后选择管理过滤器。
- 点击 arrow_drop_down 标签,然后选择一个标签。例如,您可以选择
zone
。 点击 arrow_drop_down默认值,然后为标签选择默认值。若要匹配所有值,请选择“
*
”。创建过滤条件后,系统会将其添加到信息中心工具栏中。如需暂时更改过滤条件值,请选择过滤条件,然后从菜单中进行选择。
执行下列其中一项操作:
要将过滤器应用到信息中心上的所有微件, 依次选择应用到全部和应用。
要创建变量或将过滤器应用于上的某些微件,请执行以下操作: 信息中心:
- 取消选中应用到全部。
- 在变量名称字段中,输入变量的显示名称。
展开应用于图表菜单,选择要应用过滤条件的微件,然后选择确定。
点击应用。
向微件应用永久过滤条件
如需对微件应用永久过滤条件,您必须关联该微件 替换为以下变量:
对于使用菜单配置的图表,您可以 请在创建或修改过滤器时执行此关联。
对于“日志”面板,请修改微件并配置默认查询。请务必遵循标题为应用永久过滤条件的语法的部分中的指南。
对于 MQL 或 PromQL 定义的图表和表格,请修改图表或表格,然后修改 MQL 或 PromQL。请务必遵循 应用永久过滤条件的语法。
应用永久过滤条件的语法
例如,下面显示了信息中心的部分 JSON 表示法 ,用于定义模板变量和信息中心范围的过滤条件:
{ "dashboardFilters": [ { "filterType": "RESOURCE_LABEL", "labelKey": "instance_id", "stringValue": "3133577226154888113", "templateVariable": "iid" }, { "filterType": "RESOURCE_LABEL", "labelKey": "zone" } ], "displayName": "Illustrate Template Variables", ...
在显示的 JSON 中,dashboardFilters
结构中的第一个条目是用于名称为 iid
的模板变量和标签键为 zone
的整个信息中心过滤条件。模板变量是
标签 instance_id
的别名。
模板变量的数据结构未列出适用的 widget。而是通过修改微件的查询以添加对变量的引用,将微件与模板变量相关联。当该 widget 显示在信息中心内时, 模板变量的值已解析。
如需了解如何为日志面板和图表添加注释,请参阅以下部分:
日志面板
如需将日志面板配置为根据模板变量的值过滤显示内容,请将该变量添加到“查询”窗格。以下示例展示了一个按模板变量 iid
的值进行过滤的查询:
${iid}
在日志面板查询要显示的日志之前,模板变量
已解决。在此示例中,如果模板变量的值为 "12345"
,则 ${iid}
会替换为语句 resource.labels."instance_id"="12345"
。
您还可以在查询中仅包含模板变量的值。 我们建议您仅在使用 正则表达式。例如,以下查询使用正则表达式 来匹配具有 JSON 载荷,其中包含描述的 字符串:
jsonPayload.message=~"Connected to instance: ${iid.value}"
如果您为日志面板配置了查询,请选择相应按钮 打开日志浏览器时,会先解析模板变量, Logs Explorer 打开。
下表展示了系统如何通过 日志面板:
语法 | Selected Value |
已解析的日志面板表达式 |
---|---|---|
${iid} |
12345 |
resource.labels."instance_id"="12345" |
${iid} |
* |
"" |
${iid.value} |
12345 |
12345 |
${iid.value} |
* |
.* |
MQL 定义的图表和表格
使用 Monitoring Query Language (MQL) 配置图表时,请将英文竖线和变量附加到查询字符串:
fetch gce_instance | metric 'compute.googleapis.com/instance/cpu/utilization' | every 1m | ${iid}
在图表查询要显示的时间序列之前,系统会解析模板变量。在此示例中,如果模板变量的值
为 "12345"
,则将 ${iid}
替换为语句
filter (resource.instance_id == '12345')
。此过滤条件与时间匹配
标签为 resource.instance_id
的序列,并且仅当其值
为 12345
。
如果您想使用正则表达式过滤时间序列,请将查询配置为仅包含模板变量的值。为了说明该语法,以下示例展示了如何使用正则表达式确定标签 resource.instance_id
的值是否包含模板变量 iid
的值:
fetch gce_instance | metric 'compute.googleapis.com/instance/cpu/utilization' | filter resource.instance_id=~"${iid.value}" | group_by 1m, [value_utilization_mean: mean(value.utilization)] | every 1m
下表显示了如何为 MQL 查询解析模板变量:
语法 | Selected Value |
解析的 MQL 表达式 |
---|---|---|
${iid} |
12345 |
filter (resource.instance_id == '12345') |
${iid} |
* |
filter (true) |
${iid.value} |
12345 |
12345 |
${iid.value} |
* |
.* |
使用 PromQL 定义的图表和表格
使用 PromQL 定义图表时,将 变量:
compute_googleapis_com:instance_cpu_utilization { project_id="my-project", ${iid} }
在图表查询要显示的时序之前,模板变量
已解决。在此示例中,如果模板变量的值
为 "12345"
,则将 ${iid}
替换为语句
instance_id == '12345'
。
与 MQL 类似,使用 PromQL 定义微件时,查询
只能提取模板变量的值。我们建议您仅将该值用作使用正则表达式定义的过滤条件的一部分。接收者
下面对语法进行了说明,下面介绍了如何使用正则表达式
确定标签 instance_id
的值是否包含
模板变量 iid
:
compute_googleapis_com:instance_cpu_utilization{ instance_id=~"${iid.value}" }
下表显示了如何针对 PromQL 解析模板变量 查询:
语法 | 已选 值 |
已解析的 PromQL 表达式 |
---|---|---|
${iid} |
12345 |
instance_id == '12345' |
${iid} |
* |
noop_filter=~".*" |
${iid.value} |
12345 |
12345 |
${iid.value} |
* |
.+ |
使用时间序列过滤条件定义的图表和表格
使用时间序列过滤条件定义图表时,请将变量附加到过滤条件字符串:
"filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\" ${iid}"
与 MQL 和 PromQL 定义的图表不同,您不能使用该值 时序过滤条件中模板变量的值。
下表显示了如何解析模板变量:
语法 | 已选 值 |
已解析的过滤条件表达式 |
---|---|---|
${iid} |
12345 |
resource.instance_id == "12345" |
${iid} |
* |
已忽略 |
${iid.value} |
12345 |
不支持 |
${iid.value} |
* |
不支持 |
修改永久过滤条件
如需暂时更改信息中心工具栏上显示的任何过滤条件的值,请点击过滤条件名称,然后输入值或从菜单中进行选择。
如果您的信息中心包含一个显示时间序列数据的表格,则 您可以添加临时过滤器或修改永久性过滤器和变量 使用单元格的 filter_list 按此值过滤信息中心按钮。 选中此按钮后,系统会应用新的临时过滤条件,或更新现有过滤条件或变量的值。现有过滤条件和变量 当表列的标签键与标签键匹配时更新 。
如需更改永久过滤器的配置,请执行以下操作:
-
在 Google Cloud 控制台中,转到 信息中心页面:
如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
- 在信息中心工具栏中,点击 settings 设置。 然后选择管理过滤器。
- 找到要修改的过滤器,然后使用菜单 修改。
- 点击应用。
删除永久性过滤条件
-
在 Google Cloud 控制台中,转到 信息中心页面:
如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
- 在信息中心工具栏中,点击 settings设置,然后选择管理过滤条件。
- 找到要移除的过滤条件,然后点击 删除。
- 点击应用。