1.背景
接前文,之前分享了node_exporter的安裝,對於rocketmq而言,不僅要監控最基本的機器信息,同時也要監控rocketmq的服務可用性。常見的一些服務指標包括:producer的消息生產tps,consumer的消費tps,整個集群的broker的tps等。這里我們使用rocketmq-exporter來采集相關的信息。
2.項目
3.采集維度
如下是常見的一些采集維度
1)broker
如果你不使用事務的話,如下的兩個指標可以看成一樣的。
指標 | 指標 |
---|---|
rocketmq_broker_tps |
單個broker的tps(每秒事物處理數) |
rocketmq_broker_qps |
單個broker的qps(每秒請求處理數) |
2)producer
主要是生產相關的指標
指標 | 指標 |
---|---|
rocketmq_producer_tps |
單個topic的消息生產的TPS |
rocketmq_producer_message_size |
單個topic每秒消息生產的總數據量大小 |
rocketmq_producer_offset |
單個topic消息生產的offset |
3)Consumer Groups
主要是消費相關的指標
Name | Exposed information |
---|---|
rocketmq_consumer_tps |
單consumer組每秒消息的TPS |
rocketmq_consumer_message_size |
單consumer組每秒消息消息的總數據大小 |
rocketmq_consumer_offset |
單consumer組消息的offset |
rocketmq_group_get_latency_by_storetime |
單consumer組消息延遲(與對應topic生產的offset差值) |
這里列舉的是常見的指標, 其他指標參考Github上的幫助說明
4.安裝
4.1 配置
如表所示,我們需要配置就rocketmq.config.namesrvAddr和rocketmq.config.rocketmqVersion這兩項。
name
|
Default
|
Description
|
rocketmq.config.namesrvAddr
|
127.0.0.1:9876
|
這里需要指定為實際的nameserverip
|
rocketmq.config.webTelemetryPath
|
/metrics
|
暴漏出來的metrics的path,不用修改
|
server.port
|
5557
|
監聽端口號,一般也不用挨
|
rocketmq.config.rocketmqVersion
|
V4_7_1
|
這里修改為對應rocketmq的版本,比如我使用的就是rocketmq的v4.7.1版本
|
4.2 下載項目
git clone https://github.com/apache/rocketmq-exporter cd rocketmq-exporter
4.3 編譯
編譯可以編譯 二進制版本和 docker鏡像4.3.1 編譯二進制
這種方式需要安裝
maven,執行:
mvn clean install

生成的產物為:rocketmq-exporter-0.0.2-SNAPSHOT.jar
4.3.2 編譯docker鏡像
這種方式依賴docker環境,需要預裝docker環境,參考
docker環境搭建
1)DockerFile修改(否則編譯會失敗,見FAQ部分)
執行
:vi src/main/docker/Dockerfile,
編輯為如下內容(黑體)
FROM java:8MAINTAINER breezeADD rocketmq-exporter-0.0.2-SNAPSHOT.jar quickstart.jarEXPOSE 5557ENTRYPOINT ["java","-jar","quickstart.jar"]
2)編譯docker鏡像
mvn package -Dmaven.test.skip=true docker:build
3)查看docker鏡像
docker images | grep rocket
5. 運行
5.1 二進制方式
1)啟動
#nameserver1為實際的nameserver的ip,在/etc/hosts中配置的 nohup java -jar target/rocketmq-exporter-0.0.2-SNAPSHOT.jar --rocketmq.config.namesrvAddr=nameserver1:9876 -rocketmq.config.rocketmqVersion=V4_7_1 &
2)停止
ps aux | grep rocketmq-exporter | awk '{print $2}' | xargs kill -9
5.2 docker方式
1) 啟動#nameserver1為實際的nameserver的ip,在/etc/hosts中配置的
docker run -d --name rmq-export --net="host" -p 5557:5557 rocketmq-exporter --rocketmq.config.namesrvAddr=nameserver1:9876 -rocketmq.config.rocketmqVersion=V4_7_1
2)停止
docker stop rmq-export
5.3 查看端口號
netstat -nltp | grep 5557
博主:測試生財(一個不為996而996的測開碼農)
座右銘:專注測試開發與自動化運維,努力讀書思考寫作,為內卷的人生奠定財務自由。
內容范疇:技術提升,職場雜談,事業發展,閱讀寫作,投資理財,健康人生。
csdn:https://blog.csdn.net/ccgshigao
博客園:https://www.cnblogs.com/qa-freeroad/
51cto:https://blog.51cto.com/14900374
微信公眾號:測試生財(定期分享獨家內容和資源)