Grafana7+InfluxDB2+Jmeter5 搭建可视化

2021-06-29  本文已影响0人  测试星云

自influxdb1.8以后,编写语言换成flux,数据库database换成bucket。

一、整体流程

JMeter + InfluxDB使用jmeter后置处理器将JMeter指标导出到InfluxDB数据库. 如果想要将数据可视化,那就需要在Grafana中配置数据源。
步骤:
1、搭建环境(使用docker)

2、配置

3、建立运行jmeter的脚本

不同用户在grafana中查看运行结果图

二、工具简单介绍

1.InfluxDB是一个用于存储和分析时间序列数据的开源数据库。
2.Grafana是大多数 数据库的开源分析和监控解决方案
3.jmeter是性能测试工具
jmeter中的Backend listener(后置监听器),可以将返回的响应信息保存到数据库中

三、整体配置过程

1、搭建环境

1.1 基础安装:Docker,docker-compose

参考安装文档,在适合的环境下完成基础环境安装
在centos7中安装:(https://docs.docker.com/engine/install/centos/
安装docker命令:yum install docker
设置开机自动启动:service docker start
在mac下安装(https://docs.docker.com/docker-for-mac/install/
查看docker版本:docker version
安装compose(https://docs.docker.com/compose/install/
pip3 install docker-compose
或Yum install docker-compose

1.2 使用docker-compose.yml,.env创建influxdb,grafana

docker-compose的使用参考:https://docs.docker.com/compose/gettingstarted/
目前influxdb的最新版本lastest是2.0.5

#这是docker-compose.yml中内容
version: '3.1'

services:
 influxdb:
   image: influxdb:latest
   container_name: influxdb
   ports:
     - "8083:8083"
     - "8086:8086"
     - "8090:8090"
   environment:
     - INFLUXDB_DB=db0
     - INFLUXDB_ADMIN_USER=${INFLUXDB_USERNAME}
     - INFLUXDB_ADMIN_PASSWORD=${INFLUXDB_PASSWORD}
   volumes:
     - influxdb-storage:/var/lib/influxdb

 grafana:
   image: grafana/grafana:latest
   container_name: grafana
   ports:
     - "3000:3000"
   environment:
     - GF_SECURITY_ADMIN_USER=${GRAFANA_USERNAME}
     - GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD}
   depends_on:
     - influxdb
   user: "0"
   volumes:
     - grafana-storage:/var/lib/grafana
     - ./grafana-provisioning/:/etc/grafana/provisioning
volumes:
  influxdb-storage:
  grafana-storage:
#建立环境文件.env,包括以下内容:
INFLUXDB_USERNAME=admin
INFLUXDB_PASSWORD=admin123

GRAFANA_USERNAME=admin
GRAFANA_PASSWORD=admin

PROMETHEUS_USERNAME=admin
PROMETHEUS_PASSWORD=admin

1.3 jmeter5.4安装

2、配置

2.1 influxdb2建立数据库(bucket)

mysql与influxdb对比


image.png

初始化建立:
influxdb2: http://localhost:8086/
使用admin/admin123登陆并修改密码,初始化设置组织org,初始化数据库bucket。

image.png
之后建立
image.png

2.2grafana配置数据源influxdb(2.0)

image.png

2.3 grafana导入Jmeter保存到influxdb2的插件

下面的配置分二种情况
第一种情况:
环境java11,influxdb2,最新插件模板

2.3 在Jmeter脚本中添加后置监听器

第一种情况:
环境java11,influxdb2

3.将线程组加些并发数,跑一下。再在grafana中查看,选择最近5分钟的效果

image.png image.png

第二种情况:
java8 +influxdb2

Count:
from(bucket: "jmeterdb")
  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
  |> filter(fn: (r) => r["_measurement"] == "jmeter")
  |> filter(fn: (r) => r["_field"] == "count")
  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
  |> yield(name: "mean")

如果大家不知道如何编写,可以在influxdb2的上面导出显示的地方利用选择生成脚本:
1.登陆influxdb,
2.在explore中选择数据库,数据表,计数器,字段


image.png

3.转成脚本


image.png

第三种情况:influxdb1.8以下
略,可参考:https://www.jianshu.com/p/476ba7703409

上一篇下一篇

猜你喜欢

热点阅读