教你如何在 AlertManager 报警通知中展示监控图表

【教你如何在 AlertManager 报警通知中展示监控图表】少年乘勇气,百战过乌孙。这篇文章主要讲述教你如何在 AlertManager 报警通知中展示监控图表相关的知识,希望能为你提供帮助。

今天换了另外一种方式来实现,直接去绘制渲染报警图表,然后上传到对象存储中保存起来,在钉钉中就可以直接展示了。Promoter 就是这个方案的一个实现。
之前用 python 实现了一个非常简陋的 AlertManager 的钉钉接收器,一直想在钉钉的消息通知中将当前报警图表也展示出来,这样显然对用户来说更加友好。之前想的思路是通过爬虫的方式去 Prometheus 页面将 Graph 图形截图保存下来,该方式理论上确实是可行的,但是这种方式不稳定因素较多,而且会占用大量的资源。
今天换了另外一种方式来实现,直接去绘制渲染报警图表,然后上传到对象存储中保存起来,在钉钉中就可以直接展示了,Promoter 就是这个方案的一个实现,支持在消息通知中展示实时报警图表,效果图如下所示:

目前是将报警数据渲染成图片后上传到 S3 对象存储,所以需要配置一个对象存储(阿里云 OSS 也可以),此外消息通知展示样式支持模板定制.
模板
默认模板位于 template/default.tmpl,可以根据自己需求定制:
define "__subject" [ .Status | toUpperif eq .Status "firing" : .Alerts.Firing | lenend ].GroupLabels.SortedPairs.Values | join " "if gt (len .CommonLabels) (len .GroupLabels) ( with .CommonLabels.Remove .GroupLabels.Names.Values | join " "end ) endend
define "__alertmanagerURL".ExternalURL /#/alerts?receiver= .Receiverend
define "default.__text_alert_list"range .
###.Annotations.summary
**详情:**.Annotations.description
range .Images
**条件:** ` .Title `
![

    推荐阅读