当前位置: 当前位置:首页 >系统运维 >在 AlertManager 报警通知中展示监控图表 正文

在 AlertManager 报警通知中展示监控图表

2025-11-05 12:12:14 来源:多维IT资讯作者:应用开发 点击:595次

之前用 Python 实现了一个非常简陋的报警表 AlertManager 的钉钉接收器,一直想在钉钉的通知消息通知中将当前报警图表也展示出来,这样显然对用户来说更加友好。中展之前想的示监思路是通过爬虫的方式去 Prometheus 页面将 Graph 图形截图保存下来,该方式理论上确实是WordPress模板控图可行的,但是报警表这种方式不稳定因素较多,而且会占用大量的通知资源。

今天换了另外一种方式来实现,中展直接去绘制渲染报警图表,示监然后上传到对象存储中保存起来,控图在钉钉中就可以直接展示了,亿华云报警表Promoter 就是通知这个方案的一个实现,支持在消息通知中展示实时报警图表,中展效果图如下所示:

目前是示监将报警数据渲染成图片后上传到 S3 对象存储,所以需要配置一个对象存储(阿里云 OSS 也可以),控图此外消息通知展示样式支持模板定制,该功能参考自项目 https://github.dev/timonwong/prometheus-webhook-dingtalk。

模板

默认模板位于 template/default.tmpl,云服务器可以根据自己需求定制:

{{ define "__subject"}}[{{ .Status | toUpper}}{{ if eq .Status "firing"}}:{{ .Alerts.Firing | len}}{{ end}}] {{ .GroupLabels.SortedPairs.Values | join " "}} {{ if gt (len .CommonLabels) (len .GroupLabels)}}({{ with .CommonLabels.Remove .GroupLabels.Names}}{{ .Values | join " "}}{{ end}}){{ end}}{{ end}}

{{ define "__alertmanagerURL"}}{{ .ExternalURL}}/#/alerts?receiver={{ .Receiver}}{{ end}}

{{ define "default.__text_alert_list"}}{{ range .}}

### {{ .Annotations.summary}}

**详情:** {{ .Annotations.description}}

{{ range .Images}}

**条件:** `{{ .Title}}`

![
作者:人工智能
------分隔线----------------------------
头条新闻
图片新闻
新闻排行榜