JMeter + Grafana + influxdb 性能监控平台

平台架构
在这里插入图片描述
首先JMeter 异步写入数据到InfluxDB,然后InfluxDB存储数据,Grafana定时从InfluxDB读取数据,将数据在Grafana面板展示出来。

由于同步写入对于性能的影响较大,所以JMeter支持异步写入,因此几乎对测试的性能几乎不大,不过在实际测试工作中,对性能会有一点点影响,如果不往InfluxDB写入数据的情况下,TPS会稍微高一些。
小编是用Docker部署的,下面将详细介绍公司接口做的压测实战

安装influxdb

    • 启动docker
    • 拉取Influxdb
    • 启动Influxdb
    • 进入influxdb容器
    • 通过客户端进入到influx中
    • 创建influxdb数据库
    • 安装grafana
    • 配置Jmeter
    • 配置grafana
    • 查看InfluxDB数据库

启动docker

systemctl start docker

拉取Influxdb

docker pull influxdb

启动Influxdb

docker run -d -p 8083:8083 -p 8086:8086 --name influxdb_wcy influxdb

进入influxdb容器

在这里插入图片描述

通过客户端进入到influx中

进入cd/usr/bin 输入./influx命令 启动influx

cd /usr/bin
./influx

在这里插入图片描述

创建influxdb数据库

curl -i -XPOST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE jmeter"发一个http的请求 去建库。

JMeter + Grafana + influxdb 性能监控平台_第1张图片
打开创建的数据库jmeter
JMeter + Grafana + influxdb 性能监控平台_第2张图片

安装grafana

拉取grafana镜像

docker pull grafana/grafana-oss:latest

启动docker的grafana镜像
第一种方式运行:直接将docker内部的3000端口映射到本机
在这里插入图片描述
第二种方式运行: docker run -d --name=grafana --link=influxdb_wcy:influxdb -p 3000:3000 grafana/grafana:6.6.2 --link

冒号前的第一个是你的influxdb容器的名字也就是influxdb_wcy 冒号后面是随便写的一个名字
但是这个名字要用在下面那串url中的influxdb名字。

进入浏览器http://localhost:3000/,输入账号密码admin admin后,提示更改密码
JMeter + Grafana + influxdb 性能监控平台_第3张图片

配置Jmeter

  • 编写好JMeter脚本
  • 在测试计划中添加 「监听器」–> 「后端监听器」
  • 配置监听器

JMeter + Grafana + influxdb 性能监控平台_第4张图片
参数说明

  • application对应Grafana的application

JMeter + Grafana + influxdb 性能监控平台_第5张图片

  • Measurement对应Grafana中的Measurement name

JMeter + Grafana + influxdb 性能监控平台_第6张图片

  • summaryOnly:设置为true 则grafana不会记录错误信息,设置为 false 才会记录

JMeter + Grafana + influxdb 性能监控平台_第7张图片

  • 进入到 influxdb 中,查看是jmeter数据库是否有数据
  • 我们可以看到数据库中有数据记录了

配置grafana

先在home页,新增一个data source
JMeter + Grafana + influxdb 性能监控平台_第8张图片
然后选择 influxdb
JMeter + Grafana + influxdb 性能监控平台_第9张图片
JMeter + Grafana + influxdb 性能监控平台_第10张图片
JMeter + Grafana + influxdb 性能监控平台_第11张图片
配置完成之后,点击保存,然后运行jmeter脚本压测,下面这里我监控的是压测搜索接口的TPS数据
JMeter + Grafana + influxdb 性能监控平台_第12张图片下面这里是监控吞吐量、响应时间和erro,想要监控哪方面的数据,就可以从数据库中读取然后展示出来就行了~~
JMeter + Grafana + influxdb 性能监控平台_第13张图片
添加事务控制器
在后端监听器中修改application,用于新建一个检测面板
JMeter + Grafana + influxdb 性能监控平台_第14张图片
添加事务控制器:线程组-> 添加-> 逻辑控制器-> 事务控制器
JMeter + Grafana + influxdb 性能监控平台_第15张图片
将HTTP请求与后端监听器放入事务控制器中
JMeter + Grafana + influxdb 性能监控平台_第16张图片
刷新grafana,application 选择修改后的 host61
在这里插入图片描述
查看事务面板,有数据了
JMeter + Grafana + influxdb 性能监控平台_第17张图片
grafana中的transaction 可以切换事务
JMeter + Grafana + influxdb 性能监控平台_第18张图片

查看InfluxDB数据库

压测数据存到了InfluxDB数据库里面,Grafana显示的就是这里面的数据。
我们先查看前10条数据,很明显已经从influxdb里读取到压测的10条数据了

  • 进入数据库:docker exec -it你的 influxdb名称 /bin/bash
    在这里插入图片描述
  • 查看数据表并查看数据:show measurements

JMeter + Grafana + influxdb 性能监控平台_第19张图片

  • 查看事件:select * from events,与jmeter后端监听器的testTitle一致

所以,你学废了吗!

你可能感兴趣的:(Linux运维,Jmeter性能测试,jmeter,grafana,docker)