对于度量标准,我们需要在所有分区和代理中查看Kafka主题的总大小(以字节为单位).
我一直在寻找关于如何做到这一点的一段时间,如果可能的话,我还没有解决,如何做到这一点.
我们在Kafka的V0.82.
小智 12
您可以使用脚本/bin/kafka-log-dirs.sh查看分区大小
/bin/kafka-log-dirs.sh --describe --bootstrap-server: - topic-list
使用正则表达式和 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 }'
Run Code Online (Sandbox Code Playgroud)
这将返回主题的大小(以字节为单位),test包括其复制。如果您的复制因子大于 1 并且您想要唯一主题消息的大小,请将获得的值除以复制因子。
正如Martbob很有帮助的提到的那样,您可以使用kafka-log-dirs进行此操作。我正在使用Confluent Platform 4.1.1开源版,至少对我来说,这会生成JSON输出(在其中一行中)。因此,我可以使用非常有用的jq工具提取“大小”字段(有些为空),仅选择数字,将它们分组为一个数组,然后将它们加在一起。
kafka-log-dirs \
--bootstrap-server 127.0.0.1:9092 \
--topic-list 'topic_of_interest' \
--describe \
| grep '^{' \
| jq '[ ..|.size? | numbers ] | add'
Run Code Online (Sandbox Code Playgroud)
输出示例:67704
我尚未验证输出是否有意义,因此您应该自己检查一下。
| 归档时间: |
|
| 查看次数: |
12696 次 |
| 最近记录: |