将VisualVM图(结果)存储到数据库中

时间:2012-01-20 10:11:46

标签: java database jvm visualvm

我想知道是否可以将visualVM显示的结果(内存使用情况,GC活动,堆...)存储在数据库中,以便我们以后可以查阅它们?

如果有人有想法,或者更好地替代visualVm,​​我会感激不尽。

很多人。

2 个答案:

答案 0 :(得分:1)

所有这些指标都可以使用JMX获得。您可以编写一个监视Java程序,该程序连接到外部(目标)JVM'MBeanServer,并将选定的JMX指标转储到数据库中。

您还可以使用神奇的Jolokia库来使用几乎任何支持HTTP的语言来获取这些指标。 Jolokia本身也可以存储所选指标的历史值。

话虽这么说,你不能简单地将有趣的值转储到应用程序日志(或者可能是某些选定的文件)并离线处理它们吗?日志文件更易于维护(日志记录框架可以为您删除旧文件)和访问(存储在数据库中而不是记录到文件中)。

答案 1 :(得分:1)

我不确定“稍后咨询”是什么意思,但如果这意味着您想要通过VisualVM对收集的数据进行离线分析,则可以从受监控的应用程序创建“应用程序快照”。此应用程序快照封装了数据和图形,以及在应用程序监视期间获取的线程转储,堆转储和CPU /内存快照。