grafana 監控 kafka 訊息引數描述
2.3 預警指標分析
kafka.server:type=ReplicaManager,name=UnderReplicatedPartitions **
含義: 正在複製的 Partition 的數量.
建議報警閾值: > 0 就建議報警. 但如果 Kafka 叢集正在 reassign partition 時, 這個值也會 >0
kafka.controller:type=KafkaController,name=OfflinePartitionsCount
含義: 沒有 Leader 的 Partition 的數量. 處於這個狀態的 Partition 是不可讀也不可寫
建議報警閾值: >0 一旦出現就報警.
kafka.controller:type=KafkaController,name=ActiveControllerCount
含義: 活躍的 Controller 的數量.
建議報警閾值: != 0 就趕緊報警
kafka.server:type=ReplicaManager,name=PartitionCount
含義: 叢集中 Partition 的總數
建議報警閾值: 感覺這個報警不可控.
kafka_controller_controllerstats_leaderelectionrateandtimems
含義: Leader election rate 領導人選舉率
UncleanLeaderElectionsPerSec
含義: Unclean leader election rate 爭議的 leader 選舉次數
描述:所有的topic的訊息速率(訊息數/秒)
Mbean名:“kafka.server”:name=“AllTopicsMessagesInPerSec”,type=“BrokerTopicMetrics”
正常的值:
描述:所有的topic的流入資料速率(位元組/秒)
Mbean名:“kafka.server”:name=“AllTopicsBytesInPerSec”,type=“BrokerTopicMetrics”
正常的值:
描述:producer或Fetch-consumer或Fetch-follower的請求速率(請求次數/秒)
Mbean名:“kafka.network”:name="{Produce|Fetch-consumer|Fetch-follower}-RequestsPerSec",type=“RequestMetrics”
正常的值:
描述:所有的topic的流出資料速率(位元組/秒)
Mbean名: “kafka.server”:name=“AllTopicsBytesOutPerSec”,type=“BrokerTopicMetrics”
正常的值:
描述:刷日誌的速率和耗時
Mbean名: “kafka.log”:name=“LogFlushRateAndTimeMs”,type=“LogFlushStats”
正常的值:
描述:正在做複製的partition的數量(|ISR| < |all replicas|)
Mbean名:“kafka.server”:name=“UnderReplicatedPartitions”,type=“ReplicaManager”
正常的值:0
描述:當前的broker是否為controller
Mbean名:“kafka.controller”:name=“ActiveControllerCount”,type=“KafkaController”
正常的值:在叢集中只有一個broker的這個值為1
描述:選舉leader的速率
Mbean名:“kafka.controller”:name=“LeaderElectionRateAndTimeMs”,type=“ControllerStats”
正常的值:如果有broker掛了,此值非0
描述:Unclean的leader選舉速率
Mbean名:“kafka.controller”:name=“UncleanLeaderElectionsPerSec”,type=“ControllerStats”
正常的值:0
描述:該broker上的partition的數量
Mbean名: “kafka.server”:name=“PartitionCount”,type=“ReplicaManager”
正常的值:應在各個broker中平均分佈
描述:Leader的replica的數量
Mbean名: “kafka.server”:name=“LeaderCount”,type=“ReplicaManager”
正常的值:應在各個broker中平均分佈
描述:ISR的收縮(shrink)速率
Mbean名:“kafka.server”:name=“ISRShrinksPerSec”,type=“ReplicaManager”
正常的值:如果一個broker掛掉了,一些partition的ISR會收縮。當那個broker重新起來時,一旦它的replica完全跟上,ISR會擴大(expand)。除此之外,正常情況下,此值和下面的擴大速率都是0。
描述:ISR的擴大(expansion)速率
Mbean名: “kafka.server”:name=“ISRExpandsPerSec”,type=“ReplicaManager”
正常的值:參見ISR的收縮(shrink)速率
描述:follower落後leader replica的最大的訊息數量
Mbean名:“kafka.server”:name="([-.\w]+)-MaxLag",type=“ReplicaFetcherManager”
正常的值:小於replica.lag.max.messages
描述:每個follower replica落後的訊息速率
Mbean名:“kafka.server”:name="([-.\w]+)-ConsumerLag",type=“FetcherLagMetrics”
正常的值:小於replica.lag.max.messages
描述:等待producer purgatory的請求數
Mbean名:“kafka.server”:name=“PurgatorySize”,type=“ProducerRequestPurgatory”
正常的值:如果ack=-1,應為非0值
描述:等待fetch purgatory的請求數
Mbean名:“kafka.server”:name=“PurgatorySize”,type=“FetchRequestPurgatory”
正常的值:依賴於consumer的fetch.wait.max.ms的設定
描述:一個請求(producer,Fetch-Consumer,Fetch-Follower)耗費的所有時間
Mbean名:“kafka.network”:name="{Produce|Fetch-Consumer|Fetch-Follower}-TotalTimeMs",type=“RequestMetrics”
正常的值:包括了queue, local, remote和response send time
描述:請求(producer,Fetch-Consumer,Fetch-Follower)在請求佇列中的等待時間
Mbean名:“kafka.network”:name="{Produce|Fetch-Consumer|Fetch-Follower}-QueueTimeMs",type=“RequestMetrics”
正常的值:
描述:請求(producer,Fetch-Consumer,Fetch-Follower)在leader處理請求花的時間
Mbean名:“kafka.network”:name="{Produce|Fetch-Consumer|Fetch-Follower}-LocalTimeMs",type=“RequestMetrics”
正常的值:
描述:請求(producer,Fetch-Consumer,Fetch-Follower)等待follower花費的時間
Mbean名:“kafka.network”:name="{Produce|Fetch-Consumer|Fetch-Follower}-RemoteTimeMs",type=“RequestMetrics”
正常的值:producer的ack=-1時,非0才正常
描述:傳送響應花費的時間
Mbean名:“kafka.network”:name="{Produce|Fetch-Consumer|Fetch-Follower}-ResponseSendTimeMs",type=“RequestMetrics”
正常的值:
描述:consumer落後producer的訊息數量
Mbean名:“kafka.consumer”:name="([-.\w]+)-MaxLag",type=“ConsumerFetcherManager”
正常的值:
建議對GC耗時和其他引數和諸如系統CPU,I/O時間等等進行監控。在client端,建議對"訊息數量/位元組數"的速率(全域性的和對於每一個topic),請求的"速率/大小/耗時"進行監控。還有consumer端,所有partition的最大的落後情況和最小的fetch請求的速率。consumer為了能跟上,最大落後數量需要少於一個threshold並且最小fetch速率需要大於0.