(一)HTTP请求压力测试篇——性能实时监控测试平台搭建(Grafana+Influxdb+Jmeter)

前言

在web应用服务开发中,尤其是在流行的微服务框架下开发web服务,高并发已经是这些大型服务网站的标配。为了保证我们服务的高可用以及性能调优,找出系统的瓶颈,我们需要提前对我们的服务接口进行压力测试。这里我们主要以http的服务接口为例,通过压测我们atp应用测试平台(https://gitee.com/northcangap/atp.git)中的某些接口,演示一下我们本节中搭建的性能实时监控测试平台。该平台我们以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

(一)HTTP请求压力测试篇——性能实时监控测试平台搭建(Grafana+Influxdb+Jmeter)_第1张图片

到这里我们的influxdb数据库就搭建成功了。

  • 使用docker搭建grafana服务

  • 创建grafana容器

命令:docker run -d --name my-grafana --restart=always -p 3000:3000 -e "TZ=Asia/Shanghai" grafana/grafana

  • 访问grafana服务

(一)HTTP请求压力测试篇——性能实时监控测试平台搭建(Grafana+Influxdb+Jmeter)_第2张图片

  • 配置influx数据源

(一)HTTP请求压力测试篇——性能实时监控测试平台搭建(Grafana+Influxdb+Jmeter)_第3张图片

(一)HTTP请求压力测试篇——性能实时监控测试平台搭建(Grafana+Influxdb+Jmeter)_第4张图片

(一)HTTP请求压力测试篇——性能实时监控测试平台搭建(Grafana+Influxdb+Jmeter)_第5张图片

  • 配置jmeter压测数据的监控模板

说明:这里我们可以使用一些现成的jmeter监控模板,当然也可以自定义,作者这里就不自定义了,因为要写一些influxdb监控语句的sql,相对较为复杂,我们这里直接访问https://grafana.com/grafana/dashboards这个grafana的模板地址,下载一个我们influxdb的jmeter监控模板,并导入我们的grafana。

(一)HTTP请求压力测试篇——性能实时监控测试平台搭建(Grafana+Influxdb+Jmeter)_第6张图片

上传json模板文件

(一)HTTP请求压力测试篇——性能实时监控测试平台搭建(Grafana+Influxdb+Jmeter)_第7张图片

导入模板,配置数据源

(一)HTTP请求压力测试篇——性能实时监控测试平台搭建(Grafana+Influxdb+Jmeter)_第8张图片

最终的监控panel如下,这样我们配置好jmeter压测服务,就可以在grafana实时监控我们的各项压力测试指标了。

(一)HTTP请求压力测试篇——性能实时监控测试平台搭建(Grafana+Influxdb+Jmeter)_第9张图片

  • 使用jmeter做压力测试

  • 官网下载

下载地址:https://jmeter.apache.org/download_jmeter.cgi

(一)HTTP请求压力测试篇——性能实时监控测试平台搭建(Grafana+Influxdb+Jmeter)_第10张图片

  • 解压并启动jmeter

(一)HTTP请求压力测试篇——性能实时监控测试平台搭建(Grafana+Influxdb+Jmeter)_第11张图片

  • 设置中文语言,方便使用

(一)HTTP请求压力测试篇——性能实时监控测试平台搭建(Grafana+Influxdb+Jmeter)_第12张图片

  • 配置一个压测接口

配置并发数,以及并发访问策略

(一)HTTP请求压力测试篇——性能实时监控测试平台搭建(Grafana+Influxdb+Jmeter)_第13张图片

(一)HTTP请求压力测试篇——性能实时监控测试平台搭建(Grafana+Influxdb+Jmeter)_第14张图片

配置atp接口访问地址

(一)HTTP请求压力测试篇——性能实时监控测试平台搭建(Grafana+Influxdb+Jmeter)_第15张图片

(一)HTTP请求压力测试篇——性能实时监控测试平台搭建(Grafana+Influxdb+Jmeter)_第16张图片

配置一个HTTP信息管理头。默认数据是不能以json传参的,这里我们配置一下

(一)HTTP请求压力测试篇——性能实时监控测试平台搭建(Grafana+Influxdb+Jmeter)_第17张图片

(一)HTTP请求压力测试篇——性能实时监控测试平台搭建(Grafana+Influxdb+Jmeter)_第18张图片

配置一些jmeter的本地观测器,通过这些本地观测器,我们可以查看我们压力测试的吞吐量、最小最大请求时间等一些信息

(一)HTTP请求压力测试篇——性能实时监控测试平台搭建(Grafana+Influxdb+Jmeter)_第19张图片

配置我们influxdb后端监测器,将压测数据保存到influxdb中

(一)HTTP请求压力测试篇——性能实时监控测试平台搭建(Grafana+Influxdb+Jmeter)_第20张图片

(一)HTTP请求压力测试篇——性能实时监控测试平台搭建(Grafana+Influxdb+Jmeter)_第21张图片

启动atp服务,点击开始,开始压测配置的接口

(一)HTTP请求压力测试篇——性能实时监控测试平台搭建(Grafana+Influxdb+Jmeter)_第22张图片

访问grafana,实时查看监测的各项性能指标

(一)HTTP请求压力测试篇——性能实时监控测试平台搭建(Grafana+Influxdb+Jmeter)_第23张图片

如果要重新测试,我们stop这次测试结果,先清理本次测试结构,在重新压测,具体的压测参数配置,可参考官网。

结语

ok,到这里我们整个http的性能实时监控测试平台搭建及演示就结束了,通过压测平台,我们就能实时的查看我们的压测结果,并根据压测结果,分析我们的接口性能,对我们的代码,服务器等做一些优化的参考。下期见。。。

你可能感兴趣的:(压力测试,docker,HTTP,压力测试,运维)