Package kafka.perf.jmx

Source Code of kafka.perf.jmx.BrokerJmxClient

package kafka.perf.jmx;

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

import kafka.network.SocketServerStatsMBean;

public class BrokerJmxClient
{
  private final String host;
  private final int port;
  private final long time;
  public BrokerJmxClient(String host, int port,
                         long time)
  {
    this.host = host;
    this.port = port;
    this.time = time;
  }
 
  public MBeanServerConnection getMbeanConnection() throws Exception
  {
    JMXServiceURL url =
      new JMXServiceURL("service:jmx:rmi:///jndi/rmi://"+ host+ ":" + port + "/jmxrmi");
    JMXConnector jmxc = JMXConnectorFactory.connect(url, null);
    MBeanServerConnection mbsc = jmxc.getMBeanServerConnection();
    return mbsc;
  }
 
  public SocketServerStatsMBean createSocketMbean() throws Exception
  {
    ObjectName mbeanName = new ObjectName("kafka:type=kafka.SocketServerStats");
    SocketServerStatsMBean stats = JMX.newMBeanProxy(getMbeanConnection(), mbeanName, SocketServerStatsMBean.class, true);
    return stats;
  }
 
  public String getBrokerStats() throws Exception
  {
    StringBuffer buf = new StringBuffer();
    SocketServerStatsMBean stats = createSocketMbean();
    buf.append(stats.getBytesWrittenPerSecond() / (1024 *1024+ "," +  stats.getBytesReadPerSecond()  / (1024 *1024) );
    return buf.toString();
  }
}
TOP

Related Classes of kafka.perf.jmx.BrokerJmxClient

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.