先看效果:

 一、背景:

        公司要办第二阶段的架构师选拔,所以需要搞个性能比赛。本人是公司公司测试工程师,负责现场比赛压测,因为有公司外的评委,所以需要搭建一套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性能监控平台相关推荐

  1. [总]Android高级进阶之路

    个人Android高级进阶之路,目前按照这个目录执行,执行完毕再做扩展!!!!! 一.View的绘制 1)setContentView()的源码分析 2)SnackBar的源码分析 3)利用decor ...

  2. 2020年Linux的知识技术合集(基础入门到高级进阶)

    前言 本文介绍下Linux从入门到高级进阶的学习路线. 整个路线体系专注于服务器后台开发,知识点包括C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,Mongo ...

  3. Esp8266 进阶之路35【项目篇】借助机智云平台用乐鑫esp8266芯片做一个商业化的七彩RGB灯泡可调整体方案项目,炫彩夺目高大尚。

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. Esp8266之 搭建开发环境,开始一个" ...

  4. ES7、ES8、ES9、ES10、ES11、ES12、ES13、ES14(ES进阶之路二)

    简介 JavaScript是世界上发展最快的编程语言之一,不仅可以用于编写运行在浏览器的客户端程序,随着Node.js的发展,JavaScript也被广泛应用于编写服务端程序.而随着JavaScrip ...

  5. 2020年关于Linux的知识技术合集(基础入门到高级进阶)

    前言 本文介绍下Linux如何从入门开始到高级进阶的学习路线. 整个体系专注于服务器后台开发,知识点包括C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,Mon ...

  6. 数据库从入门到删库跑路(二) - - PL/SQL

    数据库从入门到删库跑路 - - PL/SQL 1.PL/SQL(Procedure Language & Structured Query Language) 定义:一种高级数据库程序设计语言 ...

  7. ES进阶之路二(ES7-ES12)

    简介 JavaScript是世界上发展最快的编程语言之一,不仅可以用于编写运行在浏览器的客户端程序,随着Node.js的发展,JavaScript也被广泛应用于编写服务端程序.而随着JavaScrip ...

  8. 使用Jmeter进行性能测试及性能监控平台搭建

    目录 一.性能测试基本概念 1.为什么要做性能测试? 2.什么是性能测试? 3.常见性能压力测试工具 4.JMeter 优点 5.JMeter安装 二.压测脚本的录制与编写 一.JMeter配置 二. ...

  9. 单片机入门到高级进阶路径(附教程+工具)

    一.先帮大家解答几个问题: 1. 单片机是什么? 答:单片机就是一个微型CPU,把程序烧录芯片里面,通过控制不同的外围电路实现不同产品的功能. 2. 学单片机编程对数学英语有要求吗? 答:数学会基本的 ...

最新文章

  1. tensorflow tf.keras.utils.plot_model 画深度学习神经网络拓扑图
  2. Android SearchView介绍及搜索提示实现
  3. python动态规划组合数最大_编写用动态规划法求组合数()的算法。
  4. 正态随机分布 C++实现
  5. bps、Bps、pps
  6. Java中设计模式之生产者消费者模式-3
  7. hdu5692【dfs序】【线段树】
  8. Nginx + PHP(php-fpm)遇到的502 Bad Gateway错误
  9. Swift 3必看:新的访问控制fileprivate和open
  10. 微服务化的基石--持续集成
  11. *第十五周*数据结构实践项目二【用哈希法组织关键字】
  12. C语言冒泡排序三种写法,冒泡排序的三种实现方法
  13. 常用的pcb设计软件有哪些
  14. Firefox国际版与国内版
  15. Java获取电脑外网ip地址方法
  16. 【屏类型结构体定义PanelType】 文档位置:《apiPNL.h》
  17. fagor后处理格式_输出格式
  18. 计算机无法转换输入发,电脑无法切换输入法怎么办
  19. lol中国人最多的服务器,2021LOL哪个区人多_2021LOL服务器推荐
  20. OCR身份证实名认证+图片上传+拍照上传图片(自用)

热门文章

  1. 跨模态行人重识别综述 - 计算机视觉
  2. python高德地图api调用实例_Python调用高德地图API实现经纬度换算、地图可视化
  3. Spring Boot 2.2.x Junit4 升级为Junit5 后的变化、对比 找不到 org.junit.jupiter.api.Test
  4. Java—mysql缓存导致查询结果与数据库不一致
  5. 论文排版之参考文献的自动生成、设置格式及引用
  6. 文字转语音软件哪个好?这些软件值得收藏
  7. 推荐一些Windows系统中好用的免费(开源)/收费的终端管理工具(命令行工具)
  8. The project uses Gradle 4.4 which is incompatible with Java 11 or newer.
  9. Java手写AVL树(非常详细)
  10. 怎么用计算机计算性别的公式,测男女的计算公式测了下挺准的