前言
为什么要搭建这个平台?
先 jmeter 是一个优秀的开源性能测试工具,它非常通用,多数公司的压测方案都会选择该工具。但是 jmeter 自带的聚合报告有很明显的缺陷:
- 只能自己看,分享不方便,缺乏实时性。
- 展示的信息比较简陋,不美观也不直观。
如上缺陷可能可以通过安装插件解决部分问题,但是无法完美解决。
因此我选择了 influxDB
+grafana
的方案。
- influxDB: 这是一个开源的时间序列数据库。它专门设计用于处理高度时间相关的数据,具有高性能和可扩展性,可以胜任 jmeter 的数据写入需求。
- grafana: 这是一个用于可视化和分析数据的开源数据仪表盘工具。它非常流行,提供了简单易用的用户界面,可以从多种数据源中获取数据,并将数据以图表、图形、表格等形式展示出来。grafana 支持实时监控、报警、告警以及自定义插件等功能。
这是该方案的数据流向图
部署
本次也是通过 docker-compose 进行 InfluxDB 和 Grafana 的部署,jmeter在windows上搞一个免安装的。
InfluxDB(2.x)
本次部署的 InfluxDB 版本为 2.7.5 的,以下配置项仅适用于 v2 版本,不兼容 v1 版本和 v3 版本
1.x 和 2.x 的区别
- 2.x 版本自带 web-ui,可以输出简易的图像报表和管理数据,1.x 则不带有 web-ui,必须依靠第三方工具输出图像报表
- 1.x 版本使用 influxQL 查询语言,2.x 和 1.8+(beta) 使用 flux 查询语法
- 2.x 相对于 1.x 移除了 database,新增了 bucket 概念
容器部署
- 创建对应的文件夹,并修改目录操作权限
shell
复制代码
mkdir -p /usr/local/docker/influxdb/{conf,data} chmod 777 /usr/local/docker/influxdb/{conf,data}
- 进入influxdb目录
shell
复制代码
cd /usr/local/docker/influxdb
- 新建
docker-compose.yml
文件 以下是 docker-compose.yml 文件内容
yml
复制代码
version: '3' networks: web-network: services: docker-influxdb: image: influxdb:2.7.5 container_name: influxdb restart: always ports: - "8086:8086" #HTTP UI and API port environment: DOCKER_INFLUXDB_INIT_MODE: "setup" DOCKER_INFLUXDB_INIT_USERNAME: "root" #创建管理员用户 DOCKER_INFLUXDB_INIT_PASSWORD: "!a123456" #创建管理员密码,太简单会报错 DOCKER_INFLUXDB_INIT_ORG: "org" #组织名称 DOCKER_INFLUXDB_INIT_BUCKET: "jmeter" volumes: - "/usr/local/docker/influxdb/data:/var/lib/influxdb2" - "/usr/local/docker/influxdb/conf:/etc/influxdb2" networks: - web-network
关于 INFLUXDB_TOKEN
的获取:
shell
复制代码
cat /usr/local/docker/influxdb/conf/influx-configs
- 通过
docker compose
启动
shell
复制代码
docker compose up -d
influxDB 使用
登录
输入你创建容器时的管理员账号和密码
新建 bucket
跳转至路径 load data ——> buckets ——> buckets ——> create bucket
新建一个 bucket
命名为 jmeter