0

我正在尝试根据指标的阈值在 riemann 中(通过 pagerduty)设置警报。如果超出阈值,则应触发警报,如果指标回到阈值内,则应解决警报。

我的步骤是:1)如果违反阈值,则创建状态为“警告”的事件 2)如果未违反阈值,则创建状态为“ok”的事件

我的代码看起来像 -

(let [index (default :ttl 120 (index))]
   (streams
      index
      (where (service #"test")
         (where (>= metric 100)
            (smap (fn [e]
                    (event {:service (:service e) :metric (:metric e) 
                            :state "warning" }) 
               index))))

(我只展示了相关的代码)

我看到如果违反阈值,此代码不会创建新事件。

我不确定我是否犯了错误。任何帮助,将不胜感激。

问候,

沙迪亚

4

1 回答 1

1

听起来你有两个问题:

  • 为什么当指标大于 100 时事件没有进入索引
  • 我应该在哪里调用来创建和解决 PD 警报。

至于第一个,你的代码看起来是正确的,它应该索引事件。您可能希望在其中放置一个 :ttl,以便事件在正确的时间过期。和 :host 密钥也可以很好地衡量。一般来说,该功能看起来with更容易完成相同的事情

对于第二个问题,粗略的轮廓看起来像这样:

(let [index (default :ttl 120 (index))]
   (streams
      index
      (where (service #"test")
         (where (>= metric 100)
           (with :state "warning"
             (rollup 2 3600 (create-pd-alert-here))))
         (where (< metric 50)
           (with :start "warning"
             (resolve-pd-alert-here)))
于 2015-02-06T22:52:49.490 回答