kafka的生产者 message/sec 实时数据指标是怎么计算得到的?

啦啦啦 发表于: 2023-06-14   最后更新时间: 2023-06-14 14:09:11   911 游览

kafka-manager页面上有一个指标producer message/sec, 如下图所示:

我这边用的是kafka0.9版本

我在网上没找到多少kafka关于生产者的命令, 所以想问一下各位大佬, 谁知道这个指标是怎么统计的啊

我自己的看法是这个是个实时的生产者数据量统计, 但是这个数据在很长时间没有变化, 网上这个指标有解释成"生产者每秒生效的消息数据", 也有解释成"消息收发 TPS", 但都没有详细解释这个指标到底是什么东西, 对于kafka-manager的源码我看不太懂(本人运维, 不是开发), 所以麻烦大佬们给看看这东西怎么通过命令来统计, 或者有个思路我看看怎么用脚本实现。

发表于 2023-06-14
¥10.0

"producer message/sec"(生产者消息每秒)指标是用于表示在每秒钟内从所有生产者发送到Kafka集群的消息数量,它是通过以下方式进行统计的:

  1. Kafka Manager会与Kafka集群中的各个Broker建立连接,以获取与生产者相关的统计信息。

  2. 对于每个Broker,Kafka Manager会查询kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec指标。这个指标提供了每个主题的消息速率(每秒消息数量)。

  3. Kafka Manager会将所有主题的消息速率相加,得到总的生产者消息速率。

请注意,这个指标是通过采样方式统计的,并且在不同的时间段内可能会有所不同。因此,它提供的是一个近似的消息速率,并不是实时准确的值。

作为运维人员,你可以直接通过kafka提供的Metrics来获取监控数据,参考:

直接用Prometheus集成,岂不更方便嘛。

啦啦啦 -> 半兽人 1年前

谢谢大佬 不过您说的第二条的两个指标是在java程序里执行的吧

半兽人 -> 啦啦啦 1年前

kafka是通过Yammer Metrics(使用java)实现的,而你是获取者,没有关系。
既然是监控,你是可以通过接口获取的。

啦啦啦 -> 半兽人 1年前

大佬 这不会是你用gpt生成的答案吧 我找到另一个跟你不一样的答案 但是格式一毛一样

半兽人 -> 啦啦啦 1年前

别闹,我有阅读洁癖,回复都是有条理的,你可以看我的其他回答。

啦啦啦 -> 半兽人 1年前

嘿嘿嘿 大佬 我想知道这种应该怎么复习, 我本身是做运维的, 我没搞过java和scala, 今天这个需求我还真不知道怎么折腾, 我看kafka-manager上好些指标, 我猜测可能后面都需要搞, 所以想问下您这些东西能从那里看到, 我看了您给的kafka监控指标和kafka的官方文档, 好像都只有参数的列表, 这些加工的指标我就没看到, 我看kafka-manager在git的网页上也没有显示

半兽人 -> 啦啦啦 1年前

我不太清楚你想做到什么效果,因为prometheus这种监控都可以做到,你再重新学语言成本挺高的。

啦啦啦 -> 半兽人 1年前

估计是领导觉得开源软件有风险, 大概是打算开发一个自己的监控程序, 但我觉得既然大厂都是拿开源软件自己魔改, 实在是没必要这么折腾, 但这个需求就是这样, 我只能努力试试怎么逆向这玩意儿了, 难啊

半兽人 -> 啦啦啦 1年前

那,开始学习编程语言吧...

你的答案

查看kafka相关的其他问题或提一个您自己的问题