Java任务控制-记录mbean值
是否可以使用飞行记录器记录mbeans值?在mbean模式下监视服务器时,我会绘制Java任务控制-记录mbean值,java,jmc,java-mission-control,Java,Jmc,Java Mission Control,是否可以使用飞行记录器记录mbeans值?在mbean模式下监视服务器时,我会绘制java.lang.management.OperatingSystemMXBean.getSystemLoadAverage(),效果非常好。我还想在飞行记录转储中获取该值 在飞行记录向导中,我只能选择事件,没有可用的mbeans选项。有什么方法可以做到这一点吗?这取决于您感兴趣的OperatingSystemMXBean中的哪个属性,其中许多属性已经作为JFR事件可用,例如ProcessCpuLoad 我相信一
java.lang.management.OperatingSystemMXBean.getSystemLoadAverage()
,效果非常好。我还想在飞行记录转储中获取该值
在飞行记录向导中,我只能选择事件,没有可用的mbeans选项。有什么方法可以做到这一点吗?这取决于您感兴趣的OperatingSystemMXBean中的哪个属性,其中许多属性已经作为JFR事件可用,例如ProcessCpuLoad 我相信一些以操作系统为中心的价值观,比如交换空间,目前没有相应的JFR事件。它们可能在将来被添加 我们通常不会将MBean中的数据记录到JFR中,我认为这也不在任何路线图中
可以跟踪mbean数据并保存它(称为“JMX数据持久性”或“历史数据”,具体取决于您的JMC版本),但我猜这不是您想要的;尽管您必须依赖不受支持的API来创建JFR事件: 例如,您可以创建一个Java代理,重复获取感兴趣的值,并将它们记录为飞行记录器事件
如果你愿意,我可以创建这样一个代理。我会写一篇很好的博客,所以我不会介意 添加一个新答案,因为我确实实现了我在第一个答案中提出的代理: 最简单的方法是下载并使用我在此处实现并添加到我的博客中的代理:
hirt.se/blog/?p=689当然!那太棒了。我自己也会试试的。谢谢你有用的回复。“新”JFR定制事件API的预计发布日期是什么?JDK 9。Oracle的政策规定,我添加了一条免责声明,声明任何内容都可能在未经通知的情况下更改