Jmeter+Grafana+InfluxDB性能测试监控

前言

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 ]

打开浏览器,访问服务器IPhttp://192.168.31.125:8083

如果启动成功应该会InfluxDBweb 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

最终效果

参考:https://www.cnblogs.com/yyhh/p/5990228.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容