kafka基本分爲broker、producer、consumer三個子項,每一項的啓動都須要用到 $KAFKA_HOME/bin/kafka-run-class.sh 腳本,在該腳本中,存在如下語句:java
if ... KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false" fi if ... KAFKA_JMX_OPTS="$KAFKA_JMX_OPTS -Dcom.sun.management.jmxremote.port=$JMX_PORT " fi
在啓動kafka的過程當中,只要指定 JMX_PORT 的值,便可對broker、producer、consumer進行監控。目前有兩種方法,fetch
如下端口均隨機得到。.net
主機名 | 類別 | 端口號 |
---|---|---|
192.168.20.10 | broker | 9183 |
192.168.20.10 | producer | 9108 |
192.168.20.10 | consumer | 9173 |
objectName | 指標項 | 說明 |
---|---|---|
java.lang:type=OperatingSystem | FreePhysicalMemorySize | 空閒物理內存 |
java.lang:type=OperatingSystem | SystemCpuLoad | 系統CPU利用率 |
java.lang:type=OperatingSystem | ProcessCpuLoad | 進程CPU利用率 |
java.lang:type=GarbageCollector, name=G1 Young Generation |
CollectionCount | GC次數 |
objectName | 指標項 | 說明 |
---|---|---|
kafka.server:type=BrokerTopicMetrics, name=BytesInPerSec |
Count | 每秒輸入的流量 |
kafka.server:type=BrokerTopicMetrics, name=BytesOutPerSec |
Count | 每秒輸出的流量 |
kafka.server:type=BrokerTopicMetrics, name=BytesRejectedPerSec |
Count | 每秒扔掉的流量 |
kafka.server:type=BrokerTopicMetrics, name=MessagesInPerSec |
Count | 每秒的消息寫入總量 |
kafka.server:type=BrokerTopicMetrics, name=FailedFetchRequestsPerSec |
Count | 當前機器每秒fetch請求失敗的數量 |
kafka.server:type=BrokerTopicMetrics, name=FailedProduceRequestsPerSec |
Count | 當前機器每秒produce請求失敗的數量 |
kafka.server:type=ReplicaManager, name=PartitionCount |
Value | 該broker上的partition的數量 |
kafka.server:type=ReplicaManager, name=LeaderCount |
Value | Leader的replica的數量 |
kafka.network:type=RequestMetrics, name=TotalTimeMs,request=FetchConsumer |
Count | 一個請求FetchConsumer耗費的全部時間 |
kafka.network:type=RequestMetrics, name=TotalTimeMs,request=FetchFollower |
Count | 一個請求FetchFollower耗費的全部時間 |
kafka.network:type=RequestMetrics, name=TotalTimeMs,request=Produce |
Count | 一個請求Produce耗費的全部時間 |
objectName | 指標項 | 官網說明 | 譯文說明 |
---|---|---|---|
kafka.producer:type=producer-metrics,client-id=console-producer(client-id會變化) | incoming-byte-rate | The average number of incoming bytes received per second from all servers. | producer每秒的平均寫入流量 |
kafka.producer:type=producer-metrics,client-id=console-producer(client-id會變化) | outgoing-byte-rate | The average number of outgoing bytes sent per second to all servers. | producer每秒的輸出流量 |
kafka.producer:type=producer-metrics,client-id=console-producer(client-id會變化) | request-rate | The average number of requests sent per second to the broker. | producer每秒發給broker的平均request次數 |
kafka.producer:type=producer-metrics,client-id=console-producer(client-id會變化) | response-rate | The average number of responses received per second from the broker. | producer每秒發給broker的平均response次數 |
kafka.producer:type=producer-metrics,client-id=console-producer(client-id會變化) | request-latency-avg | The average time taken for a fetch request. | 一個fetch請求的平均時間 |
kafka.producer:type=producer-topic-metrics,client-id=console-producer,topic=testjmx(client-id和topic名稱會變化) | record-send-rate | The average number of records sent per second for a topic. | 每秒從topic發送的平均記錄數 |
kafka.producer:type=producer-topic-metrics,client-id=console-producer,topic=testjmx(client-id和topic名稱會變化) | record-retry-total | The total number of retried record sends | 重試發送的消息總數量 |
kafka.producer:type=producer-topic-metrics,client-id=console-producer,topic=testjmx(client-id和topic名稱會變化) | record-error-total | The total number of record sends that resulted in errors | 發送錯誤的消息總數量 |
objectName | 指標項 | 官網說明 | 說明 |
---|---|---|---|
kafka.consumer:type=consumer-fetch-manager-metrics,client-id=consumer-1(client-id會變化) | records-lag-max | Number of messages the consumer lags behind the producer by. Published by the consumer, not broker. | 由consumer提交的消息消費lag |
kafka.consumer:type=consumer-fetch-manager-metrics,client-id=consumer-1(client-id會變化) | records-consumed-rate | The average number of records consumed per second | 每秒平均消費的消息數量 |