检查一天内从 Kafka 主题中消耗了多少事件?
Posted
技术标签:
【中文标题】检查一天内从 Kafka 主题中消耗了多少事件?【英文标题】:Check how many events are consumed from a Kafka topic in one day? 【发布时间】:2018-11-09 02:02:17 【问题描述】:在一个时间窗口内检查应用程序从 Kafka 主题消耗了多少事件的最佳方法是什么?
目前我正在这样做:
$ ./bin/kafka-console-consumer.sh --zookeeper zookeeper:2181 --topic topic --from-beginning | grep -i '2018-05-29' > kafka.out
$ wc -l kafka.out
一些问题:
-
它需要某种时间戳才能在有效负载中(这是
在这种情况下可以)
它从第一个偏移量开始,因此您需要
等待一段时间以填充文件,具体取决于吞吐量
你的主题
有更好的方法吗? 最好是命令行,因为它用于临时分析。
我正在使用Kafka 0.10
,但是对于较新版本的任何答案也很高兴知道。
谢谢
【问题讨论】:
在 Kafka 中有生产者和消费者。计算“已处理”事件的数量没有意义。您可以计算该应用程序内部的应用程序产生的消息数,也可以计算另一个应用程序消耗的消息数。 另外,Kafka 消息可以是任何格式,并且可能根本不包含日期。所以没有内置工具可以实现您的期望。 是的,你是对的。我怎么写的没有意义,谢谢你的澄清。我编辑了帖子以指定consumed by an app
我想看看是否可以在 kafka 元数据或类似内容中使用timestamp
@Harold Kafka 0.10 包含每个事件的时间戳。添加--property print.timestamp=true
【参考方案1】:
不清楚您是想从代理方还是从您的消费者那里找到这些信息。
如果消费者方面没问题,您可以检查以下指标:
kafka.consumer:type=consumer-fetch-manager-metrics,client-id="client-id"
它有一个records-consumed-total
属性,指示消费者实例已收到多少条记录。
【讨论】:
以上是关于检查一天内从 Kafka 主题中消耗了多少事件?的主要内容,如果未能解决你的问题,请参考以下文章