本文档介绍了如何使用 Google Cloud 控制台创建提醒政策,以便在政策预测在即将到来的预测时间范围内将超出阈值时发送通知。预测可预测时间序列是否会在预测期(即未来的一段时间)内违反阈值。预测期的范围为 1 小时(3,600 秒)至 2.5 天(216,000 秒)。
此内容不适用于基于日志的提醒政策。如需了解基于日志的提醒政策(该政策在特定消息显示在日志中时通知您),请参阅监控日志。
本文档并未介绍以下内容:
- 如何在指标值高于或低于阈值时收到通知。如需更多信息 请参阅创建指标阈值提醒政策。
- 如何在停止收到数据时收到通知。如需了解详情,请参阅创建指标缺失提醒政策。
如何使用 Cloud Monitoring API 创建提醒政策。有关 请参阅 使用 API 创建提醒政策。
如何创建条件包含 Monitoring Query Language (MQL) 查询。这些政策可以使用静态或动态 阈值。有关详情,请参阅以下文档:
预测条件简介
您可以在监控大多数指标时使用预测功能。但是,当您监控 配额、磁盘空间或内存用量等受限资源 条件可以在达到阈值之前通知您。 这种能力让您有更多时间来应对有限的资源 在违反阈值之前消耗的数据流量。
对于预测条件监控的每个时序,条件 实例化决策算法。算法训练完成后, 则在每次评估条件时都会生成一项预测。每项预测都是 关于时序将违反或不违反的预测, 阈值。如果受监控的时序具有 有规律的周期,则用于预测周期的决策算法 该时序会将周期性行为纳入其预测中。
当发生以下任一情况或两种情况时,系统会满足预测条件:
- 特定重新测试时间范围内某个时间序列的所有值都违反了阈值。
- 在重新测试窗口中对特定时序进行的所有预测 预测时序将违反 预测窗口。
决策算法的初始训练时间是预测期长度的两倍。例如,如果预测期为一小时,则: 需要两个小时的训练时间。每个 Pod 的决策算法 是独立训练的。决策算法是 则其时序只有在 时序违反指定重新测试窗口的阈值。
初始训练完成后,每个决策算法会不断 预测期最长为 6 倍的数据进行训练。 例如,如果预测期为 1 小时,那么最近 6 小时为 的数据在持续训练期间使用。
如果您配置了预测条件,但系统不再收到更多数据, 超过 10 分钟,预测将被停用,并且条件 作为指标阈值条件运行。
当预测结果预测某个时序将违反时,系统就会创建突发事件 条件阈值。 当发生以下情况时,监控会自动关闭突发事件: 预测结果显示,时序不会违反阈值 预测期内的所有展示次数
准备工作
-
如需获取使用 Google Cloud 控制台创建和修改提醒政策所需的权限, 请让管理员授予您 项目的 Monitoring Editor (
roles/monitoring.editor
) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。如需详细了解 Cloud Monitoring 角色, 请参阅使用 Identity and Access Management 控制访问权限。
确保您熟悉提醒政策的一般概念。 有关这些主题的信息,请参阅 提醒概览。
配置您要用来接收任何 通知。为实现冗余,我们建议您创建 多种类型的通知渠道。如需了解详情,请参阅 创建和管理通知渠道。
创建提醒政策
要创建基于预测发送通知的提醒政策, 执行以下操作:
-
在 Google Cloud 控制台中,转到 notifications 提醒页面:
如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
- 选择创建政策。
选择要监控的时序:
点击选择指标,然后浏览菜单以选择 资源类型和指标类型,然后点击应用。
选择指标菜单包含可帮助您查找 可用的指标类型:
- 要查找特定的指标类型,请使用
filter_list 过滤栏。
例如,如果您输入
util
,则将菜单限制为 显示包含util
的条目。系统将在条目通过 不区分大小写的“contains”测试。
- 要显示所有指标类型(包括没有数据的指标类型),请点击 菜单中未列出指标。 有效。默认情况下,菜单 仅显示带有数据的指标类型如需了解详情,请参阅
您可以监控任何内置指标或任何用户定义的 值类型为双精度或 int64 的指标类型; 而该指标并非适用于 Amazon 虚拟机实例。
如果您选择的指标类型产生的结果 监控的 64 个时序,则 Monitoring 可针对以下内容进行预测: 值最接近的 64 个时序 或已经违反阈值的广告对于其他 时序会将它们的值与阈值进行比较。
- 要查找特定的指标类型,请使用
filter_list 过滤栏。
例如,如果您输入
可选:如需监控与 指标和资源类型 点击添加过滤条件。在“过滤条件”对话框中,按以下条件选择标签: 要过滤的对象、比较运算符和过滤条件值。 例如,过滤条件
zone =~ ^us.*.a$
使用正则表达式来 匹配可用区名称以us
开头、以us
结尾的所有时间序列数据 与a
共享。如需了解详情,请参阅 过滤所选时序。可选:如需更改时序中点的对齐方式,请执行以下操作: 在转换数据部分中,设置滚动窗口并 滚动窗口函数字段。
如果您要监控基于日志的指标,那么我们建议您 滚动窗口菜单设置为至少 10 分钟。
这些字段指定如何记录窗口中记录的点 总和。例如,假设时长为 15 分钟, 窗口函数为
max
。对齐点是 得分。 如需了解详情,请参阅 校准:系列内正则化。您还可以监控指标值的变化率 滚动窗口函数字段设置百分比变化。 有关详情,请参阅监控变化率。
可选:如需减少 时序由政策监控,或者您希望仅监控 时序集合。例如,您可能希望计算可用区中所有虚拟机的 CPU 利用率平均值,而不是监控每个虚拟机实例的 CPU 利用率,然后监控该平均值。默认情况下 时序不会合并。有关一般信息,请参阅 归约:合并时序。
如需组合所有时间序列,请执行以下操作:
- 在跨时序部分中,点击 expand_more 展开。
- 将时间序列聚合字段的值设置为
none
。例如,要显示 时序,选择mean
。 - 确保时间序列分组依据字段为空。
如需按标签值对时序进行组合或分组,请执行以下操作:
- 在跨时序部分中,点击 expand_more 展开。
- 将时间序列聚合字段的值设置为
none
。 - 在时序分组依据字段中,选择标签 作为分组依据
例如,如果您按
zone
标签进行分组,然后将 汇总字段的值为mean
,则图表会显示 每个有数据的区域对应一个时序。通过 特定可用区的时序是所有时序的平均值 该可用区点击下一步。
配置条件触发器:
选择预测作为条件类型。
可选:更新提醒触发器菜单,其中包含以下值:
任何违反时序的情况:默认设置。任意时序 或者预计会违反阈值 会使条件得到满足。
Percent of time series violates:在整个重新测试时间段内,必须有一定百分比的时序违反阈值或预测会违反阈值,此时条件才会满足。例如: 当所监控的时序有 50% 违反了 整个重新测试窗口的阈值。
违反时序数的情况:时序数的具体数量 必须超过阈值或预测会违反阈值 整个重新测试窗口的持续时间。 例如,当出现以下情况时,您会收到通知 在整个受监控的时序中,有 32 个违反阈值 重新测试窗口。
所有时序违反:所有时序都必须违反阈值,或者在整个重新测试时间范围内都预测会违反阈值,此时条件才会满足。
有关 Monitoring 用于校准和衡量时序数据,请参阅 校准时间段和重新测试窗口。
为预测期选择一个值。您选择的值是预测的未来时间。您必须将此值至少设置为 1 小时(3,600 秒),并设置为 最多 2.5 天(216,000 秒)。
请输入所选指标的预测值违反 阈值位置来评估阈值, 阈值字段。 例如,如果您将这些值设置为高于阈值和
10
,则任何高于10
的预测值都会违反阈值。可选:展开高级选项,然后设置 重新测试窗口。此字段的默认值为 No retest。
我们建议您将此字段设置为至少 10 分钟。
例如,假设您配置预测条件,使任何时间序列都可能导致条件满足。此外,我们假设 重新测试期设置为 15 分钟,预测期设置为 1 小时的时间,则当时时序中的值 高于设置为 10 的阈值。 如果出现以下任一情况,则满足条件:
- 一个时序的所有值都大于 10 并持续 至少 15 分钟。
- 在 15 分钟间隔内,一个时序的每次预测 其值有时会高于阈值 10 。
可选:指定 Monitoring 评估 条件,请展开高级选项 然后使用评估缺少数据菜单。
当评估缺少数据菜单的 Retest window 为 No retest。
如果缺少的数据超过 10 分钟,预测条件会停止进行预测,而是使用评估缺失数据字段的值来确定如何管理突发事件。重新开始观察后,系统会重新开始预测。
Google Cloud 控制台
“缺失数据的评估”字段摘要 详细信息 缺少数据为空 未结突发事件保持未结状态。
不会打开新的突发事件。对于满足的条件,条件将继续为 才会出现这种问题如果突发事件符合此条件, 那么该事件就会保持未解决状态当突发事件未处理且无数据时 自动关闭计时器会至少在延迟一刻后启动 15 分钟。如果计时器过期,则事件已关闭。
对于未满足的条件,当数据停止传入时,该条件仍不满足。
缺失的数据点被视为违反政策条件的值 未结突发事件保持未结状态。
可以创建新突发事件。对于满足的条件,条件将继续为 才会出现这种问题如果系统针对此条件创建了突发事件,则该突发事件会保持打开状态。如果突发事件处于未结状态,并且在自动关闭时长加上 24 小时内没有收到任何数据,则系统会关闭突发事件。
对于不符合的条件,此设置会导致 指标阈值条件的行为类似于
metric-absence condition
。 如果数据没有在重新测试窗口指定的时间内到达, 则评估该条件是否满足条件。对于具有 一个条件,即满足该条件 会导致创建突发事件缺失的数据点被视为不违反政策条件的值 未结突发事件已关闭。
新的突发事件不会被创建。如果条件满足,那么当 数据会停止传送。如果突发事件符合此条件, 该事件就已关闭
对于不满足的条件,条件将继续不满足 在数据停止到达时满足什么条件。
点击下一步。
可选:创建包含多个条件的提醒政策。
大多数政策会监控单个指标类型,例如,一项政策可能 监控写入虚拟机实例的字节数。随时 如需监控多种指标类型,请创建包含多个条件的政策。 每个条件会监控一种指标类型。创建条件后 您可以指定条件的组合方式有关详情,请参阅 包含多个条件的政策。
如需创建具有多个条件的提醒政策,请执行以下操作:
- 对于其他每个条件,请点击添加提醒条件,然后 配置该条件。
- 点击下一步,然后配置条件的组合方式。
- 点击下一步,进入通知和文档设置。
配置通知:
展开通知和名称菜单,然后选择您的通知 渠道。为实现冗余,我们建议您添加到 提醒政策使用多种类型的通知渠道。 如需了解详情,请参阅管理通知渠道。
可选:如需在突发事件关闭时收到通知,请选择 在突发事件关闭时发送通知。 默认情况下,当您使用 Google Cloud 控制台中,仅当发生突发事件 创建。
可选:如需更改在数据停止传入后,监控服务等待多长时间后关闭突发事件,请从突发事件自动关闭时长菜单中选择一个选项。默认情况下,当数据停止到达时,Monitoring 会等待 。
从政策严重程度菜单中选择一个选项。突发事件和 通知会显示严重级别。
可选:如需为提醒政策添加自定义标签,请在 政策用户标签部分,执行以下操作:
- 点击添加标签,然后在键字段中输入
标签。标签名称必须以小写字母开头,可以
包含小写字母、数字、下划线和短划线。
例如,输入
severity
。 - 点击值,然后输入标签的值。标签值
包含小写字母、数字、下划线和短划线。
例如,输入
critical
。
如需了解如何使用政策标签来帮助您管理通知,请参阅使用标签为突发事件添加注释。
- 点击添加标签,然后在键字段中输入
标签。标签名称必须以小写字母开头,可以
包含小写字母、数字、下划线和短划线。
例如,输入
可选:在 Documentation(文档)部分中,输入所需的任何内容 。
如需设置文档格式,您可以使用纯文本、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
通知中的格式
如需了解详情,请参阅 使用用户定义的文档为通知添加注释 和使用渠道控件。
点击提醒名称,然后输入提醒政策的名称。
点击创建政策。
过滤所选时序
过滤条件可确保只有符合某些条件的时序才会被纳入 监控。 应用过滤条件时,您可能会减少图表上的线条数量, 这样可以提高图表的性能您还可以减少 通过应用汇总来监控的数据量。 过滤条件可确保仅使用符合部分条件的时间序列。应用过滤条件后,要评估的时序就会变少, 以提升提醒性能。
过滤器由标签、比较运算符和值组成。例如:
来匹配 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") |
问题排查
本部分包含问题排查提示。
可用指标菜单中未列出指标
如需监控选择指标菜单中未列出的指标,请执行以下操作: 以下项之一:
如需创建用于监控 Google Cloud 指标的提醒政策, 展开选择指标菜单,然后 点击
已启用。 停用后,该菜单会列出以下各项的所有指标: Google Cloud 服务以及包含数据的所有指标。在该指标之前,为自定义指标类型配置条件 类型会生成数据,则必须使用 监控过滤条件:
监控变化率
要监控指标值的变化率,请将 滚动窗口函数字段更改为百分比变化。 评估条件时,Monitoring 会计算 以百分比表示的指标变化率,然后将该百分比 条件的阈值此比较过程分为两个步骤:
- 如果时序具有
DELTA
或CUMULATIVE
指标种类,则: 时序将转换为指标种类为GAUGE
的时序。 有关 请参阅种类、类型和转换。 - 监控功能会通过比较最近 10 分钟滑动窗口中的平均值与校准期开始前 10 分钟滑动窗口中的平均值来计算百分比变化。
您无法在 变化率提醒政策 但是,您在创建条件时需指定一致性期限。
限制
- 您可以使用 或使用 Monitoring 过滤条件。 您无法使用 Monitoring Query Language 或 PromQL 配置该条件。
- 值类型为 double 或 int64 的所有指标 但来自 Amazon 虚拟机实例的请求除外。
后续步骤
- 创建将时序值与动态时序值进行比较的政策 必须使用 MQL。如需了解详情,请参阅使用 MQL 创建动态严重级别。