

# PromQL 警报
<a name="alarm-promql"></a>

PromQL 警报使用 Prometheus 查询语言（PromQL）即时查询来监控指标。该查询选择通过 CloudWatch OTLP 端点摄取到的指标，该查询返回的所有匹配时间序列都被视为违规。警报会定期评估查询，并以*贡献者*的身份独立跟踪每个违规的时间序列。

有关使用 OpenTelemetry 摄取指标的信息，请参阅 [OpenTelemetry](CloudWatch-OpenTelemetry-Sections.md)。

## PromQL 警报的工作原理
<a name="promql-alarm-how-it-works"></a>

PromQL 警报按照 `EvaluationInterval` 定义的周期性计划评估 PromQL 即时查询。该查询仅返回满足条件的时间序列。返回的每个时间序列都是*贡献者*，由其唯一的属性集标识。

警报使用基于持续时间的状态转换：
+ 如果查询返回贡献者，该贡献者将被视为*违规*。如果该贡献者在 `PendingPeriod` 指定的持续时间内继续违规，则会转换为 `ALARM` 状态。
+ 如果查询停止返回贡献者，该贡献者将被视为*恢复*。如果贡献者在 `RecoveryPeriod` 指定的持续时间内一直缺席，则会转换回 `OK` 状态。

当至少有一名贡献者违规的时间超过待处理周期限时，警报将处于 `ALARM` 状态。所有贡献者都恢复后，警报将恢复为 `OK` 状态。

## PromQL 警报配置
<a name="promql-alarm-configuration"></a>

PromQL 警报配置有以下参数：
+ **PendingPeriod** 是贡献者在转换为 `ALARM` 状态之前必须持续违规的时间（以秒为单位）。这相当于 Prometheus 警报规则的 `for` 持续时间。
+ **RecoveryPeriod** 是贡献者在转换回 `OK` 状态之前必须停止违规的持续时间（以秒为单位）。这相当于 Prometheus 警报规则的 `keep_firing_for` 持续时间。
+ **EvaluationInterval** 是警报评估 PromQL 查询的频率（以秒为单位）。

要创建 PromQL 警报，请参阅[使用 PromQL 查询创建警报](Create_PromQL_Alarm.md)。