1

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

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

4

3 回答 3

2

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

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

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

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

于 2016-03-19T22:21:46.323 回答
1

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

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

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

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

于 2016-03-18T15:09:06.723 回答
0

添加一个新答案,因为我确实实施了我在第一个答案中提出的代理:

最简单的方法是在这里下载并使用我实现并添加到我的博客的代理:hirt.se/blog/?p=689

于 2016-04-11T16:55:20.070 回答