jmeter压测实时监控平台
概述
本文我们将介绍如何使用JMeter+InfluxDB+Grafana
打造压测可视化实时监控。
[]()引言
我们很多时候在使用JMeter做性能测试,我们很难及时察看压测过程中应用的性能状况,总是需要等到测试完成后去看Report,如果是长时间压测,比如压测1~2天,那就更烦人了。
1、InfluxDB安装
[root@sethnode1 ~]# rpm -ivh https://dl.influxdata.com/influxdb/releases/influxdb-1.6.2.x86_64.rpm
可能之前看过其他教程的就说,修改配置中的graphite,把2003端口起来。但是这里不用graphite协议
我们用插件调用8086
启动服务
[root@sethnode1 ~]# service influxdb restart
Redirecting to /bin/systemctl restart influxdb.service
[root@sethnode1 ~]# netstat -ntlp | grep 8086
tcp6 0 0 :::8086 :::* LISTEN 19301/influxd
[root@sethnode1 ~]#
[root@sethnode1 ~]# influx
Connected to http://localhost:8086 version 1.7.4
InfluxDB shell version: 1.7.4
Enter an InfluxQL query
> show databases
name: databases
name
----
_internal
> CREATE DATABASE "jmeter" #创建数据库
> use jmeter #切换数据库
Using database jmeter
> CREATE USER "admin" WITH PASSWORD 'admin' WITH ALL PRIVILEGES # 创建管理员权限的用户
> show measurements #这里暂时看不到任何表
>
2、JMeter配置
这里偷懒调用的百度,用的固定定时器1秒1次
主要是后端监听器
这里testName和nodeName随便写
influx的几项配置就是之前我们配置的
其他不动
后段监听器这里添加的,如下图
这里还有个最重要的步骤
我们的插件
因为数据最后要通过grafana展示的,所以其实我们要用到grafana的别人写的模版,模版里面有插件的链接
https://grafana.com/dashboards
搜索jmeter
页面有对jmeter和grafana和influxdb版本的要求和jar的下载链接,和jar包要放的位置,写的很详细
3、执行压测
我们查看数据库
> show measurements #之前看不到任何表
> show measurements #压测后再次查看
name: measurements
name
----
requestsRaw
testStartEnd
virtualUsers
>
当然这里只是表,看起来痛苦,我们最后的目的还是通过grafana展示出来,下面安装grafana
4、安装grafana
grafana的安装其实也简单
[root@sethnode1 ~]# rpm -ivh https://dl.grafana.com/oss/release/grafana-6.0.2-1.x86_64.rpm
[root@sethnode1 ~]# service grafana-server start
Starting grafana-server (via systemctl): [ OK ]
[root@sethnode1 ~]#
[root@sethnode1 ~]# netstat -ntlp | grep 3000
tcp6 0 0 :::3000 :::* LISTEN 19370/grafana-serve
[root@sethnode1 ~]#
5、grafana配置
默认账号密码admin,因为是首次登陆,所以还需要改密码
点击skip或者保存密码,会跳转到首页
首页显示当前已经操作过的步骤和未操作的,这里提示我们需要Add data source,添加一个数据源,
点击Add data source
点击保存
点击home回到首页
这里提示我们还需要New dashboard,这里我们不添加,直接导入模版
点击upload.jsonfile
选择我们下载的jmeter-load-test_rev5.json
点击import
这里右上角时间选择一下,就可以看到数据了
因为每5秒刷新一次,所以每次Request count会一直加
如果请求 错误的,这里也会显示Error Rate