【问题标题】:Cassandra metrics- difference between latency to total latencyCassandra 指标 - 延迟与总延迟之间的差异
【发布时间】:2016-11-09 14:34:58
【问题描述】:

我正在使用 Cassandra 2.2 并使用可插入指标将 Cassandra 指标发送到 Graphite,

  1. 我在 org.apache.cassandra.metrics.ColumnFamily 中进行了搜索,发现 ReadLatency 和 ReadTotalLatency 中有一个属性“count”, 2个计数属性有什么区别?

  2. 我的主要目标是获得每次读/写的延迟,你建议我如何获得它?

谢谢!

【问题讨论】:

    标签: cassandra


    【解决方案1】:

    org.apache.cassandra.metrics.ColumnFamily.ReadTotalLatency 是一个Counter,它给出了所有读取延迟的总和。

    org.apache.cassandra.metrics.ColumnFamily.ReadLatency 是一个Timer,它提供有关读取所用时间的见解,它报告诸如 min 之类的属性, 最大平均75percentile90percentile99percentile

    出于您的目的,您应该使用 ReadLatencyWritelatency

    【讨论】:

    • 但是 ReadLatency 也有一个计数器,为什么它与 ReadTotalLatency 中的计数器不同呢?如果属性是累积的,如何从 ReadLatency 获取每次读取的延迟(在当前时刻)?
    【解决方案2】:

    2 个“计数”属性的差异

    org.apache.cassandra.metrics.ColumnFamily.ReadTotalLatencyCounter。 它的“count”属性提供了所有读取延迟的总和。

    org.apache.cassandra.metrics.ColumnFamily.ReadLatencyTimer。 它的“count”属性提供了Timer#update 调用的计数。

    获取每次读取/写入的最近延迟

    使用“min”、“max”、“mean”、“75percentile”、“90percentile”、“99percentile”等属性。

    Cassandra 2.2.7 使用 DecayingEstimatedHistogramReservoir 作为 Timer 的存储库,这使得最近的值更加重要。

    【讨论】:

    • 谢谢, 1. 所以你说在 Cassandra 2.2.7 中相同的 Timer 属性更倾向于最近的值? 2.关于两个计数属性的区别,似乎所有读取延迟的总和等于Timer#update调用的计数,因为每次有读取操作都会调用Timer#update,那么有什么区别?
    • 对于 (1),是的。 (可能很有趣,issues.apache.org/jira/browse/CASSANDRA-11752
    • 对于(2),所有读取延迟的总和不等于Timer#update的计数。在 n = 5 和 10 调用 totalLatencyCounter.inc(n) 后,totalLatencyCounter.getCount() 将返回 15。在 n = 5 和 10 调用 delayTimer.update(n) 后,latencyTimer.getCount() 将返回 2。跨度>
    • 好的,我知道了,谢谢 coco!
    猜你喜欢
    • 1970-01-01
    • 2023-02-02
    • 2015-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-28
    • 2018-07-12
    • 1970-01-01
    相关资源
    最近更新 更多