Alertmanager有两个API,v1
和v2
。v1在下面的代码中进行了描述,v2遵守了OpenAPI
规范,可以在Alertmanager仓库中找到。客户端需要不断地重新发送警报,只要它们还处于活动状态(通常是30秒到3分钟)。客户端可以通过 POST 请求向Alertmanager推送告警明细。
每条告警通过label标识是否为相同实例(对重复数据进行删除)。annotations(注解)
始终设置为最近收到的注解,并且不能标识告警。
startsAt
和endsAt
时间戳都是可选的。如果省略了startsAt
,则当前时间由Alertmanager分配。endsAt
只有在已知告警结束时间的情况下才会被设置。否则,它将被设置为一个可配置的超时时间段,从最后一次收到警报的时间开始计算。
generatorURL
字段是一个唯一的反向链接,用于回调客户端中造成该告警的原因地址。
[
{
"labels": {
"alertname": "<requiredAlertName>",
"<labelname>": "<labelvalue>",
...
},
"annotations": {
"<labelname>": "<labelvalue>",
},
"startsAt": "<rfc3339>",
"endsAt": "<rfc3339>",
"generatorURL": "<generator_url>"
},
...
]
示例
用curl
向alertmanager
发送告警规则。
curl -H "Content-Type: application/json" \
-X POST \
-d '[{"labels":{"name":"www.orchome.com"},"annotations":{"name":"www.orchome.com"},"generatorURL":"http://127.0.0.1","startsAt":"2021-04-01T11:12:03.000+08:00","endsAt":"2021-04-01T11:49:30.000+08:00"}]' \
"http://127.0.0.1:9093/api/v2/alerts"
注意改掉开始和结束时间,不然alertmanager不会展示