当前位置: 首页 > 工具软件 > kafka-monitor > 使用案例 >

Kafka的监控指标

郝承悦
2023-12-01

0、前言

Kafka的度量指标主要有以下三类:

1.Kafka服务器(Kafka)指标

2.生产者指标

3.消费者指标

另外,由于Kafka的状态靠Zookeeper来维护,对于Zookeeper性能的监控也成为了整个Kafka监控计划中一个必不可少的组成部分。

一、Broker度量指标

Kafka的服务端度量指标是为了监控broker,也是整个消息系统的核心。因为所有消息都通过kafka broker传递,然后被消费,所以对于broker集群上出现的问题的监控和告警就尤为重要。broker性能指标有以下三类:

  • Kafka本身的指标

  • 主机层面的指标

  • JVM垃圾回收指标

UnderReplicatedPartitions

在一个运行健康的集群中,处于同步状态的副本数(ISR)应该与总副本数(简称AR:Assigned Repllicas)完全相等,如果分区的副本远远落后于leader,那这个follower将被ISR池删除,随之而来的是IsrShrinksPerSec(可理解为isr的缩水情况,后面会讲)的增加。由于kafka的高可用性必须通过副本来满足,所有有必要重点关注这个指标,让它长期处于大于0的状态。

IsrShrinksPerSec

IsrExpandsPerSec

任意一个分区的处于同步状态的副本数(ISR)应该保持稳定,只有一种例外,就是当你扩展broker节点或者删除某个partition的时候。为了保证高可用性,健康的kafka集群必须要保证最小ISR数,以防在某个partiton的leader挂掉时它的follower可以接管。如果IsrShrinksPerSec(ISR缩水) 增加了,但并没有随之而来的IsrExpandsPerSec(ISR扩展)的增加,就将引起重视并人工介入。

ActiveControllerCount

controller的职责是维护partition leader的列表,当遇到这个值等于0且持续了一小段时间(<1秒)的时候,必须发出明确的告警。

OfflinePartitionsCount

这个指标报告了没有活跃leader的partition数。

LeaderElectionRateAndTimeMs

leader选举的频率(每秒钟多少次)和集群中无leader状态的时长(以毫秒为单位)

UncleanLeaderElectionsPerSec

这个指标如果存在的话很糟糕,这说明kafka集群在寻找partition leader节点上出现了故障

TotalTimeMs

这个指标是由4个其他指标的总和构成的:

lqueue:处于请求队列中的等待时间

llocal:leader节点处理的时间

lremote:等待follower节点响应的时间

lresponse:发送响应的时间

BytesInPerSec

BytesOutPerSec

Kafka的吞吐量

二、 生产者度量指标

Response rate

响应的速率是指数据从producer发送到broker的速率

Request rate

请求的速率是指数据从producer发送到broker的速率

Request latency avg

平均请求延迟

Outgoing byte rate

Producer的网络吞吐量

IO wait time ns avg

Producer的I/O等待的时间

三、消费者度量指标

ConsumerLag MaxLag

指consumer当前的日志偏移量相对生产者的日志偏移量

BytesPerSec

消费者的网络吞吐量

MessagesPerSec

消息的消费速度

ZooKeeperCommitsPerSec

当zookeeper处于高写负载的时候,将会遇到成为性能瓶颈,从而导致从kafka管道抓取数据变得缓慢。随着时间推移跟踪这个指标,可以帮助定位到zookeeper的性能问题,如果发现有大量发往zookeeper的commit请求,你需要考虑的是,要不对zookeeper集群进行扩展。

MinFetchRate

消费者最小拉取的速率

通过官方网站的说明(http://kafka.apache.org/documentation/#monitoring),可以查看Kafka提供的所有的监控指标参数。在这里只是列出了部分主要的参数指标。

 类似资料: