性能测试 CentOS下结合InfluxDB及Grafana图表实时展示JMeter相关性能数据

本文涉及的产品
性能测试 PTS,5000VUM额度
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 性能测试 CentOS下结合InfluxDB及Grafana图表实时展示JMeter相关性能数据

CentOS下结合InfluxDBGrafana图表实时展示JMeter相关性能数据

 

by:授客QQ1033553122

 

实现功能1

测试环境1

环境搭建2

1、安装influxdb2

2、创建influxdb数据库3

3、安装grafana5

配置grafana图表数据源7

JMeter Backend Listener监听器配置9

运行jmeter10

新建grafana图表10


测试环境

Win7 64

 

Python 3.4.0

 

JMeter 2.13 r1665067

 

CentOS 6 64位(内核版本2.6.32-642.el6.x86_64

 

influxdb-1.5.2.x86_64.rpm

网盘下载地址:

https://pan.baidu.com/s/1jAbY4xz5gvzoXxLHesQ-PA

 

 

grafana-5.1.2-1.x86_64.rpm

下载地址:

https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.1.3-1.x86_64.rpm

下载地址:https://pan.baidu.com/s/1wtnPH-iYxaXc6FnL1i0ZVg

 

 

influxdb-5.0.0-py2.py3-none-any.whl

下载地址:

https://pypi.org/project/influxdb/#files

下载地址:https://pan.baidu.com/s/1DQ0HGYNg2a2-VnRSBdPHmg

 

 

环境搭建

1、安装influxdb

# rpm -ivh influxdb-1.5.2.x86_64.rpm

 

 

修改配置

如下,修改一下带背景色内容

# vim /etc/influxdb/influxdb.conf

 

[http]

 # Determines whether HTTP endpoint is enabled.

 enabled = true

 

 # The bind address used by the HTTP service.

 bind-address = ":8086"  

 

 # Determines whether user authentication is enabled over HTTP/HTTPS

 auth-enabled = false  

 

 说明:设置auth-enabled = false是为了免账号密码授权认证访问,图个方便

 

 # The default realm sent back when issuing a basic auth challenge.

 # realm = "InfluxDB"

 

 # Determines whether HTTP request logging is enabled.

 # log-enabled = true  

 

 

[[graphite]]

 #Determines whether the graphite endpoint is enabled.

 enabled = true

 database = "jmeter"

 # retention-policy = ""

 bind-address = ":2003"

 protocol = "tcp"

 consistency-level = "one"

 

#说明 设置consistency-level = "one"设置一致性级别,设置为one表示读操作不会对写操作造成延迟

 

 # These next lines control how batching works. You should have this enabled

 # otherwise you could get dropped metrics or poor performance. Batching

 # will buffer points in memory if you have many coming in.

 

 # Flush if this many points get buffered

 batch-size = 5000

 

 # number of batches that may be pending in memory

 batch-pending = 10

 

 # Flush at least this often even if we haven't hit buffer limit

 batch-timeout = "1s"

 

 # UDP Read buffer size, 0 means OS default. UDP listener will fail if set above OS max.

 udp-read-buffer = 0

 

 ### This string joins multiple matching 'measurement' values providing more control over the final measurement name.

 separator = "."

 

说明:个人理解,这里的[[graphite]]配置主要是为收集JMeter性能数据配置的,如果不需要收集jmeter性能数据,应该可以不用配置(未测试)

 

启动/重启linfluxdb

# service influxdb start

 

# service influxdb restart

Stopping influxdb...

influxdb process was stopped [ OK ]

Starting influxdb...

influxdb process was started [ OK ]

 

查看是否在监听端口

[appdeploy@cnsz22VLK6817:/etc/influxdb]#netstat -antp | grep 2003

tcp        0      0 0.0.0.0:2003                0.0.0.0:*                   LISTEN      23994/influxd  

 

2、创建influxdb数据库

# /usr/bin/influx

 

Connected to http://localhost:8086 version 1.5.2

InfluxDB shell version: 1.5.2

# 查看有哪些数据库

> show databases

name: databases

name

----

_internal

 

# 创建数据库,库名为jmeter(create database dbname)

> create database jmeter

> show databases

name: databases

name

----

_internal

jmeter

 

# 附其它操作(类似mysql数据库)

# “切换到要操作的数据库(use dbname)

> use jmeter

 

# 查看有哪些数据表(influxdb中定义为measurement)

> show measurements

name: measurements

name

----

jmeter.all.a.count

jmeter.all.a.max

jmeter.all.a.min

jmeter.all.a.pct90

jmeter.all.a.pct95

jmeter.all.a.pct99

……

说明:以上数据是我跑压测后才有的,往下不再赘述

 

# 查询数据表数据 

> select * from "jmeter.all.a.max" limit 10

name: jmeter.all.a.max

time                value

----                -----

1526383743000000000 6

1526383744000000000 18

1526383745000000000 18

1526383746000000000 18

1526383747000000000 27

1526383962000000000 7

1526383963000000000 7

1526383964000000000 12

1526383965000000000 12

1526383966000000000 12

 

注意:表名为上述xx.xxx.xx的形式的时候,需要加双引号,删除的时候也是

 

# 删除数据表(drop measurement measurement_name)

>drop measurement " jmeter.all.a.max"

 

# 删除数据库

> drop database dbname

 

3、安装grafana

#rpm -ivh grafana-5.1.2-1.x86_64.rpm

 

检查、修改grafana.ini配置

#vim /etc/grafana/grafana.ini

####################################

[server]

# Protocol (http, https, socket)

;protocol = http

 

# The ip address to bind to, empty will bind to all interfaces

;http_addr =

 

# The http port  to use

;http_port = 3000

 

# The public facing domain name used to access grafana from a browser

;domain = localhost

 

……

 

[security]

# default admin user, created on startup

;admin_user = admin

 

# default admin password, can be changed before first start of grafana,  or in profile settings

;admin_password = admin

 

……

 

 

启动grafana

#/usr/local/grafana/etc/init.d/grafana-server start

Starting Grafana Server: ...                               [  OK  ]

 

不同系统可能不一样,也可能是 /usr/sbin/grafana-server

 

或者

# service grafana-server start

 

# sudo /bin/systemctl start grafana-server.service

 

自家电脑上安装时发现会出现没法启动的情况,tail -f /var/log/grafana/grafana.log 发现error="open /var/run/grafana/grafana-server.pid: permission denied"错误

解决方法:

# cd/var/run/

# chmod 777grafana/

 

设置系统启动时,自动启动grafana

#chkconfig --add grafana-server

 

相关实践学习
通过可观测可视化Grafana版进行数据可视化展示与分析
使用可观测可视化Grafana版进行数据可视化展示与分析。
目录
相关文章
|
1月前
|
分布式计算 Shell MaxCompute
odps测试表及大量数据构建测试
odps测试表及大量数据构建测试
|
2月前
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
40 11
|
2月前
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
59 10
|
3月前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法。本文介绍 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,同时提供 Python 实现示例,强调其在确保项目性能和用户体验方面的关键作用。
76 6
|
3月前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目效果的重要手段
在数据驱动时代,A/B 测试成为评估机器学习项目效果的重要手段。本文介绍了 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,强调了样本量、随机性和时间因素的重要性,并展示了 Python 在 A/B 测试中的具体应用实例。
54 1
|
4月前
|
机器学习/深度学习 监控 计算机视觉
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
本文介绍了如何使用YOLOv7进行目标检测,包括环境搭建、数据集准备、模型训练、验证、测试以及常见错误的解决方法。YOLOv7以其高效性能和准确率在目标检测领域受到关注,适用于自动驾驶、安防监控等场景。文中提供了源码和论文链接,以及详细的步骤说明,适合深度学习实践者参考。
1023 1
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
4月前
|
存储 测试技术 数据库
数据驱动测试和关键词驱动测试的区别
数据驱动测试 数据驱动测试或 DDT 也被称为参数化测试。
68 1
|
4月前
|
测试技术 持续交付 Apache
性能怪兽来袭!Python+JMeter+Locust,让你的应用性能飙升🦖
【10月更文挑战第10天】随着互联网应用规模的不断扩大,性能测试变得至关重要。本文将探讨如何利用Python结合Apache JMeter和Locust,构建高效且可定制的性能测试框架。通过介绍JMeter和Locust的使用方法及Python的集成技巧,帮助应用在高负载下保持稳定运行。
105 2
|
4月前
|
机器学习/深度学习 并行计算 数据可视化
目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)
这篇文章介绍了如何使用PaddleClas框架完成多标签分类任务,包括数据准备、环境搭建、模型训练、预测、评估等完整流程。
281 0
|
4月前
|
机器学习/深度学习 数据采集 算法
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
这篇博客文章介绍了如何使用包含多个网络和多种训练策略的框架来完成多目标分类任务,涵盖了从数据准备到训练、测试和部署的完整流程,并提供了相关代码和配置文件。
114 0
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)

热门文章

最新文章

  • 1
    MySQL原理简介—3.生产环境的部署压测
  • 2
    小鱼深度评测 | 通义灵码2.0,不仅可跨语言编码,自动生成单元测试,更炸裂的是集成DeepSeek模型且免费使用,太炸裂了。
  • 3
    3天功能开发→3小时:通义灵码2.0+DEEPSEEK实测报告,单元测试生成准确率92%的秘密
  • 4
    Potpie.ai:比Copilot更狠!这个AI直接接管项目代码,自动Debug+测试+开发全搞定
  • 5
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
  • 6
    基于FPGA的图像双线性插值算法verilog实现,包括tb测试文件和MATLAB辅助验证
  • 7
    大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
  • 8
    「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
  • 9
    用户说 | 通义灵码2.0,跨语言编码+自动生成单元测试+集成DeepSeek模型且免费使用
  • 10
    以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡