【问题标题】:Using JMX classes to notify on events over time使用 JMX 类随着时间的推移通知事件
【发布时间】:2010-06-17 23:27:23
【问题描述】:

我一直在寻找用于监控应用程序和系统指标的 JMX(部分原因是 MBean 可以通过各种工具(例如 JConsole)访问)。看起来 JMX 包含的类对于指标超过阈值时的通知之类的事情很有用。但我不确定它们是否符合我想要在指定时间段内衡量这些的方式。

例如,假设我想在平均 CPU 负载超过 95% 超过 5 分钟时通知管理员。用 GaugeMonitor 可以做到这一点吗?从文档来看,它似乎不太适合这个,我想知道是否应该用必要的逻辑编写自己的 MBean。

一个更相关的例子是用户的登录时间在 5 分钟内超过 10 秒。略有不同的是,最近 20 次登录平均花费了 10 多秒。另一种情况是一个进程在一小时内崩溃 4 次以上。或者请求队列超过 15 5 分钟。 JMX Monitor 类对这类事情有用吗?

【问题讨论】:

    标签: monitor jmx health-monitoring


    【解决方案1】:

    在我看来,monitor mbean 类并不是特别有用,虽然您可以对它们进行足够的调整以满足您的需求,但听起来您有一些不同的需求。我建议你看看像Esper 这样的流式事件引擎。基本上,您会将常规读数注入引擎,如果您定义的条件发生,您将获得一个回调,该回调可以轻松转换为 JMX 通知。

    Esper 引擎非常高效,完全在调用者线程中运行(没有额外的线程),并且只保留它需要满足您注册以收到通知的条件的注入数据。

    【讨论】:

    • 有趣。我们最终编写了自己的小型实用程序类库,用于举办事件和观察条件。 Esper 可能有点矫枉过正,但听起来确实是一种正确的功能。
    • 乍一看,确实有点矫枉过正,但是....... A. 资源利用率(或额外开销)非常小(除非您保留大量数据,例如计算去年的平均 CPU :( ),但在某些情况下,它实际上可能会减少您需要执行的工作量,因为它可以为您计算平均值和其他聚合。另外,您可以动态添加新查询。我是一个狂热的男孩……以防万一它不明显……
    猜你喜欢
    • 1970-01-01
    • 2011-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-07
    • 1970-01-01
    相关资源
    最近更新 更多