当我通过 Kapacitor 发送警报时,通过直接在 TICKscript 中定义一个或通过在 Chronograf 中配置一个,我可以使用模板语法指定一条消息。但是,此语法在https://docs.influxdata.com/kapacitor/v1.3/nodes/alert_node/#message中没有详细记录;相反,文档只提供了一些示例。
这些模板甚至是用什么语言编写的?语言有名字吗?任何文件?它的语法是如何工作的,除了文档中列出的变量中的简单模板之外,我还能用它做什么?
当我通过 Kapacitor 发送警报时,通过直接在 TICKscript 中定义一个或通过在 Chronograf 中配置一个,我可以使用模板语法指定一条消息。但是,此语法在https://docs.influxdata.com/kapacitor/v1.3/nodes/alert_node/#message中没有详细记录;相反,文档只提供了一些示例。
这些模板甚至是用什么语言编写的?语言有名字吗?任何文件?它的语法是如何工作的,除了文档中列出的变量中的简单模板之外,我还能用它做什么?
好吧,由于 Kapacitor 是用 Golang 编写的,因此可以安全地假设这是 Golang 模板,而且它们确实是,正如我们在 sourcecode 中看到的那样。
除了嵌入变量之外,您还能做什么?好吧,很多东西,检查文档:https ://golang.org/pkg/text/template/
例如,遍历标签:
{{ range $tag_key, $tag_value := .Tags}} {{$tag_key}}={{$tag_value}} {{end}}