簡體   English   中英

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 管理擴展 (JMX) 最佳實踐,它沒有提到任何關於嵌套鍵的內容。

我注意到當我查看jconsole時,我可以將范圍添加到屬性列表中:

所以,我使用的是:

"org.apache.cassandra.metrics:type=Cache,scope=CounterCache,name=HitRate"

很高興知道它沒有記錄在任何地方......

要使用JConsole獲取 tomcat 的所有會話 ID,可以在以下位置找到:-

Catalina > Manager > localhost > /##07 ( > Operations > listSessionIds )

要獲取/##07 的MBean 對象名稱,只需在JConsole 上單擊它,它就會顯示名稱。(如下所示)

在此處輸入圖片說明

獲取所有會話 ID 的 Java 代碼:

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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM