Example usage for org.apache.cassandra.db.compaction CompactionManager MBEAN_OBJECT_NAME

List of usage examples for org.apache.cassandra.db.compaction CompactionManager MBEAN_OBJECT_NAME

Introduction

In this page you can find the example usage for org.apache.cassandra.db.compaction CompactionManager MBEAN_OBJECT_NAME.

Prototype

String MBEAN_OBJECT_NAME

To view the source code for org.apache.cassandra.db.compaction CompactionManager MBEAN_OBJECT_NAME.

Click Source Link

Usage

From source file:com.spotify.reaper.cassandra.JmxProxy.java

License:Apache License

/**
 * Connect to JMX interface on the given host and port.
 *
 * @param handler  Implementation of {@link RepairStatusHandler} to process incoming
 *                 notifications/*from   w  w  w.  ja  va 2  s  .  c o m*/
 *                 of repair events.
 * @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
 */
static JmxProxy connect(Optional<RepairStatusHandler> handler, String host, int port, String username,
        String password) throws ReaperException {
    ObjectName ssMbeanName;
    ObjectName cmMbeanName;
    JMXServiceURL jmxUrl;
    try {
        jmxUrl = new JMXServiceURL(String.format(JMX_URL, host, port));
        ssMbeanName = new ObjectName(SS_OBJECT_NAME);
        cmMbeanName = new ObjectName(CompactionManager.MBEAN_OBJECT_NAME);
    } 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<String, Object>();
        if (username != null && password != null) {
            String[] creds = { username, password };
            env.put(JMXConnector.CREDENTIALS, creds);
        }
        JMXConnector jmxConn = JMXConnectorFactory.connect(jmxUrl, env);
        MBeanServerConnection mbeanServerConn = jmxConn.getMBeanServerConnection();
        StorageServiceMBean ssProxy = JMX.newMBeanProxy(mbeanServerConn, ssMbeanName,
                StorageServiceMBean.class);
        CompactionManagerMBean cmProxy = JMX.newMBeanProxy(mbeanServerConn, cmMbeanName,
                CompactionManagerMBean.class);
        JmxProxy proxy = new JmxProxy(handler, host, jmxUrl, jmxConn, ssProxy, ssMbeanName, mbeanServerConn,
                cmProxy);
        // 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(String.format("JMX connection to %s properly connected: %s", host, jmxUrl.toString()));
        return proxy;
    } catch (IOException | InstanceNotFoundException e) {
        LOG.error(String.format("Failed to establish JMX connection to %s:%s", host, port));
        throw new ReaperException("Failure when establishing JMX connection", e);
    }
}

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 ww .  j  a  va  2s .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./*from ww w .j a va2 s  . c  o m*/
 * @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);
    }/*from   www .  j  a  v a 2  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>CompactionManagerMBean </code> of the Cassandra
 *
 * @return <code>CompactionManagerMBean</code> instance
 *///from ww  w.j  a va  2  s  .co  m
public CompactionManagerMBean locateCompactionManagerMBean() {
    if (compactionProxy == null) {
        try {
            compactionProxy = locateMBean(new ObjectName(CompactionManager.MBEAN_OBJECT_NAME),
                    CompactionManagerMBean.class);
        } catch (MalformedObjectNameException e) {
            throw new ClusterMBeanDataAccessException("Invalid ObjectName? Please report this as a bug.", e,
                    log);
        }
    }
    return compactionProxy;
}

From source file:org.wso2.carbon.cassandra.mgt.CassandraMBeanLocator.java

License:Apache License

/**
 * Access the <code>CompactionManagerMBean </code> of the Cassandra
 *
 * @return <code>CompactionManagerMBean</code> instance
 * @throws CassandraServerManagementException
 *          for error during locating <code>CompactionManagerMBean</code>
 *///w ww .j  a  va  2 s . c o m
public CompactionManagerMBean locateCompactionManagerMBean() throws CassandraServerManagementException {
    if (compactionProxy == null) {
        compactionProxy = locateMBean(CompactionManager.MBEAN_OBJECT_NAME, CompactionManagerMBean.class);
    }
    return compactionProxy;
}