Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台
当今互联网发展迅速,应用程序的性能监控显得越来越重要。
Docker+Jmeter+InfluxDB+Grafana 是一种常用的性能监控平台,可以帮助开发者快速搭建一套可靠的监控体系。在本文中,我们将介绍如何使用这些工具搭建性能监控平台,以便开发人员可以快速发现并解决应用程序性能问题。
01 Docker安装与配置
首先,我们需要安装 Docker。Docker 是一种开源的容器化平台,可以将应用程序与它们所依赖的所有组件打包在一起。这样可以保证应用程序在任何环境下都可以运行,并且不会因为环境的差异而出现问题。
安装 Docker 的过程非常简单,只需要执行以下命令:
sudo apt-get updatesudo apt-get install docker.io
安装完成后,我们可以使用以下命令验证是否安装成功:
docker --version
如果输出 Docker 版本信息,则说明 Docker 安装成功。
02 Jmeter性能测试工具安装与配置
接下来,我们需要安装 Jmeter。
Jmeter 是一种开源的 Java 应用程序,用于对 Web 应用程序进行性能测试。
安装 Jmeter 的过程也非常简单,只需要执行以下命令:
sudo apt-get updatesudo apt-get install jmeter
安装完成后,我们可以使用以下命令验证是否安装成功:
jmeter --version
如果输出 Jmeter 版本信息,则说明 Jmeter 安装成功。
03 InfluxDB数据库安装与配置
InfluxDB 是一种开源的时序数据库,用于存储和查询时间序列数据。
它是一个非常流行的性能监控平台,因为它可以轻松地处理大量的时间序列数据。
安装 InfluxDB 的过程也非常简单,只需要执行以下命令:
sudo apt-get updatesudo apt-get install influxdb
安装完成后,我们可以使用以下命令启动 InfluxDB 服务:
sudo service influxdb start
- 然后,我可以使用以下命令验证是否启动成功:
sudo service influxdb status
如果输出 active (running),则说明 InfluxDB 启动成功。
04 Grafana可视化工具安装与配置
最后,我们需要安装 Grafana。Grafana 是一种开源的可视化工具,用于呈现时序数据。
安装 Grafana 的过程也非常简单,只需要执行以下命令:
sudo apt-get updatesudo apt-get install grafana
- 1
- 2
- 3
安装完成后,我们可以使用以下命令启动 Grafana 服务:
sudo service grafana-server status
- 1
如果输出 active (running),则说明 Grafana 启动成功。
05 搭建性能监控平台
现在我们已经安装了所有必需的工具,可以开始搭建性能监控平台了。
创建 InfluxDB 数据库
首先,我们需要创建一个 InfluxDB 数据库,用于存储 Jmeter 生成的性能数据。使用以下命令登录 InfluxDB:
influx
- 1
然后,我们可以使用以下命令创建一个名为 jmeterdb 的数据库:
CREATEDATABASE jmeterdb
- 1
配置 Jmeter
接下来,我们需要配置 Jmeter,以便将性能数据写入 InfluxDB 数据库。
首先,我们需要安装 Jmeter 插件管理器。插件管理器是一种 Jmeter 插件,可以轻松地安装其他插件。使用以下命令下载插件管理器:
wget https://jmeter-plugins.org/get/ -O /tmp/plugins-manager.jar
- 1
然后,我们可以使用以下命令启动插件管理器:
jmeter -g /tmp/plugins-manager.jar
- 1
接下来,我们需要安装 InfluxDB插件。使用插件管理器搜索 InfluxDB插件,然后安装它。安装完成后,我们需要配置 InfluxDB 插件。在 Jmeter 中选择 Options > InfluxDB Graphite Backend Listener,然后输入以下信息:
InfluxDB host:localhostInfluxDB port:8086InfluxDB database:jmeterdbInfluxDB user:(留空)InfluxDB password:(留空)
创建 Grafana 数据源
接下来,我们需要创建一个 Grafana 数据源,以便从 InfluxDB 中读取性能数据。
在浏览器中打开 Grafana(默认端口为 3000),然后使用默认的用户名和密码(admin/admin)登录。选择 Configuration > Data Sources,然后选择 Add data source。
在 Type 中选择 InfluxDB,然后输入以下信息:
Name:任意名称URL:http://localhost:8086Database:jmeterdb
- 1
选择 Save & Test,然后等待测试完成。如果测试成功,则说明 Grafana 数据源配置完成。
创建 Grafana 面板
最后,我们需要创建一个 Grafana 面板,以便呈现性能数据。
选择 Create > Dashboard,然后选择 Add panel。
在 Visualization 中选择 Graph,然后选择 Panel Title 并输入任意名称。选择 Metrics,然后选择 Data source 并选择我们之前创建的数据源。在 Query 中输入以下查询:
SELECT mean("aggregate_report_median") FROM "jmeter" WHERE $timeFilter GROUP BYtime($__interval) fill(null)
- 1
然后选择 Apply,然后选择 Save Dashboard 并输入任意名称。
现在我们已经成功搭建了性能监控平台。在 Jmeter 中运行性能测试,然后在 Grafana 中查看性能数据。
06 性能监控平台的优化和扩展
我们已经成功搭建了性能监控平台,但是它还可以进行一些优化和扩展。
优化 InfluxDB 配置
InfluxDB 默认配置可能不适合高负载情况。您可以编辑 /etc/influxdb/influxdb.conf 文件来优化配置。
例如,您可以增加 max-connections 和 max-concurrent-queries,以提高 InfluxDB 的吞吐量和响应时间。
优化 Grafana 配置
Grafana 默认配置可能不适合高负载情况。您可以编辑 /etc/grafana/grafana.ini 文件来优化配置。
例如,您可以增加 max-concurrent-datasource-requests,以提高 Grafana 的吞吐量和响应时间。
添加更多数据源
您可以添加更多的数据源,以便从不同的系统获取性能数据。
例如,您可以添加一个从 Apache 日志中提取响应时间的数据源,以便比较 Jmeter 和实际的响应时间。
添加更多面板
您可以添加更多的面板,以便更全面地监控性能。例如,您可以添加一个面板,显示不同请求的响应时间分布。
部署到云端
您可以将性能监控平台部署到云端,以便随时随地监控性能。您可以使用 Amazon EC2、Microsoft Azure 或 Google Cloud Platform 等云计算服务。
07 总结
通过本文,我们了解了如何使用 Docker、Jmeter、InfluxDB 和 Grafana 搭建性能监控平台。该平台可以帮助我们实时监控应用程序的性能,并进行优化和扩展。通过优化 InfluxDB 和 Grafana 配置,添加更多的数据源和面板,以及将平台部署到云端,我们可以更全面地监控性能,并及时发现和解决问题。
相关文章:
Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台
当今互联网发展迅速,应用程序的性能监控显得越来越重要。 DockerJmeterInfluxDBGrafana 是一种常用的性能监控平台,可以帮助开发者快速搭建一套可靠的监控体系。在本文中,我们将介绍如何使用这些工具搭建性能监控平台,以便开发人…...

Maven 详细配置:Maven settings 配置文件的详细说明
Maven settings 配置文件是 Maven 环境的重要组成部分,它用于定义用户特定的配置信息和全局设置,例如本地仓库路径、远程仓库镜像、代理服务器以及认证信息等。settings 文件分为全局配置文件(settings.xml)和用户配置文件&#x…...
【文本分类】bert二分类
import os import torch from torch.utils.data import DataLoader, Dataset from transformers import BertTokenizer, BertForSequenceClassification, AdamW from sklearn.metrics import accuracy_score, classification_report from tqdm import tqdm# 自定义数据集 class…...
单例模式-如何保证全局唯一性?
以下是几种实现单例模式并保证全局唯一性的方法: 1. 饿汉式单例模式 class Singleton { private:// 私有构造函数,防止外部创建对象Singleton() {}// 静态成员变量,存储单例对象static Singleton instance; public:// 公有静态成员函数&…...
设计模式学习笔记——结构型模式
文章目录 适配器模式 Adapter适用场景UML 桥接模式 Bridge适用场景UML 组合模式 Composite装饰模式 Decorator外观模式 Facade享元模式 Flyweight代理模式 Proxy 适配器模式 Adapter 适用场景 希望使用某个类, 但是其接口与其他代码不兼容时, 可以使用…...

WEB攻防-通用漏洞_文件上传_黑白盒审计流程
目录 前置知识点 Finecms-CMS文件上传 编辑 Cuppa-Cms文件上传 Metinfo-CMS 文件上传 前置知识点 思路: 黑盒就是寻找一切存在文件上传的功能应用 1 、个人用户中心是否存在文件上传功能 2 、后台管理系统是否存在文件上传功能 3 、字典目录扫描探针文件上传构…...

RabbitMQ基本介绍及简单上手
(一)什么是MQ MQ(message queue)本质上是队列,满足先入先出,只不过队列中存放的内容是消息而已,那什么是消息呢? 消息可以是字符串,json也可以是一些复杂对象 我们应用场…...
服务器证书不受信任是什么问题?
用户在访问某些网站时,可能会遇到“服务器证书不受信任”的警告。这一问题不仅影响用户的浏览体验,更可能对网站的信誉和安全性产生深远影响。那么服务器证书不受信任是什么问题呢? 服务器证书的基本概念 服务器证书是由证书颁发机构(CA)签…...
spring mvc源码学习笔记之十
前面的文章介绍了用 WebApplicationInitializer 或者 AbstractAnnotationConfigDispatcherServletInitializer 来代替 web.xml 。 我们学 java web 的时候就知道,servlet 容器会自动加载 web.xml。 那么,疑问就来了,WebApplicationInitialize…...

Ubuntu 下载安装 elasticsearch7.17.9
参考 https://blog.csdn.net/qq_26039331/article/details/115024218 https://blog.csdn.net/mengo1234/article/details/104989382 过程 来到 Es 的版本发布列表页面:https://www.elastic.co/downloads/past-releases#elasticsearch 根据自己的系统以及要安装的…...
Qt笔记:网络编程Tcp
一、铺垫 1.以下只是告诉诸位怎样去构建服务器与客户端;客户端这样构建肯定没问题;但是服务端不可能这样写,因为他是布置在Linux上的,纯数据类处理服务器,根本不可能用Qt写;这在Qt的http类中就表明了&…...
C++单例模式跨DLL调用问题梳理
问题案例: 假设有这样一个单例模式的代码 //test.h header class Test { public:static Test &instance() {static Test ins;return ins;}void foo(); };void testFoo();//test.cpp source #include "test.h"void Test::foo() {printf("%p\n&q…...

oracle闪回版本查询
闪回版本查询(Flashback Versions Query)是Oracle数据库提供的一种功能,允许用户查看某个表在特定时间范围内的所有版本。这对于审计和调试数据修改问题非常有用。通过闪回版本查询,你可以了解表中的数据在某个时间段内的变化历史…...

C#用winform窗口程序操作服务+不显示Form窗体,只显示右下角托盘图标+开机时自启动程序【附带项目地址】
服务的文章在:https://blog.csdn.net/weixin_43768573/article/details/144957941 一、用winform窗口程序操作服务 1、点击“创建新项目”,选择“Windows 服务(.NET Framework)” 2、给项目命名 3、右击项目->添加->新建项,选择“应用程序清单文件(仅限Windo…...

UOS系统和windows系统wps文档显示差异问题解决
最近在使用UOS系统的过程中,发现了一个很有意思的现象。就是在UOS系统上编辑的文档,发到windows系统上,会出现两个文档显示差异很大的情况,文档都是使用一样的wps软件打开的。到底是什么原因导致这种现象的呢?该如何解…...

JS中函数基础知识之查漏补缺(写给小白的学习笔记)
函数 函数是ECMAScript中 最有意思的部分之一, 主要是因为函数实际上是对象.-- 每个函数 都是Function类型的实例,Function也有属性和方法. 因为函数是对象,所以函数名就是指向函数对象的指针. 常用的定义函数的语法: ①函数声明 ②函数表达式 ③箭头函数 function sum (n…...
蓝桥杯训练
1对于一个字母矩阵,我们称矩阵中的一个递增序列是指在矩阵中找到两个字母,它们在同一行,同一列,或者在同一 45 度的斜线上,这两个字母从左向右看、或者从上向下看是递增的。 例如,如下矩阵中 LANN QIAO有…...

前端学习DAY33(外边距的折叠)
垂直外边距的重叠 在网页中相邻的垂直方向的外边距,会发生外边距的重叠 兄弟元素 兄弟元素之间的相邻外边距会取(绝对值)最大值,而不是取和,谁大取谁 特殊情况:如果相邻的外边距一正一负,则取两…...
asp.net core mvc的 ViewBag , ViewData , Module ,TempData
在 ASP.NET MVC 和 ASP.NET Core MVC 中,ViewBag 和 ViewData 是两种用于将数据从控制器传递到视图(View)的常用方法。它们都允许控制器将动态数据传递给视图,但它们的实现方式有所不同。关于 Module,它通常指的是某种…...

Linux驱动学习之第二个驱动程序(LED点亮关闭驱动程序-分层设计思想,使其能适应不同的板子-驱动程序模块为多个源文件怎么写Makefile)
目录 看这篇博文前请先掌握下面这些博文中的知识需要的PDF资料完整源代码board_fire_imx6ull-pro.c中的代码leddrv.c中的代码ledtest.c中的代码 程序设计思想和文件结构实现分层思想的具体方法概述具体实现分析定义结构体led_operations用来集合各个单板硬件层面操作LED的函数定…...

CAN通信收发测试(USB2CAN模块测试实验)
1.搭建测试环境 电脑:安装 USB 驱动,安装原厂调试工具,安装cangaroo(参考安装包的入门教程即可) USB驱动路径:~\CAN分析仪资料20230701_Linux\硬件驱动程序 原厂调试工具路径:~\CAN分析仪资料2…...
小白初学SpringBoot记录
1.对于通过json返回用户信息时,需要忽略password字段操作: 1.1 pom配置jackson细节: <dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>…...
ES6——数组扩展之Set数组
在ES6(ECMAScript 2015)中,JavaScript的Set对象提供了一种存储任何值唯一性的方式,类似于数组但又不需要索引访问。这对于需要确保元素唯一性的场景非常有用。Set对象本身并不直接提供数组那样的方法来操作数据(例如ma…...
深入理解汇编语言中的顺序与分支结构
本文将结合Visual Studio环境配置、顺序结构编程和分支结构实现,全面解析汇编语言中的核心编程概念。通过实际案例演示无符号/有符号数处理、分段函数实现和逻辑表达式短路计算等关键技术。 一、汇编环境配置回顾(Win32MASM) 在Visual Studi…...
php执行系统命令的四个常用函数
php执行系统命令有四个常用函数:1.exec()执行命令并返回最后一行输出,可传数组获取全部结果;2.shell_exec()返回完整输出结果,适合一次性获取;3.system()直接输出命令结果,可接收状态码;4.权限控…...

【前端】es6相关,柯里化
0. 严格模式 严格模式的概念从ES6引进。通过严格模式,可以在函数内部选择进行较为严格的全局或局部的错误条件检测。 MDN中严格模式的描述 严格模式通过抛出错误来消除了一些原有静默错误严格模式修复了一些导致 JavaScript引擎难以执行优化的缺陷:有时…...

算法(蓝桥杯学习C/C++版)
up: 溶金落梧桐 溶金落梧桐的个人空间-溶金落梧桐个人主页-哔哩哔哩视频 蓝桥杯三十天冲刺系列 BV18eQkY3EtP 网站: OI Wiki OI Wiki - OI Wiki 注意 比赛时,devc勾选c11(必看) 必须勾选c11一共有两个方法,任用…...

【软件工具】批量OCR指定区域图片自动识别内容重命名软件使用教程及注意事项
批量OCR指定区域图片自动识别内容重命名软件使用教程及注意事项 1、操作步骤1-5: 安装与启动:安装成功后,在桌面或开始菜单找到软件图标,双击启动。 导入图片:进入软件主界面,点击 “导入图片” 按钮&a…...

前端杂货铺——TodoList
个人简介 👀个人主页: 前端杂货铺 🙋♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…...
Android Test3 获取的ANDROID_ID值不同
Android Test3 获取的ANDROID_ID值不同 这篇文章来说明上一篇文章中说到的一个现象:在同一个项目中,创建不同的 app module,运行同一段测试代码,获取到的 ANDROID_ID 的值不同。 我也是第一次认真研究这个现象,这个还…...