JMX 中的 MBean 嵌套对象名称
MBean nested object name in JMX
我注意到一些 MBean 有嵌套键;我如何进行查询以获取该密钥?
下图为示例:
通常,MBean 查询是这样的:"org.apache.cassandra.metrics:type=CQL,name=RegularStatementsExecuted"
如何将附加文件夹添加到该查询?我试过以下方法:
"org.apache.cassandra.metrics:type=Cache,CounterCache,name=Capacity"
"org.apache.cassandra.metrics:type=Cache.CounterCache,name=Capacity"
"org.apache.cassandra.metrics:type=Cache,type=CounterCache,name=Capacity"
有什么想法吗?
我查看了 Java Management Extensions (JMX) Best Practices,它没有提到任何关于嵌套键的内容。
当我查看 jconsole
:
时,我注意到我可以将 scope 添加到 属性 列表中
所以,我用的是:
"org.apache.cassandra.metrics:type=Cache,scope=CounterCache,name=HitRate"
很高兴知道它没有在任何地方记录...
使用 JConsole 获取 tomcat 的所有会话 ID,可以在 :-
找到
Catalina > Manager > localhost > /##07 ( > Operations > listSessionIds )
获取/##07的MBean对象名只需在JConsole上点击即可显示名称。(如下图)
Java 获取所有会话 ID 的代码:
JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:9999/jmxrmi");
JMXConnector jmxConn = JMXConnectorFactory.connect(url, null);
// Connecting to the MBeanServer
MBeanServerConnection mbsConn = jmxConn.getMBeanServerConnection();
Object sessionIds = mbsConn.invoke(new ObjectName("Catalina:type=Manager,host=localhost,context=/##07"), "listSessionIds", null, null);
System.out.println(sessionIds.toString());
//close jmx connection
jmxConn.close();
我注意到一些 MBean 有嵌套键;我如何进行查询以获取该密钥?
下图为示例:
通常,MBean 查询是这样的:"org.apache.cassandra.metrics:type=CQL,name=RegularStatementsExecuted"
如何将附加文件夹添加到该查询?我试过以下方法:
"org.apache.cassandra.metrics:type=Cache,CounterCache,name=Capacity"
"org.apache.cassandra.metrics:type=Cache.CounterCache,name=Capacity"
"org.apache.cassandra.metrics:type=Cache,type=CounterCache,name=Capacity"
有什么想法吗?
我查看了 Java Management Extensions (JMX) Best Practices,它没有提到任何关于嵌套键的内容。
当我查看 jconsole
:
所以,我用的是:
"org.apache.cassandra.metrics:type=Cache,scope=CounterCache,name=HitRate"
很高兴知道它没有在任何地方记录...
使用 JConsole 获取 tomcat 的所有会话 ID,可以在 :-
找到Catalina > Manager > localhost > /##07 ( > Operations > listSessionIds )
获取/##07的MBean对象名只需在JConsole上点击即可显示名称。(如下图)
Java 获取所有会话 ID 的代码:
JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:9999/jmxrmi");
JMXConnector jmxConn = JMXConnectorFactory.connect(url, null);
// Connecting to the MBeanServer
MBeanServerConnection mbsConn = jmxConn.getMBeanServerConnection();
Object sessionIds = mbsConn.invoke(new ObjectName("Catalina:type=Manager,host=localhost,context=/##07"), "listSessionIds", null, null);
System.out.println(sessionIds.toString());
//close jmx connection
jmxConn.close();