Bosun 具有可选图形的通用模板
示例
通常,在首次创建新警报时使用通用模板会更快,而仅在需要显示更多信息时才专门化模板。下面的模板将显示带有数字值,自定义格式和描述字符串的主题,然后显示具有最多两个图形的主体。如果未指定图形变量,它将列出警报中使用的计算。通用模板还使用警报的名称来生成主题(用空格替换点),并在使用变量防止错误之前检查变量是否存在。
#See Embedded Templates and CSS Styles example for header template template header { ... } template computation { body = ` <p><strong>Computation</strong> <table> {{range .Computations}} <tr><td><a href="{{$.Expr .Text}}">{{.Text}}</a></td><td>{{.Value}}</td></tr> {{end}} </table></p>` } template generic_template { subject = {{.Last.Status}}: {{replace .Alert.Name "." " " -1}}: {{if .Alert.Vars.value}}{{if .Alert.Vars.value_format}}{{.Eval .Alert.Vars.value | printf .Alert.Vars.value_format}}{{else}}{{.Eval .Alert.Vars.value | printf "%.1f"}}{{end}}{{end}}{{if .Alert.Vars.value_string}}{{.Alert.Vars.value_string}}{{end}}{{if .Group.host}} on {{.Group.host}}{{end}} body = `{{template "header" .}} {{if or .Alert.Vars.generic_graph .Alert.Vars.generic_graph_all}} <strong>Graph</strong> {{if and .Alert.Vars.graph_unit .Alert.Vars.generic_graph}} <div>{{.Graph .Alert.Vars.generic_graph .Alert.Vars.graph_unit}}</div> {{else if .Alert.Vars.generic_graph}} <div>{{.Graph .Alert.Vars.generic_graph}}</div> {{end}} {{if and .Alert.Vars.graph_unit2 .Alert.Vars.generic_graph2}} <div>{{.Graph .Alert.Vars.generic_graph2 .Alert.Vars.graph_unit2}}</div> {{else if .Alert.Vars.generic_graph2}} <div>{{.Graph .Alert.Vars.generic_graph2}}</div> {{end}} {{if and .Alert.Vars.generic_graph_all .Alert.Vars.graph_unit}} <div>{{.GraphAll .Alert.Vars.generic_graph_all .Alert.Vars.graph_unit}}</div> {{else if .Alert.Vars.generic_graph_all}} <div>{{.GraphAll .Alert.Vars.generic_graph_all}}</div> {{end}} {{if and .Alert.Vars.generic_graph_all2 .Alert.Vars.graph_unit2}} <div>{{.GraphAll .Alert.Vars.generic_graph_all2 .Alert.Vars.graph_unit2}}</div> {{else if .Alert.Vars.generic_graph_all2}} <div>{{.GraphAll .Alert.Vars.generic_graph_all2}}</div> {{end}} {{else}} {{template "computation" .}} {{end}}` } alert puppet.last.run { template = generic_template $timethreshold = 60 $timegraph = 24h $notes = Checks if puppet has not run in at least ${timethreshold} minutes. Doesn't include hosts which have puppet disabled. $generic_graph = q("sum:300s-max:puppet.last_run{host=*}", "$timegraph", "") / 60 $graph_unit = Minutes since Last Puppet Run $generic_graph2 = q("sum:300s-max:puppet.disabled{host=*}", "$timegraph", "") $graph_unit2 = Puppet Disabled=1 Enabled=0 $value = last(q("sum:puppet.last_run{host=*}", "6h", "")) / 60 $value_format = It has been %.0f $value_string = ` minutes since last run` $disabled = max(q("sum:puppet.disabled{host=*}", "60m", "")) warn = ($value > $timethreshold) && ! $disabled warnNotification = default runEvery = 15 }
它将产生一个主题,例如“警告:人偶上次运行:自上次在co-lb04上运行以来已有62分钟”,并包括该主机的last_run和禁用的图表。如果要为查询绘制所有结果的图形,而不仅仅是匹配的标记集,可以使用$generic_graph_all和$generic_graph_all2作为变量名。