首页 > 解决方案 > Cassandra jmx 指标缺失

问题描述

我使用相同的设置过程设置了 2 个 cassandra 集群。两个集群都在运行,没有任何问题。

但是通过 JMX 公开 cassandra 指标的方式存在不一致。

使用此处提到的说明设置 JMX 导出器。

两个集群都导出指标,但在其中一个集群上暴露的指标较少。

更具体地说,与cassandra_table_totaldisk相关的指标在一个上缺失,而在另一个上存在。

#/etc/cassandra$ tail -1 cassandra-env.sh
JVM_OPTS="$JVM_OPTS -javaagent:/opt/prometheus- 
jmx/jars/jmx_prometheus_javaagent-0.3.0.jar=7070:/etc/cassandra/cassandra-exporter-conf.yml"
#/etc/cassandra$ ls /opt/prometheus-jmx/jars/jmx_prometheus_javaagent-0.3.0.jar
/opt/prometheus-jmx/jars/jmx_prometheus_javaagent-0.3.0.jar
#/etc/cassandra$ ls /etc/cassandra/cassandra-exporter-conf.yml
/etc/cassandra/cassandra-exporter-conf.yml
#/opt/prometheus-jmx/jars$ curl localhost:7070/metrics | grep cassandra_table_totaldisk | grep types
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                               Dload  Upload   Total   Spent    Left  Speed
100 6533k  100 6533k    0     0   716k      0  0:00:09  0:00:09 --:--:-- 1680k
cassandra_table_totaldiskspaceused{table="types",keyspace="system_schema",} 0.0

我已经验证了 cassandra 模式存在并且在节点上生成了键空间表文件。

什么会导致这种不一致?如何调试/调查问题?

标签: cassandra-3.0

解决方案


显然,事实证明,矩阵并没有按照我们想要的方式生成,因为在为 jmx-exporter 配置 cassandra 后,cassandra 没有重新启动。

这些步骤是使用 ansible 脚本自动化的。在 jmx-exporter 设置之后,没有调用重新启动 cassandra 的 ansible 角色。原因是这个ansible问题。一旦我们确保 cassandra 只启动一次(通过确保 ansible 角色只被调用一次)并且只有在 jmx-exporter 设置完成之后,问题就得到了解决。


推荐阅读