Я очень новичок в clojure и мне нужно настроить конфигурацию riemann, чтобы было легко редактировать/добавлять новые условия. То, что мы имеем сейчас:Нужна помощь в оптимизации заявления clojure
(defn tell-ops
([to]
(by [:service]
(throttle 3 360
(rollup 2 360
slackerDefault
(email to)))))
([to channel]
(by [:service]
(throttle 3 360
(rollup 2 360
(slacker channel)
(email to))))))
............
(where (state "FATAL")
(where (service #"^Serv1")
(tell-ops "[email protected]" "#dev-ops1"))
(where (service #"^Serv2")
(tell-ops "[email protected]"))
....
)
кроме того, в нем отсутствует заявление по умолчанию, что-то вроде , если ничего не соответствует, скажите-OPS «[email protected]»
Я думаю, что нужно что-то вроде верхнего уровня struct
(def services
[{:regex #"^serv1" :mail "[email protected]" :channel "#serv1"}
{:regex #"serv2$" :mail "[email protected]"} ])
, так что было бы легко добавить новые. Но я не знаю, как петля throuth этого массива с учетом отсутствия: канал во втором случае и сделать «вызов по умолчанию», если ни один из регулярных выражений не соответствует
Заранее спасибо
Спасибо, я дам ему попробовать и опубликовать результаты здесь! –