prometheus设置表达式触发告警
Prometheus 是一个开源监控系统,通过设置警报规则来实现对指标变化的监控。要在 Prometheus 中设置一个表达式值变动 50% 触发告警,你需要创建一个 alert 规则。
假设你要监控的指标是 example_metric
,可以使用以下方法创建告警规则:
- 首先,在 Prometheus 的配置文件(通常是
prometheus.yml
)中,为 alert 规则创建一个规则文件的路径。例如:
rule_files:
- "alert_rules.yml"
1
2
3
2
3
- 接下来,在
alert_rules.yml
文件中定义告警规则。这里我们需要用到abs
和rate
函数,以便计算指标值的变动百分比:
groups:
- name: example_alerts
rules:
- alert: ExampleMetricChange
expr: |
abs(
(rate(example_metric[5m]) - rate(example_metric[10m])) / rate(example_metric[10m])
) > 0.5
for: 5m
labels:
severity: critical
annotations:
summary: "Example metric changed more than 50% in the last 5 minutes"
description: "Example metric has changed by more than 50% in the last 5 minutes (current value: {{ $value }})."
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
在这个示例中,我们使用了 rate
函数来计算 example_metric
在 5 分钟和 10 分钟滚动窗口内的变化速率。然后我们计算了这两个速率之间的差值,并将其除以 10 分钟内的速率来计算百分比变化。最后,我们使用 abs
函数确保结果是一个正数。
如果表达式值变动超过 50%,则告警将在 5 分钟内持续触发。告警的标签和注释可以根据需要进行修改。
- 保存并重新加载 Prometheus 配置,以使更改生效。
现在,当 example_metric
的值在 5 分钟内变动超过 50% 时,Prometheus 将触发一个告警。你可以根据需要配置告警的接收器,例如使用 Alertmanager。
上次更新: 2023/04/21, 08:57:47