创建指标缺失提醒政策

本文档介绍如何使用 Google Cloud 控制台创建提醒政策,以便在受监控的时序在特定时间段内没有数据时发送通知。

在安装或修改政策后,指标缺失条件要求在最长时间段内必须至少有一次成功测量(用于检索数据)。此时间段称为“触发器缺失时间”。可配置的触发器缺失时间上限为 23.5 小时。

例如,假设您将指标缺失政策中的触发器缺失时间设置为 30 分钟。如果写入指标数据的子系统从未写入数据点,则不会满足条件。子系统需要输出至少一个数据点,然后在 30 分钟内不再输出更多数据点。

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

本文档未介绍以下内容:

只有 Google Cloud 项目支持此功能。对于 App Hub 配置,请选择 App Hub 宿主项目或已启用应用的文件夹的管理项目。

准备工作

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

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

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

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

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

创建提醒政策

如需创建提醒政策,以便在受监控的时序在特定触发器缺失时间内没有数据时发送通知,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 提醒页面:

    进入提醒

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

  2. 在 Google Cloud 控制台的工具栏中,选择您的 Google Cloud 项目。 对于 App Hub 配置,请选择 App Hub 宿主项目或已启用应用的文件夹的管理项目。
  3. 选择创建政策
  4. 选择要监控的时序:

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

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

      • 如需查找特定指标类型,请使用 过滤条件栏。例如,如果您输入 util,则菜单仅会显示包含 util 的条目。如果条目通过不区分大小写的“包含”测试,则会显示。

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

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

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

      如果您要监控基于日志的指标,我们建议将滚动窗口菜单设置为至少 10 分钟。

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

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

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

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

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

      1. Across time series 部分中,点击 展开
      2. 时序聚合字段设置为 none 以外的值。
      3. 时序分组依据字段中,选择分组所依据的标签。

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

    5. 点击下一步

  5. 配置条件触发器:

    1. 选择 Metric absence 作为条件类型。

    2. 可选:更新 Alert trigger 菜单,其中包含以下值:

      • 任何时序违反:默认设置。在整个触发器缺失时间内,任何包含缺失数据的时序都会满足条件。

      • 时序违反百分比:在整个触发器缺失时间内,必须有一定百分比的时序包含缺失数据,才能满足条件。例如,在整个触发器缺失时间内,如果有 50% 的受监控的时序没有数据,您可能会收到通知。

      • 时序违反数量:在整个触发器缺失时间内,必须有特定数量的时序包含缺失数据,才能满足条件。例如,在整个触发器缺失时间内,如果有 32 个受监控的时序没有数据,您可能会收到通知。

      • 所有时序违反:在整个触发器缺失时间内,必须所有时序都包含缺失数据,才能满足条件。

      如需了解 Monitoring 用于校准和衡量时序数据的时间间隔,请参阅校准时间段和重新测试窗口

    3. 使用触发器缺失时间字段指定指标数据必须缺失多长时间,Monitoring 才会通知您。

    4. 点击下一步

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

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

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

    1. 对于每个其他条件,请点击添加提醒条件,然后配置该条件。
    2. 点击下一步,然后配置条件组合方式。
    3. 点击下一步,前往通知和文档设置。
  7. 配置通知并添加用户标签:

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

    2. 可选:如需在突发事件关闭时收到通知,请选择 Notify on incident closure。默认情况下,如果您使用 Google Cloud 控制台创建提醒政策,则只有在创建突发事件时才会发送通知。

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

    4. 可选:如需将提醒政策与 App Hub 应用相关联,请在应用标签部分中选择应用以及服务或工作负载。突发事件和通知会显示这些标签。

    5. 可选:从 Policy severity level 菜单中选择一个选项。突发事件和通知会显示严重级别。

    6. 可选:如需向提醒政策添加自定义标签,请在 Policy user labels 部分中执行以下操作:

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

      如需了解如何使用政策标签来帮助您管理通知,请参阅使用标签为突发事件添加注解

  8. 可选:在文档部分中,输入您希望通知中包含的任何内容。

    如需设置文档格式,您可以使用纯文本、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
    

    通知中的格式

    文档在通知中的呈现方式示例。

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

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

  10. 点击创建政策

过滤所选的时序

过滤条件可确保仅监控符合某一组条件的时序。应用过滤条件时,您可以减少图表中的线条数量,从而提高图表的性能。您还可以通过应用聚合来减少监控的数据量。过滤条件可确保仅使用符合部分条件的时间序列。应用过滤条件后,要评估的时序会减少,从而提高提醒的性能。

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

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

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

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

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