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

 

若是用生成jtl文件再分析結果的方式的話,每一次請求就會往jtl裏面寫一條數據,在進行長時間的穩定性測試的時候,特別是當TPS很高的時候,寫入的數據會很是的大,這個時候等穩定性測試完成,再對jtl進行分析,會沒法分析,若是要強制進行分析,形成的最後結果是內存泄漏,即沒法分析,因此須要經過其餘途徑來保存和分析數據html

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

 

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

 

 

由於jmeter要往infuxdb裏面寫數據,因此最好把這兩個放在一臺機器上,grafana只作展現infuxdb裏面的數據,能夠另外部署正則表達式

 

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

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

修改influxdb.conf數據庫

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

 修改後windows

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

修改後

 

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

 

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

 一、經過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包

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

三、InfluxDb操做

  3.一、啓動InfluxDb,執行命令:systemctl start influxdb  或者:influxd

  因爲用單純的啓動命令啓動,當ssh客戶端關閉後會中止運行,因此用nohup後臺啓動:nohup /usr/bin/influxd,這樣即便ssh客戶端關閉,也不會致使influxdb中止運行

  

  3.二、查看InfluxDb狀態,執行命令:systemctl status influxdb

  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、安裝

  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

 

 2、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

 

配置:
一、進入系統
二、添加DataSource,

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

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

五、database寫jmeter,其餘均不用寫,最後點save and test

能夠點save&test試一下

 

 回到home頁

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

 

六、建立jmeter腳本,添加監聽器-backend listener

監聽器配置
一、graphiteHost:influxdb的ip
二、summaryOnly:false
三、samplersList:http請求名稱的前綴.+,如get-.+(這裏有兩種狀況,如只想看名字爲http...的,就寫http...,若是想看多個,就用正則表達式,前提是建立的請求的前綴都是同樣的)
四、useRegexpForSamplersList:true

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

選擇jmeter庫

輸入sql語句,回車

 

五、配置grafana報表

這裏通常選擇曲線圖就好了

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

要展現的指標,這裏有3種狀況,ok表明成功的,ko表明失敗的,a表明所有

 

Display下面,Null value改成connected,建立完成後關掉

展現爲下圖,點ADD ROW能夠繼續添加指標

若是不想看這個指標了,能夠把鼠標往左放,會彈出菜單,remove就好了

設置好要展現的數據的階段和規則,點保存,之後想看哪一個階段的數據均可以在這裏設置

 

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

 

 

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

相關文章
相關標籤/搜索