创建指标阈值提醒政策

本文档介绍如何使用 Google Cloud 控制台创建基于指标的提醒政策,以便在指标值高于或小于特定考量时长的阈值时发送通知。例如,当 CPU 利用率持续高于 80% 至少五分钟时,可以满足提醒政策的条件。

此内容不适用于基于日志的提醒政策。如需了解基于日志的提醒政策(该政策在特定消息显示在日志中时通知您),请参阅监控日志

本文档未介绍以下内容:

准备工作

  1. 如需获取使用 Google Cloud 控制台创建和修改提醒政策所需的权限,请让管理员授予您项目的 Monitoring Editor (roles/monitoring.editor) IAM 角色。如需详细了解如何授予角色,请参阅管理访问权限

    您也可以通过自定义角色或其他预定义角色来获取所需的权限。

    如需详细了解 Cloud Monitoring 角色,请参阅使用 Identity and Access Management 控制访问权限

  2. 确保您熟悉提醒政策的一般概念。如需了解这些主题,请参阅提醒概览

  3. 配置您要用于接收任何提醒的通知渠道。为实现冗余,我们建议您创建多种类型的通知渠道。如需了解详情,请参阅创建和管理通知渠道

创建提醒政策

如需创建提醒政策,将该指标的值与静态阈值进行比较,请执行以下操作:

  1. 在 Google Cloud 控制台的导航面板中,选择 Monitoring,然后选择  提醒

    进入提醒

  2. 选择创建政策
  3. 选择要监控的时序:

    1. 点击选择指标,浏览菜单以选择资源类型和指标类型,然后点击应用

      选择指标菜单包含一些功能,可帮助您查找可用的指标类型:

      • 如需查找特定的指标类型,请使用 过滤栏。例如,如果您输入 util,则会限制菜单显示包含 util 的条目。条目在通过不区分大小写的“包含”测试后即会显示。
      • 如需显示所有指标类型,包括没有数据的指标类型,请点击 活跃。默认情况下,这些菜单仅显示包含数据的指标类型。如需了解详情,请参阅菜单中未列出的指标

      您可以监控任何内置指标或任何用户定义的指标。

    2. 可选:如需监控与您在上一步中选择的指标和资源类型匹配的时序子集,请点击添加过滤条件。在过滤条件对话框中,选择过滤所依据的标签、一个比较运算符,然后选择过滤条件值。例如,过滤条件 zone =~ ^us.*.a$ 使用正则表达式匹配地区名称以 us 开头并以 a 结尾的所有时间序列数据。如需了解详情,请参阅过滤所选时序

    3. 可选:如需更改时序中点的对齐方式,请在转换数据部分中设置滚动窗口滚动窗口函数字段。

      这些字段指定如何组合窗口中记录的点。例如,假设窗口为 15 分钟,窗口函数为 max。校准点是最近 15 分钟内所有点的最大值。如需了解详情,请参阅校准:系列内正则化

      您还可以使用滚动窗口函数字段来监控指标值的变化率。如需了解详情,请参阅监控变化率

    4. 可选:如果要减少政策监控的时序数,或者只想监控一系列时序,请合并时序。例如,您可能想要计算一个地区中所有虚拟机的 CPU 利用率的平均值,然后监控该平均值,而不是监控每个虚拟机实例的 CPU 利用率。默认情况下,时序不合并。如需了解一般信息,请参阅归约:合并时序

      如需合并所有时序,请执行以下操作:

      1. 跨时序部分中,点击 展开
      2. 时序聚合字段设置为 none 以外的值。例如,如需显示时序的平均值,请选择 mean
      3. 确保时间序列分组依据字段为空。

      如需按标签值对时序进行组合或分组,请执行以下操作:

      1. 跨时序部分中,点击 展开
      2. 时序聚合字段设置为 none 以外的值。
      3. 时间序列分组依据字段中,选择要作为分组依据的标签。

      例如,如果您按 zone 标签分组,然后将聚合字段的值设置为 mean,则图表会为有数据的每个可用区显示一个时序。针对特定区域显示的时序是该区域的所有时序的平均值。

    5. 点击下一步

  4. 配置条件触发器:

    1. 保留条件类型字段的默认值阈值

    2. 提醒触发器菜单选择一个值。通过此菜单,您可以指定在满足条件之前必须超出阈值的时序子集。

    3. 使用阈值位置阈值字段输入指标值超过阈值时。例如,如果将这些值设置为高于阈值0.3,则任何高于 0.3 的测量值都会违反阈值。

    4. 可选:如需选择在多长时间后测量结果必须超出阈值,Monitoring 才会发送通知,请展开高级选项,然后使用重新测试窗口菜单。

      默认值为 No retest。使用此设置时,单次测量结果可能引发通知。如需了解详情并查看示例,请参阅校准时间段和时长设置

    5. 可选:如需指定 Monitoring 在数据停止到达时如何评估条件,请展开高级选项,然后使用评估缺少数据菜单。

      Retest window 值为 No retest 时,Evaluation missing data 菜单处于停用状态。

      Google Cloud 控制台
      “评估缺失数据”字段
      摘要 详情
      缺少空数据 未结突发事件保持开放状态。
      系统不会创建新突发事件。

      对于满足的条件,当数据停止到达时,将继续满足相应条件。对于这种情况,如果某个突发事件处于未解决状态,则该突发事件将保持未解决状态。如果某个突发事件处于未解决状态且没有任何数据到达,自动关闭计时器会在至少 15 分钟后启动。如果计时器到期,该事件就会关闭。

      如果不符合条件,则当数据停止到达时,系统仍会继续不满足条件。

      缺失数据点会被视为违反政策要求的值 未结突发事件保持开放状态。
      可创建新突发事件。

      对于满足的条件,当数据停止到达时,将继续满足相应条件。对于这种情况,如果某个突发事件处于未解决状态,则该突发事件将保持未解决状态。如果某个突发事件处于未解决状态,并且在自动关闭时长(外加 24 小时内)内没有任何数据到达,则该突发事件将关闭。

      如果不符合条件,此设置会使指标阈值条件的行为类似于 metric-absence condition。如果数据在重新测试期指定的时间内未到达,则评估为已满足条件。对于包含一个条件的提醒政策,满足某个条件会导致创建突发事件。

      缺失数据点会被视为未违反政策要求的值 未结突发事件已关闭。
      系统不会创建新突发事件。

      对于满足的条件,当数据停止到达时,相应条件便会停止满足。对于这种情况,如果某个突发事件处于未解决状态,则该突发事件将关闭。

      如果不符合条件,则当数据停止到达时,系统仍会继续不满足条件。

    6. 点击下一步

  5. 可选:创建包含多个条件的提醒政策。

    大多数政策监控单个指标类型,例如,一项政策可能会监控写入虚拟机实例的字节数。如果要监控多个指标类型,请创建包含多个条件的政策。每个条件监控一种指标类型。创建条件后,您可以指定条件的合并方式。如需了解详情,请参阅包含多个条件的政策

    如需创建包含多个条件的提醒政策,请执行以下操作:

    1. 对于其他每个条件,请点击添加提醒条件,然后配置该条件。
    2. 点击下一步,然后配置条件的合并方式。
    3. 点击下一步,继续进行通知和文档设置。
  6. 配置通知:

    1. 展开通知和名称菜单,然后选择您的通知渠道。为实现冗余,我们建议您在提醒政策中添加多种类型的通知渠道。如需了解详情,请参阅管理通知渠道

    2. 可选:如需在突发事件关闭时收到通知,请选择突发事件关闭时通知。默认情况下,如果您使用 Google Cloud 控制台创建提醒政策,则系统仅在创建了突发事件时发送通知。

    3. 可选:如需更改 Monitoring 在数据停止到达后关闭突发事件的等待时间,请从突发事件自动关闭时长菜单中选择一个选项。默认情况下,当数据停止到达时,Monitoring 会等待七天再关闭未结突发事件。

    4. 政策严重级别菜单中选择一个选项。突发事件和通知会显示严重级别。

    5. 可选:要向提醒政策添加自定义标签,请在政策用户标签部分中执行以下操作:

      1. 点击添加标签,然后在字段中输入标签名称。标签名称必须以小写字母开头,可以包含小写字母、数字、下划线和短划线。例如,输入 severity
      2. 点击,然后输入标签值。标签值可以包含小写字母、数字、下划线和短划线。例如,输入 critical

      如需了解如何使用政策标签来帮助您管理提醒,请参阅使用标签注释提醒

  7. 可选:在 Documents 部分中,输入您希望包含在通知中的所有内容。

    如需设置文档格式,您可以使用纯文本、Markdown 和变量。您还可以添加可帮助用户调试突发事件的链接,例如内部 playbook、Google Cloud 信息中心和外部页面的链接。例如,以下文档模板描述了 gce_instance 资源的 CPU 利用率事件,并包含多个用于引用提醒政策和条件 REST 资源的变量。然后,文档模板会将读者定向到外部页面,以帮助进行调试。

    创建通知后,Monitoring 会将文档变量替换为它们的值。 这些值仅替换通知中的变量。Google Cloud 控制台中的预览窗格和其他位置仅显示 Markdown 格式。

    预览

    ## CPU utilization exceeded
    
    ### Summary
    
    The ${metric.display_name} of the ${resource.type}
    ${resource.label.instance_id} in the project ${resource.project} has
    exceeded 90% for over 15 minutes.
    
    ### Additional resource information
    
    Condition resource name: ${condition.name}
    Alerting policy resource name: ${policy.name}
    
    ### Troubleshooting and Debug References
    
    Repository with debug scripts: example.com
    Internal troubleshooting guide: example.com
    ${resource.type} dashboard: example.com
    

    通知中的格式

    示例:文档如何在通知中呈现。

    如需了解详情,请参阅使用用户定义的文档为提醒添加注解使用渠道控制

  8. 点击提醒名称,然后输入提醒政策的名称。

  9. 点击创建政策

过滤所选时序

过滤条件可确保仅监控符合某些条件的时序。应用过滤条件时,您可以减少图表上的行数,从而提升图表的性能。您还可以通过应用聚合来减少受监控的数据量。过滤条件可确保仅使用符合部分条件的时序。应用过滤条件时,需要评估的时序更少,从而提高提醒的性能。

过滤条件由标签、比较运算符和值组成。例如,如需匹配 zone 标签以 "us-central1" 开头的所有时序,您可以使用过滤条件 zone=~"us-central1.*",该过滤条件使用正则表达式执行比较。

按项目 ID 或资源容器过滤时,必须使用等号运算符 (=)。按其他标签过滤时,您可以使用任何受支持的比较运算符。通常,您可以按资源组过滤指标和资源标签。

当您提供多个过滤条件时,系统仅会监控符合所有条件的时序。

如需添加过滤条件,请点击添加过滤条件,完成对话框,然后点击完成。在该对话框中,您可以使用 Filter 字段来选择要作为过滤依据的条件,选择比较运算符,然后选择相应的值。 下表中的每一行都列出了一个比较运算符及其含义和示例:

运算符含义示例
= 相等 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")

问题排查

本部分包含问题排查提示。

指标未列在可用指标菜单中

如需监控选择指标菜单中未列出的指标,请执行以下操作之一:

  • 如需创建用于监控 Google Cloud 指标的提醒政策,请展开选择指标菜单,然后点击 活跃。停用后,该菜单会列出 Google Cloud 服务的所有指标以及包含数据的所有指标。

  • 如需在自定义指标类型生成数据之前为自定义指标类型配置条件,您必须使用 Monitoring 过滤条件指定指标类型:

    1. 选择 ?(在选择指标部分的标题中),然后选择提示中的直接过滤模式
    2. 输入监控过滤条件或时序选择器。 如需了解语法,请参阅以下文档:

监控变化率

如需监控指标值的变化率,请将滚动窗口函数字段设置为变化百分比,然后 Monitoring 会将指标的变化率与阈值进行比较。当您选择百分比变化函数时,Monitoring 会执行以下操作:

  1. 如果时间序列具有 DELTACUMULATIVE 指标种类,则该时序会转换为具有 GAUGE 指标种类的时间序列。如需了解该转换,请参阅种类、类型和转换
  2. 通过将最近 10 分钟窗口中的平均值与重新测试之前 10 分钟窗口中的平均值进行比较,计算变化百分比。

10 分钟的回溯期是一个固定值,您无法对其进行更改。不过,您需要在创建条件时指定重新测试时段。

后续步骤