View a markdown version of this page

在警报中使用 PromQL - Amazon CloudWatch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

在警报中使用 PromQL

您可以使用 PromQL 查询来创建 CloudWatch 警报,以监控指标。PromQL 警报会评估 PromQL 表达式,并根据查询结果触发警报状态更改。

有关警报概念的信息,请参阅概念

有关警报数据查询的信息,请参阅告警数据查询

有关警报操作的信息,请参阅告警操作

有关警报限制的信息,请参阅限制

创建 PromQL 警报

您可以通过 CloudWatch 控制台、Amazon CLI 或 CloudWatch API 创建 PromQL 警报。

通过控制台创建 PromQL 警报
  1. 打开 CloudWatch 控制台

  2. 在导航窗格中,依次选择 Alarms(警报)和 All alarms(所有警报)。

  3. 选择Create alarm(创建警报)

  4. 选择选择指标,然后选择 PromQL 选项卡。

  5. 输入 PromQL 查询。查询必须返回警报的单个时间序列以进行评估。

  6. 配置警报条件,包括阈值、评估期和要发出警报的数据点。

  7. 配置警报操作,例如 Amazon SNS 通知。

  8. 输入警报的名称和描述,然后选择创建警报

您也可以在运行返回单个时间序列的查询后,直接通过 在 Query Studio 中运行 PromQL 查询(预览版) 创建 PromQL 警报。

使用 PromQL 创建 CloudWatch 警报以进行异常检测

您可以创建一个 PromQL 警报,当指标违反统计界限定义的预期范围时会触发该警报。警报查询将上限和下限组合成一个表达式,该表达式仅返回异常数据点。查询返回的任何时间序列均被视为违规。

以下示例表达式会检测检测广告请求指标在 60 分钟窗口内偏离中位数超过 3 个标准差的情况:

1 * {"app.ads.ad_requests"} > quantile_over_time(0.5, {"app.ads.ad_requests"}[60m] offset 1m) + 3 * stddev_over_time({"app.ads.ad_requests"}[60m] offset 1m) or 1 * {"app.ads.ad_requests"} < clamp_min( quantile_over_time(0.5, {"app.ads.ad_requests"}[60m] offset 1m) - 3 * stddev_over_time({"app.ads.ad_requests"}[60m] offset 1m), 0)

此表达式适用于多个标签值,因此警报可以跟踪整个实例集中的异常情况。每个违规的时间序列都作为单独的贡献者进行跟踪。有关 PromQL 警报如何评估贡献者的更多信息,请参阅 PromQL 警报

您可以调整乘数和时间窗口,以匹配指标的行为。乘数越高,界限越宽,误报越少。较长的时间窗口会平滑掉短期峰值波动。对于不能为负值的指标,clamp_min 函数可防止下限变为负值。

有关使用 PromQL 构建异常检测范围的更多信息,请参阅使用 PromQL 检测异常