我目前正在调查对 cassandra 的读写操作。我想知道 cassandra 对 memtable 和 sstable 执行的读写操作。cassandra 指标的最接近值是多少?我发现的只是延迟指标,但这不是我要寻找的。
我更想知道发生了多少次真正的读写来为一些特定的操作建立一个抽象的成本模型。
谢谢!
编辑:
所以看起来 ReadLatency 和 WriteLatency (Table Metrics) 是我一直在寻找的。但是,如果我想读取指标,则读取计数始终为 0。
我的设置:
- 流行音乐!20.04 / 联想 P1 G2(512GB nvme SSD,16GB 内存)
- Cassandra 3.11.7(Docker 容器)
- Datastax 4.5.1 Java 驱动程序
- 通过 Nodetools(一直在使用 docker 容器内的可执行文件)或 Telegraf 1.15.2 + Jolokina 1.6.2 收集指标
我的电报配置:
[[inputs.jolokia2_agent.metric]]
name = "TableRead"
mbean = "org.apache.cassandra.metrics:keyspace=*,name=ReadLatency,scope=*,type=Table"
tag_keys = ["keyspace", "name", "scope"]
field_prefix = "$2_"
[[inputs.jolokia2_agent.metric]]
name = "TableWrite"
mbean = "org.apache.cassandra.metrics:keyspace=*,name=WriteLatency,scope=*,type=Table"
tag_keys = ["keyspace", "name", "scope"]
field_prefix = "$2_"
通过我的 Java 应用程序运行查询时,两者都在我的表上显示读取计数为零(写入计数器按预期递增),如下所示:
ResultSet rs = cqlSession.execute("SELECT * from myTable");
for(Row r : rs) {
int id = rs.getObject("someColumn");
}
为什么读取计数器不增加?