本方案采用 Grafana + InfluxDB 实时展示 Jmeter 的压测数据,下面为本文实验的压测指标数据流向图。
本文研究了 Jmeter 提供的两种方式向 InfluxDB 写数据方式,具体在文中第二节重点描述其使用和配置:
Jmeter 提供的方式需要自己配置 Grafana Dashboard,不是很方便,本文第四节:JMeter-InfluxDB-Writer-plugin & Jmeter Load Test Dashboard
介绍了 NovaTec-APM 提供的 JMeter 插件以及配套的 Grafana Dashboard,可以节省大量配置工作,推荐大家使用这种方式。
此外,本文中使用的环境配置如下:
CentOS 系统可使用以下命令下载安装 InfluxDB:
wget http://dl.influxdata.com/influxdb/releases/influxdb-1.8.1.x86_64.rpm
sudo yum localinstall influxdb-1.8.1_64.rpm
编辑 influxdb 配置文件/etc/influxdb/influxdb.conf
, 使用 graphite 协议上报数据到 InfluxDB,需要将 graphite 下面的注释去掉,设置enable=true
启用 graphite。
检查配置文件/etc/influxdb/influxdb.conf
http 下面的配置是否打开并 enable,Grafana 通过 http 从 influxdb 拉取数据,默认是打开的。
保存配置后用下面的命令启动 influxdb,并查看运行状态。
sudo service influxdb start
service influxdb status
也可使用下面的 curl 命令验证 InfluxDB 是否能正常访问:
curl -i influxdb-ip:8086/ping
正常情况下,会得到下图输出的信息:
接着登录 influxdb 创建数据库和用户
// 登录 influxdb
influx -precision rfc3339 //直接 influx 也可以
CREATE DATABASE perftest // 创建数据库,和上面配置文件中的数据库名对应
use perftest
// 创建用户并制定密码,这里的用户名和密码,在配置 Grafana 时会用到
create user "admin" with password '123456' with all privileges
使用 InfluxDB 的 HTTP API 可以更简单的创建数据库,比如下面就创建了一个名为 loadtest 的库:
curl -i -XPOST http://influxdb-ip:8086/query --data-urlencode "q=CREATE DATABASE loadtest"
Jmeter 支持 Graphite 和 HTTP 两种协议向 InfluxDB 上报压测指标数据。
Test Plan > Add > Listener > Backend Listener
使用 HTTP 协议时,选择监听器org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient
http://[influxdb_host]:[influxdb_port]/write?db=[database_name]
。运行 Jmeter 后可使用 InlfuxDB 的 API 验证数据上报是否正常:
curl 'http://influxdb-ip:8086/query?pretty=true' --data-urlencode "db=loadtest" --data-urlencode "q=SHOW SERIES"
出现下图的输出,表示 metric 数据收集正常:
CentOS 中可使用下面的命令下载和安装 grafana:
wget https://dl.grafana.com/oss/release/grafana-7.1.3-1.x86_64.rpm
sudo yum install grafana-7.1.3-1.x86_64.rpm
也可去官网下载 Grafana 下载:https://grafana.com/grafana/download?platform=linux
安装完成后,使用以下命令启动 Grafana:
systemctl start grafana-server
接着打开浏览器,使用 http://<IP 地址>:3000
即可访问 grafana。如果无法访问,请检查下安全组是否开放了3000端口。
Grafana初始用户名密码都是 admin, 登入之前提示先改初始密码,可按需修改。进入 Grafana 后按下图配置 influxdb Data Source。
按下图中的步骤添加 dashboard。
重复上面 panel 的创建步骤,添加自己感兴趣的监控图表。
Jmeter 官网上给出了每个指标的含义,具体见:https://jmeter.apache.org/usermanual/realtime-results.html
直接使用 NovaTec-APM 提供了 JMeter-InfluxDB-Writer-plugin 以及配套的 Grafana Dashboard Jmeter Load Test 可省去配置 grafana dashboard 的麻烦。
JMETER_HOME/lib/ext
rocks.nt.apm.jmeter.JMeterInfluxDBBackendListenerClient
,填上 InfluxDB 信息后运行启动压测,Jmeter 的日志窗口可以看到插件正常工作。在 Grafana 的 Dashboards Manage 页面,输入Jmeter Load Test 的 Dashboard ID 1152 后,点击 Import 按钮即可导入。
启动 Jmeter 压测后,即可在 Jmeter Load Test Dashboard 看到压测数据,如下图:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。