发表于 2022-03-16  更新于 2023-03-03

因 grafana 告警信息太多无用数据,容易干扰查看
例如使用 企业微信告警消息如下

太多无用Labels 例如 endpoint,job,pod,service
还有Value 字段太占空间,Source, Silence 字段,因太长且无用
所以修改模版来精简告警消息

方式一: 文本类告警

例如企业微信类的文本告警,根据官网文档知道默认模版来自 default_template.go
主要定义了2个模版,一个是__text_alert_list ,另一个default.message 使用了模版__text_alert_list
我们只需要根据__text_alert_list 模版修改为自定义模版即可

  1. 创建一个消息告警模版
    打开grafana 页面,点击左侧 alerting 图标 ,点击 Contact points 菜单 ,点击New template 按钮
    Template name 填写 text_alert_list
    Content 内 复制如下原始模版

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    {{ define "__text_alert_list" }}{{ range . }}
    Value: {{ or .ValueString "[no value]" }}
    Labels:
    {{ range .Labels.SortedPairs }} - {{ .Name }} = {{ .Value }}
    {{ end }}Annotations:
    {{ range .Annotations.SortedPairs }} - {{ .Name }} = {{ .Value }}
    {{ end }}{{ if gt (len .GeneratorURL) 0 }}Source: {{ .GeneratorURL }}
    {{ end }}{{ if gt (len .SilenceURL) 0 }}Silence: {{ .SilenceURL }}
    {{ end }}{{ if gt (len .DashboardURL) 0 }}Dashboard: {{ .DashboardURL }}
    {{ end }}{{ if gt (len .PanelURL) 0 }}Panel: {{ .PanelURL }}
    {{ end }}{{ end }}{{ end }}
     

    修改__text_alert_list 为 text_alert_list
    删除 自己认为多余的信息,例如Value 和Labels ,记得需要成对删除,否则可能导致模版不可用
    如下是我修改的模版

    1
    2
    3
    4
    5
    6
    {{ define "text_alert_list" }}{{ range . }}
    Labels:
    {{ range .Labels.SortedPairs }} - {{ .Name }} = {{ .Value }}
    {{ end }}Annotations:
    {{ range .Annotations.SortedPairs }} - {{ .Name }} = {{ .Value }}
    {{ end }}{{ end }}{{ end }}
     
  2. 新建一个模版支持整个通知信息
    Template name 填写 message
    Content 填写
    1
    2
    3
    4
    5
    {{ define "message" }}{{ if gt (len .Alerts.Firing) 0 }}**触发**
    {{ template "text_alert_list" .Alerts.Firing }}{{ if gt (len .Alerts.Resolved) 0 }}

    {{ end }}{{ end }}{{ if gt (len .Alerts.Resolved) 0 }}**已解决**
    {{ template "text_alert_list" .Alerts.Resolved }}{{ end }}{{ end }}
     

    最终如下

  3. 修改企业微信的 contact point
    在Optional WeCom settings 下 的 Message 输入框内填写
    1
    {{ template "message" . }}
     

    这里的message 对应上一步的define "message"

  4. 完成,等待收到告警消息
    效果图

    方式二: 邮箱告警

    如果使用邮箱告警的情况下修改 contact point 的 Message 使用自定义邮箱模版会导致界面太丑,没有样式的问题

在官网文档内 HTML in Message Templates 修改邮箱告警模版需要修改ng_alert_notification.html文件

编辑public/emails/ng_alert_notification.html 文件
如果要删除Value字段,则删除213-217行
如果要删除Labels字段,则删除227-L234行
如果是本地直接安装修改文件重启即可
如果是docker or k8s 安装,需要将修改后的文件挂载到容器内
2. 完成,等待收到告警消息
效果图

[转帖]grafana自定义告警模版的更多相关文章

  1. 实用干货丨如何使用Prometheus配置自定义告警规则

    前 言 Prometheus是一个用于监控和告警的开源系统.一开始由Soundcloud开发,后来在2016年,它迁移到CNCF并且称为Kubernetes之后最流行的项目之一.从整个Linux服务器 ...

  2. sharepoint 2010 使用自定义列表模版创建列表(2)

    前面用的方法是通过界面上操作,根据自定义模版,创建的列表.sharepoint 2010 使用自定义列表模版创建列表(1) 这里顺便记录多另一种方法,通过程序来创建. ---------------- ...

  3. Django模版语言的复用 1. include标签--模版导入 2.inclusion_tag自定义标签--模版导入 3.母版

    include标签--模版导入 ''' 前提:项目中,往往会出现多个页面拥有一个或几个相同的页面版块,或是一个页面多个页面版块是相同的 如何运用:可以将多个样式标签的集合进行封装,对外提供版块的名字( ...

  4. zabbix之自定义告警

    zabbix支持内置的告警类型.email,sms,等 有时候需要自定义类型的. [其他微信,钉钉都差不多方式,只是脚本不一样] 自定义告警类型[自定义邮件] 编写自定义脚本,并测试成功. [脚本需要 ...

  5. DocView 现在支持自定义 Markdown 模版了!

    前言 有小伙伴反馈说希望可以自定义 Markdown 模版,这样就可以导出自己想要的样式了!这个功能可以有,毕竟大家不可能都生成一模一样的文档.现在来一起看看如何实现自定义模版吧! 设置模版 Sett ...

  6. kubernetes(k8s) Prometheus+grafana监控告警安装部署

    主机数据收集 主机数据的采集是集群监控的基础:外部模块收集各个主机采集到的数据分析就能对整个集群完成监控和告警等功能.一般主机数据采集和对外提供数据使用cAdvisor 和node-exporter等 ...

  7. 图文详解Prometheus监控+Grafana+Alertmanager告警安装使用

    一:前言 一个服务上线了后,你想知道这个服务是否可用,需要监控.假如线上出故障了,你要先于顾客感知错误,你需要监控.还有对数据库,服务器的监控,等等各层面的监控. 近年来,微服务架构的流行,服务数越来 ...

  8. sharepoint 2010 使用自定义列表模版创建列表(1)

    我们在使用sharepoint的过程中,发现一个比较好用的功能,就是“将此列表另存为模版”(save list as template),这个功能的作用是,创建一个和当前列表或者文档库一模一样的配置, ...

  9. OneAPM大讲堂 | 监控数据的可视化分析神器 Grafana 的告警实践

    文章系国内领先的 ITOM 管理平台供应商 OneAPM 编译呈现. 概览 Grafana 是一个开源的监控数据分析和可视化套件.最常用于对基础设施和应用数据分析的时间序列数据进行可视化分析,也可以用 ...

  10. ASP.NET MVC3 自定义编辑模版

    在View中显示Model中的各字段,默认是使用htmlhelper的EditorFor方法,在界面上显示的文本框.而使用EditorTemplates可在View上为特定字段显示自定义的界面.比如购 ...

随机推荐

  1. 火爆全网的Log4j 漏洞复现GetShell

    目录: 一.搭建环境 1. 首先拉一个docker镜像 2. 然后启动环境 二.获取shell 首先,试验一下DNSLog 1. 准备JNDI注入工具 下载 进入目录打包成jar包 2. 利用 生成p ...

  2. ZincSearch轻量级全文搜索引擎入门到

    ZincSearch轻量级全文搜索引擎入门到 Zinc是一个用于对文档进行全文搜索的搜索引擎.它是开源的,内置在 Go 中.Zinc不是从头开始构建索引引擎,而是构建在 bluge 之上,这是一个出色 ...

  3. Eclipse部署虚拟项目目录

    目录 1. 问题 2. 方案 3. 参考 1. 问题 对于一些附带了大量本地资源的项目(例如,用户上传的文件,地图切片或者三维模型等),在Eclipse中部署调试是我一直头痛的问题.因为Eclipse ...

  4. 记录:excel导入导出js-xlsx,处理合并

    效果 前情提要 后端传excel坐标数据,前端自己处理模板,找资料后,选择直接载入xlsx方式. 准备工作 npm i xlsx import * as XLSX from 'xlsx' 方法一:数据 ...

  5. 当GaussDB遇上了毕昇编译器

    摘要:当应用软件及硬件确定后,编译器对应用的自动优化将成为应用性能的关键. 从应用优化说起 一个应用的优化通常有架构级优化.模块级优化和函数级优化,高性能作为云数据库GaussDB主打特性之一,其在这 ...

  6. 跟着B站UP主小姐姐去华为坂田基地采访扫地僧

    摘要:谁说程序员就只能写代码呢!华为扫地僧的才艺是完全可以solo出道的那种. 忍不住想要和你们分享下我9月份的快乐呀!Mark下最近完成的一件超了不起的事情!我去你们口中别人家的公司-华为啦!这次采 ...

  7. 传统到敏捷的转型中,谁更适合做Scrum Master?

    摘要:本文主要讲述的是从传统到敏捷Scrum团队转型中,对Scrum Master这一角色的分析. 本文分享自华为云社区<传统到敏捷的转型中,谁更适合做Scrum Master?>,作者: ...

  8. 实践GoF的23的设计模式:SOLID原则(下)

    摘要:本文将讲述SOLID原则中的接口隔离原则和依赖倒置原则. ​本文分享自华为云社区<实践GoF的23的设计模式:SOLID原则(下)>,作者:元闰子. 在<实践GoF的23种设计 ...

  9. webpack性能优化(1):分隔/分包/异步加载+组件与路由懒加载

    webpack ensure相信大家都听过.有人称它为异步加载,也有人说做代码切割,那这个家伙到底是用来干嘛的?其实说白了,它就是把js模块给独立导出一个.js文件的,然后使用这个模块的时候,webp ...

  10. 泛互联网行业A/B测试全解析:产品优化的创新之道

     更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群   近期,火山引擎数智平台举办了"超话数据:企业产品优化分享"的活动.火山引擎产品解决方案专 ...