我正在尝试了解如何使用org.apache.cassandra.metrics:type=Messaging
指标。我设置了3个数据中心,每个数据中心有1个节点。当我衡量指标时,对于每个节点,我得到2个跨数据中心指标和1个跨节点延迟指标,如下所示(对于DC-2中的节点)
org.apache.cassandra.metrics:type=Messaging,name=dc3-Latency
5.3387457013878636E7
org.apache.cassandra.metrics:type=Messaging,name=CrossNodeLatency
1.1471964354991291E8
org.apache.cassandra.metrics:type=Messaging,name=dc1-Latency
1.6108579786605054E8
但是,我目前没有使用群集的进程。 Cassandra是在进行虚拟写操作来衡量这个指标吗?此外,跨节点延迟度量在这里意味着什么,每个DC只包含一个节点。
答案 0 :(得分:1)
该指标使用消息服务记录所有内容的传入延迟。消息服务用于读/写,但它也用于流和八卦。八卦在所有节点之间每1秒触发一次,所以这可能在你的情况下占主导地位。在某些情况下,甚至可以将一些表写入(system_distributed,system_traces和一些dse表,如果使用dse),甚至是一个相当空闲的系统。
每当从一个节点向另一个节点发送消息时,它会附加一个时间戳以及一些版本信息。接收系统将做的第一件事(忽略明显的os / socket /等)或多或少是将时间戳与" now"进行比较。这就是推动指标的动力。然后,它将查看源所在的数据中心,以确定要增加多少指标。