Jmeter + Grafana + InfluxDB 性能测试监控
閱讀目錄
1. 安裝InfluxDB
2. 安裝Grafana
3. 配置Jmeter
?
序章
??????? 前幾天在群里看到大神們在討論Jmeter + InfluxDB + Grafana監(jiān)控。說起來Jmeter原生的監(jiān)控確實太丑了。當年不斷安慰自己說“丑一點沒關系,只要能用,好用,就行了!”。但是內(nèi)心并不是這樣,做為一名測試人員,都有一顆精益求精的心。看到有東西可以替代那原生的監(jiān)控數(shù)據(jù),果斷親自動手部署了一套。
??????? 是吧,很帥吧!數(shù)據(jù)是用InfluxDB來存儲的,展示則是用Grafana來展示的
??????? InfluxDB是一個年輕的時序數(shù)據(jù)庫,是用同樣很年輕的語言“GO”開發(fā)出來的。小數(shù)據(jù)量的時候還性能還不錯,但是數(shù)據(jù)量大一點,性能問題就體現(xiàn)出來了。不過只是收集一下我?guī)讉€小時測試的數(shù)據(jù),還是足夠了。要是幾個月的測試數(shù)據(jù)那還是挑別的數(shù)據(jù)庫吧。
??????? Grafana是純粹用js編寫出來的,專門用來展示數(shù)據(jù)用的。
??????? 基本上,就是Jmeter通過“Backend Listener”,將測試的數(shù)據(jù)上傳到我的虛擬機上,通過InfluxDB來存儲,Grafana來展示出來。我們訪問web,稍微配置一下,就可以看到展示的數(shù)據(jù)了。
??? 我的InfluxDB和Grafana都是部署在一臺Linux虛擬機下面的。
虛擬機 --- IP 192.168.245.131?
1. 安裝InfluxDB
新建InfluxDB下載源
cat << EOF | tee /etc/yum.repos.d/influxdb.repo [influxdb] name = InfluxDB Repository - RHEL \$releasever baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable enabled = 1 gpgcheck = 1 gpgkey = https://repos.influxdata.com/influxdb.key EOF?
使用yum下載InfluxDB
yum install -y influxdb?
修改InfluxDB的配置,主要配置jmeter存儲的數(shù)據(jù)庫與端口號,還有需要將UI端口開放
[root@localhost ~]# vi /etc/influxdb/influxdb.conf ? # 找到graphite并且修改它的庫與端口 [[graphite]] ? enabled = true ? database = "jmeter" ? bind-address = ":2003" ? protocol = "tcp" ? consistency-level = "one" ? # 找到admin,將前面的#號去掉,開放它的UI端口[admin] ? # Determines whether the admin service is enabled. ? enabled = true
? # The default bind address used by the admin service. ? bind-address = ":8083"
? # Whether the admin service should use HTTPS. ? # https-enabled = false
? # The SSL certificate used when HTTPS is enabled. ? # https-certificate = "/etc/ssl/influxdb.pem
?
啟動InfluxDB
[root@localhost ~]# /etc/init.d/influxdb restart Stopping influxdb... influxdb process was stopped [ OK ] Starting influxdb... influxdb process was started [ OK ]?
打開瀏覽器,訪問虛擬機IP“http://192.168.245.131:8083”
如果啟動成功應該會InfluxDB的web ui界面。查看有沒有jmeter庫,沒有就新建一個。
在輸入框中,輸入如下,來新建庫:
CREATE DATABASE "jmeter"?
2. 安裝Grafana
使用yum下載Grafana并且安裝
yum install https://grafanarel.s3.amazonaws.com/builds/grafana-3.0.1-1.x86_64.rpm?
啟動Grafana
[root@localhost ~]# /etc/init.d/grafana-server restart OKopping Grafana Server ...??????????????????????????????? [? OK? ] Starting Grafana Server: .... OK?
打開瀏覽器,訪問虛擬機IP“http://192.168.245.131:3000”
?
輸入用戶名,密碼登錄系統(tǒng)。用戶名與密碼都是"admin"
?
添加需要展示數(shù)據(jù)的數(shù)據(jù)庫
?
添加InfluxDB數(shù)據(jù)庫配置。輸入帳號密碼“admin / admin”,點擊Test & Save 提示“Success”說明成功了
【注意】URL的端口是8086,而剛才配置的8083是UI的端口。
??? - 8083端口是InfluxDB的UI界面展示的端口
??? - 8086端口是Grafana用來從數(shù)據(jù)庫取數(shù)據(jù)的端口
??? - 2003端口則是剛剛設置的,Jmeter往數(shù)據(jù)庫發(fā)數(shù)據(jù)的端口
?
3. 配置Jmeter
1. jmeter中,添加“監(jiān)聽器 -> Backend Listener”
2. 配置“Backend Listener”,主要配置Host,如下圖
3. 添加一個Java請求,方便測試。(因為想偷懶,Java請求我什么都不用寫,直接運行就能成功)?
4. 添加“監(jiān)聽器 -> 查看結(jié)果樹” 運行一下Jmeter,主要看Java請求是否發(fā)送出去了
沒有什么問題,這個時候訪問InfluxDB“http://192.168.245.131:8083”,?在輸入框中輸入如下,點擊回車:
點擊回車后,就應該有數(shù)據(jù)了,會出現(xiàn)下圖:
這個時候再回來配置Grafana,來展示這些數(shù)據(jù)
?
添加一個展示項目
點擊“Home -> New”
?
添加一個圖表
點擊旁邊的綠點“Add Panel -> Graph”
?
配置圖表
配置好了,就能看到圖了。如果看不到圖,請用Jmeter多發(fā)幾次Java請求。下圖中選擇監(jiān)控的選項,可以在Jmeter的官網(wǎng)上查看到對應的解釋。
?
大致介紹幾種我常用的監(jiān)控。
| 名稱 | 描述 |
| jmeter.all.h.count | 所有請求的TPS |
| jmeter.<請求名稱>.h.count | 對應<請求名稱>的TPS |
| jmeter.all.ok.pct99 | 99%的請求響應時間 |
| jmeter.<請求名稱>.ok.pct99 | 對應<請求名稱>99%的請求響應時間 |
| jmeter.all.test.startedT | 線程數(shù) |
?
【注意】如果要監(jiān)控<請求名稱>的話,Jmeter上的“Backend Listener”修改如下參數(shù)
1. 將“summanyOnly”修改成False,
2. 將“userRegexpForSamplersList”修改成True,
3. 并且要設置“samplersList”的值,“samplersList”是可以支持正則表達式的,“samplersList”的設置要與請求對應,否則找不到該請求。如圖
?
設置好了,運行一下,在Grafana里面,就可以看到自己的請求了。
?
如果想要了解這些監(jiān)控都代表什么意思,可以訪問Jmeter的官網(wǎng)地址去查看閱讀“http://jmeter.apache.org/usermanual/realtime-results.html”
?
最后來一張帥氣的圖:
from:http://www.cnblogs.com/yyhh/p/5990228.html
《新程序員》:云原生和全面數(shù)字化實踐50位技術專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的Jmeter + Grafana + InfluxDB 性能测试监控的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。