性能测试五十:Jmeter+Influxdb+Grafana实时数据展示系统搭建
如果用生成jtl文件再分析结果的方式的话,每一次请求就会往jtl里面写一条数据,在进行长时间的稳定性测试的时候,特别是当TPS很高的时候,写入的数据会非常的大,这个时候等稳定性测试完成,再对jtl进行分析,会无法分析,如果要强制进行分析,造成的最后结果是内存泄漏,即无法分析,所以需要通过其他途径来保存和分析数据

上Grafana官网下载Grafana,此产品只有64位的版本,没有32位的

Influxdb:InfluxDB是一个开源的时序数据库,使用GO语言开发,特别适合用于处理和分析资源监控数据这种时序相关数据。而InfluxDB自带的各种特殊函数如求标准差,随机取样数据,统计数据变化比等,使数据统计和实时分析变得十分方便。上官网下载


因为jmeter要往infuxdb里面写数据,所以最好把这两个放在一台机器上,grafana只做展示infuxdb里面的数据,可以另外部署
jmeter实时数据展示系统搭建(windows为例,linux也是这样部署)
1,InfluxDB安装配置
安装:解压influxdb-1.2.4_windows_amd64.zip

修改influxdb.conf
[[graphite]]
enabled = true
database = "jmeter"
bind-address = ":2003"
protocol = "tcp"
consistency-level = "one"

修改后

[admin]
enabled = true
bind-address = ":8083"
https-enabled = false

修改后

启动:cmd下进入到解压目录,执行命令:influxd -config influxdb.conf

=================================linux版=================================
1、通过Xshell连接到虚拟机,执行如下命令(安装完成后在/etc下面):
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.2.2.x86_64.rpm
sudo yum localinstall influxdb-1.2.2.x86_64.rpm
或者:rpm -ivh 自己上传的 influxdb.rpm包
2、InfluxDb配置文件,存放在/etc/influxdb/influxdb.conf
3、InfluxDb操作
3.1、启动InfluxDb,执行命令:systemctl start influxdb 或者:influxd
由于用单纯的启动命令启动,当ssh客户端关闭后会停止运行,所以用nohup后台启动:nohup /usr/bin/influxd,这样即使ssh客户端关闭,也不会导致influxdb停止运行

3.2、查看InfluxDb状态,执行命令:systemctl status influxdb
3.3、停止InfluxDb,执行命令:systemctl stop influxdb




=================================linux版=================================
访问:http://localhost:8083/

创建数据库:CREATE DATABASE "jmeter" 回车

2,安装Grafana
安装:直接解压grafana-4.3.2.windows-x64.zip

启动:进入bin目录下,双击grafana-server.exe


=================================linux版=================================
一、安装
1 通过Xshell连接到虚拟机,执行如下命令:
wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.2.0-1.x86_64.rpm
sudo yum localinstall grafana-4.2.0-1.x86_64.rpm
或者:rpm -ivh 自己上传的grafana.rpm包
2 设置自启动,执行如下命令:
systemctl daemon-reload (重新载入 systemd,扫描新的或有变动的单元)
systemctl enable grafana-server.service
3 启动Grafana,执行命令:systemctl start grafana-server
4 通过浏览器访问Grafana:Grafana默认访问端口是3000,admin用户的默认密码是admin
二、Grafana配置文件,存放在/etc/grafana/grafana.ini,里面的配置,基本上不需要修改,如果需要修改,注释掉每个配置项前面的分号即可。
1 数据文件:Grafana默认使用SQLite3进行存储,存储路径为:/var/lib/grafana
2 日志文件存储路径为: /var/log/grafana
3 域名默认是:domain = localhost,其中localhost可以修改为指定的域名
4 是否允许非admin用户创建组织:;allow_org_create = false
5 是否允许匿名登录
[auth.anonymous]
# enable anonymous access
;enabled = false

=================================linux版=================================
访问http://localhost:3000
登录admin/admin

配置:
1、进入系统
2、添加DataSource,

3、name写自定义的名称随便写,type选influxdb

4、填写influxdb的url(默认读数据的端口号8086):http://localhost:8086


5、database写jmeter,其他均不用写,最后点save and test

可以点save&test试一下

回到home页

注意:
8083是influxdb的web端访问端口
2003是Jmeter往influxdb中写数据的接口
8086是grafana访问influxdb的端口
6、创建jmeter脚本,添加监听器-backend listener

监听器配置
1、graphiteHost:influxdb的ip
2、summaryOnly:false
3、samplersList:http请求名称的前缀.+,如get-.+(这里有两种情况,如只想看名字为http...的,就写http...,如果想看多个,就用正则表达式,前提是创建的请求的前缀都是一样的)
4、useRegexpForSamplersList:true

运行jmeter,到influxdb页面中查询:select * from /.*/ limit 1,可以看到刚才运行的数据
选择jmeter库

输入sql语句,回车

5、配置grafana报表

这里一般选择曲线图就行了

点PanelTiltle_Edit,即可添加要监控的指标


要展示的指标,这里有3种情况,ok代表成功的,ko代表失败的,a代表全部


Display下面,Null value改为connected,创建完成后关掉

展示为下图,点ADD ROW可以继续添加指标

如果不想看这个指标了,可以把鼠标往左放,会弹出菜单,remove就行了

设置好要展示的数据的阶段和规则,点保存,以后想看哪个阶段的数据都可以在这里设置

开始压测,10个并发跑600秒


6、grafana中监听的Jmeter各指标解释:http://jmeter.apache.org/usermanual/realtime-results.html
性能测试五十:Jmeter+Influxdb+Grafana实时数据展示系统搭建的更多相关文章
- 性能工具之JMeter+InfluxDB+Grafana打造压测可视化实时监控【转】
概述 本文我们将介绍如何使用JMeter+InfluxDB+Grafana打造压测可视化实时监控. 引言 我们很多时候在使用JMeter做性能测试,我们很难及时察看压测过程中应用的性能状况,总是需要等 ...
- 搭建jmeter+influxdb+grafana压测实时监控平台(超详细,小白适用)
1.前言 在使用jmeter做性能测试的时候,监控系统性能的时候,无论是使用插件还是报告生成,都没法实现实时监控.使用JMeter+Influxdb+Grafana可以实现实时监控. 本次环境搭建各软 ...
- 全网最详细!Centos7.X 搭建Grafana+Jmeter+Influxdb 性能实时监控平台
背景 日常工作中,经常会用到Jmeter去压测,毕竟LR还要钱(@¥&*...),而最常用的接口压力测试,我们都是通过聚合报告去查看压测结果的,然鹅聚合报告的真的是丑到家了,作为程序猿这当然不 ...
- Centos7.X 搭建Grafana+Jmeter+Influxdb 性能实时监控平台(不使用docker)
工具介绍 [centos7安装influxDB] Influxdata官网下载路径:https://portal.influxdata.com/downloads/ 1.直接执行以下命令安装 2.安装 ...
- Centos8.X 搭建Grafana+Jmeter+Influxdb 性能实时监控平台
前言 本篇文章引用了小菠萝测试笔记,大部分内容非原创,基于自身实操过程中,完善了部分. 本篇随笔是在Linux上搭建的,后面会补充在docker以及k8s上如何部署安装 工具介绍 工具 介绍 Jmet ...
- jmeter+influxdb+grafana性能测试监控
背景: 话说Jmeter原生的监控确实太丑了,听大佬们在讨论Jmeter+InfluxDb+Grafana的监控,于是,为了有一个漂亮的测试报告,就手动开始进行部署. 安装步骤: 1.influxdb ...
- influxDB1.6版安装与配置(windows环境)、Jmeter+influxDB+Grafana性能监控
influxDB1.6版安装与配置(windows环境).Jmeter+influxDB+Grafana性能监控 来源:https://blog.csdn.net/SwTesting/article/ ...
- 使用HighCharts实现实时数据展示
在众多的工业控制系统领域常常会实时采集现场的温度.压力.扭矩等数据,这些数据对于监控人员进行现场态势感知.进行未来趋势预测具有重大指导价值.工程控制人员如果只是阅读海量的数据报表,对于现场整个态势的掌 ...
- 性能测试监控:Jmeter +InfluxDB +collectd +Grafana
虚拟机ip 192.168.180.128 Influxdb Influxdb是一个开源的分布式时序.时间和指标数据库,使用go语言编写,无需外部依赖. 它有三大特性: 时序性(Time Series ...
随机推荐
- Mybatis-利用resultMap 输出复杂pojo
个:复杂的sql语句查询的数据集的字段和 pojo的字段不相同,需要用到resultMap做一个对应. ---------------- mybatis中使用resultMap完成高级输出结果映射. ...
- MySql cmd下的学习笔记 —— 有关建立表的操作(有关于数据类型)
(01)建表的过程实际上是 声明字段 的过程 一. 列类型(字段): 存储同样的数据时,不同的列类型,所占据的空间和效率是不一样的,这就是建表时要考虑的意义. 二.MySQL三大列类型 数值型 ...
- 20165234 [第二届构建之法论坛] 预培训文档(Java版) 学习总结
[第二届构建之法论坛] 预培训文档(Java版) 学习总结 我通读并学习了此文档,并且动手实践了一遍.以下是我学习过程的记录~ Part1.配置环境 配置JDK 原文中提到了2个容易被混淆的概念 JD ...
- spring-session+Redis实现Session共享
关于session共享的方式有多种: (1)通过nginx的ip_hash,根据ip将请求分配到对应的服务器 (2)基于关系型数据库存储 (3)基于cookie存储 (4)服务器内置的session复 ...
- 20165231 2017-2018-2《Java程序设计》课程总结
每周作业链接汇总 预备作业一:我期待的师生关系 预备作业二:学习基础和C语言基础调查 预备作业三:linux安装及学习 第一周作业:初识JAVA,注册码云并配置Git 第二周作业:JAVA基本语法,标 ...
- k64 datasheet学习笔记31---External Bus Interface (FlexBus)
1.前言 FlexBus多功能外部总线接口控制器是一个硬件模块: (1)通过并行总线提供存储器扩展或与外设连接: (2)如下的同步或异步的slave-only设备可以直连到FlexBus总线或者只需增 ...
- 纪念一下我对Kalman的无限崇拜之情
今天用Kalman来求线性预测模型的系数,和LMS一对比,天啦噜,我感叹了半小时... 和LMS需要选合适的步长,样本序列需要足够长,迭代次数需要足够多,相比,卡尔曼真是帅呆了!不需要步长!不需要蒙特 ...
- mysql多表关联update修改操作
UPDATE province_yunnan_salary s1 JOIN province_guangdong_salary s2 ON s1.user_name= s2.user_name S ...
- php的ts和nts安装包
2017-12-29 15:17:05 星期五 翻译一下PHP对 ts , nts 的解释 官网说明地址: http://windows.php.net/download (windows下载页左 ...
- https 对 json空对象解析的影响
2017年11月24日09:56:01 记录一个问题: PHP返回json给APP(安卓, fastjson) 其中一个值是空对象 json_encode( [ 'aaa' => new st ...