基于Windows下JMeter+influxdb+Grafana实现性能测试监控

1、工具介绍

1.1 JMeter

JMeter(Apache JMeter)是一个功能强大的开源性能测试工具,由Apache软件基金会开发和维护。它主要用于模拟多种负载类型,测试服务器、网络和应用程序的性能,以及分析不同负载条件下的性能数据。JMeter最初设计用于Web应用程序测试,但它也可以用于其他类型的应用程序,包括数据库、消息队列、FTP服务器等。

以下是JMeter的一些主要特点和功能:

  1. 用户友好的界面:
    JMeter提供了一个直观的图形用户界面(GUI),允许用户轻松地创建和管理测试计划。
  2. 支持多种协议:
    JMeter支持多种协议,包括HTTP、HTTPS、FTP、JMS、SOAP、LDAP、JDBC等,使其可以用于测试各种类型的应用程序。
  3. 模拟多种负载类型:
    JMeter可以模拟大量的用户同时访问目标系统,以便测试系统在不同负载条件下的性能。
  4. 性能和负载测试:
    JMeter可以帮助开发人员和测试人员测试应用程序的性能,包括响应时间、吞吐量和并发用户数等指标。
  5. 分布式测试:
    JMeter支持分布式测试,允许在多台机器上运行JMeter实例,从而模拟更大规模的负载。
  6. 灵活的脚本录制和回放:
    JMeter允许用户录制用户交互过程,然后将其作为测试脚本进行回放,方便地重现用户行为。
  7. 丰富的测试报告:
    JMeter生成详细的测试报告,包括图形化的性能数据和统计信息,帮助用户分析测试结果。
  8. 插件支持:
    JMeter具有丰富的插件生态系统,可以通过插件扩展其功能,满足不同测试需求。
  9. 开源和可扩展性:
    作为开源项目,JMeter的源代码对开发者开放,可以根据需要进行定制和扩展。

总的来说,JMeter是一个功能强大、灵活且易于使用的性能测试工具,广泛应用于软件开发和测试领域,帮助开发团队保证他们的应用程序在各种负载条件下都能够稳定、高效地运行。

1.2 influxdb

InfluxDB 是一个开源的、分布式的时序数据库,专为处理大规模时序数据和实时分析而设计。它是一个由 InfluxData 公司维护的项目,提供高效、可扩展、易用的时序数据存储解决方案。以下是 InfluxDB 的一些主要特点和功能:

  1. 时序数据存储:
    InfluxDB 主要用于存储时序数据,例如服务器指标、传感器数据、应用程序性能监控数据等。它的存储引擎被优化,以支持高度压缩和快速查询时序数据。
  2. SQL-Like 查询语言:
    InfluxDB 提供类似 SQL 的查询语言,可以方便地进行数据查询、聚合和过滤操作。这种查询语言简化了时序数据的处理和分析过程。
  3. 可扩展性:
    InfluxDB 具有良好的横向扩展性,可以通过集群方式实现高可用性和容量的水平扩展。它支持数据的分片和分布式存储,可以处理大规模数据并提供高性能。
  4. 数据保留策略:
    用户可以定义数据保留策略,指定数据的保存时间和精度。这使得 InfluxDB 可以灵活地管理数据的保留期限,避免数据存储占用过多空间。
  5. 连续查询和聚合:
    InfluxDB 支持连续查询,允许用户在数据写入时自动进行聚合计算。这样可以减少查询时的计算负担,提高查询效率。
  6. 数据输入和输出:
    InfluxDB 提供了多种数据输入和输出方式,包括 HTTP、UDP、MQTT 等协议,也支持数据的导入和导出,方便与其他系统集成。
  7. 插件和生态系统:
    InfluxDB 生态系统丰富,提供了各种插件和工具,包括数据可视化工具、数据采集器、报警系统等,方便用户构建全面的监控和分析解决方案。
  8. 开源和社区支持:
    InfluxDB 是一个开源项目,具有活跃的社区支持。用户可以参与到项目的开发和改进中,也可以获得来自社区的技术支持。

总的来说,InfluxDB 是一个强大的时序数据库,适用于处理大规模的时序数据,广泛用于监控系统、IoT(物联网)应用、应用程序性能监控等领域,帮助用户高效地存储、查询和分析时序数据。

1.3 Grafana

Grafana 是一个开源的数据可视化和监控平台,允许用户查询、可视化和理解各种指标数据。它提供了丰富的数据源支持,包括时序数据库(如 InfluxDB、Prometheus、Graphite)、关系型数据库(如 MySQL、PostgreSQL)、日志系统(如 Elasticsearch)等。以下是 Grafana 的一些主要特点和功能:

  1. 多数据源支持:
    Grafana 支持多种数据源,包括常用的时序数据库、关系型数据库、日志系统等,使得用户可以从不同的数据存储中获取数据并进行可视化。
  2. 丰富的可视化选项:
    Grafana 提供了多种图表类型,包括折线图、柱状图、饼图、热力图等,用户可以根据需要选择合适的图表类型,定制图表样式,创建仪表盘(Dashboard)以及面板(Panel)。
  3. 灵活的查询编辑器:
    Grafana 提供了直观的查询编辑器,用户可以使用 SQL 查询、PromQL(Prometheus 查询语言)等来从数据源中检索数据,还支持变量、函数、过滤器等高级查询功能。
  4. 告警和通知:
    Grafana 允许用户设置告警规则,当特定条件满足时触发告警。用户可以通过电子邮件、Slack、Webhook 等方式接收告警通知,及时了解系统状态。
  5. 仪表盘和面板:
    用户可以创建个性化的仪表盘,将多个面板组合在一起,以全面监控系统的各个方面。面板可以包含多个图表、表格、单值指标等。
  6. 团队合作和分享:
    Grafana 支持多用户和团队的合作,用户可以定义不同的权限级别,方便团队内部共享仪表盘和面板。
  7. 插件和扩展性:
    Grafana 具有丰富的插件生态系统,用户可以通过安装插件扩展其功能,例如添加新的数据源、图表类型等。
  8. 跨平台支持:
    Grafana 可以在多个操作系统上运行,包括 Windows、Linux、macOS 等,也支持容器化部署(Docker)。
  9. 开源和活跃社区:
    Grafana 是一个开源项目,具有庞大的社区支持。用户可以参与到项目的开发和改进中,也可以通过社区获取技术支持。

总的来说,Grafana 提供了强大而灵活的数据可视化和监控解决方案,被广泛用于各种场景,包括应用程序性能监控、基础设施监控、业务分析等,帮助用户更好地理解和分析数据,做出明智的决策。

2、引言

2.1 背景说明

在当前激烈的市场竞争中,创新和效率成为企业发展的核心要素之一。在这种背景下,如何保证产品和服务的稳定性、可靠性以及高效性就显得尤为重要。

而在软件开发过程中,性能测试是一项不可或缺的环节,它可以有效的评估一个系统、应用或者软件的性能指标。然而,如何提升性能测试效率,把测试结果转化为有价值的信息,则是一个更加重要的问题。

使用jmeter进行性能测试时,工具自带的查看结果方式往往不够直观和明了,所以我们需要搭建一个可视化监控平台来完成结果监控,这里我们采用三种JMeter+Grafana+Influxdb的方法来完成平台搭建。

2.2 实现原理

通过influxdb数据库存储jmeter的结果,再通过grafana采集influxdb数据库数据,完成监控平台展示

3、Windows环境下搭建实例

3.1 influxDB安装

  • Windows可使用以下链接直接下载(建议使用2.0以下版本):

https://dl.influxdata.com/influxdb/releases/influxdb-1.7.9_windows_amd64.zip

  • 下载完成后进行解压(无需安装),进入解压文件夹后可以看到以下目录

使用PowerShell命令运行influxd.exe文件,成功启动数据库后如下图所示

  • 启动成功后,系统会自动在C盘/用户目录下生成.influxdb文件目录,influxdb目录下展示如下图所示,生成data、meta、wal三个文件夹

  • 修改influxdb.conf文件配置(使用VScode打开influxdb.conf文件)
  • 修改meta下dir路径为文件夹meta的路径
[meta]
  # Where the metadata/raft database is stored
  dir = "C:/Users/w/.influxdb/meta"
  • 修改data下dir路径为文件夹data的路径
  • 修改data下wal-dir路径为文件夹wal的路径
[data]
  # The directory where the TSM storage engine stores TSM files.
  dir = "C:/Users/w/.influxdb/data"

  # The directory where the TSM storage engine stores WAL files.
  wal-dir = "C:/Users/w/.influxdb/wal"
  • 修改graphite下database的value为“jmeter”
[[graphite]]
  # Determines whether the graphite endpoint is enabled.
  # enabled = ture
  # database = "jmeter"
  # retention-policy = ""
  # bind-address = ":2003"
  # protocol = "tcp"
  # consistency-level = "one"
  • 全部配置完成后,点击influx.exe文件,运行influxdb客户端(注:influxd.exe窗口不可关闭,需保持运行)

  • 使用creat database jmeter创建数据库jmeter
  • 使用show databases 查看数据库

3.2 Grafana安装

  • 进入Grafana官网下载安装包:

Download Grafana | Grafana Labs

  • 解压完成后进入bin目录点击grafana-server.exe来启动grafana程序

  • 启动完成后打开浏览器输入http://localhost:3000进入grafana登录页面(默认初始账号和密码都是admin)

  • 登录成功进入首页后,创建数据库

  • 选择InfluxDB

  • HTTP下默认URL为http://localhost:8086

  • 输入influcdb创建的数据库名称,输入Grafana的用户名和密码

  • 点击save&test测试数据库是否连接成功

  • 点击顶部导航栏-import dashboard,导入报告模板

  • 输入模板编号,点击load

  • 选择所创建连接的数据库名称,点击import,生成报告模板成功


 

3.3 JMeter配置

  • 先保证jmeter性能测试脚本可以正常运行

  • 配置后端监听器,目的是把jmeter的结果存入influxdb数据库

  • 选择influxdb

  • 将influxdbUrl修改为localhost域名,运行jmeter脚本

  • 使用select * from jmeter命令,可查看到Jmeter执行的数据正在写入influxDB中

  • 选择数据库源,选择自动刷新时间,可在Grafana实时对jmeter执行的数据进行性能监控

  • 20
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面我会为您详细讲解 jmeter+influxdb+grafana监控实例。 首先,JMeter 是一个用于性能测试的工具,可以进行压力测试、负载测试、功能测试等。它可以模拟多种不同的用户行为,以便评估系统的性能和稳定性。 InfluxDB 是一个高性能的时序数据库,可以存储和查询大量的时间序列数据。它具有高度可扩展性和灵活性,可以轻松地处理海量数据。 Grafana 是一个流行的开源数据可视化工具,可以连接多种数据源并将其可视化。它提供了灵活的图表和仪表板,可以帮助用户更好地理解数据。 下面是 jmeter+influxdb+grafana 监控实例的具体步骤: 1. 安装 InfluxDBGrafana 在官网下载最新版的 InfluxDBGrafana,然后按照官方文档进行安装和配置。 2. 配置 InfluxDB 数据库 在 InfluxDB 中创建一个新的数据库,并为其设置一个名称和一个保存策略。保存策略可以指定数据的保存时间和数据的复制系数。 3. 配置 JMeter 插件 在 JMeter 中安装 InfluxDBGrafana 插件,然后配置插件以连接到 InfluxDB 数据库。 4. 在 JMeter 中添加聚合器 在 JMeter 中添加聚合器,以便收集数据并将其发送到 InfluxDB 数据库中。 5. 创建 Grafana 仪表板 在 Grafana 中创建一个新的仪表板,并添加一个新的数据源。选择 InfluxDB 数据库作为数据源,并输入数据库的详细信息。 6. 创建 Grafana 图表 在 Grafana 中创建一个新的图表,并选择要显示的数据。可以使用不同的图表类型和样式来显示数据。 7. 测试 JMeter 脚本 使用 JMeter 运行测试脚本,并在 Grafana 中查看结果。可以使用 Grafana 的仪表板和图表来分析数据,识别瓶颈和优化性能。 以上就是 jmeter+influxdb+grafana 监控实例的具体步骤。希望可以对您有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值