grafana之JMeter+InfluxDB压测可视化实时监控
一、概述
本文我们将介绍如何使用JMeter+InfluxDB+Grafana
打造压测可视化实时监控。
二、 介绍
JMeter引入Backend Listener
,用于在压测过程中实时发送统计指标数据给时序数据库Influxdb,通过配置Grafana(开源的WEB可视化看板)数据源连接到Influxdb,我们就可以创建炫酷的可视化看板,并可以实时获取到测试指标数据。
时序数据库:处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时间序列数据。想象它就像一个sql表,其中时间是它的主键
InfluxDB:是一款用Go语言编写的开源分布式时序、事件和指标数据库,无需外部依赖。该数据库现在主要用于存储涉及大量的时间戳数据,如DevOps监控数据,APP metrics, loT传感器数据和实时分析数据。
官网地址:https://www.influxdata.com/
数据DEMO
> select* from weather name: weather ------------- time altitude area humidity temperature 1456386985094000000 1000 北 18 17 1456386985094000000 5000 上 20 47 1456386985094000000 5000 北 26 68 1456386985094000000 1000 广 17 83 1456387267668000000 1000 上 12 77 1456387267668000000 1000 北 16 20 1456387267668000000 5000 广 -3 66 1456387267668000000 5000 上 19 60
与传统数据库中的名词做比较
influxDB中的名词 | 传统数据库中的概念 |
---|---|
database | 数据库 |
measurement | 数据库中的表 |
points | 表里面的一行数据 |
InfluxDB中独有的一些概念
Point由时间戳(time)、数据(field)、标签(tags)组成。
Point属性 | 传统数据库中的概念 |
---|---|
time | 每个数据记录时间,是数据库中的主索引(会自动生成) |
fields | 各种记录值(没有索引的属性)也就是记录的值:温度, 湿度 |
tags |
各种有索引的属性:地区,海拔 |
三、安装
influxdb
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.6.4.x86_64.rpm sudo yum localinstall influxdb-1.6.4.x86_64.rpm
配置文件 /etc/influxdb/influxdb.conf
vim /etc/influxdb/influxdb.conf
搜索graphite 去掉对应的#号
[[graphite]] # Determines whether the graphite endpoint is enabled. enabled = true database = "jmeter" # retention-policy = "" bind-address = ":2003" protocol = "tcp" consistency-level = "one"
注意:
默认占用8086/8088两个端口号,可以根据自己的实际场景进行替换,进入
查询 bind-address,其中端口号对应的用处说明如下
# Bind address to use for the RPC service for backup and restore. bind-address = "127.0.0.1:8088" ... [http] # Determines whether HTTP endpoint is enabled. # enabled = true # The bind address used by the HTTP service. bind-address = ":8086"
启动
influxd
创建database
influx # 如果修改了端口号,则需要显示指定 influx -port xxxx [root@ywj ~]# influx -port 8083 Connected to http://localhost:8083 version 1.6.4 InfluxDB shell version: 1.6.4 > # 创建数据库 >后面输入命令 create database xxx > create database jmeter # 查看数据库 > show databases name: databases name ---- _internal jmeter mytest
jmeter添加监听器Backend Listener 验证数据是否能写入到influxdb
influxdbUrl :http://host_to_change:8086/write?db=jmeter #host_to_change写安装influxdb服务的ip 端口如修改填写修改后的端口 db前面创建的数据库:jmeter application :随便写后面grafana会用到
添加请求运行
回到influx终端:选择数据库
use jmeter
执行sql语句查看刚刚的请求数据是否有插入,如有说明配置成功
select * from jmeter
grafana
wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.1.4-1.x86_64.rpm yum localinstall grafana-5.1.4-1.x86_64.rpm #### 启动grafana服务 service grafana-server start
grafana的端口号是3000,打开web界面:http://127.0.0.1:3000 ,默认账户,密码为admin/admin。
登录后添加 data source 链接 influxdb:
添加dashboard
这里可以添加现成的模板:选择Import dashboard
官网模板库地址:https://grafana.com/dashboards?dataSource=influxdb 如jmeter官方模板:copy id