jconsole如何获得他需要的所有信息?

时间:2014-11-05 16:37:48

标签: java jvm jvm-hotspot

我想建立一个系统来收集JVM的一些数据并在某些级别通知我,jconsole有这些数据,但我不知道它是如何收集这些数据的。 有人知道用java编程收集这些数据的方法吗?

1 个答案:

答案 0 :(得分:1)

the docs for JConsole中所述,它是一个符合Java Management Extensions(JMX)规范的监控工具"和#34;使用Java虚拟机的广泛工具"收集数据。

换句话说,它使用the Java Management Extensions (JMX)

JMX在JVM中提供来自各种来源的 ton 数据,并且可以由库定义新的数据源。这些是使用managed beans (JMX MBeans)进行宣传的,use a set of annotations使用一组特定的def或注释来表明它们提供数据或操作,内容和方式。

使用JMX 2.0规范,您可以may be trivial标记您的bean,从而使提供数据变得相当容易。根据您的容器,添加新的bean Tomcat。 JMX既可以作为数据源,也可以允许从控制台或其他客户端调用方法,实际上允许您在被监视的VM上执行(支持)操作。

除了C3P0之外,各种容器(例如the slew of beans the JVM provides)和库(例如memory usage)都提供了其他指标。这些揭示了诸如a pair of ports之类的东西(其中一个更受欢迎)。

JVM通过naming convention使用domain: key-property-list {{3}}公开这些bean。每个bean和属性都公开了一些相关的信息,像JConsole这样的客户端可以用它来构建可用bean的树,每个屏幕都有计数器和按钮。