问题
嗨,我在用格拉法纳想象Kafka的滞后。我一直在尝试使用metricbeat记录kafka滞后,并且自己做数学运算,因为metricbeat不支持在我使用的版本中记录kafka滞后(但是最近已经实现了)。而不是使用 max(partition.offset.newest) - max(consumergroup.offset)
为了计算滞后,我使用 sum(partition.offset.newest) - sum(consumergroup.offset)
根据特定的 kafka.topic.name
. 但是,总数不符,经过进一步调查,我发现,计数甚至不符!分区偏移量的计数为30/10秒,而consumergroup偏移量的计数为12/10秒。我希望两者的计数相同
我不明白为什么metricbeat记录分区的次数比记录consumergroup的次数多。起初我认为这是因为我的metricbeat配置定义了2个主机组,这可能导致它被多次记录。然而,在改变了我的配置之后,计数下降了一半。
热释光;博士
为什么partition和consumergroup的metricbeat计数不同?
设置
Kafka2经纪人
Kafka主题分区:
Topic: xxx PartitionCount:3 ReplicationFactor:2 Configs:
Topic: xxx Partition: 0 Leader: 2 Replicas: 2,1 Isr: 2,1
Topic: xxx Partition: 1 Leader: 1 Replicas: 1,2 Isr: 1,2
Topic: xxx Partition: 2 Leader: 2 Replicas: 2,1 Isr: 2,1
metricbeat配置(modules.d/kafka.yml):
- module: kafka
#metricsets:
# - partition
# - consumergroup
period: 10s
hosts: ["xxx.yyy:9092"]
版本
Kafka2.11-0.11.0.0
elasticsearch-7.2.0版
Kibana-7.2.0
节拍-7.2.0
1条答案
按热度按时间kt06eoxx1#
经过多次调试,我发现了问题所在:
出于某种原因,我的kafka代理1只有producer度量而没有consumer度量,连接到代理2解决了这个问题。连接两个代理将把这两个指标添加到一起。
lucene使用模糊搜索,所以我的数据中也有一些其他的消费群体。要精确匹配单词,请使用
kafka.partition.topic.keyword: ''
相反。这使得我的Kafka生产者补偿与消费者补偿的比率为2:1metricbeat也会记录副本,所以我需要设置
NOT kafka.partition.partition.is_leader: false
得到所有分区的领导者。这使得耗电元件与分配比为1:1。完成这三个步骤后,我就可以使用这个公式了
sum(partition.offset.newest) - sum(consumergroup.offset)
为了得到滞后但是,我不知道为什么broker1没有消费者信息。