首页 > 如何获取kafka某topic的Logsize?

如何获取kafka某topic的Logsize?

其实kafka提供了一系列的工具可以查看offset.

如:

MacPro:kafka-0.8.2.2-src ajian$ kafka-consumer-offset-checker.sh --zookeeper localhost:2181 --topic my-replicated-topic  --group console-consumer-11758
Group           Topic                          Pid Offset          logSize         Lag             Owner
console-consumer-11758 my-replicated-topic            0   3715607         3715608         1               console-consumer-11758_MacPro-1449666659508-e5c5524d-0

其实consumer的offset都是在zookeeper上面可以找到对应的数字. 具体查看kafka在zk中的数据结构: https://cwiki.apache.org/confluence/display/KAFKA/Kafka+data+structures+in+Zookeeper

但是一直没有办法找到logSize的数据从何而来(不用脚本工具), 这里面的logsize其实就是topic的最新offset或者说是message的长度.

延迟就是: logSize - Offset=Lag

本人的目的就是通过原理获取这些数据进行监控,不想使用sh工具的原因1.格式还需要转 2.速度慢 3.依赖环境 4.需要的数据过多或者过少.

请熟悉kafka的同学看看.

补充下一个开源工具KafkaOffsetMonitor的情况(本人对java不是非常的熟悉 看着有些费力)

https://github.com/quantifind/KafkaOffsetMonitor/blob/d9c2a64d233043dcdc65d4d4974a044f6649615b/src/main/scala/com/quantifind/kafka/OffsetGetter.scala#L130


kafka 的 api 提供了 getoffsetbefore 这个接口, 可以获取到最新的offset。把所有的lag加起来就是总的lag

【热门文章】
【热门文章】