Java Mission Control - 记录mbean值

时间:2016-03-18 13:56:39

标签: java jmc java-mission-control

是否可以使用Flight recorder记录mbeans值?当我在mbean模式下监视我的服务器时,我绘制了java.lang.management.OperatingSystemMXBean.getSystemLoadAverage(),效果很好。我还希望在飞行记录转储中获得此值。

在飞行记录向导中,我只能选择事件,没有可用的mbeans选项。有没有办法做到这一点?

3 个答案:

答案 0 :(得分:2)

您可以自己添加此功能;虽然您必须依赖不受支持的API来创建JFR事件:

http://hirt.se/blog/?p=444

例如,您可以创建一个重复获取感兴趣的值的Java代理,并将它们记录为航班记录器事件。

如果您愿意,我可以创建这样的代理。会写一篇不错的博文,所以我不会介意。 ;)

答案 1 :(得分:1)

这取决于您感兴趣的OperatingSystemMXBean中的哪个属性,其中一些属性已作为JFR事件提供,例如ProcessCpuLoad。

我相信一些以OS为中心的值,如交换空间,目前没有相应的JFR事件。它们可能会在将来添加。

通常将来自mbeans的数据记录到JFR中并不是我们所做的事情,我认为它也不在任何路线图中。

有可能跟踪mbean数据并将其保存(根据您的JMC版本称为“JMX数据持久性”或“历史数据”),但我猜这不是您想要的。

答案 2 :(得分:0)

自从我实施了我在第一个答案中提出的代理后添加了新答案:

最简单的方法是下载并使用我实施的代理并将其添加到我的博客中: hirt.se/blog/?p=689