基于Jmeter BackEnd+InfluxDB+Grafana实现性能指标实时可视监控

引言

JMeter的PerfMonMetricsCollector插件支持收集服务器的性能指标,ResponseTimesOverTime、TransactionsperSecond插件可以收集接口的性能指标。但前面这些插件使用过程中对执行机的硬件性能消耗非常大,尤其在gui模式下几乎无法正常执行。

为了收集JMeter的测试结果数据而不过多消耗执行机的性能,且能实时展示测试结果。我们可以使用jmeter的Backend Listener插件来向inflluxDB存储性能测试数据,再通过视觉炫酷的Grafana实时读取和展示出influxDB的性能测试数据。

环境准备及部署

本次部署环境的系统为CentOS 6.9,

Jmeter Backend Listener

从JMeter2.13开始,Jmeter提供了一个AbstractBackEndListenerClient类,通过使用Backend Listener可以调用这个类向后端发送实时结果。

参考资料:http://jmeter.apache.org/usermanual/realtime-results.html

http://jmeter.apache.org/usermanual/component_reference.html#Backend_Listener

http://jmeter.apache.org/api/org/apache/jmeter/visualizers/backend/AbstractBackendListenerClient.html

 
基于Jmeter BackEnd+InfluxDB+Grafana实现性能指标实时可视监控
Backend Listener 界面
 
基于Jmeter BackEnd+InfluxDB+Grafana实现性能指标实时可视监控
Backend Listener 描述

Backend Listener中传递的指标

 
基于Jmeter BackEnd+InfluxDB+Grafana实现性能指标实时可视监控
influxDB中记录指标的字段
 
基于Jmeter BackEnd+InfluxDB+Grafana实现性能指标实时可视监控
influxDB中记录事件的字段
 
基于Jmeter BackEnd+InfluxDB+Grafana实现性能指标实时可视监控
指标说明

Telegraf

Telegraf 是 InfluxData 下的子项目,是由 Go 语言编写的 metrics 收集、处理、聚合的代理。其设计目标是较小的内存使用,通过插件来构建各种服务和第三方组件的 metrics 收集。Telegraf 具有插件或集成功能,可以直接从其运行的系统中获取各种指标,从第三方API中提取指标,甚至通过 statsd 和 Kafka 消费者服务监听指标。它还具有输出插件,可将指标发送到各种其他数据存储,服务,和消息队列,包括InfluxDB,Graphite,OpenTSDB,Datadog,Librato,Kafka,MQTT,NSQ等等。

参考资料:https://www.influxdata.com/time-series-platform/telegraf/

https://github.com/influxdata/telegraf

https://docs.influxdata.com/telegraf/v1.7/concepts/data_formats_input/

https://kiswo.com/article/1022

influxDB

InfluxDB 是一个时间序列数据库,用于处理海量写入与负载查询。InfluxDB旨在用作涉及大量时间戳数据的任何用例(包括DevOps监控,应用程序指标,物联网传感器数据和实时分析)的后端存储。

influxDB的语法是类SQL的,增删改查与mySQL相同。influxdb中的measurement对应的关系型数据库中的table。默认端口是8086。

参考资料:https://docs.influxdata.com/influxdb/v1.7/introduction/installation/https://docs.influxdata.com/influxdb/v1.7/

influxdb下载安装 

wgethttps://dl.influxdata.com/influxdb/releases/influxdb-1.7.7.x86_64.rpm

sudo yum localinstall influxdb-1.7.7.x86_64.rpm

启动influxdb服务 

sudo service influxdb start  

 
基于Jmeter BackEnd+InfluxDB+Grafana实现性能指标实时可视监控
 

常规inlfuxdb操作

 
基于Jmeter BackEnd+InfluxDB+Grafana实现性能指标实时可视监控
 

Grafana

Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过查询数据源后可视化展示。常用数据源有Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等。

参考资料:https://grafana.com/docs/https://grafana.com/grafana/download

Grafana下载安装  

wgethttps://dl.grafana.com/oss/release/grafana-6.2.5-1.x86_64.rpm

sudo yumlocalinstall grafana-6.2.5-1.x86_64.rpm

启动Grafana服务 

 sudo service grafana-server start

打开浏览器,输入IP+端口,3000为Grafana的默认侦听端口,系统默认用户名和密码为admin/admin。

Grafana添加数据源 

 
基于Jmeter BackEnd+InfluxDB+Grafana实现性能指标实时可视监控
 
 
基于Jmeter BackEnd+InfluxDB+Grafana实现性能指标实时可视监控
 

 

 
基于Jmeter BackEnd+InfluxDB+Grafana实现性能指标实时可视监控
 

 

 

 
基于Jmeter BackEnd+InfluxDB+Grafana实现性能指标实时可视监控
 

 

 
基于Jmeter BackEnd+InfluxDB+Grafana实现性能指标实时可视监控
 

Grafana添加看板 

 
基于Jmeter BackEnd+InfluxDB+Grafana实现性能指标实时可视监控
 
 
基于Jmeter BackEnd+InfluxDB+Grafana实现性能指标实时可视监控
 
 
基于Jmeter BackEnd+InfluxDB+Grafana实现性能指标实时可视监控
 

Grafana查询influxDB数据 

 
基于Jmeter BackEnd+InfluxDB+Grafana实现性能指标实时可视监控
 

成果展示

 
基于Jmeter BackEnd+InfluxDB+Grafana实现性能指标实时可视监控


作者:悠哉的小C
链接:https://www.jianshu.com/p/57acffa607a9
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。