美文网首页
Grafana7+InfluxDB2+Jmeter5 搭建可视化

Grafana7+InfluxDB2+Jmeter5 搭建可视化

作者: 测试星云 | 来源:发表于2021-06-29 21:45 被阅读0次

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

    一、整体流程

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

    • 1.1 influxdb;
    • 1.2 grafana(docker-compose.yml);
    • 1.3jmeter;

    2、配置

    • 2.1 配置jmeter的后置监听器;
    • 2.2在influxdb中建立接收jmeter运行结果的数据的数据库(jmeterdb);
    • 2.3在grafana中添加数据源influxdb并将jmeterdb的数据在其显示(导入插件),配置展示参数。

    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

    • 1、创建docker-compose.yml文件,把配置写入
    #这是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:
    
    • 2、创建环境文件.env,把环境变量写入
      touch .env
    #建立环境文件.env,包括以下内容:
    INFLUXDB_USERNAME=admin
    INFLUXDB_PASSWORD=admin123
    
    GRAFANA_USERNAME=admin
    GRAFANA_PASSWORD=admin
    
    PROMETHEUS_USERNAME=admin
    PROMETHEUS_PASSWORD=admin
    
    
    • 3、运行docker-compose -f docker-compose.yml up -d


      image.png
    • 4、访问下面的网址进入配置
      在哪里部署把localhost换成对应的IP,本人环境mac下安装的docker-desktop.

      image.png
      grafana: http://localhost:3000/
      influxdb2: http://localhost:8086/

    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)

    • 1.登陆到grafana主页( http://localhost:3000/)之后,创建新的Data Source:influxdb

      image.png
    • 2.配置Database,选择InfluxDB:

    • 3.输入InfluxDB信息
      3.1填入你的IP地址http://这里是influx的IP:8086(不是localhost)否则会报bad gateway的错。选择flux语言influx2.0。
      3.2输入InfluxDB Details信息 org,bucket,token(在初始化中设置的), 如果忘记在influxDB(http://localhost:8086)中data-buckets/tokens查看

      image.png
      image.png
    image.png

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

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

    • 1、在https://grafana.com/grafana/dashboards中搜索jmeter,influxdb2

      image.png
    • 2、获得ID值13644,https://grafana.com/grafana/dashboards/13644

    • 3、登陆的Grafana主页添加+ import去粘贴ID或URL


      image.png
    • 4、然后可以进行命名,填入之前建好的DataSource 名字.


      image.png
    • 5、可以看到各种写好的计数器,不过这时应该还没有数据,因为我们还没跑jmeter的脚本,还没配置jmeter。


      image.png

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

    第一种情况:
    环境java11,influxdb2

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

    image.png image.png

    第二种情况:
    java8 +influxdb2

    • 1、在Jmeter脚本中添加后置监听器


      image.png
    • 2、在https://grafana.com/grafana/dashboards中搜索jmeter,influxdb,找到ID:5496,在grafana 中import并设置。
      image.png
    • 3、由于这个插件适合的是influxdb1.8以下,而influxdb2.0以上使用flux语言,所以面板上没有数据,我们可以手工更改语句。
      请求数的panel的编辑
    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
    • 4、最后的结果


      image.png

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

    相关文章

      网友评论

          本文标题:Grafana7+InfluxDB2+Jmeter5 搭建可视化

          本文链接:https://www.haomeiwen.com/subject/lcvkultx.html