标题模板
在 Bosun 模板中可以引用其他模板。对于电子邮件通知,你可能有一个标题模板,用于在所有警报中显示所需的内容。
标题模板
template header {
body = `
<style>
td, th {
padding-right: 10px;
}
</style>
<p style="font-weight: bold; text-decoration: underline;">
<a style="padding-right: 10px;" href="{{.Ack}}">Acknowledge</a>
<a style="padding-right: 10px;" href="{{.Rule}}">View Alert in Bosun's Rule Editor</a>
{{if .Group.host}}
<a style="padding-right: 10px;" href="https://status.stackexchange.com/dashboard/node?node={{.Group.host}}">View {{.Group.host}} in Opserver</a>
<a href="http://kibana.ds.stackexchange.com/app/kibana?#/discover?_g=(refreshInterval:(display:Off,pause:!f,value:0),time:(from:now-15m,mode:quick,to:now))&_a=(columns:!(_source),index:%5Blogstash-%5DYYYY.MM.DD,interval:auto,query:(query_string:(analyze_wildcard:!t,query:'logsource:{{.Group.host}}')),sort:!('@timestamp',desc))">View {{.Group.host}} in Kibana</a>
{{end}}
</p>
<table>
<tr>
<td><strong>Key: </strong></td>
<td>{{printf "%s%s" .Alert.Name .Group }}</td>
</tr>
<tr>
<td><strong>Incident: </strong></td>
<td><a href="{{.Incident}}">#{{.Last.IncidentId}}</a></td>
</tr>
</table>
<br/>
{{if .Alert.Vars.notes}}
<p><strong>Notes:</strong> {{html .Alert.Vars.notes}}</p>
{{end}}
{{if .Alert.Vars.additionalNotes}}
<p>
{{if not .Alert.Vars.notes}}
<strong>Notes:</strong>
{{end}}
{{ html .Alert.Vars.additionalNotes }}</p>
{{end}}
`
}
说明:
<style>...
:虽然电子邮件中不支持样式块,但 bosun 会处理样式块,然后将它们内联到 html 中。因此,这是包含此模板的任何模板的共享 css。.Ack
链接将你带到 Bosun 视图,你可以在其中确认警报。.Rule
链接将你带到 Bosun 的规则编辑器,设置警报的模板,规则和时间,以便你可以修改警报,或在不同时间运行警报。{{if .Group.host}}...
:.Group
是警报的标记集。所以当警告或暴击表达式有像 host = *这样的标签时,我们知道警报是指我们环境中的特定主机。因此,我们会显示一些主持特定事物的链接。- 包含警报名称和密钥,以确保至少最基本的信息在任何警报中
.Alert.Vars.notes
这包括在内,所以如果在任何警报中有人定义了它将在警报中显示的$notes
变量。鼓励人们写下解释警报目的的说明以及如何解释警报。- 如果我们想要用注释定义一个宏,然后让那个宏的实例添加到宏注释中的更多注释,那么
.Alert.Vars.additionalNotes
就是存在的。