要理解 bosun 是如何生成告警,或者仅仅是利用他的指标查询能力,配合如 grafana 这样的监控前端来展示指标,那么就必须要了解这门语言。...count/change
count 表示查询返回的 Results 长度,而 change 表示变化, change("avg:rate:net.bytes", "60m", "") = avg(...q("avg:rate:net.bytes", "60m", "")) * 60 * 60
计算
bosun 的计算方式可能是最让人困扰的一部分,要理解这个,首先要结合第一节讲的概念理解几个核心:
查询大部分的返回结果是一组...,即对查询结果应用函数的时候,是对每个 group 按个应用函数,比如 avg(q("avg:rate:net.bytes{host=*}", "60m", "")) 查询返回的结果有 {host=a}...ds-avg:os.disk.fs.space_free{disk=*,host=backup}", "$start", ""), 会在用户选择较大时间范围的时候保持查询效率.