将 Prometheus 的 Alerting rules 从 v1.x 修改为适用于 v2.x 的版本
摘要
在尝试使用 Prometheus 进行警报配置时,不知道为何在启动时出现了格式错误。于是我进行了调查,发现在 v1.x 和 v2.x 中,语法有所变化。以下是我的备忘录。
版本的写法
- v1.xの記法
ALERT InstanceDown
IF up == 0
FOR 5m
LABELS {
severity="page"
}
ANNOTATIONS {
summary = "Instance {{$labels.instance}} down",
description = "{{$labels.instance}} of job {{$labels.job}} has been down for more than 5 minutes.",
}
- v2.xの記法
groups:
- name: instance.rules
rules:
- alert: InstanceDown
expr: up == 0
for: 5m
labels:
severity: page
annotations:
description: '{{$labels.instance}} of job {{$labels.job}} has been down for
more than 5 minutes.'
summary: Instance {{$labels.instance}} down
太意外了,居然变成了YAML。
转换方法
您可以在此网站上找到相关信息,下面是一个检查格式的promtool安装指南。
$ go get github.com/prometheus/prometheus/cmd/promtool
使用这个工具,您可以将v1格式的文件转换为v2格式。
$ promtool update rules instance.rules
执行后,将生成一个名为 instance.rules.yml 的文件。