当前位置: 首页 > 科技观察

在AlertManager告警通知中显示监控图表

时间:2023-03-13 23:59:52 科技观察

之前用Python实现了一个很简单的AlertManager钉钉接收器,一直想在钉钉消息通知中显示当前的告警图表,显然很方便用户使用更友好。之前的想法是用爬虫去Prometheus页面保存Graph图的截图。这种方法理论上确实可行,但是这种方法存在很多不稳定因素,会占用大量资源。今天换了一种方式来实现。我直接绘制并渲染报警图,然后上传到对象存储中保存。可以直接在钉钉中展示。Promoter是该方案的一个实现,它支持在消息通知中显示。实时告警图,效果图如下:目前告警数据是渲染成图片上传到S3对象存储,所以需要配置一个对象存储(阿里云OSS也可以)。另外,消息通知显示样式支持模板自定义。该功能参考项目https://github.dev/timonwong/prometheus-webhook-dingtalk。Template默认模板位于template/default.tmpl,可根据需要自定义:{{define"__subject"}}[{{.Status|toUpper}}{{ifeq.Status"firing"}}:{{.Alerts.射击|len}}{{end}}]{{.GroupLabels.SortedPairs.Values|加入""}}{{ifgt(len.CommonLabels)(len.GroupLabels)}}({{with.CommonLabels.Remove.GroupLabels.Names}}{{.Values|加入""}}{{end}}){{end}}{{end}}{{define"__alertmanagerURL"}}{{.ExternalURL}}/#/alerts?receiver={{.Receiver}}{{end}}{{define"default.__text_alert_list"}}{{range.}}###{{.Annotations.summary}}**详情:**{{.Annotations.description}}{{range.Images}}**条件:**`{{.Title}}`![