基于JMeter+influxdb+telegraf+grafa
由于业务需要,需要搭建一套性能测试平台,由于接口大多采用java和http,因此采用Jmeter,先测试一些简单的java请求。
一、JMeter配置
Apache JMeter是Apache组织开发的基于Java的压力测试工具,它可以对静态资源和动态资源进行性能测试,支持许多插件,可以通过Jmeter的Plugins Manage进行查看,满足大多数的性能测试需求。官网地址:http://jmeter.apache.org/
1、下载最新的JMeter(目前的版本是3.3)
2、新建线程组,官方推荐bzm-Concurrency Thread Group, 设置并发数(Target Concurrency),启动并发数所需要时间(Ramp Up Time(min)),启动步骤(Ramp-Up Steps Count), 持续时间(Hold Target Rate Time(min)),如下图
3、添加配置元件"CSV Data Set Config",设置参数,可支持csv,txt等格式的文件,如图
参数文件配置4、添加Sampler-->"Java请求",选择待测试的类,输入参数,如图
Java请求5、添加定时器
定时器配置6、添加监听器,Backend Listener,这里主要是配置采集的数据入influxdb,如图
Backend Listener监听器二、influxdb的安装
influxdb为采用go语言编写的开源的分布式时序、时间和指标数据库,无需外部依赖。它具有三大特征即时序性(Time Series:与时间相关的函数的灵活使用(诸如最大、最小、求和等))、度量(Metrics:对实时大量数据进行计算)、事件(Event:支持任意的事件数据,换句话说,任意事件的数据我们都可以做操作)。安装比较简单,容易上手
1、官网https://portal.influxdata.com/downloads下载最新的influxdb本文版本是1.3.6,按照官网的指导安装,如下图:
2、修改配置文件vim /etc/influxdb/influxdb.conf,把graphite打开,如图
influxdb.conf3、启动influxdb, 直接用命令influxd即可,默认配置文件就是2中的配置文件
三、telegraf安装
telegraf主要是用来收集主机信息,如cpu, mem, disk, net等,安装配置比较简单
1、官网https://portal.influxdata.com/downloads下载最新的telegraf,按照官网的指导安装,如下图:
2、修改配置文件(/etc/telegraf/telegraf.conf),打开outputs.influxdb,填写自己的配置如图: telegraf.conf配置
其它的配置按默认
3、启动即可采集telegraf 或可指定配置文件(加命令--config + 配置文件)
四、grafana安装
Grafana 是基于JS开发的,功能齐全的度量仪表盘和图形编辑器,帮助开发人员发现问题的工具。grafana有强大的图形界面显示,可以通过配置显示数据的图表。基本概念包括datasource(数据的存储源,它定义了将用什么方式来查询数据展示在grafana上面,不同的datasource拥有不同的查询语法,grafana支持多种类型例如es,influxdb)、dashborad(row的集合)、row(panel的集合)、panel(最小的可视化单位,支持多种数据展示方式如table,graph)、playlist(dashborad的集合,当控制台数据太多时,用来快速在目标群中切换)。安装配置简单
1、下载安装最新的grafana(https://grafana.com/grafana/download)
2、按照官网的指导文档安装同influxdb和telegraf,linux下的安装命令如下:
(1)、wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.5.2-1.x86_64.rpm
(2)、sudo yum localinstall grafana-4.5.2-1.x86_64.rpm
3、配置图表,新建数据源datasource, 即jmeter,配置图表,主要收集QPS, Response Time, 线程, CPU , 内存, 网络, 系统负载
配置后的图表如下:
上图为jmeter中一次执行中收集的到数据