赞
踩
备注:以下内容来自 龙腾测试 - Jmeter + Grafana + InfluxDB 性能测试监控
序章
前几天在群里看到大神们在讨论Jmeter + InfluxDB + Grafana监控。说起来Jmeter原生的监控确实太丑了。当年不断安慰自己说“丑一点没关系,只要能用,好用,就行了!”。但是内心并不是这样,做为一名测试人员,都有一颗精益求精的心。看到有东西可以替代那原生的监控数据,果断亲自动手部署了一套。
是吧,很帅吧!数据是用InfluxDB来存储的,展示则是用Grafana来展示的
InfluxDB是一个年轻的时序数据库,是用同样很年轻的语言“GO”开发出来的。小数据量的时候还性能还不错,但是数据量大一点,性能问题就体现出来了。不过只是收集一下我几个小时测试的数据,还是足够了。要是几个月的测试数据那还是挑别的数据库吧。
Grafana是纯粹用js编写出来的,专门用来展示数据用的。
基本上,就是Jmeter通过“Backend Listener”,将测试的数据上传到我的虚拟机上,通过InfluxDB来存储,Grafana来展示出来。我们访问web,稍微配置一下,就可以看到展示的数据了。
我的InfluxDB和Grafana都是部署在一台Linux虚拟机下面的。
1、influxdb下载安装:
[root@localhost ~]# wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.0.x86_64.rpm --no-check-certificate[root@localhost ~]# rpm -ivh influxdb-1.7.0.x86_64.rpm(如果未安装wget,需要先安装,安装命令:[root@localhost ~]# yum search wget、[root@localhost ~]# yum install wget.x86_64,安装rpm命令:(ubuntu系统:apt-get install rpm))
安装完之后,配置文件路径为:/etc/influxdb/influxdb.conf
修改配置文件:
[root@localhost ~]# vi /etc/influxdb/influxdb.conf
在配置文件中找到graphite配置项
[meta] # Where the metadata/raft database is stored # 存放最终存储的数据,文件以.tsm dir = "/usr/local/influxdb/meta" [data] # The directory where the TSM storage engine stores TSM files. # 存放数据库的源数据wal dir = "/usr/local/influxdb/data" # The directory where the TSM storage engine stores WAL files. # 存放预写日志文件 wal-dir = "/var/lib/influxdb/wal"[[graphite]] # Determines whether the graphite endpoint is enabled. enabled = true database = "jmeter" # 数据库名称 retention-policy = "" bind-address = ":2003" # 端口 protocol = "tcp" consistency-level = "one"#修改HTTP端口信息[http] # Determines whether HTTP endpoint is enabled. enabled = true # The bind address used by the HTTP service. bind-address = ":8086"
启动influxd服务:
[root@localhost ~]# influxd & #influxDB的tcp端口:8088#查看端口有没有起来:[root@localhost ~]# netstat -anp|grep 8088
influxDB数据库操作:
[root@jmeter ~]# influx # 登录数据库Connected to http://localhost:8086 version 1.6.0InfluxDB shell version: 1.6.0> show databases # 查看数据库name: databasesname----_internaljmeter> create database "jmeter" # 创建数据库> use jmeter #切换数据库Using database jmeter> create user "admin" with password '123456' with all privileges
开启需要用到的端口:
[root@localhost ~]# firewall-cmd --zone=public --add-port=8086/tcp --permanentsuccess[root@localhost ~]# firewall-cmd --zone=public --add-port=2003/tcp --permanentsuccess[root@localhost ~]# firewall-cmd --zone=public --add-port=8088/tcp --permanentsuccess[root@localhost ~]# firewall-cmd --reloadsuccess
2、Jmeter配置:
创建一个测试计划,并添加监听器-Backend Listenter,Backend Listener implementation
选择org.apache.jmeter.visualizers.backend.graphite.GraphiteBackendListenerClient
添加线程
设置influxDB IP及端口
运行测试,等待几秒看数据
端口说明:
2003端口:Jmeter往数据库发数据的端口
8086端口,Grafana从数据库取数据的端口
查看Jmeter数据库的表信息:
[root@jmeter ~]# influxConnected to http://localhost:8086 version 1.6.0InfluxDB shell version: 1.6.0> show measurementsERR: database name requiredWarning: It is possible this error is due to not setting a database.Please set a database with the command "use ".> show databasesname: databasesname----_internaljmeter> use jmeterUsing database jmeter> show measurementsname: measurementsname----jmeter.all.a.avgjmeter.all.a.countjmeter.all.a.maxjmeter.all.a.minjmeter.all.a.pct90jmeter.all.a.pct95jmeter.all.a.pct99jmeter.all.h.countjmeter.all.ko.avgjmeter.all.ko.countjmeter.all.ko.maxjmeter.all.ko.minjmeter.all.ko.pct90jmeter.all.ko.pct95jmeter.all.ko.pct99jmeter.all.ok.avgjmeter.all.ok.countjmeter.all.ok.maxjmeter.all.ok.minjmeter.all.ok.pct90jmeter.all.ok.pct95jmeter.all.ok.pct99jmeter.all.rb.bytesjmeter.all.sb.bytesjmeter.test.endedTjmeter.test.maxATjmeter.test.meanATjmeter.test.minATjmeter.test.startedT
这个时候已经可以将统计数据成功发送到InfluxDB
补充:
可以将JMeter-InfluxDB-Writer-plugin-1.2.jar放到jmeter的lib\ext
目录下,这时可以选择:
3、Grafana和influxDB数据源配置
安装Grafana:
官网:https://grafana.com/grafana/download
下载地址:
https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.2.1-1.x86_64.rpm
安装:rpm -ivh grafana-5.2.1-1.x86_64.rpm
(如果提示:警告:grafana-5.2.1-1.x86_64.rpm: 头V4 RSA/SHA1 Signature, 密钥 ID 24098cb6: NOKEY错误:依赖检测失败:fontconfig 被 grafana-5.2.1-1.x86_64 需要 urw-fonts 被 grafana-5.2.1-1.x86_64 需要
执行命令:
[root@localhost ~]# yum install fontconfig freetype* urw-fonts -y
后,再进行安装) 启动
[root@jmeter ~]# service grafana-server start Starting Grafana Server: ... [ OK ]
开启3000访问端口:
[root@bogon benben]# firewall-cmd --zone=public --add-port=3000/tcp --permanentsuccess[root@bogon benben]# firewall-cmd --reloadsuccess
浏览器访问:http://IP:3000/login
grafana的默认用户名密码都是admin,第一次登录会要求更改密码
创建influxDB数据源
单击save & Test,提示:data source is working,说明保存和连接成功
创建dashboard
新建Graph面板
数据绑定
选择influxdb的数据源库名,jmeter的相关表
定义显示的名称
保存数据模板、直接按ctrl+s或点击保存按钮
说明:想要了解这些监控都代表什么意思,可以访问Jmeter的官网地址去查看阅读“http://jmeter.apache.org/usermanual/realtime-results.html”
线程数/用户相关指标test.minAT-Min active threads:最小活跃线程数test.maxAT-Max active threads:最大活跃线程数test.meanAT-Mean active threads:活跃线程数test.startedT-Started threads:启动线程数test.endedT-Finished threads:结束线程数响应时间指标.ok.count:采样器的成功响应数.h.count:每秒点击数.ok.min:采样器成功最短响应时间.ok.max:采样器成功最长响应时间.ok.avg:采样器成功平均响应时间.ok.pct:采样器成功响应百分比.ko.count:采样器失败响应数.ko.min:采样器失败的响应最短时间.ko.max:采样称失败最长响应时间.ko.avg:采样器失败平均响应时间.ko.pct:采样器失败响应百分比.a.count:采样器响应数(ok.count和ko.count的总和).a.min:采样器最小响应时间(ok.count和ko.count的最小值).a.max:采样器最大响应时间(ok.count和ko.count的最大值).a.avg:采样器平均响应时间(ok.count和ko.count的平均值).a.pct:采样器响应百分比(根据和失败样本的总数计算)Backend Listener的默认百分位设置为“90;95;99”,即百分位数为90%,95%和99%。Graphite使用点(“.”)去拆分的元素,这可能与十进制百分位值混淆。JMeter转换任何此类值,用下划线(“ - ”)替换点(“.”)。例如,“99.9 ”变为“99_9 ”默认情况下,JMeter发送在samplerName“all”下累计的所有采样器的指标。如果配置了 Ba
从Grafana官网下载相应的模板
官网模版库:https://grafana.com/dashboards
搜索看板模版
下载:jmeter load test
下载的jar包复制到jmeter的/lib/ext下面
导入模板
加载模板文件,将下载的json文件打开,将源码复制粘贴到第二个框中
选择模板数据源
重启jmeter,再添加一个后置处理器-Backend Listener,选择rocks.nt.apm.jmeter.JMeterinfluxDBBackendListenerClient
,输入influxDB的host和端口,之前创建用户名和密码
压测的效果图
以上为centos系统上的安装方法,以下为ubuntu系统的安装方法:
1、Influxdb下载和安装:
wget https://dl.influxdata.com/influxdb/releases/influxdb_1.2.4_amd64.deb (如果在线下载慢,可以先下载到本机,再上传到centos系统)sudo dpkg -i influxdb_1.2.4_amd64.deb
2、Grafana下载和安装:
wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana_5.1.3_amd64.deb (如果在线下载慢,可以先下载到本机,再上传到centos系统)sudo apt-get install -y adduser libfontconfigsudo dpkg -i grafana_5.1.3_amd64.deb启动服务:sudo service grafana-server start
END
时光,在物转星移中渐行渐远,春花一梦,流水无痕,没有在最想做的时候去做的事情,都是人生的遗憾。人生需要深思熟虑,也需要一时的冲动。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。