Jmeter+Grafana+Chronograf+InfluxDB性能測(cè)試監(jiān)控平臺(tái)
依賴的軟件版本:
influxdb-1.3.0.x86_64.rpm
chronograf-1.4.4.1.x86_64.rpm
grafana-6.2.1-1.x86_64.rpm
一、安裝InfluxDB
安裝完畢后,修改InfluxDB的配置:
配置jmeter存儲(chǔ)的數(shù)據(jù)庫與端口號(hào)
vi /etc/influxdb/influxdb.conf在graphite配置項(xiàng)下修改庫與端口
enabled = true database = "jmeter" bind-address = ":2003" protocol = "tcp" consistency-level = "one"啟動(dòng)InfluxDB
/etc/init.d/influxdb restart二、InfluxDB數(shù)據(jù)庫配置
1、登錄數(shù)據(jù)庫
influx -host 127.0.0.1 -port 8086
2、數(shù)據(jù)庫管理
# 創(chuàng)建數(shù)據(jù)庫create database # 查詢所有數(shù)據(jù)庫> show databases# 使用某個(gè)數(shù)據(jù)庫> use 創(chuàng)建一個(gè)名為jmeter的數(shù)據(jù)庫

3、表管理
# SHOW measurements命令查看所有的表,這個(gè)類似于mysql下的 show tables;SHOW MEASUREMENTS;# 創(chuàng)建表,直接在插入數(shù)據(jù)的時(shí)候指定表名INSERT ,host=server1,region=cn_east-1 value=0.68 # 刪除表DROP MEASUREMENT三、配置InfluxDB web管理
InfluxDB 1.3以及之后的版本已經(jīng)取消在InfluxDB中啟用web管理了,取而代之的是使用Chronograf。
安裝Chronograf 組件:
wget https://dl.influxdata.com/chronograf/releases/chronograf-1.4.4.1.x86_64.rpmsudo yum localinstall chronograf-1.4.4.1.x86_64.rpm啟動(dòng)web服務(wù):
sudo systemctl start chronograf
然后通過http://localhost:8888連接Web頁面:

接下來的步驟將Chronograf連接到您的InfluxDB實(shí)例
對(duì)于Connection String,輸入運(yùn)行InfluxDB的機(jī)器的主機(jī)名或IP,并確保包含InfluxDB的默認(rèn)端口:8086。
接下來,命名連接字符串,這可以輸入任何值。
最后三個(gè)輸入框無需編輯。
Username并且Password可以保持空白,Telegraf的默認(rèn)數(shù)據(jù)庫名稱為telegraf。
保存成功以后,可以在influxdb Admin看到數(shù)據(jù)庫管理界面,在這里可以看到剛剛新建的jmeter數(shù)據(jù)庫

四、安裝Grafana
根據(jù)官網(wǎng)指引下載安裝Grafana
wget https://dl.grafana.com/oss/release/grafana-6.2.1-1.x86_64.rpmsudo yum localinstall grafana-6.2.1-1.x86_64.rpm啟動(dòng)
Grafana /etc/init.d/grafana-server restart打開瀏覽器,訪問 http://localhost:3000
輸入用戶名和密碼登錄系統(tǒng),用戶名與密碼都是admin
第一次登錄成功以后會(huì)讓你重置密碼。
添加需要展示數(shù)據(jù)的數(shù)據(jù)庫,這里我們配置Influxdb,
配置Influxdb URL

配置Influxdb 數(shù)據(jù)庫,用戶名和密碼

五、配置Jmeter
jmeter中,添加【監(jiān)聽器 -> Backend Listener】,選擇監(jiān)聽類型并配置graphiteHost

默認(rèn)情況下,JMeter發(fā)送在samplerName“all”下累計(jì)的所有采樣器的指標(biāo)。如果配置了 BackendListenerSamplersList,那么JMeter還會(huì)發(fā)送匹配樣本名稱的指標(biāo),前提是配置 summaryOnly=true
配置完畢后,發(fā)送接口請(qǐng)求,可以多發(fā)幾次,
然后進(jìn)入到chronograf的Data Explorer頁面,在【Query Templates】下拉框中選擇{Show Tag Value},然后依次選擇jmeter數(shù)據(jù)庫和任意一張指標(biāo)表,會(huì)發(fā)現(xiàn)在上方到輸入框里自動(dòng)生產(chǎn)類似sql一樣的語句,按下回車,就會(huì)在底部的圖表模塊生成數(shù)據(jù),
這樣表明Jmeter到InfluxDB配置正確。

如果想要監(jiān)控某個(gè)或某幾個(gè)指定請(qǐng)求的話,Jmeter上的“Backend Listener”修改如下參數(shù):將“summanyOnly”修改成False,將“userRegexpForSamplersList”修改成True,并且要設(shè)置“samplersList”的值,“samplersList”是可以支持正則表達(dá)式的,“samplersList”的設(shè)置要與請(qǐng)求對(duì)應(yīng),否則找不到該請(qǐng)求。
如圖:

端口說明:
8086端口,Grafana用來從數(shù)據(jù)庫取數(shù)據(jù)的端口
2003端口,JMeter往數(shù)據(jù)庫發(fā)數(shù)據(jù)的端口
如果想要了解這些監(jiān)控都代表什么意思,可以訪問Jmeter的官網(wǎng)地址去查看閱讀。
六、配置Grafana
1、點(diǎn)擊左側(cè)+號(hào),選擇Dashboard

2、在New Panel下選擇【Add Query】

3、選擇數(shù)據(jù)庫類型和任意指標(biāo)表名

最后生成圖表如下:

線程數(shù)/用戶相關(guān)指標(biāo)
test.minAT-Min active threads:最小活躍線程數(shù)
test.maxAT-Max active threads:最大活躍線程數(shù)
test.meanAT-Mean active threads:活躍線程數(shù)
test.startedT-Started threads:?jiǎn)?dòng)線程數(shù)
test.endedT-Finished threads:結(jié)束線程數(shù)
響應(yīng)時(shí)間指標(biāo)
ok.count:采樣器的成功響應(yīng)數(shù)
h.count:每秒點(diǎn)擊數(shù)
ok.min:采樣器成功最短響應(yīng)時(shí)間
ok.max:采樣器成功最長響應(yīng)時(shí)間
ok.avg:采樣器成功平均響應(yīng)時(shí)間
ok.pct:采樣器成功響應(yīng)百分比
ko.count:采樣器失敗響應(yīng)數(shù)
ko.min:采樣器失敗的響應(yīng)最短時(shí)間
ko.max:采樣稱失敗最長響應(yīng)時(shí)間
ko.avg:采樣器失敗平均響應(yīng)時(shí)間
ko.pct:采樣器失敗響應(yīng)百分比
a.count:采樣器響應(yīng)數(shù)(ok.count和ko.count的總和)
a.min:采樣器最小響應(yīng)時(shí)間(ok.count和ko.count的最小值)
a.max:采樣器最大響應(yīng)時(shí)間(ok.count和ko.count的最大值)
a.avg:采樣器平均響應(yīng)時(shí)間(ok.count和ko.count的平均值)
a.pct:采樣器響應(yīng)百分比(根據(jù)和失敗樣本的總數(shù)計(jì)算)
七、Grafana導(dǎo)入Dashboard模版
Grafana官網(wǎng)提供豐富的模版的庫,進(jìn)行二次擴(kuò)展。
搜索看板模版:

1、下載JMeter Load Test 的 JSON文件和Jmeter依賴包

2、在Grafana中導(dǎo)入json模版

設(shè)置DB

3、配置Jmeter
3.1 將下載的JMeter-InfluxDB-Writer-plugin-xx.xx.jar放到Jmeter的/lib/ext目錄下
3.2 在Jmeter腳本中添加 Backend Listener (Add -> Listener -> Backend Listener)
3.3 Backend Listener implementation選擇{JMeterInfluxDBBackendListenerClient}
3.4 配置參數(shù)列表

最后運(yùn)行腳本,可以看到DashBoard

參考:
https://xiexianbin.cn/database/influxdb/2018-04-09-influxdb/
https://blog.csdn.net/zuozewei/article/details/82911173
-------- THE END --------
