JMeter Integrate Influxdb2

原文链接:https://github.com/miller-shan/notes/blob/master/Technology/Testing/Performance/JMeter/JMeterIntegrateInfluxdb2.md

JMeter Install

  1. 使用 JMeter5.4.1 版本, 下载地址:JMeterDownload

Influxdb2 Install

  1. 官网下载及安装方法:https://portal.influxdata.com/downloads/ 。我服务器是 CentOS 7 所以我选择的是 RedHat&CentOS,目前官网最新版本为 2.0.4。

    wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.0.4.x86_64.rpm
    sudo yum localinstall influxdb2-2.0.4.x86_64.rpm
    wget https://dl.influxdata.com/telegraf/releases/telegraf-1.18.0-1.x86_64.rpm
    sudo yum localinstall telegraf-1.18.0-1.x86_64.rpm
    
  2. Github 下载地址及安装方法:官网如果下载不了可以尝试从 github 上下载

    1. https://github.com/influxdata/influxdb/releases/tag/v2.0.4
    2. https://github.com/influxdata/telegraf/releases/tag/v1.18.0
    wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.0.4.x86_64.rpm
    rpm -iv influxdb2-2.0.3.x86_64.rpm
    wget https://dl.influxdata.com/telegraf/releases/telegraf-1.18.0-1.x86_64.rpm
    rpm -iv telegraf-1.18.0-1.x86_64.rpm
    
    
  3. 启动服务:sudo service influxdb start

  4. 访问:http://192.168.163.11:8086/ 第一次初始化需要输入账号、密码、组织、bucket 等信息。

  5. 如果需要通过 CLI(command line interface),官网建议我们做一个设置以避免每次都需要进行身份验证。在终端输入一下信息,-o:为组织名称,-t 是 token。

    influx config create -n default \
       -u http://192.168.163.11:8086 \
       -o MillerOrg \
       -t ripoNMQhBlscArM7Nr_mGnjroq_dltBUxAqf5eI4zXsSIRion_eu0_f-DYIeZIFQ5Rc5zztVD34FEUNQQETNLQ== \
       -a
    

Influxdb 整合 JMeter

  1. JMeter 数据写入 Influxdb 需要在 influxdb 中生成一个 token 用于外部系统写入数据库。

  2. 在 Influxdb 中选择 Data > Tokens, 点击 Generate > Read/Write Token .

  3. 生成之后返回"Tokens"Tab 页,点击"JMeterToken"弹出 token 页面点击"Copy to Clipboard"复制 token 到剪切板。

  4. 启动 JMeter。在测试计划下添加一个"Thread Group",添加一个"Java Request",添加一个"View Results Tree",一个"Summary Report"。

  5. 添加一个 BackendListener 用于将 JMeter 的数据发送给 Influxdb,"Thread Group --> Add -->Listener-->Backend Listener", Backend Listener 选择"org.apache.jmeter.visualizers.backend.influxdb.InfluxDB*RawBackendListenerClient*".

- influxdbMetricsSender: org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender
- influxdbUrl:http://192.168.163.11:8086/api/v2/write?org=MillerOrg&bucket=JMeter
- influxdbToken:填写 Influxdb 网站中 Data-->Tokens-->刚才创建的"JMeterToken"中的 token 值。
- measurement:jmeter

- 注意:如果 JMeter 是 5.4 以前的版本可以没有 Raw 这个监听器,那选择"org.apache.jmeter.visualizers.backend.influxdb.InfluxDBBackendListenerClient".然后添加一个参数 Add-->Name:influxdbToken, Value:MyToken。

  1. 线程组-->勾选 “Loop Count Infinite” 循环发送请求,点击 start 开始测试。JMX 脚本文件可以在 GitHub 上下载,地址https://github.com/miller-shan/notes/tree/master/Technology/Testing/Performance/JMeter

  1. 登入 Influxdb 查看数据表

  1. 看到这张图就是完成了 Influxdb 和 JMeter 的数据打通了。

Influxdb 使用 Telegraf

  1. 下载安装:略,上面安装 Influxdb 时已经介绍过了下载地址及安装方法。

  2. 创建配置文件:左侧菜单 Data-->Telegraf-->Create Configuration-->Bucket 选择 JMeter-->指标选择 System-->Continue-->

  1. 创建完会提示让你验证你的配置,直接"Finish"即可。创建完之后会在 Tokens 页自动创建用于读写 telegraf 的 token。

  2. 拷贝配置文件内容

  1. 备份 telegraf.conf 并且使用我们刚刚新生成的配置文件内容, 需要修改配置文件里面的 token。logfile 可以根据自行选择进行添加路径,目前我设置的是 logfile = "/var/log/telegraf/telegraf.log"。

    [root@perf src]# cd /etc/telegraf/
    [root@perf telegraf]# mv telegraf.conf telegraf.conf.back
    [root@perf telegraf]# vi telegraf.conf
    

  1. 启动服务:service telegraf start

  2. 添加 dashboard,从模板中创建。

  3. 点击刚刚创建的 System 模板,添加一条过滤规则,根据主机名进行过滤。(不知道主机名的在命令行敲:hostname)

from(bucket: v.bucket)
  |> range(start: v.timeRangeStart)
  |> filter(fn: (r) => r._measurement == "system")
  |> filter(fn: (r) => r._field == "uptime")
  |> filter(fn: (r) => r["host"] == "perf这里输入你自己的主机名") 
   |> last()
   |> map(fn: (r) => ({r with _value: r._value / 86400}))
  |> yield(name: "last")
  1. 到此就完成了主机基本信息的监控了。

Influxdb 命令行

使用 influx 进行查询

  1. 查询指定表的数据

    influx query -o MillerOrg 'from(bucket:"JMeter")|>range(start:-1m)'
    
  2. 通过界面查看 sql 语句.点击 “Script Editor“

FAQ

Influxdb 如何修改密码

  1. 官网:https://docs.influxdata.com/influxdb/v2.0/users/change-password/
  2. 终端输入:influx user password -n 用户名
  3. 终端会提示让你输入两次新密码。

Reference

https://portal.influxdata.com/downloads/

https://docs.influxdata.com/influxdb/v2.0/query-data/flux/

https://qainsights.com/jmeter-integration-with-influxdb-2-0/

https://blog.csdn.net/qq_29648139/article/details/104071486


↙↙↙阅读原文可查看相关链接,并与作者交流