Jmeter+influxDB1.7+Grafana搭建性能监控平台

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
简介: Jmeter+influxDB1.7+Grafana搭建性能监控平台

Influxdb简介

InfluxDB是用Go语言编写的高性能、高可用的分布式时序数据存储数据库,无其他依赖,安装简单快速。

该数据库现在主要用于存储涉及大量的时间戳数据,如DevOps监控数据,APP metrics, loT传感器数据和实时分析数据。

与传统数据库中的名词比较

 influxDB中的名词  传统数据库的概念
 database  数据库
 measurement  数据库中的表
 points  表里面的一行数据

 

InfluxDB下载安装

下载地址:

https://portal.influxdata.com/downloads

15846726831.png (1256×806).png

influxDB,Nightly是每日的意思,每日构建,属于测试版本,要选择V1.7.10,点击后无反应,我是查看源码,找的下载地址,下载的(选择windows版本)。

修改influxDB配置文件

InfluxDB 的数据存储主要有三个目录。默认情况下是 meta, wal 以及 data 三个目录,服务器运行后会自动生成。

meta 用于存储数据库的一些元数据,meta 目录下有一个 meta.db 文件。

wal 目录存放预写日志文件,以 .wal 结尾。

data 目录存放实际存储的数据文件,以 .tsm 结尾。

在配置文件中找到graphite配置项,去掉前面的“#”号


[[graphite]]


# Determines whether the graphite endpoint is enabled.


enabled = true


database = "jmeter" # 数据库名称


retention-policy = ""


bind-address = ":2003" # 端口


protocol = "tcp"


consistency-level = "one"



修改以下信息


[meta]


#dir="/usr/local/influxdb/meta"


dir="D:\\ChromeDownLoad\\influxdb-1.7.10_windows_amd64\\influxdb-1.7.10-1\\meta" #存放最终存储的数据,文件以.tsm结尾



[data]


#dir = "/usr/local/influxdb/data"


dir = "D:\\ChromeDownLoad\\influxdb-1.7.10_windows_amd64\\influxdb-1.7.10-1\\data" #存放数据库元数据 wal

#wal-dir = "/usr/local/influxdb/wal"


wal-dir = "D:\\ChromeDownLoad\\influxdb-1.7.10_windows_amd64\\influxdb-1.7.10-1\\wal" #存放预写日志文件



修改HTTP端口信息


[http]


# Determines whether HTTP endpoint is enabled.


enabled = true



# The bind address used by the HTTP service.


bind-address = ":8086"


为何路径会有2个反斜杠,是因为windows路径反斜杠需要转义,所以路径就需要这么写:D:\\ChromeDownLoad\\influxdb-1.7.10_windows_amd64\\influxdb-1.7.10-1\\meta

 

运行influxDB数据库服务器

进入安装目录,influxd -config influxdb.conf,运行后,不要关闭

image.png

 

运行influxDB数据库客户端

再运行influx.exe即可。

image.png

influxDB数据库操作

> show databases # 查看数据库


name: databases


name


----


_internal


jmeter


> create database "jmeter" # 创建数据库


> use jmeter #切换数据库(使用某个数据库)


Using database jmeter



>show measurements #显示所有表(无表显示空)



>show users #显示所有用户



>create user "user" with password 'user' #新增普通用户



> create user "admin" with password 'admin' with all privileges # 创建管理员权限的用户



> drop user "user" # 删除用户

Grafana配置

什么是Grafana

Grafana是一款可视化工具,大多使用在时序数据的监控方面,如同Kibana类似。Grafana的UI更加灵活,有丰富的插件,功能强大,数据源可以使用zabbix、influxdb等。经常和jmeter、influxdb配合使用。

grafana的下载和安装

官网:https://grafana.com/grafana/download

下载地址:https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.2.1-1.x86_64.rpm

 

启动

进入grafana的解压路径,进入bin,直接运行grafana-server.exe即可。

image.png

image.png

 

浏览器访问:http://localhost:3000

grafana的默认用户名密码都是admin,第一次登录会要求更改密码。进入后首先创建数据库。

 

image.png

image.png

 

配置成功后,点击左下角的Save&Test就可以测试数据库是否连接成功。

image.png

Grafana模板

Grafana 能配出非常漂亮的监控仪表板,就是配的过程非常痛苦,反正目前我还不太会。于是采用别人设定好了的模板。

点击Import。导入模板有两种方式。

image.png

1.输入模板ID

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

找到想要导入模板,进入详情,查看Get this dashboard:

image.png

image.png

输入ID后会自动导入进入配置页面:

image.png

配置完后,点击Import即可。

 

2.导入模板的json文件

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

找到想要导入模板,进入详情,点击右侧的Download JSON。

image.png

下载后,进入Grafana的Import的页面,点击右上角的Upload .json File即可。导入后还是需要配置数据源,和上面通过模板ID导入配置数据源一致。

image.png

 

Jmeter配置(Apache JMeter Dashboard using Core InfluxdbBackendListenerClient模板,模板ID5496)

  • 创建一个测试计划,并添加Backend Listenter(后端监听器),Backend Listener implementation 选择org.apache.jmeter.visualizers.backend.graphite.GraphiteBackendListenerClient
  • 设置influxDB IP及端口

image.png

运行测试计划,在Grafana中选择对应的数据源和application就可以查看结果。

image.png

 

image.png

Jmeter配置( JMeter Load Test模板,模板ID1152)

不管使用什么模板,都需要先导入这个模板,按照官方说明配置即可就不多说明了。

image.png

image.png

保存配置后启动测试计划;在Grafana中查看运行结果。

jmeter_keshihua.png (1815×890).png

 

端口说明

2003端口:Jmeter往数据库发数据的端口

8086端口,Grafana从数据库取数据的端口

 

注意:吞吐率和响应时间图表只计算成功的请求(失败的通常没意义,超时失败的能在表格里看到数量),结果可能会跟Jmeter里看到的有出入。

 

查看Jmeter数据库的表信息

> show databases


name: databases


name


----


_internal


jmeter


> use jmeter


Using database jmeter


> show measurements


name: measurements


name


----


jmeter.all.a.avg


jmeter.all.a.count


jmeter.all.a.max


jmeter.all.a.min


jmeter.all.a.pct90


jmeter.all.a.pct95


jmeter.all.a.pct99


jmeter.all.h.count


jmeter.all.ko.avg


jmeter.all.ko.count


jmeter.all.ko.max


jmeter.all.ko.min


jmeter.all.ko.pct90


jmeter.all.ko.pct95


jmeter.all.ko.pct99


jmeter.all.ok.avg


jmeter.all.ok.count


jmeter.all.ok.max


jmeter.all.ok.min


jmeter.all.ok.pct90


jmeter.all.ok.pct95


jmeter.all.ok.pct99


jmeter.all.rb.bytes


jmeter.all.sb.bytes


jmeter.test.endedT


jmeter.test.maxAT


jmeter.test.meanAT


jmeter.test.minAT


jmeter.test.startedT



线程数/用户相关指标

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


 

多说无益,最好是自己操作。以上都是我自己在本地试验过再记录下来的。有很多不足希望能一起交流。

 

 

相关文章
|
7月前
|
Prometheus 监控 Cloud Native
一文带你吃透MySQL性能监控解决方案:Prometheus+Grafana
MySQL性能监控解决方案:Prometheus+Grafana问题描述 在对MySQL进行主从复制、分库分表等架构之后,MySQL的节点数量变得越来越多,无法实时监控到每一台MySQL节点,此时应当如何处理? 问题分析与解决方案 针对上面的问题,需要用Prometheus + Grafana对服务器进行统一监控、规划与报警,时刻关注服务器的响应情况。当出现宕机或异常时,Grafana可迅速通过短信、钉钉、邮件等方式通知相关人员,进而快速对生产环节进行补救。 Prometheus概述与适用场景 Prometheus 是 一 个 开 源 的 服 务 监 控 系 统 和 时 间 序 列 数 据
532 0
|
5月前
|
监控 测试技术 时序数据库
软件测试/测试开发|Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台
软件测试/测试开发|Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台
63 0
|
9月前
|
JSON 监控 测试技术
性能测试--InfluxDB+Grafana+Jmeter搭建性能监控平台 (二)
性能测试--InfluxDB+Grafana+Jmeter搭建性能监控平台
|
6月前
|
Java 测试技术 Apache
用JMeter做接口压力测试
JMeter是Apache组织开发的基于Java的压力测试工具,它是用 Java 语言编写的
64 0
|
6月前
|
测试技术
JMeter压力测试简单例子
JMeter压力测试简单例子
70 0
|
8月前
|
XML 前端开发 测试技术
使用 jMeter 对 SAP Spartacus 进行并发性能测试
使用 jMeter 对 SAP Spartacus 进行并发性能测试
76 0
|
6天前
|
数据可视化 Java 测试技术
JMeter 如何实现 Elasticsearch 8.X 性能测试?
JMeter 如何实现 Elasticsearch 8.X 性能测试?
13 0
|
4月前
|
JSON 网络协议 Java
使用Jmeter进行功能和性能测试
使用Jmeter进行功能和性能测试
|
27天前
|
SQL Java 测试技术
Jmeter的安装与快速使用(做并发测试)
Jmeter的安装与快速使用(做并发测试)
20 0
|
5月前
|
消息中间件 测试技术
百度搜索:蓝易云【使用JMeter安装RabbitMQ测试插件的步骤】
以上是安装RabbitMQ测试插件的基本步骤。根据您的具体需求和JMeter版本,可能会有一些细微的差异,但总体流程应该是相似的。
56 1