本文以kafka2.1.1版本为例
http://kafka.apache.org/21/documentation.html#monitoring
Kafka使用Yammer Metrics来上报broker端的Metrics。Java客户端使用Kafka Metrics上报,这是一个内置的Metrics注册表,它最小化了客户端应用程序的依赖关系。两者都可以通过JMX方式获取,并且是可插拨的连接到你的监控系统。
所有Kafka rate都有一个对应的带后缀 -total
的累积计数指标,例如:records-consumed-rate
有一个对应的累积计数指标 records-consumed-total
服务端及客户端监控实现请参考GitHub地址:https://github.com/yyijun/kafka.git
以下指标全部可以通过jmx获取到
1)分区在同步中的副本数:InSyncReplicasCount
ObjectName kafka.cluster:type=Partition,name=InSyncReplicasCount,topic=test1,partition=0
属性:Value=2
2)分区副本数:ReplicasCount
ObjectName kafka.cluster:type=Partition,name=ReplicasCount,topic=test1,partition=0
属性:Value=2
3)分区缺失副本数:UnderReplicated
ObjectName kafka.cluster:type=Partition,name=UnderReplicated,topic=test1,partition=0
属性:Value=0
4)集群活跃controller个数:ActiveControllerCount
ObjectName kafka.controller:type=KafkaController,name=ActiveControllerCount
属性:Value=0
5)分区LogEndOffset
ObjectName kafka.log:type=Log,name=LogEndOffset,topic=test1,partition=0
属性:Value=0
6)分区LogStartOffset
ObjectName kafka.log:type=Log,name=LogStartOffset,topic=test1,partition=0
属性:Value=0
7)分区segment个数:NumLogSegments
ObjectName kafka.log:type=Log,name=NumLogSegments,topic=test1,partition=0
属性:Value=25
8)分区存储大小:Size
ObjectName kafka.log:type=Log,name=Size,topic=test1,partition=0
属性:Value=20000000
9)broker网络空闲率:NetworkProcessorAvgIdlePercent
kafka.network:type=SocketServer,name=NetworkProcessorAvgIdlePercent
10)broker一分钟内平均每秒入流量,单位:字节
ObjectName kafka.server:type=BrokerTopicMetrics,name=BytesInPerSec
主要属性:
EventType=bytes
OneMinuteRate=102400000
RateUnit=SECONDS
11)topic在broker一分钟内平均每秒入流量,单位:字节
ObjectName kafka.server:type=BrokerTopicMetrics,name=BytesInPerSec,topic=test1
主要属性:
EventType=bytes
OneMinuteRate=102400000
RateUnit=SECONDS
12)broker一分钟内平均每秒出流量,单位:字节
BytesOutPerSec(一分钟内平均每秒出流量,单位:字节)
ObjectName kafka.server:type=BrokerTopicMetrics,name=BytesOutPerSec
主要属性:
EventType=bytes
OneMinuteRate=102400000
RateUnit=SECONDS
13)topic在broker一分钟内平均每秒出流量,单位:字节
ObjectName kafka.server:type=BrokerTopicMetrics,name=BytesOutPerSec,topic=test1
主要属性:
EventType=bytes
OneMinuteRate=102400000
RateUnit=SECONDS
14)broker/topic平均每秒拒绝流量,单位:字节
kafka.server:type=BrokerTopicMetrics,name=BytesRejectedPerSec
kafka.server:type=BrokerTopicMetrics,name=BytesRejectedPerSec,topic=test1
15)broker/topic平均每秒失败抓取请求次数
kafka.server:type=BrokerTopicMetrics,name=FailedFetchRequestsPerSec
kafka.server:type=BrokerTopicMetrics,name=FailedFetchRequestsPerSec,topic=test1
16)broker/topic平均每秒失败生产请求次数
kafka.server:type=BrokerTopicMetrics,name=FailedProduceRequestsPerSec
kafka.server:type=BrokerTopicMetrics,name=FailedProduceRequestsPerSec,topic=test1
17)broker/topic平均每秒抓取请求总次数
kafka.server:type=BrokerTopicMetrics,name=TotalFetchRequestsPerSec
kafka.server:type=BrokerTopicMetrics,name=TotalFetchRequestsPerSec,topic=test1
18)broker/topic平均每秒生产请求总次数
kafka.server:type=BrokerTopicMetrics,name=TotalProduceRequestsPerSec
kafka.server:type=BrokerTopicMetrics,name=TotalProduceRequestsPerSec,topic=test1
19)broker/topic一分钟内平均每秒入流量,单位:记录数
kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec
主要属性:
EventType=messages
OneMinuteRate=102400000
RateUnit=SECONDS
kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec,topic=test1
主要属性:
EventType=messages
OneMinuteRate=102400000
RateUnit=SECONDS
20)用户在broker每秒生产消费字节与被限制流量时间
kafka.server:type=Produce,user=kafkacommon
属性:
byte-rate(每秒生产字节)
throttle-time(1秒内生产被限制时间,单位:毫秒)
kafka.server:type=Fetch,user=kafkacommon
属性:
byte-rate(每秒消费字节)
throttle-time(1秒内消费被限制时间,单位:毫秒)
21)broker请求队列空闲率:RequestHandlerAvgIdlePercent
kafka.server:type=KafkaRequestHandlerPool,name=RequestHandlerAvgIdlePercent
22)Isr每秒扩展或收缩速率
kafka.server:type=ReplicaManager,name=IsrExpandsPerSec
属性:MeanRate
kafka.server:type=ReplicaManager,name=IsrShrinksPerSec
属性:MeanRate
23)broker上leader分区个数
kafka.server:type=ReplicaManager,name=LeaderCount
属性:Value
24)broker上分区个数
kafka.server:type=ReplicaManager,name=PartitionCount
属性:Value
25)用户在broker的平均请求时间
kafka.server:type=Request,user=kafkacommon
属性:request-time
kafka.[producer|consumer|connect]:type=[producer|consumer|connect]-metrics,client-id=([-.\w]+)
指标名称 | 指标描述 |
---|---|
connection-close-rate | 每秒被关闭连接数 |
connection-close-total | 从客户端本次启动截止当前被关闭连接总数 |
connection-creation-rate | 每次创建新连接数 |
connection-creation-total | 从客户端本次启动截止当前新创建连接总数 |
connection-count | 当前活跃连接数 |
network-io-rate | 每秒网络读写次数 |
network-io-total | 从客户端本次启动截止当前网络读写总次数 |
outgoing-byte-rate | 每秒输出字节 |
outgoing-byte-total | 从客户端本次启动截止当前输出总字节 |
request-rate | 每秒请求次数 |
request-total | 从客户端本次启动截止当前请求总次数 |
request-size-avg | 平均请求大小,单位:字节 |
request-size-max | 最大请求大小,单位:字节 |
incoming-byte-rate | 每秒输入字节 |
incoming-byte-total | 从客户端本次启动截止当前输入总字节 |
response-rate | 每秒响应次数 |
response-total | 从客户端本次启动截止当前响应总次数 |
io-wait-ratio | IO线程等待时间 |
io-ratio | IO线程执行时间 |
kafka.producer:type=[consumer|producer|connect]-node-metrics,client-id=([-.\w]+),node-id=([0-9]+)
指标名称 | 指标描述 |
---|---|
outgoing-byte-rate | 每秒输出字节 |
outgoing-byte-total | 从客户端本次启动截止当前输出总字节 |
incoming-byte-rate | 每秒输入字节 |
incoming-byte-total | 从客户端本次启动截止当前输入总字节 |
request-rate | 每秒请求次数 |
request-total | 从客户端本次启动截止当前请求总次数 |
request-size-avg | 平均请求大小,单位:字节 |
request-size-max | 最大请求大小,单位:字节 |
response-rate | 每秒响应次数 |
response-total | 从客户端本次启动截止当前响应总次数 |
request-latency-avg | 平均请求延迟 ,单位:毫秒 |
request-latency-max | 最大请求延迟,单位:毫秒 |
kafka.producer:type=producer-metrics,client-id="{client-id}"
指标名称 | 指标描述 |
---|---|
record-size-avg | 平均记录大小,单位:字节 |
record-size-max | 最大记录大小,单位:字节 |
kafka.producer:type=producer-topic-metrics,client-id="{client-id}",topic="{topic}"
指标名称 | 指标描述 |
---|---|
byte-rate | topic每秒生产字节 |
byte-total | 从客户端本次启动截止当前topic生产总字节 |
record-error-rate | topic每秒错误记录数 |
record-error-total | 从客户端本次启动截止当前topic生产错误记录总数 |
record-retry-rate | topic每秒生产重试记录数 |
record-retry-total | 从客户端本次启动截止当前topic生产重试记录总数 |
record-send-rate | topic每秒生产记录数 |
record-send-total | 从客户端本次启动截止当前topic生产记录总数 |
kafka.consumer:type=consumer-coordinator-metrics,client-id=([-.\w]+)
指标名称 | 指标描述 |
---|---|
commit-latency-avg | 平均请求延迟,单位:毫秒 |
commit-latency-max | 最大请求延迟,单位:毫秒 |
commit-rate | 每秒提交次数 |
commit-total | 提交总次数 |
kafka.consumer:type=consumer-fetch-manager-metrics,client-id="{client-id}"
指标名称 | 指标描述 |
---|---|
bytes-consumed-rate | 每秒消费字节 |
bytes-consumed-total | 消费总字节 |
records-consumed-rate | 每秒消费记录 |
records-consumed-total | 消费总记录 |
fetch-latency-avg | 平均抓取延迟,单位:毫秒 |
fetch-latency-max | 最大抓取请求延迟,单位:毫秒 |
fetch-size-avg | 平均抓取请求大小,单位:字节 |
fetch-size-max | 最大抓取请求大小,单位:字节 |
fetch-rate | 每秒抓取请求数 |
fetch-total | 抓取请求总数 |
kafka.consumer:type=consumer-fetch-manager-metrics,client-id="{client-id}",topic="{topic}"
指标名称 | 指标描述 |
---|---|
bytes-consumed-rate | topic每秒消费字节 |
bytes-consumed-total | topic消费总字节 |
records-consumed-rate | topic每秒消费记录 |
records-consumed-total | topic消费总记录 |
fetch-size-avg | 平均抓取请求大小,单位:字节 |
fetch-size-max | 最大抓取请求大小,单位:字节 |
kafka.consumer:type=consumer-fetch-manager-metrics,partition="{partition}",topic="{topic}",client-id="{client-id}"
指标名称 | 指标描述 |
---|---|
records-lag | 分区当前消费延迟记录 |
records-lag-avg | 分区平均消费延迟记录 |
records-lag-max | 分区最大消费延迟记录 |