Какой язык использует Bosun?

Из их краткого руководства я получил следующий пример

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
}

Я предполагаю, что это перли DSL. Как называется этот язык?

1 ответ

Решение

Мы просто называем это "языком выражения Босуна" и задокументированы на сайте http://bosun.org/expressions.html. Как вы сказали, это пользовательский DSL. В настоящее время имеет следующие качества

  • Это не обязательно. Самому языку на самом деле не хватает истинных переменных, $foo - это просто замена текста.
  • Это функционально
  • Он хорошо типизирован (функции принимают и возвращают определенные типы. Поскольку DSL предназначен для оповещения, мы считаем, что важно перехватить как можно больше ошибок во время разбора.)

Реализация внутри парсера и лексера основывается на том, что текст / шаблон. Функция map, которая принимает выражение для оператора для каждого элемента X в серии для всей серии Series, находится в разработке, поэтому язык все еще находится в разработке. Но я не думаю, что мы изменим основные варианты дизайна, упомянутые выше (за исключением, возможно, фактического использования реальных переменных вместо замены текста в какой-то момент).

Другие вопросы по тегам