【问题标题】:console client for jstatd/visualgcjstatd/visualgc 的控制台客户端
【发布时间】:2013-05-22 20:45:06
【问题描述】:

VisualVM/VisualGC 实时提供了很多有用的与 GC 相关的指标,但我想要一个命令行工具,它可以通过 jstatd 连接到远程应用程序并在 CSV 或 XML 中记录理想情况下完全相同的指标VisualGC 提供。自己写应该没问题,但是乍一看我找不到visualvm/jstatd使用什么协议。

据我了解,VisualGC 不是开源的:https://stackoverflow.com/questions/11096466/where-is-the-source-code-repository-for-visualgc,但有其他开源工具吗?使用的协议有什么线索吗?

我设法通过 RMI 连接到 jstatd(默认端口 1099,JStatRemoteHost 是 rmi 名称),可以连接到特定的 VM - 但http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/sun/jvmstat/monitor/remote/RemoteVm.java#RemoteVm 是一个非常低级的 jstatd 接口。

我已经查看了 https://svn.java.net/svn/visualvm~svn/trunk 的 VisualVM 源代码 并且刚刚开始查看 5mb 代码库,但它既不使用 RemoteHost 也不使用 RemoteVm RMI 类。

谢谢。

【问题讨论】:

    标签: java visualvm jstatd


    【解决方案1】:

    首先我查看了 VisualVM (~5mb) 的源代码,创建了一个命令行工具,在 JvmstatModelFactory 上注册 JvmstatModelProvider,获取一个应用程序,创建 JvmJvmstatModel 并提取所有 MonitoredValues - 它通过 jstatd 连接到远程应用程序并打印更改格式 timeMillis,name,value 的值 1369270235646,sun.gc.generation.2.space.0.capacity,16777216 1369270236666,sun.os.hrt.ticks,2511500491 1369270237581,sun.gc.generation.0.space.0.used,641408 1369270237582,sun.os.hrt.ticks,2512502544

    一小时后,我为我的任务 https://code.google.com/p/hatter-source-code/wiki/hotstat 找到了正确的命令行工具,它不使用 jstatd - 但很好,我仍然可以通过 ssh 远程运行它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-02
      • 1970-01-01
      • 1970-01-01
      • 2020-02-12
      相关资源
      最近更新 更多