使用Riemann报告CPU一如既往

iGE*_*GEL 6 riemann

我们正在使用Riemann和Riemann-health来监控我们的服务器.但是现在我得到了很多CPU严重警告,因为CPU在很短的时间内达到了顶峰 - 这是我认为我甚至不需要知道的.根据我的理解,持续的高CPU使用率将增加负载平均值,这也将被报告并且听起来更有用.

我不想禁用报告CPU,只是认为每个级别都可以.如果可能的话,我想更改Riemann服务器上的事件,所以我不必更改所有服务器.

在这里我们的黎曼配置:https://gist.github.com/iGEL/e352764a8c559440c851

mru*_*cci 0

我没有完整的解决方案,但理论上您应该能够通过函数过滤 CPU 相关事件,并使用以下方法where无条件地将状态设置为“ok” :with

(streams
    (where (service #"cpu")
        (with :state "ok" index)))
Run Code Online (Sandbox Code Playgroud)

另一方面,依赖平均负载并不是一个好主意,因为高平均负载也可能意味着大量进程正在等待 IO

您可以仅在 CPU 状态不正常超过 X 时间单位时才发出警报,而不是使 CPU 警报静音。更好的是,针对代表影响客户端的问题的更高级别指标发出警报,例如响应延迟、http 状态代码、错误级别等。毕竟,如果 CPU 很高,但对系统没有影响,则可能会发出警报只是噪音。