# 定义告警规则

一条典型的告警规则如下所示：

```yaml
groups:
- name: example
  rules:
  - alert: HighErrorRate
    expr: job:request_latency_seconds:mean5m{job="myjob"} > 0.5
    for: 10m
    labels:
      severity: page
    annotations:
      summary: High request latency
      description: description info
```

* 在告警规则文件中，可以将一组相关的规则设置定义在一个 **group** 下。
* 在每一个 group 中可以定义多个告警规则（**rule**）。
* 一条告警规则主要由以下几部分组成：
  * **alert**：告警规则的名称。
  * **expr**：**基于 PromQL 表达式的告警触发条件，用于计算是否有时间序列满足该条件。**
  * **for**：**评估等待时间**，可选参数。
    * 用于表示只有当触发条件**持续一段时间**后才发送告警。
    * 在等待期间新产生的告警的状态为 **pending**。
  * **labels**：自定义标签，允许用户指定要附加到告警上的一组**附加标签**。
  * **annotations**：用于指定一组**附加信息**，比如用于描述告警详细信息的文字等，annotations 的内容在告警产生时会作为参数一同发送到 Alertmanager。
