暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

干货 | Jmeter+influxDB+Grafana压测结果可视化实时监控

AI脑力波 2019-04-08
1203

我们平时在使用JMeter做性能测试,压测的时候,通常使用非GUI方式来测试。


经过实践,我们发现此种方式对于测试结果的实时展示存在如下问题:一是查看实时测试结果,通过控制台查看日志方式,结果较多时不方便查看且不便于分享给其他人员;二是压测时间较长时,如稳定性测试,自带HTML报告需等待整个测试完成且解析速度很慢。


为了解决以上问题,我们采用了开源工具JMeter+InfluxDB+Grafana来实现压测可视化实时监控。


此方案可以在Jmeter测试计划中去除SummaryResults,把测试结果发送到数据库中持久化,这样我们就可以通过SQL查询数据库来创建展示图表。

参考方案如下:

JMeter引入Backend Listener,用于在压测过程中实时发送统计指标数据给时序数据库InfluxDB,通过配置Grafana(开源的WEB可视化看板)数据源连接到InfluxDB,我们就可以创建炫酷的可视化看板,并可以实时获取到测试指标数据。


接下来就分享如何一步步完成上述方案的实现。

1. InfluxDB的安装部署

InfluxDB:是一款用Go语言编写的开源分布式时序、事件和指标数据库,无需外部依赖。该数据库现在主要用于存储涉及大量的时间戳数据,如DevOps监控数据,APP metrics, loT传感器数据和实时分析数据。


下载安装

#wget  https://dl.influxdata.com/influxdb/releases/influxdb-1.6.4.x86_64.rpm

#rpm –ivh influxdb-1.6.4.x86_64.rpm



InfluxDB配置

 修改InfluxDB配置文件(/etc/influxdb/influxdb.conf)

vi /etc/influxdb/influxdb.conf

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

修改后,使用以下命令加载InfluxDB启动


使用配置文件启动InfluxDB:

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

influxd -config /etc/influxdb/influxdb.conf

2.启动

service influxdb start

 

说明:

1、新版InfluxDB无管理界,HTTP API 监听默认端口是 8086,方案中通过此端口往influxdb写入数据就是通过8086端口。如果需要更改这些默认设定,修改 InfluxDB 的配置文件 /etc/influxdb/influxdb.conf 后重启 InfluxDB 就可以了。


2、安装成功后,就可以创建对应的数据库,为了保证数据库的数据量不会无限大,可以配置策略,删除超过一定时间的数据。


InfluxDB操作

[root@pt ]# influx  #
登录数据库

Connected tohttp://localhost:8086 version 1.6.4

InfluxDB shell version: 1.6.4

> show databases  #
查看所有数据库

name: databases

name

----

_internal

 

> CREATE DATABASE "jmeter"#
创建数据库

> use jmeter              #
切换数据库

Using database jmeter

> CREATE USER"admin" WITH PASSWORD 'admin' WITH ALL PRIVILEGES #
创建管理员权限的用户

 

2.JMeter配置

  1.  创建一个测试计划,并添加Backend Listener

  2.  设置InfluxDB IP及端口设置InfluxDBIP及端口

  3.  设置InfluxDB新创建的用户和数据保存的库

3.grafana的安装部署

 

Grafana是一套开源的WEB可视化平台,拥有丰富素材的开源图标展示工具,利用它,我们可以实时的展示存在influxdb数据库中的性能数据,达到可视化。


下载安装

wgethttps://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.3.2-1.x86_64.rpm

rpm –ivh grafana-5.3.2-1.x86_64.rpm



启动

service grafana-server start

使用浏览器打开 http://IP:3000/login,访问Grafana主页,默认用户和密码都是admin

配置数据源

登录Grafana成功后,首先需要添加数据源,这里选择influxdb,具体如下:

单击 save&test,确保可以连接上InfluxDB

当然grafana不仅仅只支持influxdb数据库,还支持其他的,根据实际情况选择。添加数据源成功后,然后你就可以添加模板到dashboard进行展示了。


Grafana导入模板

如果你需要其他的Grafana的dashboard的模版,可以到官方看板模板库下载:https://grafana.com/dashboards


4.监控效果如下:

实时展示了活跃的线程数目、tps、交易成功率、总共发送的请求数目、交易失败率、95%响应时间、平均时间等的性能指标。


以上就是今天要跟小伙伴们分享的内容,大家有所收获吗?还有哪些感兴趣的内容,可以评论中留言给我哦~

文章转载自AI脑力波,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论