Example usage for org.apache.cassandra.gms FailureDetector MBEAN_NAME

List of usage examples for org.apache.cassandra.gms FailureDetector MBEAN_NAME

Introduction

In this page you can find the example usage for org.apache.cassandra.gms FailureDetector MBEAN_NAME.

Prototype

String MBEAN_NAME

To view the source code for org.apache.cassandra.gms FailureDetector MBEAN_NAME.

Click Source Link

Usage

From source file:com.wenyu.utils.ClusterToolNodeProbe.java

License:Apache License

/**
 * Create a connection to the JMX agent and setup the M[X]Bean proxies.
 *
 * @throws IOException on connection failures
 *//*from w w  w .jav  a 2  s.c  om*/
private void connect() throws IOException {
    JMXServiceURL jmxUrl = new JMXServiceURL(String.format(fmtUrl, host, port));
    Map<String, Object> env = new HashMap<String, Object>();
    if (username != null) {
        String[] creds = { username, password };
        env.put(JMXConnector.CREDENTIALS, creds);
    }

    env.put("com.sun.jndi.rmi.factory.socket", getRMIClientSocketFactory());

    jmxc = JMXConnectorFactory.connect(jmxUrl, env);
    mbeanServerConn = jmxc.getMBeanServerConnection();

    try {
        ObjectName name = new ObjectName(ssObjName);
        ssProxy = JMX.newMBeanProxy(mbeanServerConn, name, StorageServiceMBean.class);
        name = new ObjectName(MessagingService.MBEAN_NAME);
        msProxy = JMX.newMBeanProxy(mbeanServerConn, name, MessagingServiceMBean.class);
        name = new ObjectName(StreamManagerMBean.OBJECT_NAME);
        streamProxy = JMX.newMBeanProxy(mbeanServerConn, name, StreamManagerMBean.class);
        name = new ObjectName(CompactionManager.MBEAN_OBJECT_NAME);
        compactionProxy = JMX.newMBeanProxy(mbeanServerConn, name, CompactionManagerMBean.class);
        name = new ObjectName(FailureDetector.MBEAN_NAME);
        fdProxy = JMX.newMBeanProxy(mbeanServerConn, name, FailureDetectorMBean.class);
        name = new ObjectName(CacheService.MBEAN_NAME);
        cacheService = JMX.newMBeanProxy(mbeanServerConn, name, CacheServiceMBean.class);
        name = new ObjectName(StorageProxy.MBEAN_NAME);
        spProxy = JMX.newMBeanProxy(mbeanServerConn, name, StorageProxyMBean.class);
        name = new ObjectName(HintedHandOffManager.MBEAN_NAME);
        hhProxy = JMX.newMBeanProxy(mbeanServerConn, name, HintedHandOffManagerMBean.class);
        name = new ObjectName(GCInspector.MBEAN_NAME);
        gcProxy = JMX.newMBeanProxy(mbeanServerConn, name, GCInspectorMXBean.class);
        name = new ObjectName(Gossiper.MBEAN_NAME);
        gossProxy = JMX.newMBeanProxy(mbeanServerConn, name, GossiperMBean.class);
        name = new ObjectName(BatchlogManager.MBEAN_NAME);
        bmProxy = JMX.newMBeanProxy(mbeanServerConn, name, BatchlogManagerMBean.class);
    } catch (MalformedObjectNameException e) {
        throw new RuntimeException("Invalid ObjectName? Please report this as a bug.", e);
    }

    memProxy = ManagementFactory.newPlatformMXBeanProxy(mbeanServerConn, ManagementFactory.MEMORY_MXBEAN_NAME,
            MemoryMXBean.class);
    runtimeProxy = ManagementFactory.newPlatformMXBeanProxy(mbeanServerConn,
            ManagementFactory.RUNTIME_MXBEAN_NAME, RuntimeMXBean.class);
}

From source file:io.cassandrareaper.jmx.JmxProxyImpl.java

License:Apache License

/**
 * Connect to JMX interface on the given host and port.
 *
 * @param handler Implementation of {@link RepairStatusHandler} to process incoming notifications
 *     of repair events.// ww w .ja v  a 2  s . com
 * @param host hostname or ip address of Cassandra node
 * @param port port number to use for JMX connection
 * @param username username to use for JMX authentication
 * @param password password to use for JMX authentication
 * @param addressTranslator if EC2MultiRegionAddressTranslator isn't null it will be used to
 *     translate addresses
 */
private static JmxProxy connect(String originalHost, int port, String username, String password,
        final EC2MultiRegionAddressTranslator addressTranslator, int connectionTimeout,
        MetricRegistry metricRegistry) throws ReaperException, InterruptedException {

    ObjectName ssMbeanName;
    ObjectName cmMbeanName;
    ObjectName fdMbeanName;
    ObjectName endpointSnitchMbeanName;
    JMXServiceURL jmxUrl;
    String host = originalHost;

    if (addressTranslator != null) {
        host = addressTranslator.translate(new InetSocketAddress(host, port)).getAddress().getHostAddress();
        LOG.debug("translated {} to {}", originalHost, host);
    }

    try {
        LOG.debug("Connecting to {}...", host);
        jmxUrl = JmxAddresses.getJmxServiceUrl(host, port);
        ssMbeanName = new ObjectName(SS_OBJECT_NAME);
        cmMbeanName = new ObjectName(CompactionManager.MBEAN_OBJECT_NAME);
        fdMbeanName = new ObjectName(FailureDetector.MBEAN_NAME);
        endpointSnitchMbeanName = new ObjectName("org.apache.cassandra.db:type=EndpointSnitchInfo");
    } catch (MalformedURLException | MalformedObjectNameException e) {
        LOG.error(String.format("Failed to prepare the JMX connection to %s:%s", host, port));
        throw new ReaperException("Failure during preparations for JMX connection", e);
    }
    try {
        Map<String, Object> env = new HashMap<>();
        if (username != null && password != null) {
            String[] creds = { username, password };
            env.put(JMXConnector.CREDENTIALS, creds);
        }
        env.put("com.sun.jndi.rmi.factory.socket", getRmiClientSocketFactory());
        JMXConnector jmxConn = connectWithTimeout(jmxUrl, connectionTimeout, TimeUnit.SECONDS, env);
        MBeanServerConnection mbeanServerConn = jmxConn.getMBeanServerConnection();
        Object ssProxy = JMX.newMBeanProxy(mbeanServerConn, ssMbeanName, StorageServiceMBean.class);
        String cassandraVersion = ((StorageServiceMBean) ssProxy).getReleaseVersion();
        if (cassandraVersion.startsWith("2.0") || cassandraVersion.startsWith("1.")) {
            ssProxy = JMX.newMBeanProxy(mbeanServerConn, ssMbeanName, StorageServiceMBean20.class);
        }

        CompactionManagerMBean cmProxy = JMX.newMBeanProxy(mbeanServerConn, cmMbeanName,
                CompactionManagerMBean.class);
        FailureDetectorMBean fdProxy = JMX.newMBeanProxy(mbeanServerConn, fdMbeanName,
                FailureDetectorMBean.class);

        EndpointSnitchInfoMBean endpointSnitchProxy = JMX.newMBeanProxy(mbeanServerConn,
                endpointSnitchMbeanName, EndpointSnitchInfoMBean.class);

        JmxProxy proxy = new JmxProxyImpl(host, originalHost, jmxUrl, jmxConn, ssProxy, ssMbeanName,
                mbeanServerConn, cmProxy, endpointSnitchProxy, fdProxy, metricRegistry);

        // registering a listener throws bunch of exceptions, so we do it here rather than in the
        // constructor
        mbeanServerConn.addNotificationListener(ssMbeanName, proxy, null, null);
        LOG.debug("JMX connection to {} properly connected: {}", host, jmxUrl.toString());

        return proxy;
    } catch (IOException | ExecutionException | TimeoutException | InstanceNotFoundException e) {
        throw new ReaperException("Failure when establishing JMX connection to " + host + ":" + port, e);
    } catch (InterruptedException expected) {
        LOG.debug("JMX connection to {}:{} was interrupted by Reaper. "
                + "Another JMX connection must have succeeded before this one.", host, port);
        throw expected;
    }
}

From source file:org.kit.tecs.NodeProbe.java

License:Apache License

public void connect() throws IOException {

    JMXServiceURL jmxUrl = new JMXServiceURL(String.format(fmtUrl, host, port));
    Map<String, Object> env = new HashMap<String, Object>();
    if (username != null) {
        String[] creds = { username, password };
        env.put(JMXConnector.CREDENTIALS, creds);
    }//  w ww.j a  v  a2 s  .  c o  m
    jmxc = JMXConnectorFactory.connect(jmxUrl, env);
    mbeanServerConn = jmxc.getMBeanServerConnection();

    try {
        ObjectName name = new ObjectName(ssObjName);
        ssProxy = JMX.newMBeanProxy(mbeanServerConn, name, StorageServiceMBean.class);
        name = new ObjectName(MessagingService.MBEAN_NAME);
        msProxy = JMX.newMBeanProxy(mbeanServerConn, name, MessagingServiceMBean.class);
        name = new ObjectName(StreamingService.MBEAN_OBJECT_NAME);
        streamProxy = JMX.newMBeanProxy(mbeanServerConn, name, StreamingServiceMBean.class);
        name = new ObjectName(CompactionManager.MBEAN_OBJECT_NAME);
        compactionProxy = JMX.newMBeanProxy(mbeanServerConn, name, CompactionManagerMBean.class);
        name = new ObjectName(FailureDetector.MBEAN_NAME);
        fdProxy = JMX.newMBeanProxy(mbeanServerConn, name, FailureDetectorMBean.class);
        name = new ObjectName(CacheService.MBEAN_NAME);
        cacheService = JMX.newMBeanProxy(mbeanServerConn, name, CacheServiceMBean.class);
        //            name = new ObjectName(StorageProxy.MBEAN_NAME);
        spProxy = JMX.newMBeanProxy(mbeanServerConn, name, StorageProxyMBean.class);
    } catch (MalformedObjectNameException e) {
        throw new RuntimeException("Invalid ObjectName? Please report this as a bug.", e);
    }

    memProxy = ManagementFactory.newPlatformMXBeanProxy(mbeanServerConn, ManagementFactory.MEMORY_MXBEAN_NAME,
            MemoryMXBean.class);
    runtimeProxy = ManagementFactory.newPlatformMXBeanProxy(mbeanServerConn,
            ManagementFactory.RUNTIME_MXBEAN_NAME, RuntimeMXBean.class);
}

From source file:org.wso2.carbon.cassandra.cluster.ClusterDataAccessMBeanImplementation.java

License:Apache License

/**
 * Access the <code>FailureDetectorMBean </code> of the Cassandra
 *
 * @return <code>FailureDetectorMBean</code> instance
 *///  w ww . ja  v a 2s. c o m
public FailureDetectorMBean locateFailureDetectorMBean() {
    if (failureDetectorMBean == null) {
        try {
            failureDetectorMBean = locateMBean(new ObjectName(FailureDetector.MBEAN_NAME),
                    FailureDetectorMBean.class);
        } catch (MalformedObjectNameException e) {
            throw new ClusterMBeanDataAccessException("Invalid ObjectName? Please report this as a bug.", e,
                    log);
        }

    }
    return failureDetectorMBean;
}