Jmeter压测监控体系搭建Docker+Influxdb+Grafana
章节目录:
- 一、背景介绍
- 1.1 概述
- 1.2 拓扑图
- 二、云服务器设置
- 三、Docker
- 3.1 概述
- 3.2 搭建流程
- 3.3 安装验证
- 3.4 配置docker镜像加速
- 3.5 取消sudo运行(可选操作)
- 四、InfluxDB
- 4.1 镜像拉取
- 4.2 运行数据库
- 4.3 创建存储 jmeter 数据的库
- 五、Grafana
- 5.1 镜像拉取
- 5.2 关联 influxdb
- 5.3 进入控制台
- 5.4 数据源配置
- 5.5 控制板配置
- 六、Jmeter
- 七、大屏监控展示
- 八、数据库查看
- 九、结束语
一、背景介绍
我们都知道 Jmeter 提供了原生的结果查看,既然有原生的查看结果,为什么还要多此一举使用其他工具进行查看呢?
1.1 概述
-
除了查看内容丰富外还有最主要的原因:
-
Jmeter 提供的查看结果插件本身是比较消耗性能的,所以在正式压测中应当禁用。
-
结果只能自己看,无法实时共享。
-
报告信息的展示比较简陋单一,不直观。
-
-
提示:此次使用个人的阿里云服务器,搭建了该体系,后面只需要单独配置 Jmeter 的 Backend Listener 元件就可以做到任意项目且随时随地监控,一定程度上提升了复用性。
1.2 拓扑图

二、云服务器设置
- 端口开放:

三、Docker
3.1 概述
简介:Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。
- 三大优点:
- 搭建测试环境,保证测试环境的一致,避免因环境原因造成的互相甩锅。
- 搭建各类基础服务,例如禅道,Jenkins 等,极大降低学习成本!
- 搭建测试执行环境,例如我们运行自动化测试的环境,随用随建,不用即扔。
3.2 搭建流程
# 1.旧版本卸载。
$ sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine# 2.使用存储库安装。
$ sudo yum install -y yum-utils
$ sudo yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo# 3.安装docker引擎。
$ sudo yum install docker-ce docker-ce-cli containerd.io# 4.启动docker。
$ sudo systemctl start docker# 5.使用开机自启。
$ sudo systemctl enable docker
3.3 安装验证
# 1.查看docker版本号。
$ docker version
3.4 配置docker镜像加速
# 1.创建目录。
$ sudo mkdir -p /etc/docker# 2.配置阿里云镜像。
$ sudo tee /etc/docker/daemon.json <<-'EOF'{"registry-mirrors": ["https://2jakrmvh.mirror.aliyuncs.com"]}EOF# 3.重新加载配置。
$ sudo systemctl daemon-reload# 4.重启docker。
$ sudo systemctl restart docker
3.5 取消sudo运行(可选操作)
# 1.root为当前用户的名字 或 $USER
$ sudo usermod -aG docker root
四、InfluxDB
简介:InfluxDB是一个开源分布式的时序、事件和指标数据库。使用 Go 语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展。
-
三大特性:
-
Time Series(时间序列):你可以使用与时间有关的相关函数。(如最大,最小,求和等)
-
Metrics(度量):可以实时对大量数据进行计算。
-
Eevents(事件):它支持任意的事件数据。
-
4.1 镜像拉取
$ docker pull influxdb:1.7.10
4.2 运行数据库
- 启动镜像:
# 1.创建 influxdb 镜像。
$ docker run -d --name=influxdb -p 8086:8086 -v ${PWD}:/var/lib/influxdb influxdb:1.7.10# 2.进程查看。
$ docker ps# 3.镜像启动。(未启动进程时,使用该命令)
$ sudo docker start influxdb
dockerrun 参数说明:
# 1.docker run 参数格式:docker run [OPTIONS] IMAGE [COMMOND] [ARGS...]# 2. OPTIONS 说明--name="容器新名字": 为容器指定一个名称-d: 后台运行容器,并返回容器ID,也即启动守护式容器-i:以交互模式运行容器,通常与 -t 同时使用-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用-P: 随机端口映射-p: 指定端口映射,有以下四种格式ip:hostPort:containerPortip::containerPorthostPort:containerPortcontainerPort-v, --volume=[] 给容器挂载存储卷,挂载到容器的某个目录--link=[] 指定容器间的关联,使用其他容器的IP、env等信息--rm:容器停止自动删除容器
4.3 创建存储 jmeter 数据的库
- 进入终端操作:
# 1.交互模式进入 influxdb 终端。
$ docker exec -it influxdb bash# 2.进入shell模式。# influx# 3.查看库。> show databases;# 4.创建名为jmeter的数据库。> create database jmeter# 5.使用库,并查看该库的表。> use jmeter> show measurements
五、Grafana
简介:它是一个跨平台的开源的多用途的监控工具,同时通过邮件等方式进行有效的预警通知,丰富的直观的可视化界面,多种数据源配置是其优点所在。
5.1 镜像拉取
$ docker pull grafana/grafana:6.6.2
5.2 关联 influxdb
# 1.关联 influxdb 指定端口及版本号。
$ docker run -d --name=grafana --link=influxdb:influxdb -p 3000:3000 grafana/grafana:6.6.2# 2.进程查看。
$ docker ps# 3.镜像启动。(未启动进程时,使用该命令)
$ sudo docker start grafana
5.3 进入控制台
- 浏览器输入[ip:3000]进行访问

5.4 数据源配置
- 添加数据源

- 配置项

- 保存

5.5 控制板配置
- 选择导入:

- 引入模板ID:

- 模板保存:

六、Jmeter
- Backend Listener监听元件设置

七、大屏监控展示

八、数据库查看

九、结束语
“-------怕什么真理无穷,进一寸有一寸的欢喜。”
微信公众号搜索:饺子泡牛奶。
相关文章:
Jmeter压测监控体系搭建Docker+Influxdb+Grafana
章节目录: 一、背景介绍1.1 概述1.2 拓扑图 二、云服务器设置三、Docker3.1 概述3.2 搭建流程3.3 安装验证3.4 配置docker镜像加速3.5 取消sudo运行(可选操作) 四、InfluxDB4.1 镜像拉取4.2 运行数据库4.3 创建存储 jmeter 数据的库 五、Grafana5.1 镜像拉取5.2 关联…...
TDesign 点击高亮显示=》点击切换class类名
1. wx:for遍历数组 2. 在一行显示 2. 点击高亮...
容器编排学习(二)镜像制作和私有仓库介绍
一 Dockerfile 1 概述 commit的局限 很容易制作简单的镜像,但碰到复杂的情况就十分不方便例如碰到下面的情况需要设置默认的启动命令需要设置环境变量需要指定镜像开放某些特定的端口 Dockerfile就是解决这些问题的方法 Dockerfile是一种更强大的镜像制作方式…...
tcp记录
网络传输:大小端 Qt网络编程实现TCP通信 TCP/IP通讯与socket编程 Qt一步步搭建TcpServer1——封装QTcpServer,QTcpSocket qtcpserver官方文档 Python address already in use 服务器端的端口号和客户端的端口号没有关系 一般服务器是需要BIND指定端口号…...
IDEA中使用Java连接MySQL数据库的配置和使用方法
文章目录 IDE和必要配置数据库连接代码 IDE和必要配置 IDE:IntelliJ IDEA 2023.1 必要配置: 1、安装好JDK,并且配置环境变量 2、导入MYSQL数据库所需的驱动 如果没有导入,可以参考这篇文章IDEA中的MySQL数据库所需驱动包的下载和…...
android——服务JobService
JobService是Android L时候官方新增的组件,适用于需要特定条件才执行后台任务的场景。由系统统一管理和调度,在特定场景下使用JobService更加灵活和省心,相当于是Service的加强或者优化。 JobService是JobScheduler的回调,是安排的…...
一文讲清楚redis的线程池jedis
背景 在shigen实习的时候,遇到了日志系统的性能优化问题,当时的优化点就是:使用redis的线程池,实现并发状态下的性能优化。但是找了很多的技术方案,发现redis的线程池配置起来比较麻烦。正巧,这个周末shig…...
备战面试每日一题
1.如何理解this? this表示的是函数运行时自动生成的一个内部对象,只能在函数内部使用,总是指向调用它的对象。 this是在运行时进行绑定的,并不是在编写的时候绑定,它的上下文取决于函数调用时的各种条件。this的绑定…...
【嵌入式数据库之sqlite3】
目录 一.数据库基本概念(理解) 1.数据 2.数据库 二.常用的数据的数据库(了解) 1.大型数据库 2.中型数据库 3.小型数据库 三.基于嵌入式的数据库(了解) 四.SQLite基础(了解)…...
Android 9.0 pms中关于启动app时获取app的ActivityInfo信息相关源码分析
1.前言 在android9.0的系统rom定制化开发中,在对于app启动时,在进行系统中,通过Launcher调用pms来查询app的相关ActivityInfo的相关信息,然后调用 ams来启动activity,这篇来分析pms中获取app的ActivityInfo的相关信息的相关源码分析 2.pms中关于启动app时获取app的Activ…...
华为数通方向HCIP-DataCom H12-821题库(单选题:321-340)
第321题 BGP的Open报文是用于建立对等体连接的,以下哪一项不属于Open报文中携带的参数信息? A、发送者的Router ID B、AS号 C、BGP版本号 D、TCP端口号 答案:D 解析:以下是BGP的Open报文: 第322题 在建立BGP对等体的过程中,OpenSent状态表明BGP等待的Open报文 并对收…...
《TCP/IP网络编程》阅读笔记--基于TCP的服务器端/客户端
目录 1--TCP/IP协议栈 2--TCP服务器端默认函数调用顺序 3--TCP客户端的默认函数调用顺序 4--Linux实现迭代回声服务器端/客户端 5--Windows实现迭代回声服务器端/客户端 6--TCP原理 7--Windows实现计算器服务器端/客户端 1--TCP/IP协议栈 TCP/IP协议栈共分 4 层…...
【每日一题】43. 字符串相乘
43. 字符串相乘 - 力扣(LeetCode) 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 注意:不能使用任何内置的 BigInteger 库或直接将输入转换为整数。 示例…...
机器学习——K最近邻算法(KNN)
机器学习——K最近邻算法(KNN) 文章目录 前言一、原理二、距离度量方法2.1. 欧氏距离2.2. 曼哈顿距离2.3. 闵可夫斯基距离2.4. 余弦相似度2.5. 切比雪夫距离2.6. 马哈拉诺比斯距离2.7. 汉明距离 三、在MD编辑器中输入数学公式(额外࿰…...
同步FIFO的verilog实现(1)——计数法
一、FIFO概述 1、FIFO的定义 FIFO是英文First-In-First-Out的缩写,是一种先入先出的数据缓冲器,与一般的存储器的区别在于没有地址线, 使用起来简单,缺点是只能顺序读写数据,其数据地址由内部读写指针自动加1完成&…...
python正则表达式笔记1
最近工作中经常用到正则表达式处理数据,慢慢发现了正则表达式的强大功能,尤其在数据处理工作中,记录下来分享给大家。 一、 正则表达式语法介绍 正则表达式(或 RE)指定了一组与之匹配的字符串;模块内的函…...
YOLO目标检测——口罩规范佩戴数据集+已标注xml和txt格式标签下载分享
实际项目应用:目标检测口罩佩戴检测数据集的应用场景涵盖了公共场所监控、疫情防控管理、安全管理与控制以及人员统计和分析等领域。这些应用场景可以帮助相关部门和机构更好地管理口罩佩戴情况,提高公共卫生和安全水平,保障人们的健康和安全…...
Android 13 - Media框架(9)- NuPlayer::Decoder
这一节我们将了解 NuPlayer::Decoder,学习如何将 MediaCodec wrap 成一个强大的 Decoder。这一节会提前讲到 MediaCodec 相关的内容,如果看不大懂可以先跳过此篇。原先觉得 Decoder 部分简单,越读越发现自己的无知,Android 源码真…...
23.09.5 《CLR via C#》 笔记5
第六章 类型和成员基础 类型可以定义0或多个以下成员:常量、字段、实例构造器、类型构造器、方法、操作符重载、转换操作符、属性、事件、类型类型的可见性分为public和internal(默认)C#中,成员的可访问性分为private、protected、internal、protected …...
laravel部署api项目遇到问题总结
laravel线上部署问题 一、Ubuntu远程Mysql 61“Connection refused”二、Ubuntu更新php8三、线上部署Permission denied3.1、部署完之后访问域名出现报错:3.2、The /bootstrap/cache directory must be present and writable. 四、图片访问404五、git部署线上文件 一…...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...
短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
