前言
在web应用服务开发中,尤其是在流行的微服务框架下开发web服务,高并发已经是这些大型服务网站的标配。为了保证我们服务的高可用以及性能调优,找出系统的瓶颈,我们需要提前对我们的服务接口进行压力测试。这里我们主要以http的服务接口为例,通过压测我们atp应用测试平台(atp: 应用测试平台)中的某些接口,演示一下我们本节中搭建的性能实时监控测试平台。该平台我们以influxdb时序数据存储我们的压力测试数据,使用grafana访问我们的influxdb数据,从而实时监控我们的服务接口各项压测指标。我们的测试工具主要是用apache旗下的jmeter测试工具压测我们的接口,并将数据存储到influxdb数据库中。grafana与influxdb服务我们都通过docker容器搭建。下面就开始我们性能实时监控测试平台搭建。
正文
-
使用docker搭建influxdb数据库服务
- 创建influxdb容器
命令:docker run -d --name my-influxdb --restart=always -p 8086:8086 -e "TZ=Asia/Shanghai" influxdb:1.8
- 进入容器创建一个atp数据库,用于存储我们的压测数据
命令:docker exec -it my-influxdb /bin/bash
到这里我们的influxdb数据库就搭建成功了。
-
使用docker搭建grafana服务
- 创建grafana容器
命令:docker run -d --name my-grafana --restart=always -p 3000:3000 -e "TZ=Asia/Shanghai" grafana/grafana
- 访问grafana服务
- 配置influx数据源
- 配置jmeter压测数据的监控模板
说明:这里我们可以使用一些现成的jmeter监控模板,当然也可以自定义,作者这里就不自定义了,因为要写一些influxdb监控语句的sql,相对较为复杂,我们这里直接访问Dashboards | Grafana Labs这个grafana的模板地址,下载一个我们influxdb的jmeter监控模板,并导入我们的grafana。
上传json模板文件
导入模板,配置数据源
最终的监控panel如下,这样我们配置好jmeter压测服务,就可以在grafana实时监控我们的各项压力测试指标了。
-
使用jmeter做压力测试
- 官网下载
下载地址:Apache JMeter - Download Apache JMeter
- 解压并启动jmeter
- 设置中文语言,方便使用
- 配置一个压测接口
配置并发数,以及并发访问策略
配置atp接口访问地址
配置一个HTTP信息管理头。默认数据是不能以json传参的,这里我们配置一下
配置一些jmeter的本地观测器,通过这些本地观测器,我们可以查看我们压力测试的吞吐量、最小最大请求时间等一些信息
配置我们influxdb后端监测器,将压测数据保存到influxdb中
启动atp服务,点击开始,开始压测配置的接口
访问grafana,实时查看监测的各项性能指标
如果要重新测试,我们stop这次测试结果,先清理本次测试结构,在重新压测,具体的压测参数配置,可参考官网。
结语
ok,到这里我们整个http的性能实时监控测试平台搭建及演示就结束了,通过压测平台,我们就能实时的查看我们的压测结果,并根据压测结果,分析我们的接口性能,对我们的代码,服务器等做一些优化的参考。下期见。。。