一、前言
在此之前公司测试团队用jmeter做性能压测,压测出来的报告都是用jmeter原生自带的HTML测试报告,虽然对于压测分析来说其实已经足够了,在学过极客时间“性能压测30讲”之后,才接触到jmeter扩展支持的监控体系的强大,所以本文章采用jmeter+influxdb+grafana方式来搭建jmeter性能压测的监控
二、原生report VS grafana report
原生report:
- jmeter原生report是由压测机(客户机)生成的,所以在压测过程中监听数据并生成HTML报告会有性能损耗
- 若为分布式压测,对操控机性能会有极大损耗,不建议用原生HTML报告
- 对于性能压测常用分析手段就是TPS、RT大致两种分析图即可判定服务端的性能瓶颈,所以原生HTML报告其实也能够分析出来
grafana:
- grafana官方模板库带有jmeter模板插件,一键设置即可导入对应的模板
- 生成的模板视图更加美观
- 能够实时的监控压测的性能情况,更友好性的进行分析
其实grafana也算不上是报告,只能称之为:时序性数据展示工具
具体内容参考grafana官网文档:https://grafana.com/docs/grafana/latest/
jmeter图表:
- 请忽略图表run的数据,只是为了demo演示
grafana图表:
通过上面其实可以看出grafana观赏性更加可观,下面开始切入主题
三、jmeter + influxdb + grafana搭建步骤
influxDB
安装篇:
- influxdb支持yum、docker、源码包安装方式,本文通过yum进行安装
- 首先进入influxdb github网站下载对应的安装包:https://github.com/influxdata/influxdb/releases/tag/v1.8.2
- 或者linux终端执行
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.2.x86_64.rpm
- 下载到本地终端后执行
yum localinstall influxdb-1.8.2.x86_64.rpm
安装influxdb安装包 - 安装成功后执行
systemctl start influxdb
启动influxdb服务 - influxdb启动默认会开启8086端口,执行
netstat -tnpl|grep 8086
出现如图所示表示服务启动成功
浏览器执行http://ip:8086 显示404 page not found也同样表示influxdb服务启动成功
influxdb基础语法:
- influxdb是一个时序型数据库,定位于分布式数据监控作为数据存储用
- influxdb数据存储方式是以时间为记录进行存储的
名次/概念 | ken.io 的解释 |
---|---|
database | 数据库 |
measurement | 度量,相当于table |
tags | 标签,相当于field,会被索引 |
field | 字段,不会被索引 |
- 终端执行
influx
即可进入influxdb客户端
#创建用户
CREATE USER influx WITH PASSWORD 'influx' WITH ALL PRIVILEGES
#查看用户
SHOW USERS
#创建数据库
create database + name
drop database + name
#查看数据库
show databases
#查看表
show measurements
drop measurement + name
#插入数据
#Insert的时候如果没有带时间戳,InfluxDB会自动添加本地的当前时间作为它的时间戳。
INSERT cpu,host=192.168.1.1 load=0.1,usage=0.2
#查看数据
SELECT * FROM "cpu"
SELECT "host","load","usage" FROM "cpu" WHERE "host" = '192.168.1.1'
grafana
安装篇:
- 参考grafana官网下载地址:https://grafana.com/grafana/download
- 终端执行
wget https://dl.grafana.com/oss/release/grafana-7.1.5-1.x86_64.rpm
,下载grafana rpm安装包 sudo yum install grafana-7.1.5-1.x86_64.rpm
安装grafana/etc/init.d/grafana-server restart
启动grafana服务- 启动成功后通过 http://ip:3000 访问grafana控制台,初始账号密码admin/admin
- 按如下图安装influxdb插件
- 在influxdb设置页,设置对应的请求influxdb服务的URL,并且设置对应连接influxdb数据库的名称,然后保存即可
进入influxdb客户端,create database jmeter ,创建一个数据库名称为:jmeter
- 这个时候grafana配置influxdb就OK了,但是我们要选择合适的jmeter监控模板插件,就要去grafana官网去找
- 将官网对应的dashboard id号导入到插件里面,点击load,配置导入到influxdb插件中即可
- 导入成功后,在grafana dashboard页面就可以看到配置influxdb的图表监控看板了
jmeter操作
- 这个时候就已经到了最后一步了,jmeter相关配置
- 添加 -> 监听器 -> 选择后端监听器
- 根据如图所示配置,后端监听实现:influxdbBackendListenerClient
- influxdbUrl 配置对应的influxdb服务地址即可
- 开始执行压测,查看grafana监控效果