前言
1.小编之前写过一篇文章详细讲解了如何搭建一个HTTP接口性能实时监控测试平台,是用
Grafana+Influxdb+Jmeter
组合实现的,可以参考我写的这篇博客
https://editor.csdn.net/md/?articleId=127638521
2.上一节详细讲解了使用docker部署:
prometheus + Grafana集群监控
可以参考我写的这篇博客
https://editor.csdn.net/md/?articleId=127952296
3.现在使用另外一组合
Grafana+Prometheus+Jmeter
的方式实现,原理基本是一致的,集成的流程图如图所示:
prometheus配置jmeter监控
首先我们在prometheus.yml配置文件中添加一下代码
- job_name: jmeter
static_configs:
- targets: ['192.168.31.44:9270']
labels:
instance: jmeter
注:此处使用的ip地址是我们jmeter所在服务器的IP地址,不能使用localhost或者127.0.0.0. 因为我的prometheus是在docker容器内部署的 jmeter是在本地部署的 这个相当于容器访问宿主机 就不能用localhost了,端口为固定的9270端口
,
配置文件后,一定要重启prometheus容器,输入命令:docker restart +容器id
1|docker restart 5dbfa03706d3
接着我们测试访问prometheus地址
http://192.168.31.44:9090/graph
点击菜单栏“Status-Targets”监控是否运行成功,jmeter的配置监控状态为up,说明我们的prometheus数据库服务器就搭建好了,后续可以通过配置的监控地址,通过jmeter写入测试数据。
安装JMeter-Prometheus插件
下载Prometheus的Jmeter插件地址:
https://github.com/johrstrom/jmeter-prometheus-plugin/releases
,这里我们下载0.6.0版本的。
将下载的jar包jmeter-prometheus-plugin-0.6.0.jar放置在
Jmeter目录的\apache-jmeter-5.0\lib\ext
目录下
插件作用
这个JMeter插件是高度可配置的监听器(和配置元素),允许用户定义自己的度量(名称、类型等),并通过Prometheus/metrics API将它们公开给Prometheus服务器。这么说可能有点抽象。
简易理解成
:
Jmeter配置jar插件后运行默认启动端口9270,访问
{ip}:9270
网站可查阅Jmeter性能测试数据,查询到的数据是存在Prometheus以数据库形式读取数据
,
然后使用grafana以可视化图表展示
这里要注意下
:
jmeter 插件默认的端口监听IP是127.0.0.1,如果是用
docker安装的prometheus
是无法获取到jmeter压测数据的
,
需要在jmeter.properties里加个配置prometheus.ip=0.0.0.0
启动Jmeter压测脚本
-
通过在JMeter中创建一个简单的脚本来验证安装,然后右击 线程组 > 添加 > 监听器 > PrometheusListener,如下图:
监听器的配置,可以参考官方文档,根据自己的实际需求进行配置
然后-右击,线程组 > 添加 > 配置元件> Prometheus Metrics
1.运行JMeter,用几个线程配置你的线程组,并点击无限循环运行。
2.插件会默认帮你在本地创建一个端口为9270的服务,
3.访问网址:
http://localhost:9270/metrics
就会看到如下内容:说明我们的
jmeter
已经可以采集数据了。
Prometheus正是通过这个接口采集我们的测试数据,我们
Prometheus
配置的监控地址正是这里,前面配置里面使用的是IP地址,因为
localhost
只能本地访问。
配置Grafana监控面板
打开grafana官网,查找官网提供的
prometheus-jmeter
监控面板
链接:
https://grafana.com/grafana/dashboards/14927-jmeter-promethius/
效果图如图所示
![在这里插入图片描述](https://img-blog.csdnimg.cn/9f9415f69c7f421187830d5a77720f2b.png