版本信息:

1. Jmeter5.1.1 2. InfluxDB1.8.0 3. grafana8.1.3

一、概述 本文我们从零开始搭建JMeter+InfluxDB+Grafana压测可视化实时监控。

接口相应时间监控_压力测试

二、工具下载安装准备

1. JMeter的下载安装:点击这里

2. InfluxDB的下载与安装:

2.1、安装要求:

网络端口 InfluxDB默认使用以下网络端口:

  • TCP端口8086用于通过InfluxDB的HTTP API进行客户端-服务器通信
  • TCP端口8088用于RPC服务以进行备份和还原
  • 除了上面的端口,InfluxDB还提供了多个可能需要自定义端口的插件。可以通过配置文件修改所有端口映射,配置文件默认位置:/etc/influxdb/influxdb.conf

网络时间协议(NTP) InfluxDB使用主机的UTC本地时间为数据分配时间戳并用于协调目的。使用网络时间协议(NTP)同步主机之间的时间; 如果主机的时钟与NTP不同步,写入InfluxDB的数据的时间戳可能不准确。

2.2、下载安装InfluxDB

wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.0.x86_64.rpm 
sudo yum localinstall influxdb-1.8.0.x86_64.rpm

2.3、修改InfluxDB配置

vi /etc/influxdb/influxdb.conf

Jmeter使用graphite协议去写入数据到InfluxDB,因此,我们需要在InfluxDB配置文件启用它,修改选项如下:

[[graphite]]
 enabled = true
 bind-address = ":2003"
 database = "jmeter"
 retention-policy = ""
 protocol = "tcp"
 batch-size = 5000
 batch-pending = 10
 batch-timeout = "1s"
 consistency-level = "one"
 separator = "."
 udp-read-buffer = 0

修改后保存。

2.4、启动InfluxDB有以下两种方法:

1.使用config选项将进程指向正确的配置文件

influxd -config /etc/influxdb/influxdb.conf

2.将环境变量设置为INFLUXDBCONFIGPATH配置文件的路径并启动

echo $INFLUXDB_CONFIG_PATH
/etc/influxdb/influxdb.conf
influxd

启动成功如图:

接口相应时间监控_grafana_02

2.5、InfluxDB创建数据库与管理员的操作

[root@localhost ~]# influx -precision rfc3339  #进入数据库(首先使用:influxd 命令启动数据库,再复制一个连接输入:influx -precision rfc3339 )
Connected to http://localhost:8086 version 1.8.0
InfluxDB shell version: 1.8.0
> show databases  #查看所有数据库
name: databases
name
----
_internal
> CREATE DATABASE "jmeter" #创建数据库
> use jmeter               #切换进入刚创建的数据库
Using database jmeter
> CREATE USER "admin" WITH PASSWORD 'admin' WITH ALL PRIVILEGES # 创建管理员权限的用户与密码

2.6、JMeter配置发送数据至InfluxDB

  1. 创建一个测试计划,并添加Backend Listener
  2. 设置InfluxDB IP及端口
  3. 运行测试,等待几秒

接口相应时间监控_influxdb_03

  1. 进入到刚刚创建的jmeter数据库中输入:show measurements 查看是否出现如图数据,出现就表示Jmeter运行的统计指标数据能成功发送至InfluxDB

三、Grafana&InfluxDB集成

1、Grafana下载与安装

wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-enterprise-8.1.3-1.x86_64.rpm
sudo yum localinstall grafana-enterprise-8.1.3-1.x86_64.rpm

2、启动Grafana

service grafana-server start  #启动
service grafana-server stop	  #停止

3、启动成功,浏览器打开:http://服务器ip:3000/login 访问Grafana主页

接口相应时间监控_jmeter_04

【Grafana默认账号密码都是:admin】4、创建InfluxDB数据源

接口相应时间监控_influxdb_05

接口相应时间监控_grafana_06

5、导入创建dashboard

5.1、点击这里去复制模板ID

接口相应时间监控_jmeter_07

接口相应时间监控_grafana_08

5.2、进入Grafana去导入模板

接口相应时间监控_grafana_09

接口相应时间监控_压力测试_10

接口相应时间监控_jmeter_11

导入成功如图:

接口相应时间监控_grafana_12

6、可自己配置查询条件展示数据

线程数/用户相关指标 test.minAT-Min active threads:最小活跃线程数 test.maxAT-Max active threads:最大活跃线程数 test.meanAT-Mean active threads:活跃线程数 test.startedT-Started threads:启动线程数 test.endedT-Finished threads:结束线程数
响应时间指标 .ok.count:采样器的成功响应数 .h.count:每秒点击数 .ok.min:采样器成功最短响应时间 .ok.max:采样器成功最长响应时间 .ok.avg:采样器成功平均响应时间 .ok.pct:采样器成功响应百分比 .ko.count:采样器失败响应数 .ko.min:采样器失败的响应最短时间 .ko.max:采样称失败最长响应时间 .ko.avg:采样器失败平均响应时间 .ko.pct:采样器失败响应百分比 .a.count:采样器响应数(ok.count和ko.count的总和) .a.min:采样器最小响应时间(ok.count和ko.count的最小值) .a.max:采样器最大响应时间(ok.count和ko.count的最大值) .a.avg:采样器平均响应时间(ok.count和ko.count的平均值) .a.pct:采样器响应百分比(根据和失败样本的总数计算)
Backend Listener的默认百分位设置为“90;95;99”,即百分位数为90%,95%和99%。 Graphite使用点(“.”)去拆分的元素,这可能与十进制百分位值混淆。JMeter转换任何此类值,用下划线(“ - ”)替换点(“.”)。例如,“99.9 ”变为“99_9 ” 默认情况下,JMeter发送在samplerName“all”下累计的所有采样器的指标。 如果配置了 BackendListenerSamplersList,那么JMeter还会发送匹配样本名称的指标,前提是配置 summaryOnly=true

接口相应时间监控_jmeter_13