如何使用Grafana监视JMeter非GUI结果 - 第2部分

在我们 关于JMeter非GUI监控的文章中 ,我们解释了如何将 Apache JMeter 与Grafana 集成,以建立对性能脚本的实时监控。这可以通过使用InfluxDB数据库的本地安装作为度量存储以及 Backend Listener 和“GraphiteBackendListenerClient”实现来完成。
通过“GraphiteBackendListenerClient”进行的Grafana集成需要开发人员继续完成一系列不重要的步骤。还有一种更简单的方法可以执行额外的 JMeter  Grafana集成,该集成简化了并且不需要额外配置InfluxDB。
所以在这篇博客文章中,我们将解释使用相同的JMeter后端监听器的一种更简单的方法,但是使用 “InfluxDbBackendListenerClient”实现 它只 需要较少的设置工作。
此实现使用API​​来推送指标。随着Apache团队 发布JMeter 3.2 ,引入了一个新的后端监听器接口。该监听器支持使用InfluxDB HTTP API并通过异步HTTP调用将度量标准直接推送到数据库,而无需任何额外的数据库配置。
分步实施InfluxDbBackendListenerClient实现
1、安装Grafana和InfluxDB
如果您已经读了上一篇文章,那么您可能已经在本地计算机上安装了Grafana和InfluxDB。如果没有,请使用 InfluxDB Grafana 安装指南在本地安装。我们的性能脚本监控也是如此,这与我们在上一篇文章中创建的完全一样。
2、如何使用InfluxDB的HTTP API
在上一篇文章中,我们展示了一个如何使用InfluxDB命令行界面进行数据库查询的例子。与数据库交互的另一种方式是使用InfluxDB的HTTP API,它允许您查询和写入数据库的数据度量。
默认情况下,InfluxDB在8086端口上公开其HTTP API。要检查它是否适用于您,让我们使用HTTP客户端(如 CURL) (可以使用任何其他HTTP客户端)来ping该端点。使用curl,您可以使用   curl -i localhost: 8086 / ping   命令向InfluxDB API端点发送HTTP GET请求,其中   -i   选项将请求输出打印到控制台:
如果您的InfluxDB实例已启动并正在运行,您应该看到来自ping请求的类似响应。
借助InfluxDB HTTP API,您可以执行与命令行界面可以执行的操作完全相同的操作。让我们为我们的度量创建一个数据库,并通过使用指定的命令将其称为“blazedemo_performance”:
curl   -i   -XPOST   http: //localhost:8086/query --data-urlencode "q=CREATE DATABASE blazedemo_performance
正如你所看到的,这很简单。(这就是Apache团队认为的原因 - 为什么不使用相同的HTTP API将度量从JMeter推送到InfluxDB?)随着JMeter 3.2的发布,他们引入了一个名为“  InfluxdbBackendListenerClient  ” 的新的后端监听器实现。它被添加到Alpha状态下的JMeter 3.2。
3.配置JMeter后端监听器
一旦你有了一个性能脚本,你所需要做的就是添加带有“  org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient  ”值的后端监听器作为“后端监听器实现”配置值。(不要惊慌,这个值在列表框中指定,你不需要自己输入)。添加一些更具体的配置:
  • influxdbMetricsSender - 用于向InfluxDB发送指标的实现类。目前只有一个可用选项,因此请将其保留为默认值
  • influxdbUrl - 格式为InfluxDB的URL:http:// [influxdb_host]:[influxdb_port] / write?db = [database_name]。由于我们已经创建了“blazedemo_performance”数据库,并且我们使用默认端口在本地机器上运行它,因此我们的情况下url将为:http : //127.0.0.1 :8086/write?db=blazedemo_performance
  • application【应用程序】 - 我们可以将不同应用程序的指标存储在一个数据库下 这就是为什么这个参数用于从一个特定的应用程序分组指标
  • measurement【测量】 - 将存储在InfluxDB中的测量名称(基于文本的InfluxDB内部协议来存储指标)。使用该属性的默认'Jmeter'
  • summaryOnly - 如果只想在数据库中保存汇总结果并且不希望在测试执行过程中收集所有详细指标,请输入“true”
  • samplersRegexp - regexp表达式,用于过滤要存储到数据库中的特定指标。如果要存储所有度量标准,请使用默认的“。*”值
  • percentiles【百分位】 - 应该发送到数据库的度量百分位数
  • eventTags - 将存储在InfluxDB'事件'测量中的标签列表
4.运行你的演奏脚本
配置完成后,让我们运行我们的JMeter性能脚本。您可以通过JMeter用户界面运行它,或者您可以在非GUI模式下运行它(如果您想知道如何,请参阅 本文 )。只要我们启动我们的性能脚本,后端监听器就会开始推送将在InfluxDB数据库中收集的指标,并将其命名为“blazedemo_performance”,正如我们之前配置的那样。
 
在我们开始我们的脚本之后,我们需要确认指标正在被收集。为此,我们可以使用HTTP API,这卷曲的要求:   卷曲的'http: //本地主机:8086 /查询漂亮=真正的' --data-进行urlencode “DB = blazedemo_performance” --data-进行urlencode“Q = SHOW系列   ,其中query   ?pretty =  true   用于以这种结构化的方式显示json响应的返回值:
5.配置Grafana并创建仪表板
一旦我们确认了指标,我们就可以继续使用Grafana配置。在我们之前安装Grafana时,它应该已启动并可在 http:// localhost:3000 上使用,您可以使用'admin'作为默认用户名和密码登录。如果您从上一篇文章中记得,首先您需要配置数据源。即使您之前已经完成了此步骤,但这次我们正在使用另一个数据库,因此我们需要添加一个额外的数据源,该数据源已映射到新创建的数据库。要在Grafana中添加新的数据源,请转至:
Menu -> Data Sources -> Add data source
如果数据源添加成功,您可以开始创建仪表板:
Menu -> Dashboards -> New
在仪表板创建过程中,您首先需要根据您刚刚添加的那个选择正确的“数据源”。在第二和第三步中,您需要根据我们在JMeter后端监听器中指定的值来指定度量和应用程序名称。在最后一步中,您需要选择将显示在图表上的指标。
正如您所看到的,“  InfluxdbBackendListener  ”更加简单,并且需要更少的配置才能开始使用Grafana进行JMeter测试监控。与我们在上一篇文章中介绍的“  GraphiteBackendListener  ” 相比,这种方法要简单得多

开箱即用的JMeter Grafana仪表板
 
并创建了自己的即时可用的JMeter Grafana仪表板,其中包含所有关键的监控图和仪表板元素。您可以通过 此链接 找到所有相关信息 使用该预定义的仪表板,您无需花费时间在仪表板创建上,因为您已经创建了一切,只需几个简单的步骤即可立即监控详细的统计数据。
 
对于这个例子,我们需要为度量存储创建一个单独的数据库:   curl -i -XPOST http: // localhost:8086 / query --data-urlencode“q = CREATE DATABASE blazedemo_load
 
首先你需要下载一个单独的后台监听器实现,它基本上是一个jar文件,你可以从这个链接下载。一旦下载了jar文件,您需要将它放在JMeter主文件夹的“/ lib / ext”下:
 
> cp /Users/ybushnev/Downloads/JMeter-InfluxDB-Writer-plugin-1.2.jar /usr/local/Cellar/jmeter/3.2/libexec/lib/ext
 
如果您的JMeter应用程序已打开,则需要重新启动以继续安装其他插件。之后,您可以打开之前创建的“后端监听器”,这次在“后端监听器实现”字段中将提供其他选项:“  rocks.nt.apm.jmeter.JMeterInfluxDBBackendListenerClient  ”。这个监听器客户端的配置与我们之前使用的实现非常相似,配置选项几乎相同。在我们的例子中,我们所需要做的就是分别提供“testName”和“influxDBDatabase”名称。
配置完成后,您可以运行性能脚本并确认JMeter日志执行中没有任何错误:
如果您没有看到任何错误,则应该成功收集指标,并且可以继续使用Grafana配置。和我们之前做的一样,我们需要添加将映射到“  blazedemo_load  ”数据库的附加数据源:
现在是最后的一步。在JMeter Load Test仪表板的页面上,您可以下载json格式的Grafana模板:
之后,打开Grafana,而不是新的仪表板创建,请转到:
Menu -> Dashboards -> Import  and choose “Download JSON”,指定我们刚刚为该示例创建的数据源
之后,通过点击“导入”,我们将自动
创建杰出的JMeter监控,无需任何额外配置:

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值