0

JConsole で MBean にアクセスでき、com.netflix.servo> HystrixCommand> countSuccess> (実際のコマンドとその属性) のように表示されます。

これらのオブジェクトと値 (countSuccess、countFailure など) を照会する方法の例が見つかりませんでした。

私が最も近かったのObjectName o = new ObjectName("com.netflix.servo:name=countSuccess,instance=T6JmxStatCommand,type=HystrixCommand");https://github.com/n0rad/hands-on-hystrix/blob/master/src/test/java/fr/n0rad/hands/on/hystrix/t6/T6JmxStatMain.javaですが、どうやらうまくいきません。

mbeans は、次のコードを介して登録されました。HystrixPlugins.getInstance().registerMetricsPublisher(HystrixServoMetricsPublisher.getInstance());

4

1 に答える 1

0

照会したオブジェクト名に問題がないことがわかりました。実際、これは JConsole にあるものと同じです。スクリーンショットの右側に完全な構文を示します。 ここに画像の説明を入力

さらに、いくつかのシステム プロパティを Eclipse 実行構成に追加する必要がありました。 -Dcom.sun.management.jmxremote.rmi.port=8700 -Dcom.sun.management.jmxremote.port=8600 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

次に、ポート 8600 を使用して接続できます。コードでは:

package com.awgtek.miscpocs.lognfetch.client;

import javax.management.MBeanServerConnection;
import javax.management.ObjectName;
import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;
import javax.management.remote.JMXServiceURL;

public class TestJMXConn {

    public static void main(String[] args) throws Exception {
      JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:8600/jmxrmi");
      JMXConnector connect = JMXConnectorFactory.connect(url);
      MBeanServerConnection mbsc = connect.getMBeanServerConnection();
     // ObjectName o = new ObjectName("com.netflix.servo:name=countSuccess,type=HystrixCommand,instance=LogAndFetchRestServicePostCommand");
      ObjectName o = new ObjectName("com.netflix.servo:name=countSuccess,type=HystrixCommand,instance=LogAndFetchRestServiceGetCommand");
      Object value = mbsc.getAttribute(o, "value");
      System.out.println("the value: " + value);
      connect.close();


    }

}
于 2016-08-27T14:29:42.493 に答える