性能测试五十: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

相关文章
相关标签/搜索