当前位置: 首页 > news >正文

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
  • docker run 参数说明
# 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

章节目录&#xff1a; 一、背景介绍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的局限 很容易制作简单的镜像&#xff0c;但碰到复杂的情况就十分不方便例如碰到下面的情况需要设置默认的启动命令需要设置环境变量需要指定镜像开放某些特定的端口 Dockerfile就是解决这些问题的方法 Dockerfile是一种更强大的镜像制作方式…...

tcp记录

网络传输&#xff1a;大小端 Qt网络编程实现TCP通信 TCP/IP通讯与socket编程 Qt一步步搭建TcpServer1——封装QTcpServer&#xff0c;QTcpSocket qtcpserver官方文档 Python address already in use 服务器端的端口号和客户端的端口号没有关系 一般服务器是需要BIND指定端口号…...

IDEA中使用Java连接MySQL数据库的配置和使用方法

文章目录 IDE和必要配置数据库连接代码 IDE和必要配置 IDE&#xff1a;IntelliJ IDEA 2023.1 必要配置&#xff1a; 1、安装好JDK&#xff0c;并且配置环境变量 2、导入MYSQL数据库所需的驱动 如果没有导入&#xff0c;可以参考这篇文章IDEA中的MySQL数据库所需驱动包的下载和…...

android——服务JobService

JobService是Android L时候官方新增的组件&#xff0c;适用于需要特定条件才执行后台任务的场景。由系统统一管理和调度&#xff0c;在特定场景下使用JobService更加灵活和省心&#xff0c;相当于是Service的加强或者优化。 JobService是JobScheduler的回调&#xff0c;是安排的…...

一文讲清楚redis的线程池jedis

背景 在shigen实习的时候&#xff0c;遇到了日志系统的性能优化问题&#xff0c;当时的优化点就是&#xff1a;使用redis的线程池&#xff0c;实现并发状态下的性能优化。但是找了很多的技术方案&#xff0c;发现redis的线程池配置起来比较麻烦。正巧&#xff0c;这个周末shig…...

备战面试每日一题

1.如何理解this&#xff1f; this表示的是函数运行时自动生成的一个内部对象&#xff0c;只能在函数内部使用&#xff0c;总是指向调用它的对象。 this是在运行时进行绑定的&#xff0c;并不是在编写的时候绑定&#xff0c;它的上下文取决于函数调用时的各种条件。this的绑定…...

【嵌入式数据库之sqlite3】

目录 一.数据库基本概念&#xff08;理解&#xff09; 1.数据 2.数据库 二.常用的数据的数据库&#xff08;了解&#xff09; 1.大型数据库 2.中型数据库 3.小型数据库 三.基于嵌入式的数据库&#xff08;了解&#xff09; 四.SQLite基础&#xff08;了解&#xff09;…...

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 层&#xf…...

【每日一题】43. 字符串相乘

43. 字符串相乘 - 力扣&#xff08;LeetCode&#xff09; 给定两个以字符串形式表示的非负整数 num1 和 num2&#xff0c;返回 num1 和 num2 的乘积&#xff0c;它们的乘积也表示为字符串形式。 注意&#xff1a;不能使用任何内置的 BigInteger 库或直接将输入转换为整数。 示例…...

机器学习——K最近邻算法(KNN)

机器学习——K最近邻算法&#xff08;KNN&#xff09; 文章目录 前言一、原理二、距离度量方法2.1. 欧氏距离2.2. 曼哈顿距离2.3. 闵可夫斯基距离2.4. 余弦相似度2.5. 切比雪夫距离2.6. 马哈拉诺比斯距离2.7. 汉明距离 三、在MD编辑器中输入数学公式&#xff08;额外&#xff0…...

同步FIFO的verilog实现(1)——计数法

一、FIFO概述 1、FIFO的定义 FIFO是英文First-In-First-Out的缩写&#xff0c;是一种先入先出的数据缓冲器&#xff0c;与一般的存储器的区别在于没有地址线&#xff0c; 使用起来简单&#xff0c;缺点是只能顺序读写数据&#xff0c;其数据地址由内部读写指针自动加1完成&…...

python正则表达式笔记1

最近工作中经常用到正则表达式处理数据&#xff0c;慢慢发现了正则表达式的强大功能&#xff0c;尤其在数据处理工作中&#xff0c;记录下来分享给大家。 一、 正则表达式语法介绍 正则表达式&#xff08;或 RE&#xff09;指定了一组与之匹配的字符串&#xff1b;模块内的函…...

YOLO目标检测——口罩规范佩戴数据集+已标注xml和txt格式标签下载分享

实际项目应用&#xff1a;目标检测口罩佩戴检测数据集的应用场景涵盖了公共场所监控、疫情防控管理、安全管理与控制以及人员统计和分析等领域。这些应用场景可以帮助相关部门和机构更好地管理口罩佩戴情况&#xff0c;提高公共卫生和安全水平&#xff0c;保障人们的健康和安全…...

Android 13 - Media框架(9)- NuPlayer::Decoder

这一节我们将了解 NuPlayer::Decoder&#xff0c;学习如何将 MediaCodec wrap 成一个强大的 Decoder。这一节会提前讲到 MediaCodec 相关的内容&#xff0c;如果看不大懂可以先跳过此篇。原先觉得 Decoder 部分简单&#xff0c;越读越发现自己的无知&#xff0c;Android 源码真…...

23.09.5 《CLR via C#》 笔记5

第六章 类型和成员基础 类型可以定义0或多个以下成员&#xff1a;常量、字段、实例构造器、类型构造器、方法、操作符重载、转换操作符、属性、事件、类型类型的可见性分为public和internal(默认)C#中&#xff0c;成员的可访问性分为private、protected、internal、protected …...

laravel部署api项目遇到问题总结

laravel线上部署问题 一、Ubuntu远程Mysql 61“Connection refused”二、Ubuntu更新php8三、线上部署Permission denied3.1、部署完之后访问域名出现报错&#xff1a;3.2、The /bootstrap/cache directory must be present and writable. 四、图片访问404五、git部署线上文件 一…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文&#xff1f; 多租户隔离&#xff1a;自动为接入设备追加租户前缀&#xff0c;后端按 ClientID 拆分队列。零代码鉴权&#xff1a;将入站用户名替换为 OAuth Access-Token&#xff0c;后端 Broker 统一校验。灰度发布&#xff1a;根据 IP/地理位写…...

【HTTP三个基础问题】

面试官您好&#xff01;HTTP是超文本传输协议&#xff0c;是互联网上客户端和服务器之间传输超文本数据&#xff08;比如文字、图片、音频、视频等&#xff09;的核心协议&#xff0c;当前互联网应用最广泛的版本是HTTP1.1&#xff0c;它基于经典的C/S模型&#xff0c;也就是客…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...