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

Jmeter+Influxdb+Grafana平台监控性能测试过程

一、Jmeter自带插件监控

下载地址:https://jmeter-plugins.org/install/Install/

安装:下载后文件为jmeter-plugins-manager-1.3.jar,将其放入jmeter安装目录下的lib/ext目录,然后重启jmeter,即可。

启动Jmeter,测试计划–>选择监听器jp@gc - Transactions per Second 、jp@gc - Response Times Over Time,测试接口性能

jp@gc - Transactions per Second ,接口的TPS
在这里插入图片描述
jp@gc - Response Times Over Time ,接口响应时间在这里插入图片描述

二、Jmeter非GUI方式监控

cmd窗口执行非GUI方式: jmeter -n -t api.jmx -l \report\jtl -e -o \report\html在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
三、Jmeter+Influxdb+Grafana平台监控

1、背景

测试人员用Jmeter工具对相应的接口做负载测试和性能测试时,可以帮助我们发现应用程序中的性能瓶颈,但是Jmeter本身的聚合报告存在一些缺点,例如只能自己查看,无法实时共享,以及报告信息展示比较单一,不直观。

2、引入Grafana+Influxdb的作用及原理

2-1、grafana和Influxdb可以解决这个问题,grafana是一款采用Go语言编写的开源应用,主要用于大规模指标数据的可视化展示,Influxdb是一款时序性数据库,有时间戳组件,时间的方式去存储数据。

2-2、原理图在这里插入图片描述
性能监控平台搭建中,可以将Jmeter获取的性能结果导入InfluxDB,再使用Grafana从InfluxDB中获取数据,用特定的模板进行展示,从而实现性能监控过程的可视化。

3、环境与配置在这里插入图片描述
4、Influxdb数据库下载,启动,操作

4-1、下载Influxdb安装包(Influxdb2.0)

[root@centos7 tools]# wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.0_linux_amd64.tar.gz在这里插入图片描述
4-2、解压Influxdb

[root@centos7 tools]# tar -xzvf influxdb-1.8.0_linux_amd64.tar.gz在这里插入图片描述
4-3、添加环境变量

[root@centos7 tools]# sudo ./influxdb/usr/bin/influxd /usr/local/bin/

4-4、启动Influxd

添加环境变量后,Influxd可以在任意目录下启动。默认启动的端口为8086

可以带配置启动:[root@centos7 bin]# ./influxd -config /home/tools/influxdb/etc/influxdb/influxdb.conf &在这里插入图片描述
4-5、 添加数据库及配置

创建Jmeter数据库。–> Jmeter 数据存储到这里。在这里插入图片描述
5、Grafana平台下载,启动及配置

5-1、下载Grafana安装包(版本:9.4.9)

[root@centos71 tools]# wget https://dl.grafana.com/enterprise/release/grafana-enterprise-9.4.9.linux-amd64.tar.gz在这里插入图片描述
5-2、解压Grafana

[root@centos71 tools]# tar -xzvf grafana-enterprise-9.4.9.linux-amd64.tar.gz在这里插入图片描述
5-3、启动Grafana

默认端口为:3000,如果修改默认端口的话,进入grafana/conf;

[root@centos71 conf]# vi defaults.ini

修改 http_port = 8000,保存defaults.ini文件

[root@centos71 bin]# ./grafana-server &在这里插入图片描述

在这里插入图片描述
浏览器打开:http://192.168.124.130:8000/,如果打不开排查下是否Linux的防火墙是否打开,如果打开的话,我们直接关闭防火墙

[root@centos71 bin]# systemctl status firewalld —查看防火墙状态在这里插入图片描述
[root@centos71 bin]# systemctl stop firewalld —关闭防火墙

打开后的页面,Grafana默认账号密码为admin / admin在这里插入图片描述
Grafana登录后的页面展示在这里插入图片描述
5-4、下载jmeter模板

搜索模板:https://grafana.com/grafana/dashboards/?search=jmeter在这里插入图片描述
下载模板的JOSN文件,地址:https://grafana.com/grafana/dashboards/5496-apache-jmeter-dashboard-by-ubikloadpack/ 或者复制模板ID:5496在这里插入图片描述
5-5、配置Influx数据源

进入Grafana首页,点击设置-> Configuration -> Data Sources -> Add data source 在这里插入图片描述
点击InfluxBD数据源在这里插入图片描述
填写InfluxDB的信息在这里插入图片描述
在这里插入图片描述
5-6、导入Jmeter模板在这里插入图片描述
我使用的复制模板编码:5496,再点击Load按钮在这里插入图片描述
最终导入模板的效果显示在这里插入图片描述
6、Jmeter配置执行

测试计划中添加:Add -> Listener -> Backend Listener(后端监听器)在这里插入图片描述
执行Api测试(总详情), 总的请求数据959,错误请求1个,错误率为0.10%,结果如下:在这里插入图片描述
在这里插入图片描述登录接口对比
在这里插入图片描述
在这里插入图片描述
查看所有书籍信息接口对比在这里插入图片描述
在这里插入图片描述
添加书籍接口对比在这里插入图片描述
在这里插入图片描述
查看添加的数据信息接口对比在这里插入图片描述
在这里插入图片描述
修改书籍信息接口对比在这里插入图片描述
在这里插入图片描述
删除书籍信息接口对比在这里插入图片描述
在这里插入图片描述
验证书籍被删除接口对比在这里插入图片描述
在这里插入图片描述

相关文章:

Jmeter+Influxdb+Grafana平台监控性能测试过程

一、Jmeter自带插件监控 下载地址:https://jmeter-plugins.org/install/Install/ 安装:下载后文件为jmeter-plugins-manager-1.3.jar,将其放入jmeter安装目录下的lib/ext目录,然后重启jmeter,即可。 启动Jmeter&…...

fatal: unable to access ‘https://github.com/xxx/‘: SSL peer certificat

从github上clone代码时报错 F:\Projects>git clone https://github.com/xxx into xxx... fatal: unable to access https://github.com/xxx/: SSL peer certificate or SSH remote key was not OK **可能的原因****解决方法****1. 检查系统时间****2. 禁用 SSL 验证&#xf…...

Prompt通用技巧

Prompt 的典型构成 角色:给 AI定义一个最匹配任务的角色,比如:「你是一位软件工程师」「你是一位小学老师」指示:对任务进行描述上下文: 给出与任务相关的其它背景信息(尤其在多轮交互中)。例子 : 必要时给出举例,学术中称为 one-shot learning,few-sho…...

ROACH

End-to-End Urban Driving by Imitating a Reinforcement Learning Coach CARLA-Roach ICCV‘21论文:模仿一个强化学习教练的端到端城市驾驶 文章目录 Roach输入BEV语义分割图像测量向量 Roach输出训练策略网络价值网络 具体实现由 Roach 监督的模仿学习&#xff08…...

机械臂运动学笔记(一):正向运动学

正向运动学指的是通过相邻关节间的转动和移动坐标,将末端的坐标计算出来。 反向运动学指的是已知机械臂末端的坐标,反算每个关节可能的转动和移动参数。 参考资料:4.机械臂几何法与DH表示法_哔哩哔哩_bilibili 一.任意连杆连接的变量定义&a…...

【DuodooBMS】给PDF附件加“受控”水印的完整Python实现

给PDF附件加“受控”水印的完整Python实现 功能需求 在实际工作中,许多文件需要添加水印以标识其状态,例如“受控”“机密”等。对于PDF文件,添加水印不仅可以增强文件的可识别性,还可以防止未经授权的使用。本代码的功能需求是…...

GitCode 助力 Dora SSR:开启游戏开发新征程

项目仓库(点击阅读原文链接可直达) https://gitcode.com/ippclub/Dora-SSR 跨越技术藩篱,构建游戏开发乐园 Dora SSR 是一款致力于打破游戏开发技术壁垒的开源游戏引擎。其诞生源于开发者对简化跨平台游戏开发环境搭建的强烈渴望&#xff0…...

Mediamtx+Python读取webrtc流

一、功能思路: 1、我采用ffmpeg -re -stream_loop -1 -i xcc.mp4 -c:v libx264 -profile:v baseline -x264opts "bframes0:repeat_headers1" -b:v 1500k -preset fast -f flv rtmp://127.0.0.1:1835/stream/111推流到mediamtx的rtmp上 2、通过mediamtx自…...

每日一题——矩阵最长递增路径

矩阵最长递增路径问题 题目描述数据范围:进阶要求:示例示例 1示例 2 题解思路算法步骤:代码实现代码解释复杂度分析总结 题目描述 给定一个 n 行 m 列的矩阵 matrix,矩阵内所有数均为非负整数。你需要在矩阵中找到一条最长路径&a…...

【CLIP系列】4:目标检测(ViLD、GLIP)

目录 1 ViLD2 GLIP2.1 前言2.2 损失计算2.3 模型框架 1 ViLD OPEN-VOCABULARY OBJECT DETECTION VIA VISION AND LANGUAGE KNOWLEDGE DISTILLATION 从标题就能看出来,作者是把CLIP模型当成一个Teacher,去蒸馏他自己的网络,从而能Zero Shot去…...

Cesium for Unity Linux版本

Cesium for Unity 直装不支持Linux 参照官方开发流程一些操作命令issues 宝藏最后运行图 参照官方开发流程 https://github.com/CesiumGS/cesium-unity/blob/main/Documentation~/developer-setup.md 系统已经安装过dotnet和cmake xuefeixuefei:~$ dotnet --version 9.0.102 …...

Spring Boot过滤器链:从入门到精通

文章目录 一、过滤器链是什么?二、为什么需要过滤器链?三、Spring Boot中的过滤器链是如何工作的?(一)过滤器的生命周期(二)过滤器链的执行流程 四、如何在Spring Boot中定义自己的过滤器&#…...

关于 IoT DC3 中驱动(Driver)的理解

在开源IoT DC3物联网系统中,驱动(Driver)扮演着至关重要的角色,它充当了软件系统与物理设备之间的桥梁。驱动的主要功能是依据特定的通信协议连接到设备,并根据设备模板中配置的位号信息进行数据采集和指令控制。不同的…...

微信小程序地图标记点,安卓手机一次性渲染不出来的问题

问题描述: 如果微信小程序端,渲染的标记物太多,安卓手机存在标记物不显示的问题,原因初步判断是地图还没有渲染完,标记物数据已经加载完了,导致没有在地图上显示。 解决办法: 使用map组件的b…...

一维差分与二维差分

差分(Difference)是一种与前缀和密切相关的技术,主要用于高效处理区间更新操作。差分数组的核心思想是通过记录相邻元素的差值来表示原数组的变化,从而将区间更新操作的时间复杂度从 O(n) 优化到 O(1)。下面详细讲解一维差分和二维…...

EasyRTC嵌入式WebRTC视频通话SDK支持Web浏览器、Linux、ARM、Android、iOS

随着互联网技术的飞速发展,实时通信(RTC)已经成为现代应用中不可或缺的一部分。无论是视频会议、在线教育、远程医疗,还是社交娱乐,实时通信技术都在其中扮演着重要角色。 然而,WebRTC技术在PC和移动端的支…...

数据库脚本MySQL8转MySQL5

由于生产服务器版本上部署的是MySQL5,而开发手里的脚本代码是MySQL8。所以只能降版本了… 升级版本与降级版本脚本转换逻辑一样 MySQL5与MySQL8版本SQL脚本区别 大多数无需调整、主要是字符集与排序规则 MySQL5与MySQL8版本SQL字符集与排序规则 主要操作&…...

【PGCCC】commit_delay 对性能的提升:PostgreSQL 基准测试

通过禁用参数可以来调整事务工作负载synchronous_commit。该措施有惊人效果。但在操作系统崩溃期间丢失已提交事务的可能性使其成为许多应用程序无法启动的因素。因此我决定写下来。 WAL 刷新是事务数据库工作负载的瓶颈 为了确保已提交的事务不会丢失,PostgreSQL…...

AI大模型随机初始化权重并打印网络结构方法(以Deepseekv3为例,单机可跑)

背景 当前大模型的权重加载和调用,主要是通过在HuggingFace官网下载并使用transformer的库来加以实现;其中大模型的权重文件较大(部分>100GB),若只是快速研究网络结构和数据流变化,则无需下载权重。本文…...

字符串解码——巧妙使用递归解题

题目描述 给定一个经过编码的字符串,返回它解码后的字符串。编码规则为 k[encoded_string],表示方括号内部的 encoded_string 重复 k 次。其中 k 是正整数,输入字符串确保符合格式要求且无额外空格。 示例: 复制 示例 1&#…...

Flask Web开发的重要概念和示例

一口气列举Flask Web应用的所有概念和示例 Flask Web 应用基本框架 路由(Routing) 模版(Template) request 对象 JSON 数据处理 redirect 示例 文件上传示例 文件下载示例 Session 示例 Cookie操作 Flask Web 应用基本框架 这是一个 最基础的 Flask Web 应用,…...

51-ArrayList

51-ArrayList Collection 类型介绍 仓颉中常用的几种基础 Collection 类型,包含 Array、ArrayList、HashSet、HashMap。 可以在不同的场景中选择适合对应业务的类型: Array:如果不需要增加和删除元素,但需要修改元素&#xff…...

Ollama+WebUI+DeepSeek部署自己的本地大模型

前言 使用AI几乎成为互联网工作者必备技能了,DeepSeek的出现把AI再次推向高潮,在本文中,我们将带领大家借助 Ollama、WebUI 和 deepseek 这三个工具,成功搭建属于自己的本地大模型环境。Ollama 作为一款轻量级的大模型运行工具&a…...

(篇六)基于PyDracula搭建一个深度学习的软件之新版本ultralytics-8.3.28调试

ultralytics-8.3.28版本debug记录 1传入文件 代码太多不粘贴在这里了,完整代码写在了篇三 def open_src_file(self):config_file config/fold.jsonconfig json.load(open(config_file, r, encodingutf-8))open_fold config[open_fold]if not os.path.exists(op…...

NLP Word Embeddings

Word representation One-hot形式 在上一周介绍RNN类模型时,使用了One-hot向量来表示单词的方式。它的缺点是将每个单词视为独立的,算法很难学习到单词之间的关系。 比如下面的例子,即使语言模型已经知道orange juice是常用组合词&#xf…...

基于 FPGA 的嵌入式系统硬件逻辑优化技术探究

在数字化浪潮席卷全球的当下,嵌入式系统已然成为众多领域不可或缺的核心力量。从我们日常使用的智能手机、智能穿戴设备等消费电子产品,到关乎工业生产效率与精度的工业控制系统,再到汽车电子领域的自动驾驶辅助系统以及航空航天领域的飞行器…...

使用HX搭建UNI-APP云开发项目(适合新手小白与想学云开发的宝子)

什么是uni-app云开发 uni-app云开发是uni-app提供的一套后端服务,它可以帮助开发者快速搭建起一个完整的后端服务,包括数据库、云函数、存储等。开发者只需要关注前端页面的开发,后端服务由uni-app云开发提供。 uni-app云开发的优势: 快速搭建后端服务:uni-app云开发提供了…...

sql:时间盲注和boolen盲注

关于时间盲注&#xff0c;boolen盲注的后面几个获取表、列、具体数据的函数补全 时间盲注方法 import time import requests# 获取数据库名 def inject_database(url):dataname for i in range(1, 20):low 32high 128mid (low high) // 2while low < high:payload &q…...

【STM32】ADC|多通道ADC采集

本次实现的是ADC实现数字信号与模拟信号的转化&#xff0c;数字信号时不连续的&#xff0c;模拟信号是连续的。 1.ADC转化的原理 模拟-数字转换技术使用的是逐次逼近法&#xff0c;使用二分比较的方法来确定电压值 当单片机对应的参考电压为3.3v时&#xff0c;0~ 3.3v(模拟信…...

arcgis for js实现层叠立体效果

在 Web 开发中&#xff0c;利用 ArcGIS for JS 实现一些炫酷的地图效果能够极大地提升用户体验。本文将详细介绍如何使用 ArcGIS for JS 实现层叠立体效果&#xff0c;并展示最终的效果图。 效果图 实现思路 要实现层叠立体效果&#xff0c;关键在于获取边界图形的坐标&#xf…...