对于指标,我们需要查看所有分区和代理上的Kafka主题的总大小(以字节为单位)。
我已经研究了很长一段时间,关于如何做到这一点,我还没有弄清楚这是否可能以及如何做到。
我们在Kafka的V0.82上。
发布于 2018-02-22 23:23:28
您可以使用脚本/bin/kafka-log-dirs.sh查看分区大小
/bin/kafka-log-dirs.sh --describe --bootstrap-server <KafakBrokerHost>:<KafakBrokerPort> --topic-list <YourTopic>发布于 2018-06-15 18:29:45
正如Martbob非常有帮助地提到的,您可以使用kafka-log-dirs来完成此操作。这将生成JSON输出(在其中一行上)。因此,我可以使用非常有用的jq工具来拉出'size‘字段(有些是空的),只选择那些是数字的字段,将它们分组到一个数组中,然后将它们相加在一起。
kafka-log-dirs \
--bootstrap-server 127.0.0.1:9092 \
--topic-list 'topic_of_interest' \
--describe \
| grep '^{' \
| jq '[ ..|.size? | numbers ] | add'示例输出: 67704
我还没有验证输出是否有意义,所以您应该自己检查一下。
发布于 2020-09-28 21:02:55
对正则表达式和awk执行相同操作的另一种方法(如果您没有安装jq )是:
$ bin/kafka-log-dirs.sh \
--bootstrap-server 127.0.0.1:9092 \
--topic-list test \
--describe \
| grep -oP '(?<=size":)\d+' \
| awk '{ sum += $1 } END { print sum }'这将返回包括其副本在内的主题test的大小(以字节为单位)。如果您有一个大于1的复制因子,并且您想要唯一主题消息的大小,请将您获得的值除以复制因子。
https://stackoverflow.com/questions/43473670
复制相似问题