prometheus sql 告警规则学习
时间: 2023-10-17 09:06:57 浏览: 156
Prometheus SQL 告警规则是基于 Prometheus 的查询语言 PromQL 编写的,用于监控指标并在满足特定条件时触发告警。学习 PromQL 是学习 Prometheus SQL 告警规则的前提。
Prometheus SQL 告警规则的基本语法如下:
```
ALERT <alert_name>
IF <expression>
[ FOR <duration> ]
[ LABELS <label_set> ]
[ ANNOTATIONS <annotation_set> ]
```
其中,`<alert_name>` 是告警规则的名称,`<expression>` 是 PromQL 表达式,用于计算监控指标的值,`<duration>` 是持续时间,表示在多长时间内满足条件才触发告警,`<label_set>` 和 `<annotation_set>` 分别是标签集和注释集,用于描述告警的详细信息。
例如,下面是一个简单的告警规则:
```
ALERT HighRequestLatency
IF sum(rate(http_request_duration_seconds_sum{job="myjob", handler="prometheus"}[5m])) > 0.5
FOR 1m
LABELS { severity="page" }
ANNOTATIONS {
summary = "High request latency",
description = "The HTTP request latency is too high on {{ $labels.instance }}.",
}
```
该规则的名称为 `HighRequestLatency`,如果在过去的 5 分钟内 `myjob` 中 `handler` 为 `prometheus` 的 HTTP 请求持续时间总和的速率大于 0.5,就会触发告警,持续时间为 1 分钟,告警级别为 `page`,并且在告警中包含了摘要和描述信息。
阅读全文