douhang8991 2019-05-08 12:25
浏览 308
已采纳

Prometheus警报管理器模板更改

I have prometheus alert manager running with a template, and im getting email subject as following

[FIRING:6] Unusual network throughput out (thanos group_b aws_us_b instance_191 infrastructure monitoring-prometheus-node warning)

all the values after the alert name are labels. here is the template subject code

{{ 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 }}

I would like to modify this only to get following

[FIRING:6] Unusual network throughput out (group_b instance_191) only group name and instance name

how can I achieve this?

  • 写回答

1条回答 默认 最新

  • du8828 2019-05-08 14:58
    关注

    You could replace your template with something like this:

    {{ define "__subject" }}[{{ .Status | toUpper }} {{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}] {{ .GroupLabels.alertname }} ({{ .GroupLabels.group }} {{ .GroupLabels.instance }})
    

    Not sure what will happen if the group or instance labels are not common across all alerts (e.g. if you have an alert firing across multiple groups and/or instances). Maybe you'll just get an empty string, maybe null. According to some brief testing in the Go playground, it would seem you may get <no value>. If you don't want that, you can play around with Go template's {{if }} action.

    Something like

    {{ if .GroupLabels.group }}{{ .GroupLabels.group }}{{ end }}
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?