性能测试 CentOS下结合InfluxDB及Grafana图表实时展示JMeter相关性能数据
CentOS下结合InfluxDB及Grafana图表实时展示JMeter相关性能数据
by:授客 QQ:1033553122
JMeter Backend Listener监听器配置 9
测试环境
Win7 64位
Python 3.4.0
JMeter 2.13 r1665067
CentOS 6 64位(内核版本2.6.32-642.el6.x86_64)
influxdb-1.5.2.x86_64.rpm
网盘下载地址:
https://pan.baidu.com/s/1jAbY4xz5gvzoXxLHesQ-PA
grafana-5.1.2-1.x86_64.rpm
下载地址:
https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.1.3-1.x86_64.rpm
下载地址:https://pan.baidu.com/s/1wtnPH-iYxaXc6FnL1i0ZVg
influxdb-5.0.0-py2.py3-none-any.whl
下载地址:
https://pypi.org/project/influxdb/#files
下载地址:https://pan.baidu.com/s/1DQ0HGYNg2a2-VnRSBdPHmg
环境搭建
1、安装influxdb
# rpm -ivh influxdb-1.5.2.x86_64.rpm
修改配置
如下,修改一下带背景色内容
# vim /etc/influxdb/influxdb.conf
[http]
# Determines whether HTTP
endpoint is enabled.
enabled = true
# The bind address used by the
HTTP service.
bind-address = ":8086"
# Determines whether user
authentication is enabled over HTTP/HTTPS
auth-enabled = false
说明:设置auth-enabled = false是为了免账号密码授权认证访问,图个方便
# The default realm sent back
when issuing a basic auth challenge.
# realm = "InfluxDB"
# Determines whether HTTP
request logging is enabled.
# log-enabled = true
[[graphite]]
#Determines whether the
graphite endpoint is enabled.
enabled = true
database =
"jmeter"
# retention-policy =
""
bind-address =
":2003"
protocol = "tcp"
consistency-level =
"one"
#说明 设置consistency-level = "one" 设置一致性级别,设置为one表示读操作不会对写操作造成延迟
# These next lines control how
batching works. You should have this enabled
# otherwise you could get
dropped metrics or poor performance. Batching
# will buffer points in memory
if you have many coming in.
# Flush if this many points get
buffered
batch-size =
5000
# number of batches that may be
pending in memory
batch-pending =
10
# Flush at least this often
even if we haven't hit buffer limit
batch-timeout =
"1s"
# UDP Read buffer size, 0 means
OS default. UDP listener will fail if set above OS max.
udp-read-buffer =
0
### This string joins multiple
matching 'measurement' values providing more control over the final
measurement name.
separator = "."
说明:个人理解,这里的[[graphite]]配置主要是为收集JMeter性能数据配置的,如果不需要收集jmeter性能数据,应该可以不用配置(未测试)
启动/重启linfluxdb
# service
influxdb start
# service
influxdb restart
Stopping influxdb...
influxdb process was stopped [ OK ]
Starting influxdb...
influxdb process was started [ OK ]
查看是否在监听端口
[appdeploy@cnsz22VLK6817:/etc/influxdb]#netstat -antp | grep
2003
tcp
0
0
0.0.0.0:2003
0.0.0.0:*
LISTEN
23994/influxd
2、创建influxdb数据库
# /usr/bin/influx
Connected to http://localhost:8086 version 1.5.2
InfluxDB shell version: 1.5.2
# 查看有哪些数据库
> show databases
name: databases
name
----
_internal
# 创建数据库,库名为 jmeter(create database
dbname)
> create database jmeter
> show databases
name: databases
name
----
_internal
jmeter
# 附其它操作(类似mysql数据库)
# “切换”到要操作的数据库(use
dbname)
> use jmeter
# 查看有哪些数据表(influxdb中定义为measurement)
> show measurements
name: measurements
name
----
jmeter.all.a.count
jmeter.all.a.max
jmeter.all.a.min
jmeter.all.a.pct90
jmeter.all.a.pct95
jmeter.all.a.pct99
……
说明:以上数据是我跑压测后才有的,往下不再赘述
# 查询数据表数据
> select * from
"jmeter.all.a.max" limit 10
name: jmeter.all.a.max
time
value
----
-----
1526383743000000000 6
1526383744000000000 18
1526383745000000000 18
1526383746000000000 18
1526383747000000000 27
1526383962000000000 7
1526383963000000000 7
1526383964000000000 12
1526383965000000000 12
1526383966000000000 12
注意:表名为上述xx.xxx.xx的形式的时候,需要加双引号,删除的时候也是
# 删除数据表(drop measurement measurement_name)
>
drop measurement " jmeter.all.a.max"
# 删除数据库
> drop database dbname
3、安装grafana
#
rpm -ivh grafana-5.1.2-1.x86_64.rpm
检查、修改grafana.ini配置
#
vim /etc/grafana/grafana.ini
####################################
[server]
# Protocol (http, https, socket)
;protocol = http
# The ip address to bind to, empty will bind to all
interfaces
;http_addr =
# The http port to use
;http_port = 3000
# The public facing domain name used to access grafana from a
browser
;domain = localhost
……
[security]
# default admin user, created on startup
;admin_user = admin
# default admin password, can be changed before first start of
grafana, or in profile settings
;admin_password = admin
……
启动grafana
#
/usr/local/grafana/etc/init.d/grafana-server start
Starting Grafana Server: ...
[
OK ]
不同系统可能不一样,也可能是 /usr/sbin/grafana-server
或者
# service grafana-server start
# sudo
/bin/systemctl start grafana-server.service
自家电脑上安装时发现会出现没法启动的情况,tail
-f /var/log/grafana/grafana.log 发现error="open
/var/run/grafana/grafana-server.pid: permission
denied"错误
解决方法:
# cd
/var/run/
# chmod 777
grafana/
设置系统启动时,自动启动grafana
# chkconfig --add
grafana-server
或者
sudo /bin/systemctl
daemon-reload
sudo /bin/systemctl enable
grafana-server.service
注意:安装grafana时不要指定安装路径,按默认的就好
浏览器输入网址:10.203.25.106:3000访问看看效果:


输入账号admin 密码admin 登录


参考链接:https://blog.csdn.net/wudufeng/article/details/78567866
配置grafana图表数据源


打开页面中按如方式填写


说明
Name 数据源名称,自定义
Type 设置为InfluxDB
URL 设置influxDB服务器地址和端口(这里的8086为influxdb配置文件,[http]节点下配置的 bind-address值
Database 设置为在influxdb配置中,[[graphite]]节点下配置的database值,这样grafana就可以从这个数据库读取相关表相关数据了
User Password 可以不填写,因为设置授权认证
最后点击Save&Test按钮,如果成功则可看到上述Data source
working的提示
[http]
# Determines whether HTTP
endpoint is enabled.
enabled = true
# The bind address used by the
HTTP service.
bind-address = ":8086"
JMeter Backend
Listener监听器配置
右键测试计划、线程组 -> 添加
-> 监听器
-> Backend Listener


如下,修改graphiteHost为influxdb服务器所在地址,设置influxdb 配置文件中[[graphite]]节点下,配置的bind-address 值,设置rootMetricsPrefix为配置的database值,其它暂且默认即可

也可以设置summaryOnly为false,并在samplerList中填写sampler元素名称(多个元素之间用逗号分隔),如下(JMeter
2.13)

这样就可以统计单个sampler的相关信息了

samplersList也支持正则表达式,具体操作如下:
1.将“summanyOnly”修改成False,
2.将“userRegexpForSamplersList”修改成True,
3. 设置“samplersList”的值为匹配目标sampler的正则表达式
参考链接:
http://jmeter.apache.org/usermanual/component_reference.html#Backend_Listener
运行jmeter
新建grafana图表


图表配置并查看效果


jmeter measurement说明


线程/虚拟用户指标
test.minAT
最小活动线程数
test.maxAT
最大活动线程数
test.meanAT
平均活动线程数
test.startedT
已启动线程数
test.endedT
已完成线程数
响应时间指标
.ok.count
统计指定sampler的响应成功的响应数
注:samplerName指定了要统计的sampler,如果为all则表示针对所有all
sampler的统计
.h.count
统计指定sampler的服务器每秒点击数,会累计sample结果及子sample结果(如果使用了事务控制器,必须取消勾选
Generate parent sampler 选项)
.ok.min
统计指定sampler响应成功的最小响应时间
.ok.max
统计指定sampler响应成功的最大响应时间
.ok.avg
统计指定sampler响应成功的平均响应时间
.ok.pct
统计指定sampler响应成功的百分比
.ko.count
统计指定sampler响应失败数
.ko.min
统计指定sampler响应失败的最小响应时间
.ko.max
统计指定sampler响应失败的最大响应时间
.ko.avg
统计指定sampler响应失败的平均响应时间
.ko.pct
统计指定sampler响应失败的百分比
.a.count
统计指定sampler请求数
.a.min
统计指定sampler请求的最小响应时间
.a.max
统计指定sampler的最大响应时间
.a.avg
统计指定sampler的平均响应时间
.a.pct
统计指定sampler的响应占比
参考链接:
http://jmeter.apache.org/usermanual/realtime-results.html#metrics
http://www.testautomationguru.com/jmeter-real-time-results-influxdb-grafana/
性能测试 CentOS下结合InfluxDB及Grafana图表实时展示JMeter相关性能数据的更多相关文章
- 性能测试 基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据
基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据 by:授客 QQ:1033553122 实现功能 测试环境 环境搭建 使用前提 使用方法 运行程序 效果展 ...
- 性能测试 基于Python结合InfluxDB及Grafana图表实时采集Linux多主机或Docker容器性能数据
基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据 by:授客 QQ:1033553122 实现功能 1 测试环境 1 环境搭建 3 使用前提 3 使用方法 ...
- 性能测试 基于Python结合InfluxDB及Grafana图表实时监控Android系统和应用进程
基于Python结合InfluxDB及Grafana图表实时监控Android系统和应用进程 By: 授客 QQ:1033553122 1. 测试环境 2. 实现功能 3. 使用前提 4. ...
- 将Windows下的InfluxDB、Grafana做成Windows服务
从网上下载的Windows下的InfluxDB.Grafana,都是控制台程序,打开窗口后,很容易被别人给关掉,因此考虑做成Windows服务,nssm正是解决该问题的利器. 1.下载nssm htt ...
- CentOS下如何用nmon收集系统实时运行状况
#赋予执行权限 chmod +x nmon 执行./nmon可以查看实时的系统状态有提示的,d看磁盘,n看网络,c看cpu #如果不想看实时的,想收集系统长时间运行情况然后分析,可用这个 nohup ...
- grafana 安装- 曲线图展示每秒新增数据量
下载: https://dl.grafana.com/oss/release/grafana-5.4.2.windows-amd64.zip 解压就能用 添加数据源 添加查询条件 sql 模式编写查询 ...
- 【Zabbix】在CentOS 7上搭建Zabbix服务,收集Windows客户端计数器性能数据(含过程中遇到的问题解决方法)
1.环境 1.1.关闭防火墙 命令:systemctl stop firewalld 或者 systemctl stop firewalld.service (备注:相应的,若要开启防火墙,将对应的& ...
- 性能测试监控:Jmeter +InfluxDB +collectd +Grafana
虚拟机ip 192.168.180.128 Influxdb Influxdb是一个开源的分布式时序.时间和指标数据库,使用go语言编写,无需外部依赖. 它有三大特性: 时序性(Time Series ...
- 性能测试监控平台:InfluxDB+Grafana+Jmeter
前面的博客介绍了InfluxDB.Telegraf.Grafana的安装和使用方法,这篇博客,介绍下如何利用这些开源工具搭建性能测试监控平台... 前言 性能测试工具jmeter自带的监视器对性能测试 ...
随机推荐
- 【app】Hybrid?Native?不知道你就out了!
Hybrid?是个啥? 相信大家在平常生活中也会经常见到这个词,比如现在比较火的hybrid汽车(混合动力汽车) 那如果是针对于App而言呢? 那就要从App的分类说起了 目前主流应用程序大体分为三类 ...
- 微信小程序分包加载实战
"离线包"机制 微信小程序采用的是类似离线包加载方案,以转转小程序为例,当用户第一次打开时会先下载好所有代码,然后再加载页面:当用户再次进入转转小程序时,会直接使用已下载的代码,省 ...
- socket 实现单一串口共享读写操作
前提:物理串口连接到PC上,通过串口号被PC唯一识别. 此时,物理串口通过该串口号仅能被单一线程或进程实例并占用,其他线程或进程不能再通过该串口号与物理串口通信.这个暂称为串口独占性. 解决思路:核心 ...
- 利用vi编辑器创建和编辑正文文件(二)
末行模式下的命令 1. w:写文件,将编辑的内容保存到文件系统. 2. w!:如果只读文件,强制写入系统. 3. q!:退出vi,但文件内容修改的话,系统要提示是否 ...
- vue属性监听
1.watch:用来监听每一个属性的变化 2.watch这个对象里面都是函数,函数的名称是data中的属性名称,watch中的函数不需要调用 3.当属性发生改变那么就会触发watch函数,每个函数都会 ...
- Asp.Net Core Web Api图片上传(一)集成MongoDB存储实例教程
Asp.Net Core Web Api图片上传及MongoDB存储实例教程(一) 图片或者文件上传相信大家在开发中应该都会用到吧,有的时候还要对图片生成缩略图.那么如何在Asp.Net Core W ...
- Struts框架(6)---action接收请求参数
action接收请求参数 在web开发中,去接收请求参数来获得表单信息非常的常见,自己也总结整理了有关Struts2通过action接收请求参数的几种方法. Struts2 提供三种数据封装的方式: ...
- DDD实战进阶第一波(十四):开发一般业务的大健康行业直销系统(订单上下文应用服务用例与接口)
上一篇文章我们主要讲了订单上下文的领域逻辑,在领域逻辑中完成了订单项的计算逻辑.订单的计算逻辑以及如何生成相应的实体code,这篇文章我们通过 在应用服务中实现一个下单的用例,来将这些领域逻辑以及仓储 ...
- Jvm运行时数据区
一:运行时数据区 Java虚拟机在执行Java程序的过程中会把它管理的内存分为若干个不同的数据区域.这些区域有着各自的用途,一级创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户 ...
- LINUX负载均衡LVS-DR搭建
1.搭建前的规划工作 这里从lvs官方网站找了一个nat模型的图,如下: 我这里使用虚拟机模拟出了4台rhel6机器.一台服务器作为lvs调度器(和宿主机桥接),3台服务器作为具体的web服务器(使用 ...