zoukankan      html  css  js  c++  java
  • 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

     

    在Import 添加搜到的模板id(还有一个和官网模板差不多的 模板ID是:4026 可参考下)

     

    选择建好的data source

     

    添加完成后就会出现了以下界面了

     
  • 相关阅读:
    Ajax让网站与时俱进
    暑期小学期一周总结至7月5号
    17级软件工程交流活动体会
    IE8兼容IE7模式代码:XUACompatible详解
    SQLiteHelper
    Microsoft Office OneNote 2007的安装与激活
    白石洲,让人遗憾的历史的产品
    .NET4的SQLite配置
    ADO.NET Entity Framework学习笔记(5)ESQL查询语句
    ADO.NET Entity Framework学习笔记(3)ObjectContext对象
  • 原文地址:https://www.cnblogs.com/zzcsza/p/14067812.html
Copyright © 2011-2022 走看看