检查一天内从 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 主题中消耗了多少事件?的主要内容,如果未能解决你的问题,请参考以下文章

GPS消耗多少电池?

Kafka实践:到底该不该把不同类型的消息放在同一个主题中?

显示 Spark 结构化流作业消耗的事件数

Leetcode 1014. 在 D 天内送达包裹的能力

1011. 在 D 天内送达包裹的能力(二分查找)

1011. 在 D 天内送达包裹的能力(二分查找)