Scylla JMX proxy
Go to file
Piotr Jastrzebski 2c48bab91a Use JmxMBeanServer instead of MBeanServer
JmxMBeanServer is a concrete implementation of a MBeanServer.
We want to use it directly because we need to bypass calls to
JmxMBeanServer.registerMBean and JmxMBeanServer.unregisterMBean.
They take ObjectName as parameter, copy it using
ObjectName.getInstance(ObjectName) and pass it to registerMBean
and unregisterMBean of JmxMBeanServer.getMBeanServerInterceptor().
We want to avoid this copy and pass the ObjectName argument directly
to JmxMBeanServer.getMBeanServerInterceptor().

To do that this patch:
1. changes all MBeanServer variables to JmxMBeanServer
2. creates JmxMBeanServer in APIBuilder making sure accessing
   interceptors is allowed
3. makes sure that JmxMBeanServer.getMBeanServerInterceptor().registerMBean
   is called wherever JmxMBeanServer.registerMBean was called
4. makes sure that JmxMBeanServer.getMBeanServerInterceptor().unregisterMBean
   is called whenever JmxMBeanServer.unregisterMBean was called

Next patch will use different ObjectName implementation that will
use less memory and this patch is crucial because without it every ObjectName
is transformed with ObjectName.getInstance which turns the object into
a regular ObjectName.

Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com>
2018-05-12 18:35:18 +02:00
dist dist: recognize epel-7-x86_64 mock target and enable networking 2018-04-09 11:18:34 +03:00
scripts scylla-jmx: Uses bash explicitly as the interpreter 2018-01-29 15:23:21 +02:00
src/main/java Use JmxMBeanServer instead of MBeanServer 2018-05-12 18:35:18 +02:00
git-archive-all-license.txt dist: make ubuntu package as 'debian non-native package' 2015-11-25 19:43:38 +09:00
LICENSE.AGPL Change license to AGPLv3 2015-09-22 13:33:24 +03:00
NOTICE Add a NOTICE file for the yammer library 2015-06-11 14:32:45 +03:00
pom.xml Remove yammer/codehale dependencies and augumentations 2016-10-24 11:43:52 +00:00
README.md README update 2017-03-03 12:35:00 +02:00
SCYLLA-VERSION-GEN Fix SCYLLA-VERSION-GEN permissions 2016-11-09 11:07:29 +02:00

Scylla JMX Server

Scylla JMX server implements the Apache Cassandra JMX interface for compatibility with tooling such as nodetool. The JMX server uses Scylla's REST API to communicate with a Scylla server.

Compiling

To compile JMX server, run:

$ mvn package

Running

To start the JMX server, run:

$ ./scripts/scylla-jmx

To get help on supported options:

$ ./scripts/scylla-jmx --help