如何计算指定Topic和Partition的Kafka Consumer Lag
提取指定Kafka Topic和分区的消费者延迟数值
Kafka官方的kafka-consumer-groups.sh没有直接输出单个分区延迟的选项,需要结合shell工具(如awk、grep)处理命令输出,就能得到你要的整数结果。
直接命令示例
针对消费者组my-group、Topict1、分区1,可以用以下两种方式:
方式1:精准匹配列位置(推荐)
利用命令输出的固定列顺序(GROUP, TOPIC, PARTITION, CURRENT-OFFSET, LOG-END-OFFSET, LAG, ...),直接定位LAG所在的第6列:
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group my-group | awk '$2=="t1" && $3==1 {print $6}'
方式2:结合grep过滤行
先过滤出目标Topic和分区的行,再提取最后一列(LAG):
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group my-group | grep -E "^t1.*Partition: 1" | awk '{print $NF}'
可复用脚本写法
如果需要频繁查询不同的组、Topic或分区,可以写成带变量的脚本:
#!/bin/bash GROUP="my-group" TOPIC="t1" PARTITION=1 bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group $GROUP | awk -v t="$TOPIC" -v p="$PARTITION" '$2==t && $3==p {print $6}'
内容的提问来源于stack exchange,提问作者sammy7
相关产品推荐
相关产品推荐

