如何解释 kafka broker 报告的延迟指标

How to interpret kafka broker reported latency metrics

我正在查看 kafka 代理报告的各种延迟指标以将它们包含在 grafana 仪表板上,但我很难理解报告的指标。我已经通过 JMX 导出器将指标导出到普罗米修斯。 例如,让我们采用 Produce Request Total 时间指标。 (kafka.network:type=RequestMetrics,name=TotalTimeMs,request=Produce)

  1. 当我查询普罗米修斯时 "kafka_network_requestmetrics_totaltimems_count{request="Produce"}"

,我得到了一些大数字。例如56459366。 大数是什么意思?

  1. 当我使用 "kafka_network_requestmetrics_totaltimems{request="Produce"}" 查询 prometheus 时,我得到 6 行。例如正在关注
kafka_network_requestmetrics_totaltimems{instance="10.130.12.24:8020",job="kubernetes-pods",pod="kafka-0",quantile="0.50",request="Produce"}    2
kafka_network_requestmetrics_totaltimems{instance="10.130.12.24:8020",job="kubernetes-pods",pod="kafka-0",quantile="0.75",request="Produce"}    2
kafka_network_requestmetrics_totaltimems{instance="10.130.12.24:8020",job="kubernetes-pods",pod="kafka-0",quantile="0.95",request="Produce"}    3
kafka_network_requestmetrics_totaltimems{instance="10.130.12.24:8020",job="kubernetes-pods",pod="kafka-0",quantile="0.98",request="Produce"}    12.42
kafka_network_requestmetrics_totaltimems{instance="10.130.12.24:8020",job="kubernetes-pods",pod="kafka-0",quantile="0.99",request="Produce"}    21
kafka_network_requestmetrics_totaltimems{instance="10.130.12.24:8020",job="kubernetes-pods",pod="kafka-0",quantile="0.999",request="Produce"} 54 

这些不同的分位数指标是什么意思,我如何计算这些指标的平均值?

  1. 经纪人更新这些指标的频率如何?

计数只是自代理启动以来测量的生产请求数。对于经纪人收到的每个产品请求,它都会测量处理时间。所以它是一个单调递增的计数器。

不同的 6 行是百分位数。这意味着,在您的情况下,对于 50%(中位数)的产品请求,处理它们的时间最多需要 2 毫秒。 75% 的请求也是如此。然而,对于 99% 的请求,处理时间最多需要 21 毫秒。所以你可以推断出对于中间那 24% 的请求,处理时间在 2ms 到 21ms 之间。 你不能也不应该计算平均值,因为它非常具有误导性,尤其是在测量 SLA 时(正如著名的笑话所说 - 如果统计学家的头在炉子里,腿在冰箱里,那么他平均感觉美好的...) 您可以找到许多 posts 来解释差异,例如 - https://www.dynatrace.com/news/blog/why-averages-suck-and-percentiles-are-great/

至于这些指标的更新频率 - 它们会随着请求的到来而不断更新。直方图正在使用水库,为最近的样本赋予更多权重(没有必要考虑一周前发生的样本,当时你看看当前的请求时间百分位数)。水库有很多种,我不知道这里用的是哪一种,但是为了理解概念,你可以阅读这个 post https://medium.com/expedia-group-tech/your-latency-metrics-could-be-misleading-you-how-hdrhistogram-can-help-9d545b598374