选择和配置指标

本文档介绍了您在配置提醒政策条件时设置的字段。通常情况下,如果您希望在时间序列数据(例如虚拟机的 CPU 使用率)满足某些条件时收到通知,则需要创建提醒政策。此内容不适用于基于日志的提醒政策。如需了解基于日志的提醒政策(该政策在特定消息显示在日志中时通知您),请参阅监控日志

选择要显示的数据

要指定创建提醒政策时要显示的指标,请指定指标和资源类型的值:

  • metric 字段标识要从受监控资源收集的测量结果。指标类型包括对要测量的内容以及如何解释测量结果的说明。Metric 是 指标类型的简写形式。如需了解概念性信息,请参阅指标类型

  • 资源类型字段指定要从哪个资源中获取指标数据。资源类型有时称为受监控资源类型资源。如需了解概念性信息,请参阅受监控资源

Monitoring 提供了许多预定义指标类型和受监控资源,您也可以创建自定义指标:

  • 如需了解预定义指标类型,请参阅指标列表。每个文档都按服务类型列出指标。例如,Google Cloud 指标页面包含一系列表格,每个表格对应一个 Google Cloud 服务。

  • 如需了解可用的受监控资源类型,请参阅受监控资源列表

  • 如需了解如何定义您自己的指标,请参阅使用自定义指标

Cloud Monitoring 正在刷新界面,以创建提醒政策。选择与您正在使用的界面相对应的标签页。

旧版接口

要选择指标,请使用 Find resource type and metric 字段选择一种资源类型和一种指标类型。您可以按任意顺序指定它们。首先,点击该字段。系统将根据以前的选择显示出一个或两个列表。列表包括标题、资源类型指标,如以下屏幕截图所示:

用于选择指标和资源的搜索列表

您可以通过两种方式选择条目:

  • 从列表中选择条目。

  • 输入监控过滤条件。Monitoring 过滤条件是 Monitoring 用于标识要监控的时间序列的表达式。以下 Monitoring 过滤器会在图表中显示 us-east1-b 地区中的所有 Google Cloud 虚拟机实例的日志条目:

    metric.type="logging.googleapis.com/log_entry_count"
    resource.type="gce_instance" resource.label."zone"="us-east1-b"
    

    要输入 Monitoring 过滤条件,请执行以下操作:

    1. 点击查找资源类型和指标 (Find resource type and metric) 旁边的帮助
    2. 点击帮助窗格中的 Direct filter mode

      启用直接过滤模式 (Direct filter mode) 后,查找资源类型和指标 (Find resource type and metric) 选项将被替换为标有资源类型、指标和过滤器 (Resource type, metric, and filter) 的可编辑文本框:

      显示直接过滤模式。

      如果您在选择直接过滤模式之前选择了资源类型、指标或过滤器,则这些设置将用于预先填充资源类型、指标和过滤器文本框。

    3. 资源类型、指标和过滤器文本框中输入监控过滤器。过滤条件必须包含指标类型和资源类型。 您还可以添加标签过滤条件。如需了解过滤器语法,请参阅 Monitoring 过滤器

      例如,要显示 us-east1-b 地区中所有 Google Cloud 虚拟机实例的日志条目,请输入以下内容:

      metric.type="logging.googleapis.com/log_entry_count"
      resource.type="gce_instance" resource.label."zone"="us-east1-b"
      

      如果您使用直接过滤模式来配置图表或提醒政策,但没有可用的数据,则图表会显示错误消息。具体的错误消息取决于输入的过滤条件。例如,典型的消息是 Chart definition invalid。您可能还会看到消息 No data is available for the selected time frame.

将鼠标悬停在任意一个列表中的某项内容上,系统即会显示一个提示,上面显示该项内容的描述符中的信息。如需了解指标类型或受监控的资源的描述符,请参阅指标列表受监控的资源列表

选择了至少一对资源类型和指标后,图表将显示所有可用的时间序列,其他条目将在 Metric 标签的指定指标下方显示。以下屏幕截图显示了指定指标后的 Metric 标签:

显示其他选择选项。

预览界面

如需配置提醒政策的条件,您可以使用 Cloud Monitoring API 或 Google Cloud Console。如果您选择使用 Cloud Console,请选择如何指定要监控的时间序列:

  • 基本模式

    如果您要配置用于监控特定资源指标并且不想使用 MQL 的条件,请使用基本模式。默认情况下,菜单仅会列出已接收数据的指标。您可以使用一个切换开关来列出所有 Google Cloud 指标。

    选择资源和指标后,下一步是指定过滤条件。

  • MQL 模式

    如果您想使用 MQL 描述条件或监控指标的比率,请使用 MQL 模式。

    如需了解如何使用 MQL,请参阅使用 Monitoring Query Language

    下一步是配置条件触发器。

  • 直接过滤模式

    如果您对以下任一项感兴趣,请使用直接过滤模式:

    • 监控服务等级目标 (SLO)。
    • 为尚无数据的自定义指标配置提醒。
    • 监控虚拟机上运行的进程数量。
    • 验证要包含在 API 命令中的过滤器语句的语法。

    使用直接过滤条件模式时,您可以选择监控过滤条件来选择时间序列。例如,图表中的以下 Monitoring 过滤条件显示了名称包含 nginx 的进程计数:

    select_process_count("monitoring.regex.full_match(\".*nginx.*\")")
    resource.type="gce_instance"
    

    下一个过滤条件用于为位于 us-central1-a 地区的 Compute Engine 虚拟机选择 Disk write bytes 时间序列:

    metric.type="compute.googleapis.com/instance/disk/write_bytes_count"
    resource.type="gce_instance"
    resource.label."zone"="us-central1-a"
    

    如需了解语法,请参阅以下文档:

    指定 Monitoring 过滤条件后,下一步是指定数据转换选项。

本页面的其余部分使用 Cloud Console 的菜单驱动界面使用的术语。但是,概念信息适用于所有可用于创建提醒政策的方法。

过滤所选数据

旧版接口

您可以通过指定过滤条件或应用聚合来减少监控的数据量。过滤条件可确保仅使用符合部分条件的时间序列。如果应用过滤条件,则评估的时间序列会较少,从而可以提高提醒的性能。

如果您提供多个过滤条件,则相应图表仅显示符合所有条件(即逻辑 AND)的时间序列。

在 Google Cloud Console 中,要添加过滤条件,请点击过滤条件字段。这将打开一个面板,其中包含可作为过滤条件的条件列表。例如,您可以按资源组、名称、资源标签、区域和指标标签过滤。

以下屏幕截图显示了特定指标的已知过滤条件标签:

预填充的过滤条件标签列表。

您可以从列表中选择,或在字段中手动输入文本来查找匹配项。另外,您可以为尚未出现的数据创建过滤条件;此类过滤条件不会出现在选项列表中,但您可以手动指定您认为将来会有效的过滤条件。

选择过滤条件标签后,您必须指定过滤的其余部分:值或值的范围,以及比较方式。

例如,以下屏幕截图显示了一个对 zone 资源标签应用的过滤器。过滤器字段支持一对相等性比较运算符(==~)和一对不等性比较运算符(!=!=~)。每对运算符中的第二项采用正则表达式作为值。默认值为简单的相等性运算符 =

过滤条件比较运算符列表。

比较运算符列表下方是可用值列表。以下屏幕截图显示了项目中地区的名称:

一些预先填充的过滤条件值的示例。

对于 Value 字段,您可以从下拉列表中选择一项内容,也可以输入与多项内容匹配的表达式:

  • 如果您使用直接比较运算符 =!=,则可以创建一个类似 starts_with 的过滤器字符串。例如,过滤器字符串 starts_with("us-central") 可与任何 us-central 地区匹配:

    使用过滤条件字符串的示例。

    如需详细了解过滤字符串,请参阅 Monitoring 过滤条件

  • 如果您选择 =~!=~,请输入 RE2 正则表达式作为值。例如,正则表达式 us-central1-.* 可与任何 us-central1 地区匹配:

    使用正则表达式进行过滤的示例。

    正则表达式 ^us.*.a$ 可与任何以“a”结尾的美国地区匹配:

    使用正则表达式针对可用区进行过滤的示例。

您可以指定多个过滤条件,并且可以多次使用相同的标签。这允许您指定一个可获得一系列值的过滤条件。要添加其他过滤条件,请点击过滤条件字段底部附近的 Add a filter。 目前,所有过滤条件都必须满足,它们构成逻辑 AND。例如,您可以同时使用 starts_withends_with 过滤器字符串以仅显示在美国的“a”地区:

使用多个过滤条件的示例。

如果使用 zone="starts_with("asia-east1")"zone=~"asia-east1.*" 过滤条件,则系统会只显示来自 asia-east1 地区之一的数据的时间序列:

显示已过滤的时间序列。

预览界面

您可以通过指定过滤条件或应用聚合来减少监控的数据量。过滤条件可确保仅使用符合部分条件的时间序列。如果应用过滤条件,则评估的时间序列会较少,从而可以提高提醒的性能。

如果您提供多个过滤条件,则相应图表仅显示符合所有条件(即逻辑 AND)的时间序列。

如需添加过滤条件,请点击添加过滤条件,完成对话框,然后点击完成。在对话框中,您可以使用过滤条件字段选择过滤条件。例如,您可以按资源组、名称、资源标签、区域和指标标签过滤。选择过滤条件后,选择比较运算符和值以完成过滤条件。下表中的每一行都列出了一个比较运算符及其含义和示例:

运算符含义示例
= 相等 resource.labels.zone = "us-central1-a
!= 不相等 resource.labels.zone != "us-central1-a"
=~ 正则表达式 2 等式 monitoring.regex.full_match("^us.*")
!=~ 正则表达式 2 不等式 monitoring.regex.full_match("^us.*")
starts_with 值开头为 resource.labels.zone = starts_with("us")
ends_with 值结尾为 resource.labels.zone = ends_with("b")
has_substring 值包含 resource.labels.zone = has_substring("east")
one_of 以下之一 resource.labels.zone = one_of("asia-east1-b", "europe-north1-a")
!starts_with 值开头不是 resource.labels.zone != starts_with("us")
!ends_with 值结尾不是 resource.labels.zone != ends_with("b")
!has_substring 值不包含 resource.labels.zone != has_substring("east")
!one_of 值不是以下项之一 resource.labels.zone != one_of("asia-east1-b", "europe-north1-a")

转换数据

选择时间序列后,下一步是指定如何处理每个时间序列(也称为对齐),以及如何组合对齐的时间序列。如果您使用旧版界面或 Cloud Monitoring API,则可以使用聚合字段来指定时间序列的转换方式。

本页面的其余部分将简要介绍这些选项。如需了解详细说明,请参阅处理时间序列

校准时间序列

校准是将 Monitoring 收到的时间序列转换为数据点按固定时长间隔的新时间序列的过程。校准过程包括以下步骤:

  1. 将时间序列划分为一组固定长度的间隔。
  2. 收集在每个时间间隔内收到的所有数据点,并应用函数以组合这些数据点。例如,您可以选择此函数来计算所有样本的平均值。
  3. 将时间戳与上一步中计算的值相关联,然后将该对添加到对齐的时间序列中。

如需简要了解对准,请参阅对准:系列内正则化

旧版接口

为提醒政策创建条件时,您必须指定校准参数。如果您使用 Google Cloud Console,则提供这些参数的默认值:

  • 时间段:时间段是从特定时间点算起的回溯间隔。例如,如果时间段为五分钟,则在下午 1:00,将校准在中午 12:55 和下午 1:00 之间收到的样本。在下午 1:01,将校准在中午 12:56 到下午 1:01 之间收到的样本。在提醒政策中,可以将校准时间段视为看起来像过去的滑动窗口。如需详细了解此字段,请参阅校准时间段和时长

    要查看其余聚合选项,请点击显示高级选项

  • 校准器:校准器字段指定函数以用于合并校准时间段内的所有数据点。如需详细了解可用的校准器,请参阅 API 参考文档中的 Aligner。 某些校准函数会校准数据,并将数据从一种指标种类或类型转换为另一种。如需详细说明,请参阅种类、类型和转换

预览界面

为提醒政策创建条件时,您必须指定校准参数。如果您使用 Google Cloud Console,则提供这些参数的默认值:

  • 滚动窗口:此字段是特定时间点的回溯期。例如,如果此值为五分钟,则在下午 1:00,将校准在中午 12:55 和下午 1:00 之间收到的样本。在下午 1:01,将校准在中午 12:56 到下午 1:01 之间收到的样本。在提醒政策中,可以将校准时间段视为看起来像过去的滑动窗口。如需详细了解此字段,请参阅校准时间段和时长

  • 滚动窗口函数:此字段用于指定用于合并回溯间隔中的所有数据点的函数。在 Cloud Monitoring API 中,此字段称为校准器。如需详细了解可用的功能,请参阅 API 参考文档中的 Aligner。一些校准函数函数会校准数据,并将数据从一种指标种类或类型转换为另一种。如需详细说明,请参阅种类、类型和转换

合并时间序列

您可以通过组合不同的时间序列来减少为指标返回的数据量。要组合多个时间序列,您通常需要指定一个分组和一个函数。分组是通过标签值完成的。该函数定义了如何将群组中的所有时序合并成一个新的时序。

旧版接口

要添加分组,请点击分组依据文本框中的文本,然后从菜单中选择。菜单是根据您选择的资源和指标的时序数据动态构建的。分组和过滤使用相同的标签集。

添加第一个标签时,将出现以下情况:

  • 选择一个聚合器。显示的数据类型决定了默认聚合器:但您可以更改此函数。
  • 聚合器确定如何将具有相同标签值的时间序列合并为单个时间序列。
  • 图表为分组依据文本框中列出的每个标签值显示一个时间序列。

如果按多个标签分组,则聚合器将合并指定标签具有相同值的时间序列。

如果您未指定分组选项且指定了聚合器,则函数将应用于所有选定的时序,并产生单个时序。

以下屏幕截图显示了 user_labels.version 的分组,其中聚合器设置为 sum 的默认值:

分组设置示例。

此选择会为标签 user_labels.version 的每个值生成一个时间序列。每个时间序列中的数据点都是根据特定版本的各个时间序列的所有值之和计算得出的:

显示按 user_labels.version 分组的时间序列

预览界面

如需访问用于组合时间序列的选项,请点击跨时间序列部分中的 展开

要按标签值合并时间序列,请点击文本时间序列分组依据,然后从菜单中选择。系统会根据您选择的时间序列动态构建菜单。

添加第一个标签时,将出现以下情况:

  • 系统会显示错误,因为时间序列聚合字段设置为。如需解决此错误,请选择用于组合时间序列和相同标签值的函数。

  • 该图表会显示时间序列分组依据字段中列出的标签的每个值的一个时间序列。

如果您未指定分组选项,但又指定聚合函数,则该函数将应用于选定的时间序列,并生成单个时间序列。

您可以按多个标签分组。如果您有多个分组选项,则聚合器将应用于与所选标签具有相同值的那组时间序列。

生成的图表显示每个标签组合的一个时间序列。为标签指定的顺序并不重要。

例如,以下屏幕截图展示了按 user_labels.versionsystem_labels.machine_image 分组:

按版本和机器映像显示时间序列。

如图所示,如果您按这两个标签进行分组,则会得到针对两对值的一个时间序列。实际上,每个标签组合都有一个时间序列,这意味着这种方法可以轻松创建更多数据,而不是您在单个图表中有用的数据。

如果您指定分组或选择聚合器,则绘成图表的时间序列仅包含必需的标签(例如项目标识符)以及由该分组指定的标签。

要移除分组条件,您必须执行以下操作:

  1. 删除分组条件标签。
  2. 将聚合器设置为 none

二次聚合

旧版接口

如果您有多个已经表示聚合的时间序列,则可以通过选择二次聚合器将图表上的所有时间序列减少为单个时间序列。例如,如果按可用区对数据进行分组,则图表会针对每个可用区显示一个时间序列。如需创建包含单个时间序列的图表,请使用二次聚合字段。

预览界面

如果您在主数据转换后有多个时间序列,并且您希望提醒政策监控单个时间序列,请使用辅助数据转换 字段。