性能測試五十:Jmeter+Influxdb+Grafana實時數據展示系統搭建


 

如果用生成jtl文件再分析結果的方式的話,每一次請求就會往jtl里面寫一條數據,在進行長時間的穩定性測試的時候,特別是當TPS很高的時候,寫入的數據會非常的大,這個時候等穩定性測試完成,再對jtl進行分析,會無法分析,如果要強制進行分析,造成的最后結果是內存泄漏,即無法分析,所以需要通過其他途徑來保存和分析數據

上Grafana官網下載Grafana,此產品只有64位的版本,沒有32位的

 

Influxdb:InfluxDB是一個開源的時序數據庫,使用GO語言開發,特別適合用於處理和分析資源監控數據這種時序相關數據。而InfluxDB自帶的各種特殊函數如求標准差,隨機取樣數據,統計數據變化比等,使數據統計和實時分析變得十分方便。上官網下載

 

 

因為jmeter要往infuxdb里面寫數據,所以最好把這兩個放在一台機器上,grafana只做展示infuxdb里面的數據,可以另外部署

 

jmeter實時數據展示系統搭建(windows為例,linux也是這樣部署)

1,InfluxDB安裝配置
安裝:解壓influxdb-1.2.4_windows_amd64.zip

修改influxdb.conf

[[graphite]]
enabled = true
database = "jmeter"
bind-address = ":2003"
protocol = "tcp"
consistency-level = "one"

 修改后

[admin]
enabled = true
bind-address = ":8083"
https-enabled = false

修改后

 

啟動:cmd下進入到解壓目錄,執行命令:influxd -config influxdb.conf

 

=================================linux版=================================

 1、通過Xshell連接到虛擬機,執行如下命令(安裝完成后在/etc下面):

  wget https://dl.influxdata.com/influxdb/releases/influxdb-1.2.2.x86_64.rpm

  sudo yum localinstall influxdb-1.2.2.x86_64.rpm

  或者:rpm -ivh 自己上傳的 influxdb.rpm包

2、InfluxDb配置文件,存放在/etc/influxdb/influxdb.conf

3、InfluxDb操作

  3.1、啟動InfluxDb,執行命令:systemctl start influxdb  或者:influxd

  由於用單純的啟動命令啟動,當ssh客戶端關閉后會停止運行,所以用nohup后台啟動:nohup /usr/bin/influxd,這樣即使ssh客戶端關閉,也不會導致influxdb停止運行

  

  3.2、查看InfluxDb狀態,執行命令:systemctl status influxdb

  3.3、停止InfluxDb,執行命令:systemctl stop influxdb

 

開放8083端口

查詢端口開放狀態:firewall-cmd --query-port=8083/tcp

加入到要開放的端口:firewall-cmd --add-port=8083/tcp --permanent

重啟防火牆:firewall-cmd --reload

再次查詢開放狀態

 

=================================linux版=================================

 

訪問:http://localhost:8083/

創建數據庫:CREATE DATABASE "jmeter" 回車

 

 

 

2,安裝Grafana
安裝:直接解壓grafana-4.3.2.windows-x64.zip

啟動:進入bin目錄下,雙擊grafana-server.exe

 

=================================linux版=================================

一、安裝

  1  通過Xshell連接到虛擬機,執行如下命令:

  wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.2.0-1.x86_64.rpm

  sudo yum localinstall grafana-4.2.0-1.x86_64.rpm

  或者:rpm -ivh 自己上傳的grafana.rpm包

  2 設置自啟動,執行如下命令:

  systemctl daemon-reload (重新載入 systemd,掃描新的或有變動的單元)

  systemctl enable grafana-server.service

  3 啟動Grafana,執行命令:systemctl start grafana-server

  4 通過瀏覽器訪問Grafana:Grafana默認訪問端口是3000,admin用戶的默認密碼是admin

 

 二、Grafana配置文件,存放在/etc/grafana/grafana.ini,里面的配置,基本上不需要修改,如果需要修改,注釋掉每個配置項前面的分號即可。

  1 數據文件:Grafana默認使用SQLite3進行存儲,存儲路徑為:/var/lib/grafana

  2 日志文件存儲路徑為: /var/log/grafana

  3 域名默認是:domain = localhost,其中localhost可以修改為指定的域名

  4 是否允許非admin用戶創建組織:;allow_org_create = false

  5 是否允許匿名登錄 

  [auth.anonymous]

  # enable anonymous access

  ;enabled = false

 

=================================linux版=================================

訪問http://localhost:3000
登錄admin/admin

 

配置:
1、進入系統
2、添加DataSource,

3、name寫自定義的名稱隨便寫,type選influxdb

4、填寫influxdb的url(默認讀數據的端口號8086):http://localhost:8086

5、database寫jmeter,其他均不用寫,最后點save and test

可以點save&test試一下

 

 回到home頁

注意:
8083是influxdb的web端訪問端口
2003是Jmeter往influxdb中寫數據的接口
8086是grafana訪問influxdb的端口

 

6、創建jmeter腳本,添加監聽器-backend listener

監聽器配置
1、graphiteHost:influxdb的ip
2、summaryOnly:false
3、samplersList:http請求名稱的前綴.+,如get-.+(這里有兩種情況,如只想看名字為http...的,就寫http...,如果想看多個,就用正則表達式,前提是創建的請求的前綴都是一樣的)
4、useRegexpForSamplersList:true

運行jmeter,到influxdb頁面中查詢:select * from /.*/ limit 1,可以看到剛才運行的數據

選擇jmeter庫

輸入sql語句,回車

 

5、配置grafana報表

這里一般選擇曲線圖就行了

點PanelTiltle_Edit,即可添加要監控的指標

要展示的指標,這里有3種情況,ok代表成功的,ko代表失敗的,a代表全部

 

Display下面,Null value改為connected,創建完成后關掉

展示為下圖,點ADD ROW可以繼續添加指標

如果不想看這個指標了,可以把鼠標往左放,會彈出菜單,remove就行了

設置好要展示的數據的階段和規則,點保存,以后想看哪個階段的數據都可以在這里設置

 

開始壓測,10個並發跑600秒

 

 

6、grafana中監聽的Jmeter各指標解釋:http://jmeter.apache.org/usermanual/realtime-results.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM