tikv_raftstore_log_lag_bucket 指标如何计算的,单位是什么?

【问题描述】
关于raft 延迟指标,有如下问题想请教下:
https://docs.pingcap.com/zh/tidb/stable/alert-rules#tikv_raft_log_lag

  • 有3个问题:
  1. 该指标的单位是什么? (秒/毫秒/…)
  2. 该指标是如何计算得来的?
    比如: 每个region一个raft group,是所有group的最低水位线计算的 ? 还是用啥统计算法?)
    这个延迟是具体的含义是啥,比如 是用log 最新 index与 哪个index(commit/apply/…)差值计算的呢?
  3. 想搜索代码,但是tikv项目中只有 tikv.rule.yml 能搜索到关键字. 该指标应该是在哪个项目中计算的呢? (在哪个项目中能搜到该指标关键字: tikv_raftstore_log_lag_bucket)

谢谢~

【附件】

2 个赞

路径:https://github.com/tikv/tikv/blob/master/components/raftstore/src/store/metrics.rs

image

But 没理解这段 rs 代码

多谢多谢。

  1. 将指标向 promethus 注册成 histogram 类型的指标,后面的vector是设定该直方图的 buckets,该指标bucket取值区间的大小应该是按照 指数增长的。
    具体算法就不是很了解了。
  2. 延迟的单位应该是 raft log index entry
    也就是说拿 log index 来计算raft group内落后了多少个index entry,而并非一开始猜测的时间。代码在函数 @@ PerrFsmDelegate::on_raft_gc_log_tick (TIKV) 里 面,搜索: REGION_MAX_LOG_LAG 关键字即可。没有详细看计算方法了。

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。