思路
每隔一段时间(比如说10秒)统计一次某topic
的所有partition
的最大offset
值之和,这便是该topic
的message总数。
然后除以间隔时间就可以粗略但方便得出 某topic
的数据增长速率(即相应程序写kafka的速率)
Kafka常用topic操作命令汇总
中有统计最大offset命令
# 最大offset
bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092 --topic test_topic --time -1
shell实现
注意:
- 第一次打印出来的speed请忽略(为了shell更加简单方便没有特殊处理第1次统计的情况)
- 该脚本需要放入到kafka程序安装根目录,或者把bin/kafka-run-class.sh文件写成绝对路径
#!/bin/sh
brokers="localhost:9092"
topic="test_topic"
last=0
now=0
speed=0
while :
do
echo "-------------"
last=$now
now=$(bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list ${brokers} --topic ${topic} --time -1 | awk -F ":" '{sum+=$NF} END {print sum}')
let speed=(now-last)/10
echo "now is $now,speed is $speed"
sleep 10
done
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。