向自定义信息中心添加永久过滤条件

本文档介绍了如何添加信息中心级别的永久过滤条件 添加到自定义信息中心永久过滤器 - 让您可以修改数据 而不需要修改每个微件, 它们可以应用于整个信息中心,也可以仅应用于特定的 微件。信息中心工具栏会显示每个永久性过滤器 一个菜单,供您临时更改过滤条件的值。

当您需要定义信息中心上的默认呈现方式时 以及通过菜单驱动的选项来修改显示效果、添加永久性滤镜。对于 例如,如果您想查看所有可用区的指标 然后根据 zone 标签创建一个永久过滤条件。

您可以使用 Google Cloud 控制台或 Cloud Monitoring API。本文档将介绍如何使用 Google Cloud 控制台。如需了解如何使用 Cloud Monitoring API,请参阅 通过 API 创建和管理信息中心:信息中心过滤条件

要了解如何添加和修改临时分组和过滤器, 请参阅向自定义信息中心添加临时过滤器

信息中心过滤条件的运作方式

信息中心过滤条件会指定标签和值。生成 信息中心显示的内容决定可用于过滤的标签。 微件如何支持信息中心范围的过滤条件取决于数据类型 该微件将显示,且该微件的配置如下:

  • 对于显示时间序列数据的微件(例如折线图), 以下规则适用:

    • 如果 widget 显示的时序不支持 则信息中心范围的过滤条件不会更改显示的数据。

      例如,如果您对标签 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过滤器选择特定区域。

您可以将永久过滤条件限定为特定微件。 设想您希望并排查看指标的情形 两个不同可用区中的虚拟机您构建了两个图表集合, 为每个集合创建一个过滤器您的默认配置 实现您原来的目标。不过,在查看信息中心时 其中列出了变量和包含各种菜单的菜单 值。您可以使用这些菜单查看不同区域的数据。

仅适用于特定微件的永久过滤器有时称为 模板变量。创建此类过滤器后,如果您 向信息中心添加微件时,您也可以将该过滤条件应用到该微件。 如需更多信息 请参阅对微件应用永久过滤器

如需创建永久过滤条件,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 信息中心页面:

    前往信息中心

    如果您使用搜索栏查找此页面,请选择子标题为监控的结果。

  2. 在信息中心工具栏中,点击 设置。 然后选择管理过滤器
  3. 点击 标签,然后选择一个标签。例如: 则可以选择zone
  4. 点击 默认值,然后选择默认值 标签的值。若要匹配所有值,请选择“*”。

    创建好过滤条件后,系统会将其添加到信息中心工具栏中。接收者 暂时更改过滤器值,选择过滤器 。

  5. 执行下列其中一项操作:

    • 要将过滤器应用于信息中心上的所有微件,请选择应用到全部。 然后选择应用

    • 如需将过滤器应用于信息中心内的部分微件,请执行以下操作:

      1. 清除应用到全部
      2. 变量名称字段中,输入变量的显示名称 变量。
      3. 展开应用到图表菜单,选择需要 过滤条件,然后选择确定

      4. 点击应用

对微件应用永久过滤器

如需对微件应用永久过滤条件,您必须关联该微件 替换为以下变量:

  • 对于使用菜单配置的图表,您可以 请在创建或修改过滤器时执行此关联。

  • 对于日志面板,请修改该 widget 并配置默认查询。 请务必遵循 应用永久过滤条件的语法

  • 对于 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 解析模板变量 查询:

语法 Selected
Value
已解析的 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 定义的图表不同,您不能使用该值 时序过滤条件中模板变量的值。

下表显示了如何解析模板变量:

语法 Selected
Value
已解决的过滤条件表达式
${iid} 12345 resource.instance_id == "12345"
${iid} * 已忽略
${iid.value} 12345 不支持
${iid.value} * 不支持

修改永久过滤条件

临时更改信息中心上显示的任何过滤条件的值 点击过滤器名称,然后输入一个值 。

如需更改永久过滤器的配置,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 信息中心页面:

    前往信息中心

    如果您使用搜索栏查找此页面,请选择子标题为监控的结果。

  2. 在信息中心工具栏中,点击 设置。 然后选择管理过滤器
  3. 找到要修改的过滤器,然后使用菜单 修改。
  4. 点击应用

删除永久性过滤条件

  1. 在 Google Cloud 控制台中,转到 信息中心页面:

    前往信息中心

    如果您使用搜索栏查找此页面,请选择子标题为监控的结果。

  2. 在信息中心工具栏中,点击 设置。 然后选择管理过滤器
  3. 找到要移除的过滤条件,然后点击 删除
  4. 点击应用

后续步骤