1. 性能监控平台
Jmeter自带的测试报告如下:
这个测试报告存在两个问题:
1、只能自己看,无法实时共享;
2、报告信息的展示比较简陋单一,不直观;
为了解决上述问题,本文将结合 InfluxDB+Grafana演示如何搭建性能监控平台;
InfluxDB:持续型数据库,有时间戳组件,以时间的形式去存储数据
Grafana:一款采用 Go 语言编写的开源应用,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具
简单总结起来就是:
将 Jmeter 的数据导入 InfluxDB,再用 Grafana 从 InfluxDB 中获取数据并以特定的模板进行展示
优化后的报告如下,数据更加直观,且可以时事共享,是否感觉更加高大上了
2、性能监控平台部署实践
本文将运用Docker技术实施整个平台的搭建过程
2.1、Docker环境
本文的重点并不是介绍 Docker,所以不了解的小伙伴需要自己去学习一下基本的安装和操作,可参考之前发送的 测开技术 Docker基本操作。
2.2、InfluxDB
1)首先去下载InfluxDB的镜像,下载很简单,直接pull就好,默认为下载最新的镜像:
$ docker pull influxdb
目前最新的influxdb不支持网页端的查看,仅可用命令行的形式,不过没有什么影响,如果真的想要有网页端的显示的话可以尝试下载较前的镜像:tutum/influxdb
2)启动一个容器,并将端口8083和8086映射出来,如果用的是tutum/influxdb镜像,在访问8083端口时就可以看到网页端的展示,我这里用的是最新的,所以就没有啦:
$ docker run -d --name jmeter-influx -p 8083:8083 -p 8086:8086 influxdb
3)进入容器内部,创建名为jmeter的数据库:
进入jmeter-influx容器
$ docker exec -it jmeter-influx bash
进入influx,create database jmeter
创建名为jmeter的数据库,show databases
命令查看数据库创建成功
4)user jmeter
使用 Jmeter 库,select * from jemter
查看数据,这个时候应该是没有数据的:
2.3 Jmeter脚本设置
这里需要创建一个登录注册场景的Jmeter脚本,往期文章有发布,本次就以此来进行测试结果演示。具体可参考之前发送的公众号文章。文章末尾的「往期回顾」第二篇文章即可阅读。
1)想要将jmeter的测试数据导入influxDB,就需要在Jmeter中使用Backend Listener配置
先看一下配置好的Backend Listener:
2)主要配置说明:
implementation
选择influxdb所对应的:
influxdbUrl
:需要改为自己influxdb的部署ip和映射端口,端口是容器启动时映射的8086端口,db后面跟的是刚才创建的数据库名称
application
:可根据需要自由定义,只是注意后面在grafana中选对即可
measurement
:表名,默认是jmeter,也可以自定义
summaryOnly
:选择true的话就只有总体的数据,false会将每个transaction都分别记录
3)运行验证
运行Jmeter脚本,然后再次在influxdb中查看数据,发现类似下面的数据说明输入导入成功:
2.3、Grafana
1)首先我们需要下载grafana的镜像:
$ docker pull grafana/grafana
2)启动一个grafana容器,将3000端口映射出来:
$ docker run -d --name grafana -p 3000:3000 grafana/grafana
3)网页端访问locahost:3000(根据自己的)验证部署成功。初次登录时的账号密码是admin/admin;
首次进入会要求你改密码,安装操作来即可,到达首页;
4)选择添加数据源
5)找到并选择influxdb:
6)配置数据源
数据源创建成功时会有绿色的提示:
7)导入模板
模板导入分别有以下3种方式:
1、直接输入模板id号
2、直接上传模板json文件
3、直接输入模板json内容
8)下载模板,在grafana的官网下载我们需要的展示模板
https://grafana.com/grafana/dashboards?dataSource=influxdb&search=jmeter
下面这两个是我尝试过的模板:
9)导入模板,这里选择输入模板id号的方式,输入上面的模板,配置好模板名称和对应的数据源,然后import即可
10)展示设置,首先选择我们创建的application
注意:如果我们修改过表名,也就是在jmeter的Backend Listener的measurement配置(默认为jmeter),这个时候就需要去设置中进行修改(我这里使用的就是默认的,所以无需修改):
至此整个性能监控平台就已搭建好了,大家可以试着去实践一下