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


 

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

 

 

相关文章
|
14天前
|
监控 Java 时序数据库
性能监控之Telegraf+InfluxDB+Grafana实现JMX实时监控
【6月更文挑战15天】性能监控之Telegraf+InfluxDB+Grafana实现JMX实时监控
29 6
性能监控之Telegraf+InfluxDB+Grafana实现JMX实时监控
|
17天前
|
Prometheus 监控 Cloud Native
基于Prometheus和Grafana的监控平台 - 环境搭建
基于Prometheus和Grafana的监控平台 - 环境搭建
|
10天前
|
Prometheus 监控 Cloud Native
性能监控神器Prometheus、Grafana、ELK 在springboot中的运用
【6月更文挑战第27天】在 Spring Boot 应用中,监控和日志管理是确保系统稳定性和性能的重要手段。
30 4
|
15天前
|
监控 Oracle 关系型数据库
性能监控之Telegraf+InfluxDB+Grafana+Python实现Oracle实时监控
【6月更文挑战14天】性能监控之Telegraf+InfluxDB+Grafana+Python实现Oracle实时监控
23 2
|
17天前
|
监控 数据库 时序数据库
性能监控之Telegraf+InfluxDB+Grafana window服务器安装使用
【6月更文挑战13天】性能监控之Telegraf+InfluxDB+Grafana window服务器安装使用
21 1
|
19天前
|
存储 监控 Linux
性能监控之Telegraf+InfluxDB+Grafana linux服务器实时监控
【6月更文挑战11天】标题性能监控之 Java Metrics 度量包性能监控之Telegraf+InfluxDB+Grafana linux服务器实时监控
30 2
|
18天前
|
XML 机器学习/深度学习 监控
性能监控之Telegraf+InfluxDB+Grafana NVIDIA GPU实时监控
【6月更文挑战12天】性能监控之Telegraf+InfluxDB+Grafana NVIDIA GPU实时监控
26 0
|
8月前
|
Java 测试技术 Apache
用JMeter做接口压力测试
JMeter是Apache组织开发的基于Java的压力测试工具,它是用 Java 语言编写的
79 0
|
8月前
|
测试技术
JMeter压力测试简单例子
JMeter压力测试简单例子
83 0
|
10月前
|
XML 前端开发 测试技术
使用 jMeter 对 SAP Spartacus 进行并发性能测试
使用 jMeter 对 SAP Spartacus 进行并发性能测试