zoukankan      html  css  js  c++  java
  • 关于计划任务的一个小需求-优化篇

    关于计划任务的一个小需求-优化

    一、优化篇

    (下篇写个问题篇,我也不知道怎么解决。。。是完成这个需求过程中遇到的)

     优化主要体现在:报警内容输出,grafana展示图

    1、钉钉报警输出内容优化

    原报警输出如下:

    优化主要包含以下几点:
    (1)主题添加链接到报警页面
    (2)简化报警内容,去掉干扰信息(summary,alertname这些冒号:左边的文字)
    (3)优化事件信息,报警信息输出主机名,不是ip+端口(process-exporter的监听端口)
    (4)颜色标记并输出状态,划分告警中/已处理
     

    改良版本如下图:

         

    优化具体实现(大家对着上面的优化点去看)

    (1)(2)(4)点都需要在dingtalk读取的go模板改,我直接贴代码

    (1)超链接:   {{ define "__alertmanagerURL" }} http://alertmanager机器的公网ip:9090/alerts{{ end }}

    (2)去掉模板上的    {{ .Name }}:

    (3)粗体颜色标记对应:   <font color=#008000 size=3 face="黑体"><strong>状态:已解决</strong></font>

     1 {{ define "__subject" }}[告警中] {{ .GroupLabels.SortedPairs.Values | join " " }} {{ if gt (len .CommonLabels) (len .GroupLabels) }}({{ with .CommonLabels.Remove .GroupLabels.Names }}{{ .Values | join " " }}{{ end }}){{ end }}{{ end }}
     2 
     3 {{ define "__alertmanagerURL" }}  http://alertmanager机器的公网ip:9090/alerts{{ end }}
     4 
     5 {{ define "__text_alert_list" }}{{ range . }}
     6 **Labels**
     7 {{ range .Labels.SortedPairs }}> - {{ .Name }}: {{ .Value | markdown | html }}
     8 {{ end }}
     9 **Annotations**
    10 {{ range .Annotations.SortedPairs }}> - {{ .Name }}: {{ .Value | markdown | html }}
    11 {{ end }}
    12 **Source:** [{{ .GeneratorURL }}]({{ .GeneratorURL }})
    13 {{ end }}{{ end }}
    14 
    15 {{ define "default.__text_alert_list" }}{{ range . }}
    16 ---
    17 <font color=#FF0000 size=3 face="黑体"><strong>状态: 告警中</strong></font>
    18 
    19 **告警主机:  {{ .Labels.nodename }}**
    20 
    21 **告警级别:** {{ .Labels.severity | upper }} 
    22 
    23 **告警触发时间:** {{ dateInZone "2006-01-02 15:04:05" (.StartsAt) "Asia/Shanghai" }}
    24 
    25 **事件信息:** 
    26 {{ range .Annotations.SortedPairs }}> -  {{ .Value | markdown | html }}
    27 
    28 
    29 {{ end }}
    30 
    31 {{ end }}
    32 {{ end }}
    33 {{ define "default.__text_alertresovle_list" }}{{ range . }}
    34 ---
    35 
    36 <font color=#008000 size=3 face="黑体"><strong>状态:已解决</strong></font>
    37 
    38 **告警主机:  {{ .Labels.nodename }}** 
    39 
    40 **告警级别:** {{ .Labels.severity | upper }} 
    41 
    42 **告警触发时间:** {{ dateInZone "2006-01-02 15:04:05" (.StartsAt) "Asia/Shanghai" }}
    43 
    44 **告警结束时间:** {{ dateInZone "2006-01-02 15:04:05" (.EndsAt) "Asia/Shanghai" }}
    45 
    46 **事件信息:**
    47 {{ range .Annotations.SortedPairs }}> -  {{ .Value | markdown | html }}
    48 
    49 {{ end }}
    50 
    51 {{ end }}
    52 {{ end }}
    53 
    54 {{/* Default */}}
    55 {{ define "default.title" }}{{ template "__subject" . }}{{ end }}
    56 {{ define "default.content" }}#### [ 主题 ] **[{{ index .GroupLabels "alertname" }}]({{ template "__alertmanagerURL" . }})**
    57 {{ if gt (len .Alerts.Firing) 0 -}}
    58 {{ template "default.__text_alert_list" .Alerts.Firing }}
    59 
    60 
    61 {{- end }}
    62 
    63 {{ if gt (len .Alerts.Resolved) 0 -}}
    64 {{ template "default.__text_alertresovle_list" .Alerts.Resolved }}
    65 
    66 
    67 {{- end }}
    68 {{- end }}
    69 
    70 {{/* Legacy */}}
    71 {{ define "legacy.title" }}{{ template "__subject" . }}{{ end }}
    72 {{ define "legacy.content" }}#### [{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}] **[{{ index .GroupLabels "alertname" }}]({{ template "__alertmanagerURL" . }})**
    73 {{ template "__text_alert_list" .Alerts.Firing }}
    74 {{- end }}
    75 
    76 {{/* Following names for compatibility */}}
    77 {{ define "ding.link.title" }}{{ template "default.title" . }}{{ end }}
    78 {{ define "ding.link.content" }}{{ template "default.content" . }}{{ end }}

    其中报警信息输出主机名需要在prometheus定义labels变量,然后报警规则上引用这个变量,如下:

     

    2、grafana展示图优化

    原显示图:

    优化主要包含以下几点:

    (1)改成gauge图,一目了然知道当前进程状态(颜色区分healthy和unhealthy)

    (2)添加table图,展示30s内最近3条数据,表格头文字表示

    优化具体实现

    (1)颜色区分健康状态

     用映射的range范围去设置

    (2)table图显示最近3条探测数据:

    表格头文字表示

    transform设置Organize fields,写上具体代表的中文表示

     时间按降序排序,点击时间字样,然后应用保存这个表格,下次打开就一直是降序排序了

  • 相关阅读:
    九度OJ 1010 A+B
    九度OJ 1052 找x
    oracle数据库创建备份与恢复 脚本
    在select标签中添加a标签
    如何在select标签中使用a标签跳转页面
    网站访问不了
    js实现input的赋值
    PHP如何实现百万级数据导出
    互联网产品需求管理杂思2需求收集,互联网营销 狼人:
    做网站用UTF8还是GB2312?,互联网营销 狼人:
  • 原文地址:https://www.cnblogs.com/windysai/p/14458702.html
Copyright © 2011-2022 走看看