工作原理
Influxdb作为一个时序性数据库,存储Jmeter任务执行后发送过来的测试数据,Grafana作为一个监控仪表盘,从Influxdb提取数据,再通过自身的模板功能,将Jmeter源数据在页面上按不同的分类展示,如下图
安装部署
Influxdb
Influxdb支持docker方式、传统的rpm安装等多种,本次使用的是docker方式部署,较为简单,无外网的机器可从其他机器docker push 后通过docker save保存在本地,再将镜像文件tar包拷贝至内网机器,最后再docker load(具体方式可百度)。
1.准备镜像文件,如下图
docker images 查看当前机器存在的docker镜像文件
2.启动服务
docker run -d --name my_influxdb -p 8083:8083 -p 8086:8086 influxdb:1.7.10
-d 后台方式运行
--name my_influxdb 应用名称
-p 8083:8083 宿主主机暴露端口:容器内端口的映射,influxdb服务默认使用8086 8083端口
influxdb:1.7.10 应用启动使用的镜像名和版本
如下图,状态为Up即为正常
3.创建数据库,influxdb 1.2版本前可通过web页面操作,1.2之后取消,可通过Influxdb客户端和后台命令方式创建,本文采用方式二
3.1进入doker容器内
docker exec -it abc641ce9060 /bin/bash,执行成功后主机名变更
exec -it 以交互方式进入容器 abc641ce9060 容器ID /bin/bash执行容器内的 bash
3.2连接数据库
influx
3.3创建新的数据库名
create database jmeter
(可选)CREATE USER 'admin' WITH PASSWORD 'admin' WITH ALL PRIVILEGES
Grafana
1.准备镜像文件,方式同influxdb
2.启动服务
docker run -d -p3000:3000 --name=my_grafana grafana/grafana
3.访问http://10.10.4.169:3000,10.10.4.169替换为对应的IP,初始用户名admin\admin
4.添加数据源,对接Influxdb
5.类型选择Influxdb
6.配置明细
7.保存&测试,如下图即为添加成功
8.添加数据展示模板
可在grafana官网下载大佬们做好的模板,直接引用Id或导入json文件,本文下载的是
Apache JMeter Dashboard using Core InfluxdbBackendListenerClient,本文采用导入方式,因内网机器
Grafana官网:https://grafana.com/grafana/dashboards?dataSource=influxdb&search=jmeter
导入方式,选择上传下载好的模板json文件即可
使用说明
1.Jmeter配置,线程中添加后端监听器
2.配置说明
选择influxdb类型的监听,将jmeter数据发送给influx
influxdbUrl:influx数据库的url。example : http://influxHost:8086/write?db=jmeter
application:被测试的应用名称。此值也作为名为“application”的标记存储在“events”中,在grafana中可根据该字段过滤
measurement:使用默认的”jmeter“就行,
summaryOnly:为true的情况下,只输出所有请求的集合数据报告,为flase的情况下,输出每条数据的详情报告、
samplersRegex:正则表达式将与样本名称匹配并发送到后端。默认匹配所有
testTitle:测试名称。默认的设置为 Test name。该值作为名为“text”的字段存储在“事件”度量中。 JMeter在测试的开始和结束时自动生成一个注释,其值以'started'和'ended'结尾
percentiles:要发送到后端的百分位数,多个值已;分割
TAG_WhatEverYouWant:自定义标签。您可以根据需要添加任意数量的自定义标签。对于它们中的每一个,只需创建一个新行并在其名称前加“TAG_”
3.数据展示,选择对应的模板名即可,默认为导入时的文件名