性能测试从入门到高级进阶之路(二):小白教程influxdb+grafana+jmeter性能监控平台
先看效果:
一、背景:
公司要办第二阶段的架构师选拔,所以需要搞个性能比赛。本人是公司公司测试工程师,负责现场比赛压测,因为有公司外的评委,所以需要搭建一套influxdb+grafana+jmeter专业、清晰、实时的监控的平台,时刻维护公司形象。
二、对比:
1、与无图形界面控制台输出对比:
优点:无图形界面控制台信息输出,信息内容过多不易于观察,并且数据的变化趋势也不宜察觉。influxdb+grafana+jmeter监控平台可以将数据进行分类,并且每一类数据的变化趋势一目了然。
2、与jmeter原生的html报告对比:
优点:jmeter原生的html,1、需要等待测试结束后,才能生成这一份报告,不利于测试过程中不利于性能分析;2、如果压测时间较长、统计数据多、主控机内存不大,生成html报告的时间会让你怀疑人生;(性能平台实时)
三、性能监控平台实现原理
jmeter后端监听器:异步监听并获取到测试结果;
influxDB:时序型数据库,每条数据都会有一个时间。用于保存监听的测试结果数据(下图数据样例);
grafana:可视化的画图工具,通过SQL语句对influxDB中存储的数据进行筛选采集,然后再进行图形化展示。
四、安装influxDB
1、下载influxdb安装包链接:https://pan.baidu.com/s/14L9T2bkNA2iHmk1Xih3Axw 提取码:8vvu
2、新建2个文件夹:mkdir {influxdb,grafana}
mkdir {influxdb,grafana}
3、进入influxdb文件夹:cd influxdb
cd influxdb
4、上传至服务器(做性能测试时,不要上传至服务器,而是上传到其他机器上,因为平台会吃资源):sudo rz
sudo rz
5、安装influxdb数据库:rpm -ivh influxdb-1.7.0.x86_64.rpm
rpm -ivh influxdb-1.7.0.x86_64.rpm
6、使用命令启动:influxd(至此,已经influxdb已经安装完成)
influxd
五、安装grafana
1、下载安装包:链接:链接:https://pan.baidu.com/s/1lHvk2aOZIPTkKfk73oLKCQ
提取码:259x
2、进入grafana文件夹:cd grafana
cd grafana
3、 上传至服务器(做性能测试时,不要上传至服务器,而是上传到其他机器上,因为平台会吃资源):sudo rz
sudo rz
4、安装grafana:rpm -ivh grafana-5.2.3-1.x86_64.rpm(至此,)
rpm -ivh grafana-5.2.3-1.x86_64.rpm
注意:可能会报错,如下所示:
[root@test-node181 grafana]# rpm -ivh grafana-5.2.3-1.x86_64.rpm
警告:grafana-5.2.3-1.x86_64.rpm: 头V4 RSA/SHA1 Signature, 密钥 ID 24098cb6: NOKEY
错误:依赖检测失败:urw-fonts 被 grafana-5.2.3-1.x86_64 需要
解决:安装所需插件后,再次安装成功
yum install urw-fonts
5、下面就是开机自启动和手工启动的命令
手工启动命令:
sudo /bin/systemctl start grafana-server.service
开机自启动命令:
sudo /bin/systemctl daemon-reloadsudo /bin/systemctl enable grafana-server.service
停止服务:
sudo /bin/systemctl stop grafana-server.servicelsof -i:3000---grafana的端口
6、在web访问:http//:ip:3000/login(ip是grafana的部署机器的ip),用户名和密码都是admin
六、配置grafana数据源
1、登录grafana,进入下面界面,点击“所示图标”
2、配置grafana数据源
七、创建数据库jmeter
influxdb基本命令:
#创建数据库
create database "db_name"#显示所有的数据库
show databases#删除数据库
drop database "db_name"#使用数据库
use db_name#显示该数据库中所有的表
show measurements#创建表,直接在插入数据的时候指定表名
insert test,host=127.0.0.1,monitor_name=test count=1#删除表
drop measurement "measurement_name"
1、启动influxdb:
influxd
2、重新打开一个窗口,进入influxdb:
influx
3、 创建库jmeter:
create database jmeter
4、没有创建数据库之前的grafana配置数据源时,提示:
5、创建数据库之后的grafana配置数据源时,提示:
八、配置grafana面板
1、点击“正方形”--> “manager”--> “import”
2、点击“import”按钮
3、在“Grafana.com Dashboard”中输入模板id:5496,移开光标(光标不移动会超时)
4、 “Measurement name”选择修改数据库名称(与之前设置的名称保持一致),并且表名取为jmeter
5、跳转界面,我们可以看到grafana的界面已经出来了(influxdb此时没有数据)
6、如果,以上的数据不能满足你的需求,可以自己设置(没有特殊要求,可以跳过这一步)
九、配置jmeter-后端监听器
1、正常编写好脚本后,添加后端监听器
2、配置后端监听器
3、启动jmeter脚本,查看grafana,漂亮吗
4、我们这时进入influxdb中,是有大量数据写入的
5、每个字段意义可以查看官方文档:Apache JMeter - User's Manual: Live Statistics
真的是小白也能搭建性能监控平台教程,毕竟中国人不骗中国人!看教程搭建成功的同学,点赞、评论、关注一下呗
性能测试从入门到高级进阶之路(二):小白教程influxdb+grafana+jmeter性能监控平台相关推荐
- [总]Android高级进阶之路
个人Android高级进阶之路,目前按照这个目录执行,执行完毕再做扩展!!!!! 一.View的绘制 1)setContentView()的源码分析 2)SnackBar的源码分析 3)利用decor ...
- 2020年Linux的知识技术合集(基础入门到高级进阶)
前言 本文介绍下Linux从入门到高级进阶的学习路线. 整个路线体系专注于服务器后台开发,知识点包括C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,Mongo ...
- Esp8266 进阶之路35【项目篇】借助机智云平台用乐鑫esp8266芯片做一个商业化的七彩RGB灯泡可调整体方案项目,炫彩夺目高大尚。
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. Esp8266之 搭建开发环境,开始一个" ...
- ES7、ES8、ES9、ES10、ES11、ES12、ES13、ES14(ES进阶之路二)
简介 JavaScript是世界上发展最快的编程语言之一,不仅可以用于编写运行在浏览器的客户端程序,随着Node.js的发展,JavaScript也被广泛应用于编写服务端程序.而随着JavaScrip ...
- 2020年关于Linux的知识技术合集(基础入门到高级进阶)
前言 本文介绍下Linux如何从入门开始到高级进阶的学习路线. 整个体系专注于服务器后台开发,知识点包括C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,Mon ...
- 数据库从入门到删库跑路(二) - - PL/SQL
数据库从入门到删库跑路 - - PL/SQL 1.PL/SQL(Procedure Language & Structured Query Language) 定义:一种高级数据库程序设计语言 ...
- ES进阶之路二(ES7-ES12)
简介 JavaScript是世界上发展最快的编程语言之一,不仅可以用于编写运行在浏览器的客户端程序,随着Node.js的发展,JavaScript也被广泛应用于编写服务端程序.而随着JavaScrip ...
- 使用Jmeter进行性能测试及性能监控平台搭建
目录 一.性能测试基本概念 1.为什么要做性能测试? 2.什么是性能测试? 3.常见性能压力测试工具 4.JMeter 优点 5.JMeter安装 二.压测脚本的录制与编写 一.JMeter配置 二. ...
- 单片机入门到高级进阶路径(附教程+工具)
一.先帮大家解答几个问题: 1. 单片机是什么? 答:单片机就是一个微型CPU,把程序烧录芯片里面,通过控制不同的外围电路实现不同产品的功能. 2. 学单片机编程对数学英语有要求吗? 答:数学会基本的 ...
最新文章
- tensorflow tf.keras.utils.plot_model 画深度学习神经网络拓扑图
- Android SearchView介绍及搜索提示实现
- python动态规划组合数最大_编写用动态规划法求组合数()的算法。
- 正态随机分布 C++实现
- bps、Bps、pps
- Java中设计模式之生产者消费者模式-3
- hdu5692【dfs序】【线段树】
- Nginx + PHP(php-fpm)遇到的502 Bad Gateway错误
- Swift 3必看:新的访问控制fileprivate和open
- 微服务化的基石--持续集成
- *第十五周*数据结构实践项目二【用哈希法组织关键字】
- C语言冒泡排序三种写法,冒泡排序的三种实现方法
- 常用的pcb设计软件有哪些
- Firefox国际版与国内版
- Java获取电脑外网ip地址方法
- 【屏类型结构体定义PanelType】 文档位置:《apiPNL.h》
- fagor后处理格式_输出格式
- 计算机无法转换输入发,电脑无法切换输入法怎么办
- lol中国人最多的服务器,2021LOL哪个区人多_2021LOL服务器推荐
- OCR身份证实名认证+图片上传+拍照上传图片(自用)
热门文章
- 跨模态行人重识别综述 - 计算机视觉
- python高德地图api调用实例_Python调用高德地图API实现经纬度换算、地图可视化
- Spring Boot 2.2.x Junit4 升级为Junit5 后的变化、对比 找不到 org.junit.jupiter.api.Test
- Java—mysql缓存导致查询结果与数据库不一致
- 论文排版之参考文献的自动生成、设置格式及引用
- 文字转语音软件哪个好?这些软件值得收藏
- 推荐一些Windows系统中好用的免费(开源)/收费的终端管理工具(命令行工具)
- The project uses Gradle 4.4 which is incompatible with Java 11 or newer.
- Java手写AVL树(非常详细)
- 怎么用计算机计算性别的公式,测男女的计算公式测了下挺准的