在Java中使用JMX读取cassandra矩阵

在Java中使用JMX读取cassandra矩阵,cassandra,jmx,Cassandra,Jmx,如何使用JMX/metrics在Java中生成Cassandra的实时度量?我想运行cassandra JMX命令来收集cassandra矩阵。非常感谢您的示例。所有cassandra的指标都是通过JMX在官方文档中公开的。由于它使用了度量库,您可能不需要使用JMX来捕获度量-有关更多信息,请参阅参考页面末尾的注释(以及Cassandra发行版中的conf/Metrics reporter config sample.yaml示例文件) 另外,也许我误解了这个问题-你能提供更多细节吗?您是否正在

如何使用JMX/metrics在Java中生成Cassandra的实时度量?我想运行cassandra JMX命令来收集cassandra矩阵。非常感谢您的示例。

所有cassandra的指标都是通过JMX在官方文档中公开的。由于它使用了度量库,您可能不需要使用JMX来捕获度量-有关更多信息,请参阅参考页面末尾的注释(以及Cassandra发行版中的
conf/Metrics reporter config sample.yaml
示例文件)

另外,也许我误解了这个问题-你能提供更多细节吗?您是否正在寻找从Cassandra收集这些指标的命令?还是Java中的代码片段

从Java中,您可以通过以下方式访问特定指标:

JMXServiceURL url = new JMXServiceURL(
    "service:jmx:rmi:///jndi/rmi://[127.0.0.1]:7199/jmxrmi");
JMXConnector jmxc = JMXConnectorFactory.connect(url, null);
MBeanServerConnection mbsc = jmxc.getMBeanServerConnection();

Set<ObjectInstance> objs = mbsc.queryMBeans(ObjectName
                                        .getInstance("org.apache.cassandra.metrics:type=ClientRequest,scope=Read-ALL,name=TotalLatency"), null);
for (ObjectInstance obj : objs) {
    Object proxy = JMX.newMBeanProxy(mbsc, obj.getObjectName(),
       CassandraMetricsRegistry.JmxCounterMBean.class);
    if (proxy instanceof CassandraMetricsRegistry.JmxCounterMBean) {
        System.out.println("TotalLatency = " + ((CassandraMetricsRegistry.JmxCounterMBean) proxy).getCount());
    }
}
jmxc.close();
JMXServiceURL=newjmxserviceurl(
“服务:jmx:rmi:///jndi/rmi://[127.0.0.1]:7199/jmxrmi“;
JMXConnector jmxc=JMXConnectorFactory.connect(url,null);
MBeanServerConnection mbsc=jmxc.getMBeanServerConnection();
设置objs=mbsc.queryMBeans(ObjectName
.getInstance(“org.apache.cassandra.metrics:type=ClientRequest,scope=Read ALL,name=totalatency”),null);
用于(反对对象:反对对象){
Object proxy=JMX.newMBeanProxy(mbsc,obj.getObjectName(),
CassandraMetricsRegistry.JmxCounterMBean.class);
if(CassandraMetricsRegistry.JmxCounterMBean的代理实例){
System.out.println(“totalatency=“+((CassandraMetricsRegistry.JmxCounterMBean)proxy).getCount());
}
}
jmxc.close();

您可以在cassandra metrics collector项目中找到更详细的示例…

我需要Java中用于收集实时矩阵的代码片段