其他测试框架 influxdb+grafana+telegraf 监听性能数据 (完整详细版)

飞天小子的性能课堂 · 2019年10月31日 · 最后由 杨杰 回复于 2019年12月10日 · 6069 次阅读

概述

关于 influxdb+grafana 的文章,谷歌百度一大把,但是 99.9% 不知所云,不是这边漏一点就是那边漏一点。甚至怀疑绝大部分都是互相抄袭。本着前人挖坑后入埋的态度,我整理了一份详细的文档,给大家分享一下。ubuntu 环境

influxdb 安装配置

下载安装 influxdb 工具

wget https://dl.influxdata.com/influxdb/releases/influxdb_1.2.4_amd64.deb
sudo dpkg -i influxdb_1.2.4_amd64.deb

修改配置文件

vim /etc/influxdb/influxdb.conf

修改 host

开放 8086 端口

开放 8083 端口

开放 2003 端口,同时修改数据库名称(我的库名是 jmeter,后面会建)

启动数据库。执行influxd run

配置 influxdb 数据库

进入数据库

执行:influx 进入数据库

添加用户名密码

[root@imzcy ~]# influx
> CREATE USER root WITH PASSWORD '000000' WITH ALL PRIVILEGES
> SHOW USERS
user    admin
root     true

开启 auth 认证

配置文件中,8086 端口下开启 auth 权限控制
vim /etc/influxdb/influxdb.conf

重启数据库

重启数据库之后再访问数据库就需要带入用户名密码了,否则会报错
influx -username root -password 000000

浏览器启动 influxdb 数据库

需要配置用户名密码,然后连接

创建两个数据库,jmeter 和 telegraf。语法和 mysql 一致

telegraf 服务器监控配置

安装 telegraf

wget https://dl.influxdata.com/telegraf/releases/telegraf_0.11.1-1_amd64.deb
sudo dpkg -i telegraf_0.11.1-1_amd64.deb

修改配置文件

vim /etc/telegraf/telegraf.conf
配置 host,端口(8086),数据库名称,数据库用户名密码

启动 telegraf

/etc/init.d/telegraf restart

grafana 配置

下载安装 grafana

wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana_5.1.3_amd64.deb
sudo apt-get install -y adduser libfontconfig
sudo dpkg -i grafana_5.1.3_amd64.deb

服务端启动 grafana

执行:service grafana-server restart

浏览器启动 grafana

用户名密码默认是 admin admin

grafana 服务连接数据库

配置 datasource,连接 jmeter 和 telegraf 两个数据库



grafana 导入模板

jmeter 模板 id:4026
telegraf 模板 id:3967

system 资源监控

点击/home/system


jmeter 性能指标监控

jmeter 添加后端监听器

配置监听器并运行

添加数据库连接 host,端口,库名,用户名,密码

grafana 监听 jmeter 数据


常用 sql

聚合报告
SELECT count(responseTime) as Count, mean(responseTime) as Avg, min(responseTime) as Min, median(responseTime) as Median, percentile(responseTime, 90) as "90%",percentile(responseTime, 95) as "95%",percentile(responseTime, 99) as "99%", max(responseTime) as Max, (sum(errorCount)/count(responseTime)) as "Error Rate" FROM "requestsRaw" WHERE $timeFilter GROUP BY time(1m)

吞吐量
SELECT count("responseTime") FROM "requestsRaw" WHERE $timeFilter GROUP BY time(1s)

响应时间
SELECT mean("responseTime") FROM "requestsRaw" WHERE $timeFilter GROUP BY time($__interval)

活动线程
SELECT mean("meanActiveThreads") FROM "virtualUsers" WHERE $timeFilter GROUP BY time(1s)


文档都已经上传到飞书知识库,自由阅读

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 2 条回复 时间 点赞
飞天小子的性能课堂 jmeter 接口性能测试基础 中提及了此贴 12月03日 10:08

influxDB 和 grafana 跟 jmeter 放在同一台机上的话,本身收集数据和实时图表会消耗性能,影响 jmeter 压测

我泼个冷水吧:这个框架对于小 qps 的应用比较好,对于超过一定 qps 的应用就算了吧。。。。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册