如何使用Grafana监控JMeter非GUI结果

非GUI模式下 使用 Apache JMeter 是运行负载测试的非常有效方法,因为它占用的机器资源更少,速度更快。但是如果你想监视这些结果,你必须使用不同的工具。
上一篇 关于非GUI模式下的 JMeter 监控的 文章 中,我们介绍了二种轻松验证JMeter性能脚本的实时执行的方法:使用jmeter在控制台命令运行的日志,使用Taurus
这一次,我们将通过使用 Grafana 进一步介绍 。这种方式需要安装 InfluxDB 和Grafana。Grafana是时间序列分析的开源平台,它允许您创建基于时间序列数据的实时图表。InfluxDB是用作临时指标存储的时间序列数据库。
由于这两种工具都是针对时间序列数据而设计的,因此它们是保持和可视化实时性能指标的绝佳解决方案。这就是为什么,尽管安装步骤可能使这种方式变得最复杂,但我们强烈推荐它。Grafana和InfluxDB提供了一些独特的好处,非常有价值。
首先,Grafana允许您随时随地存储性能报告。对于已经使用InfluxDB和Grafana来满足其他需求的人来说,Grafana报告也非常有用。Grafana是用于整体应用程序监控的非常常见的解决方案。许多公司都将Grafana仪表板指标与 Amazon Cloudwatc  h集成配合使用,这也使其成为常用的解决方案。
除此之外,Grafana允许您以任何您想要的方式自定义仪表板。所以我们可以肯定的说,将JMeter与Grafana集成是一种合理的方式来监控您的演奏脚本 - 一方面有点复杂,另一方面却非常有益。
如何整合JMeter与Grafana
安装和配置InfluxDB
在本文中,我们将介绍基于Mac作为目标平台的安装的简要步骤,但您可以通过使用每个步骤中提供的相应链接轻松找到系统的安装步骤。
首先,我们需要安装InfluxDB作为我们的性能指标的永久存储空间。所有支持平台的安装步骤可以通过 此链接 找到。在OS X机器上安装非常简单,只需几步即可完成,如果在您的机器上安装了 brew 。在这种情况下,你只需要运行这两个命令: > brew update > brew 安装 influxdb
在安装结束时你应该看到这个:
InfluxDB已安装并可以通过以下两个命令运行:
ln -sfv /usr/local/opt/influxdb/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.influxdb.plist
要验证InfluxDB已启动并正在运行,您只需打开终端窗口并运行以下命令:
influx
如果安装成功完成并且数据库已启动并运行,您将看到一个InfluxDB命令行界面。这可以用于与数据库交互。
通过使用'SHOW DATABASES'命令,您可以看到所有现有InfluxDB dabasebase的列表。如果您刚刚安装了InfluxDB,您应该只会看到一个'_internal'数据库,该数据库用于保存关于数据库本身的不同统计信息:
然后我们可以创建一个新的数据库来存储我们的性能指标。为此,您需要在influx命令行界面并运行以下命令: CREATE DATABASE jmeter 之后,您应该使用我们在上一步中使用的相同'SHOW DATABASES'命令来查看您新创建的数据库:
一旦我们为我们的指标创建了数据库,我们需要对InfluxDB配置进行一些更改。根据您的系统使用 此参考 找到配置文件的位置。在OS X系统中,配置文件位于以下位置: vim /usr/local/etc/influxdb.conf 在这个配置文件中,您需要找到,取消注释并编辑'[[graphite]]'类别:
之后,您需要通过应用已编辑的配置重新启动InfluxDB:
influxd -config /usr/local/etc/influxdb.conf
要确认配置已成功应用,您应该在InfluxDB启动过程中找到此行:
恭喜!我们已经完成了我们漫长道路的第一步,以建立JMeter与Grafana监控的整合。现在是将指标推入我们创建的数据库的时候了。

将性能指标从JMeter推送到InfluxDB
为了将性能指标从JMeter推送到InfluxDB,我们需要使用 后端监听器( Backend Listener )。   该监听器可以直接将度量标准写入数据库。
配置后端监听器:
  • Backend Listener implementation后端监听器实现】 - 这是一个实现类,将用作JMeter测试指标的监听器。该参数的值基于我们将要使用的协议。如果您还记得,我们使用InfluxDB配置指定的graphite配置。为此,我们需要使用'GraphiteBackendListenerClient'
  • Async Queue size【异步队列大小】 - 队列值包含异步处理时的度量标准。除非有一些特定的性能问题,否则最好不要从默认的'5000'值更改此值。
  • graphiteMetricsSender - 将用作度量标准发送者的实现类。只需使用默认值。
  • graphiteHost - InfluxDB所在的主机
  • graphitePort - 我们在InfluxDB配置文件的'graphite'部分中指定的端口
  • rootMetricsPrefix - 将用于存储在数据库中的所有度量标准的基本前缀。请记住,指标没有默认分隔符。这就是为什么使用'。'更好。符号在此属性中指定的前缀的末尾
  • summaryOnly - 如果只想在数据库中保存汇总结果并且不想在测试执行期间收集所有详细指标,请使用“true”
  • samplersList - 如果要将特定采样器仅发送到数据库,请使用此字段。在我们的例子中,我们想发送所有的样本,所以我们将这个参数留空
  • useRegexpForSamplersList - 如果您想在'samplersList'字段中指定一个正则表达式来选择应该发送到数据库的采样器,则输入'true'
  • percentiles【百分比】 - 用于指定应发送到数据库的度量百分比
配置完成后,我们可以运行我们的测试执行。

测试执行完成后,我们可以检查InfluxDB并确认我们的指标已成功报告。为此,请再次打开InfluxDB命令行界面并使用以下命令:
我们应该找到具有时间戳和适当值的指标:
现在我们看到所有指标都从JMeter成功报告到InfluxDB,我们已经准备好了最后一步 - 使用Grafana可视化报告指标。

在Grafana中监视性能度量
首先,让我们在我们的本地机器上安装Grafana。通过 此链接 可以找到基于您的系统的安装步骤。对于Mac,安装与InfluxDB安装步骤非常相似。安装也可以通过brew包管理器执行:
brew install grafana
另一个启动服务:
brew services start grafana
之后,Grafana应该可以在 http://localhost:3000上找到 。使用'admin'作为默认的用户名和密码登录。
首先,我们需要用我们的指标来指定数据源。点击欢迎页面上的“添加数据源”:
在下一页中,根据我们以前的步骤进行适当的配置,然后单击“添加”按钮以验证Grafana可以连接到InfluxDB:
现在我们可以在Grafana中创建我们的第一个仪表板。点击左上角的按钮打开Grafana菜单,然后转到 Dashboards - > New
我肯定会推荐通过Grafana文档来了解主要原则,并学习如何为不同的需求创建详细的图表。您可以使用 此链接 作为介绍步骤。
 
但要简要解释,您可以在每个仪表板中创建不同的仪表板并指定代表时间序列度量的多行。Grafana从JMeter那里收集InfluxDB的数据。通过点击每行的顶部,您可以选择该行应该代表哪个度量。
Grafana使您能够以任何您想要的方式自定义您的指标和图表。这使得它非常适合您的需求。您可以将所有有用的信息组合到一个仪表板中,并将其用于实时监控性能脚本。
 
另外,由于所有度量标准都存储在服务器数据库中,因此您可以永久保留这些度量标准,并在下次测试执行期间创建性能模式分析。只需添加更多图表。这将确保您在JMeter监控之上!
恭喜!您现在知道如何使用Grafana监视JMeter非GUI结果.

你可能感兴趣的:(Jmeter)