使用jmx?exporter采集kafka指標示例詳解
預置條件
安裝kafka、prometheus
使用JMX exporter暴露指標
下載jmx exporter以及配置文件。Jmx exporter中包含了kafka各個組件的指標,如server metrics、producer metrics、consumer metrics等,但這些指標并不是prometheus格式的,因此需要通過重命名方式轉(zhuǎn)變?yōu)閜rometheus格式,重命名規(guī)則配置在kafka-2_0_0.yml中。
wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.12.0/jmx_prometheus_javaagent-0.12.0.jar wget https://raw.githubusercontent.com/prometheus/jmx_exporter/master/example_configs/kafka-2_0_0.yml
kafka集群啟用監(jiān)控
啟用的方式比較簡單,只需要在kafka-server-start.sh中添加如下兩行即可:
...
#添加如下兩行
export JMX_PORT="7081"
export KAFKA_OPTS="-javaagent:/Users/charlie.liu/kafka_2.13-3.2.3/monitor/jmx_prometheus_javaagent-0.12.0.jar=7072:/Users/charlie.liu/kafka_2.13-3.2.3/monitor/kafka-2_0_0.yml"
COMMAND=$1
case $COMMAND in
-daemon)
EXTRA_ARGS="-daemon "$EXTRA_ARGS
shift
;;
*)
;;
esac
exec $base_dir/kafka-run-class.sh $EXTRA_ARGS kafka.Kafka "$@"
prometheus的配置文件如下,啟動之后即可看到kafka的指標:
global:
scrape_interval: 15s
scrape_configs:
- job_name: "kafka-cluster"
static_configs:
- targets: ["localhost:7072"]
采集producer/consumer的指標
kafka的producer metrics和consumer metrics的格式與kafka server metrics的格式不同,因此需要特定的重命名配置,可以將其追加到kafka-2_0_0.yml文件中:
# MBean: kafka.producer:type=producer-metrics,client-id=([-.w]+)
- pattern: kafka.(.*)<type=(.*)-metrics, client-id=(.*)><>(.+):\w*
name: kafka_$2-metrics
labels:
client_id: "$3"
attr_name: "$4"
help: "Kafka global client JMX metric $1 $2-metrics"
type: GAUGE
# MBean: kafka.producer:type=producer-node-metrics,client-id=([-.w]+),node-id=([0-9]+)
# MBean: kafka.consumer:type=consumer-node-metrics,client-id=([-.w]+),node-id=([0-9]+)
- pattern: kafka.(.*)<type=(.*)-metrics, client-id=(.*), node-id=(.*)><>(.+):\w*
name: kafka_$2_$5-metrics
labels:
client_id: "$3"
node_id: "$4"
attr_name: "$5"
help: "Kafka client JMX metric $1 $2-metrics"
type: GAUGE
- pattern: kafka.(.*)<type=(.*)-metrics, client-id=(.*), topic=(.*)><>(.+):\w*
name: kafka_$2_$5-metrics
labels:
client_id: "$3"
topic: "$4"
attr_name: "$5"
help: "Kafka client JMX metric $1 $2-metrics"
type: GAUGE
使用如下方式啟動consumer,
KAFKA_OPTS="-javaagent:/kafka_2.13-3.2.3/monitor/jmx_prometheus_javaagent-0.12.0.jar=7073:/kafka_2.13-3.2.3/monitor/kafka-2_0_0.yml" kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic charlie-test1 --from-beginning
并在prometheus的配置文件中添加consumer target,reload prometheus 配置即可發(fā)現(xiàn)consumer的指標,producer的指標采集與consumer類似。
global:
scrape_interval: 15s
scrape_configs:
- job_name: "kafka-cluster"
static_configs:
- targets: ["localhost:7072"]
- job_name: "kafka-consumer"
static_configs:
- targets: ["localhost:7073"]
官方給出了Jmx exporter的其他例子。
注:由于不同的配置Jmx exporter生成的kafka指標名稱是不一樣的,因此并沒有統(tǒng)一的kafka grafana dashboard,最好還是自己繪制。
以上就是使用jmx exporter采集kafka指標示例詳解的詳細內(nèi)容,更多關(guān)于jmx exporter采集kafka的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java synchronized線程交替運行實現(xiàn)過程詳解
這篇文章主要介紹了Java synchronized線程交替運行實現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-11-11
Java多線程之循環(huán)柵欄技術(shù)CyclicBarrier使用探索
這篇文章主要介紹了Java多線程之循環(huán)柵欄技術(shù)CyclicBarrier,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪<BR>2024-01-01
利用Intellij Idea連接遠程服務器實現(xiàn)遠程上傳部署功能
大家在使用Intellij Idea開發(fā)程序的時候,是不是需要部署到遠程SSH服務器運行呢,當然也可以直接在idea軟件內(nèi)容實現(xiàn)配置部署操作,接下來通過本文給大家分享利用Intellij Idea連接遠程服務器實現(xiàn)遠程上傳部署功能,感興趣的朋友跟隨小編一起看看吧2021-05-05

