前言
InfluxDB
是一个年轻的时序数据库,是用同样很年轻的语言GO
开发出来的。小数据量的时候还性能还不错,但是数据量大一点,性能问题就体现出来了。不过只是收集一下我几个小时测试的数据,还是足够了。要是几个月的测试数据那还是挑别的数据库吧。
Grafana
是纯粹用js
编写出来的,专门用来展示数据用的。
基本上,就是Jmeter
通过Backend Listener
,将测试的数据上传到我的虚拟机上,通过InfluxDB
来存储,Grafana
来展示出来。我们访问web
,稍微配置一下,就可以看到展示的数据了。
操作
修改InfluxDB
的配置,主要配置jmeter
存储的数据库与端口号,还有需要将UI
端口开放,用于执行语句
[root@localhost ~]# vi /etc/influxdb/influxdb.conf
找到graphite
并且修改它的库与端口
[[graphite]]
enabled = true
database = "jmeter"
bind-address = ":2003"
protocol = "tcp"
consistency-level = "one"
找到admin
,将前面的#
号去掉,开放它的UI
端口
[admin]
# Determines whether the admin service is enabled.
enabled = true
# The default bind address used by the admin service.
bind-address = ":8083"
# Whether the admin service should use HTTPS.
# https-enabled = false
# The SSL certificate used when HTTPS is enabled.
# https-certificate = "/etc/ssl/influxdb.pem
启动InfluxDB
[root@localhost ~]# /etc/init.d/influxdb restart
Stopping influxdb...
influxdb process was stopped [ OK ]
Starting influxdb...
influxdb process was started [ OK ]
打开浏览器,访问服务器IP
:http://192.168.31.125:8083
如果启动成功应该会InfluxDB
的web ui
界面。查看有没有jmeter
库,没有就新建一个。
在输入框中,输入如下,来新建库:
CREATE DATABASE "jmeter"
也可以使用influxdb studio
工具来直接创建数据库。
启动Grafana
[root@localhost ~]# /etc/init.d/grafana-server restart
OKopping Grafana Server ... [ OK ]
Starting Grafana Server: .... OK
添加需要展示数据的数据库
点击Test & Save 提示“Success”说明成功了
【注意】URL的端口是8086,而刚才配置的8083是UI的端口。
- 8083端口是InfluxDB的UI界面展示的端口
- 8086端口是Grafana用来从数据库取数据的端口
- 2003端口则是刚刚设置的,Jmeter往数据库发数据的端口
配置Jmeter
Jmeter
中,添加监听器 -> Backend Listener
,主要配置influxdbUrl
,如下图
添加“监听器 -> 查看结果树” 运行一下Jmeter,主要看请求是否发送出去了,如果没有什么问题,可以查看数据是否存到了数据库。
配置Grafana展示数据
添加一个展示项目
可以下载已有面板进行修改
https://grafana.com/grafana/dashboards/5496
图表的配置可以自己设置
大致介绍几种我常用的监控。
名称 | 描述 |
---|---|
jmeter.all.h.count | 所有请求的TPS |
jmeter.<请求名称>.h.count | 对应<请求名称>的TPS |
jmeter.all.ok.pct99 | 99%的请求响应时间 |
jmeter.<请求名称>.ok.pct99 | 对应<请求名称>99%的请求响应时间 |
jmeter.all.test.startedT | 线程数 |
【注意】如果要监控<请求名称>的话,Jmeter上的“Backend Listener”修改如下参数
1. 将“summanyOnly”修改成False,
2. 将“userRegexpForSamplersList”修改成True,
3. 并且要设置“samplersList”的值,“samplersList”是可以支持正则表达式的,“samplersList”的设置要与请求对应,否则找不到该请求。
设置好了,运行一下,在Grafana里面,就可以看到自己的请求了。
如果想要了解这些监控都代表什么意思,可以访问Jmeter的官网地址去查看阅读:
http://jmeter.apache.org/usermanual/realtime-results.html”