bosun使用什么语言?

What language is used by bosun?

从他们的 quickstart guide 我得到了以下示例

alert cpu.is.too.high {
    template = test
    $metric = q("sum:rate{counter,,1}:os.cpu{host=your-system-here}", "1h", "")
    $avgcpu = avg($metric)
    crit = $avgcpu > 80
    warn = $avgcpu > 60
}

我猜这是一个 perlish DSL。这种语言的名称是什么?

我们称它为 "Bosun's expression language" 并记录在 http://bosun.org/expressions.html。正如您所说,它是一个自定义 DSL。它目前具有以下品质

  • 这不是必须的。该语言本身实际上缺少真正的变量,“$foo”只是文本替换
  • 功能正常
  • 它的类型很好(函数接受和 return 特定类型。由于 DSL 用于警报,我们认为在解析时捕获尽可能多的错误很重要。)

解析器和词法分析器的核心实现是基于 text/template 的核心。一个 map 函数在整个 seriesSet 的系列中的每个 X 项上采用表达式来运算符正在开发中,因此该语言仍在开发中。但我不认为我们会改变上面提到的基础设计选择(除非在某些时候实际使用真实变量而不是文本替换。)