zoukankan      html  css  js  c++  java
  • Grafana监控jmeter数据平台(Grafana+InfluxDB+Jmeter)

    Grafana是最漂亮的web监控平台,也可以看历史,可以展示所有的东西。
    jmeter原生监控
    在这里插入图片描述

    有点丑,以下为优化方案

    方案简介

    InfluxDB是一个时序数据库。go语言开发的。(时序数据库:就是几时几秒里面有什么值)
    jemter把数据给InfluxDB,InfluxDB再把数据给Grafana。InfluxDB是他们的中间人
    要做两件事:

    • 1.先把jmeter和InfluxDB配起来,性能测试的数据,有jmeter写到influxDB里面

    • 2.Grafana也把这个InfluxDB配起来。才能出图

    需要下载的资源

    1.mysql-connector-java-5.1.47-bin.jar 用于 JDBC 连接
    2.JMeter-InfluxDB-Writer-plugin-1.2.jar 存储时序数据
    3.jmeter-load-test_rev5.json 用于 Grafana 数据可视化

    为便于下载,所需文件存储于网盘中
    链接:https://pan.baidu.com/s/111F5KRMg2azSchS412G4iQ 密码:wa6v

    第一步

    将jar放在lib\ext目录下面

    JMeter-InfluxDB-Writer-1.0.jar拷贝到D:\Jmeter工具\apache-jmeter-5.1.1\lib\ext目录下:
    打开jemter,有一个后端监控器。因为jar包放进去了。多了一个InfluxDB

    在这里插入图片描述

    在这里插入图片描述

    现在还不能跑,因为依赖一个条件。InfluxDB虽然jmeter有插件了。但是InfluxDB本身还没有在运行 


    第二步

    安装influxdb

    使用的Red Hat和CentOS用户可以安装InfluxDB最新的稳定版本 yum包管理器:

    cat <<EOF | sudo tee /etc/yum.repos.d/influxdb.repo
    [influxdb]
    name = InfluxDB Repository - RHEL \$releasever
    baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable
    enabled = 1
    gpgcheck = 1
    gpgkey = https://repos.influxdata.com/influxdb.key
    EOF

    或者如果你的操作系统是使用systemd(CentOS 7 +,RHEL 7 +):

    sudo yum install influxdb
    sudo systemctl start influxdb


    找到InfluxDB配置文件(/etc/influxdb/influxdb.conf)

    vi /etc/influxdb/influxdb.conf


    influxdb.conf中的大多数设置都被注释掉了;所有注释掉的设置将确定为内部默认值。如果配置文件中的任何未注释的设置都会覆盖内部默认值。
    请注意,本地配置文件不需要包含每个配置设置。
    如果你无法找到配置文件,可以使用InfluxDB显示配置命令

    influxd config

    Jmeter使用graphite协议去写入数据到InfluxDB,因此,需要在InfluxDB配置文件启用它,如下图所示:

    [[graphite]]
    enabled = true
    bind-address = ":2003"
    database = "jmeter"
    retention-policy = ""
    protocol = "tcp"
    batch-size = 5000
    batch-pending = 10
    batch-timeout = "1s"
    consistency-level = "one"
    separator = "."
    udp-read-buffer = 0

    修改后,使用以下命令加载InfluxDB启动

    有两种方法可以使用配置文件启动InfluxDB:
    1.使用以下-config选项将进程指向正确的配置文件

    influxd -config /etc/influxdb/influxdb.conf

    2.将环境变量设置为INFLUXDBCONFIGPATH配置文件的路径并启动

    echo $INFLUXDB_CONFIG_PATH
    /etc/influxdb/influxdb.conf
    influxd

    InfluxDB操作

    [root@zuozewei ~]# influx #登录数据库
    Connected to http://localhost:8086 version 1.6.2
    InfluxDB shell version: 1.6.2
    > show databases #查看所有数据库
    name: databases
    name
    ----
    _internal
    > CREATE DATABASE "jmeter" #创建数据库
    > use jmeter #切换数据库
    Using database jmeter
    > CREATE USER "admin" WITH PASSWORD 'admin' WITH ALL PRIVILEGES # 创建管理员权限的用户

    jmeter 添加监听器 Backend Listener 验证数据是否能写入到 influxdb

    jmeter4.0

     
    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&InfluxDB集成
    什么是Grafana?

    Grafana是一个开源软件,拥有丰富的指标仪表盘和图形编辑器,适用Graphite, Elasticsearch, OpenTSDB, Prometheus,InfluxDB。简单点说就是一套开源WEB可视化平台。

    官网地址:https://grafana.com/

    1、安装启动
    下载安装

    wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.2.0-1.x86_64.rpm
    sudo yum localinstall grafana-4.2.0-1.x86_64.rpm


    启动

    service grafana-server start
    Starting grafana-server (via systemctl): [ OK ]

    使用浏览器打开 http://IP:3000/login,访问Grafana主页

    创建InfluxDB数据源


    单击save&test,确保可以连接上InfluxDB

    创建dashboard

    添加Graph面板

    数据绑定

     

     

     

    线程数/用户相关指标
    test.minAT-Min active threads:最小活跃线程数
    test.maxAT-Max active threads:最大活跃线程数
    test.meanAT-Mean active threads:活跃线程数
    test.startedT-Started threads:启动线程数
    test.endedT-Finished threads:结束线程数

     响应时间指标

    .ok.count:采样器的成功响应数

    .h.count:每秒点击数
    .ok.min:采样器成功最短响应时间
    .ok.max:采样器成功最长响应时间
    .ok.avg:采样器成功平均响应时间
    .ok.pct:采样器成功响应百分比
    .ko.count:采样器失败响应数
    .ko.min:采样器失败的响应最短时间
    .ko.max:采样称失败最长响应时间
    .ko.avg:采样器失败平均响应时间
    .ko.pct:采样器失败响应百分比
    .a.count:采样器响应数(ok.count和ko.count的总和)
    .a.min:采样器最小响应时间(ok.count和ko.count的最小值)
    .a.max:采样器最大响应时间(ok.count和ko.count的最大值)
    .a.avg:采样器平均响应时间(ok.count和ko.count的平均值)
    .a.pct:采样器响应百分比(根据和失败样本的总数计算)

    Backend Listener的默认百分位设置为“90;95;99”,即百分位数为90%,95%和99%。
    Graphite使用点(“.”)去拆分的元素,这可能与十进制百分位值混淆。JMeter转换任何此类值,用下划线(“ - ”)替换点(“.”)。例如,“99.9 ”变为“99_9 ”
    默认情况下,JMeter发送在samplerName“all”下累计的所有采样器的指标。 如果配置了 BackendListenerSamplersList,那么JMeter还会发送匹配样本名称的指标,前提是配置 summaryOnly=true

    压测中的效果

    第四步
    导入Dashboard模版
    如果让大家去设计一个好看的Dashboard,估计大家都不太想从零开始自己设计,其实Grafana官网提供丰富的模版的库,大家可以自己上去找,然后进行二次扩展。

    官网模版库:https://grafana.com/dashboards

    搜索看板模版

    此处,我选择下载这个下载量3000+的模版

    下模版JSON文件

    导入模版

     


    选择数据源

    JMeter Backend Listener设置

    压测期间的动画效果


    至此,我初步打造的压测可视化实时监控大功告成~

  • 相关阅读:
    VIM技巧, .vimrc文件
    vSphere Client克隆虚拟机
    vSphere、 ESXi、Vcenter、vSphere Client关系
    消耗系统内存
    zabbix2.4汉化
    普通用户执行ansible权限被拒绝
    putty秘钥转换成xhell支持的格式
    zbb20170922 mysql 字符集设置 比较 utf8_general_ci、utf8_unicode_ci和utf8_bin的区别
    zbb20170920 页面调用qq
    zbb20170919 tomcat 8 启动异常 Could not publish server configuration for Tomcat v8.0 Server at localhost. Multiple Contexts have a path of "A".
  • 原文地址:https://www.cnblogs.com/wangjunjiehome/p/15649533.html
Copyright © 2011-2022 走看看