【Docker】性能测试监控平台搭建:InfluxDB+Grafana+Jmeter+cAdvisor

这篇具有很好参考价值的文章主要介绍了【Docker】性能测试监控平台搭建:InfluxDB+Grafana+Jmeter+cAdvisor。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

在做性能测试时,如果有一个性能测试结果实时展示的页面,可以极大的提高我们对系统性能表现的掌握程度,进而提高我们的测试效率。但是我们每次打开Jmeter都会有几个硕大的字提示别用GUI模式进行负载测试,而且它自带的监视器效果实在一般:在Windows下渲染效果不好,在linux环境(非GUI环境)下更是无法使用,这一点我在之前的文章中有过简单的描述。

所以,在做性能测试时,为Jmeter构建一个可视化的监控环境平台是非常有价值的。这也是这篇博客的目的。

首先我们来看一下最后的成品,监控了TPS、并发、请求成功率、失败率、请求&接收数据大小、平均响应时长、95%的请求平均响应时长等等。(这里面的各个板块都是可自定义配置的,无论多花里花哨都可以[奸笑脸])

【Docker】性能测试监控平台搭建:InfluxDB+Grafana+Jmeter+cAdvisor,docker,grafana,jmeter

业务服务监控:精确到具体的接口

【Docker】性能测试监控平台搭建:InfluxDB+Grafana+Jmeter+cAdvisor,docker,grafana,jmeter

Mysql监控:精确到具体的查询函数

【Docker】性能测试监控平台搭建:InfluxDB+Grafana+Jmeter+cAdvisor,docker,grafana,jmeter

Redis监控:精确到具体的cache操作

【Docker】性能测试监控平台搭建:InfluxDB+Grafana+Jmeter+cAdvisor,docker,grafana,jmeter

组件简介

首先我们一起来简单了解下今天需要用到的这几个工具。

InfluxDB

一个开源的时序数据库,使用GO语言开发,特别适合用于处理和分析资源监控数据这种时序相关数据。

cAdvisor

Google用来监测单节点的资源信息的监控工具。Kubernetes中也缺省地将其作为单节点的资源监控工具,各个节点缺省会被安装上Cadvisor。

Grafana

一款可视化度量分析和可视化套件,常用于可视化基础设施和应用程序分析,与Kibana类似,UI更加灵活,且插件丰富。

Jmeter

Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。

镜像安装+启动

虽然直接部署、配置grafana、InfluxDB并不复杂,但是使用docker部署会有更好的环境可移植性,也更简单,所以选择使用docker进行部署。

如果我们确定自己想要的镜像版本,可以直接指定版本执行docker run来运行,从而忽略掉拉取镜像的过程,本文就是使用的这种方法。

但是有一点需要注意,如果没有指定镜像版本直接运行docker rundocker主进程首先会在本地查找,如未发现合适的镜像,会直接到远程镜像仓库(可以指定私有仓库)拉取最新版本(tag:latest)。

安装influxDB
docker run -d \
   -p 8083:8083 \
   -p 8086:8086 \
   --expose 8090 \
   --expose 8099 \
   --name influxsrv \
   tutum/influxdb
安装cadvisor
docker run \
  --volume=/:/rootfs:ro \
  --volume=/var/run:/var/run:rw \
  --volume=/sys:/sys:ro \
  --volume=/var/lib/docker/:/var/lib/docker:ro \
  -p 8080:8080 \
  --detach=true --link influxsrv:influxsrv \
  --name=cadvisor \
  google/cadvisor:latest \
  -storage_driver=influxdb \
  -storage_driver_db=cadvisor \
  -storage_driver_host=influxsrv:8086
安装granfana
docker run -d \
  -p 3000:3000 \
  -e INFLUXDB_HOST=localhost \
  -e INFLUXDB_PORT=8086 \
  -e INFLUXDB_NAME=cadvisor \
  -e INFLUXDB_USER=root -e INFLUXDB_PASS=root \
  --link influxsrv:influxsrv \
  --name grafana \
grafana/grafana
各个参数含义
参数 含义
-d 容器在后台运行
-p 将容器内端口映射到宿主机端口,格式为 宿主机端口:容器内端口;8083是influxdb的web管理工具端口,8086是influxdb的HTTP API端口
--expose 可以让容器接受外部传入的数据
--name 指定容器名称
--link --link [name/id]:alias, name和id是源容器的name和id,alias是源容器在link下的别名;在--link标签下,接收容器就是通过设置环境变量和更新/etc/hosts文件来获取源容器的信息,并与之建立通信和传递数据的。
--volume 把一个本地主机的目录当做数据卷挂载在容器上,[host-dir]:[container-dir]:[rw/ro],挂载点可以让多个容器共享。
  • storage| storage_driver/指定数据库类型、storage_driver_db/指定数据库实例、storage_driver_host/指定数据库host

镜像名称后面加冒号接tag,能指定docker版本,安装完成之后执行docker ps会看到下面的信息

【Docker】性能测试监控平台搭建:InfluxDB+Grafana+Jmeter+cAdvisor,docker,grafana,jmeter

 

也可以执行docker exec -it container-id /bin/bash进入容器内部查看信息,比如我们拉取的grafana镜像的grafana版本是5.3.4

【Docker】性能测试监控平台搭建:InfluxDB+Grafana+Jmeter+cAdvisor,docker,grafana,jmeter

influxdb配置

登录influxdb

我们在上面执行了docker run之后,其实服务就已经起来了,所以现在可以直接使用8083这个已经映射好的influxdb的web管理端口进行influxd的配置管理。

直接访问http://host-ip:8083/进入配置管理界面。点击配置管理界面右上角的 配置按钮图标 进入配置配置管理后台,使用root/root登录。

【Docker】性能测试监控平台搭建:InfluxDB+Grafana+Jmeter+cAdvisor,docker,grafana,jmeter

创建cAdvisor应用数据库

在上图中我们可以看到influxdb提供了一些查询/操作数据的语句模版,这对我们这些不太熟悉它的人写SQL非常有帮助。

比如我们选择模板CREATE DATABASE,在输入框会出现CREATE DATABASE "db_name",把db_name 替换成我们的数据源cadvisor,回车,我们的数据库就创建完成了。接下来我们继续执行下面的SQL来完成用户的创建和授权:

CREATE USER "cadvisor" WITH PASSWORD 'cadvisor'
grant all privileges on "cadvisor" to "cadvisor"

执行成功会有 Success! (no results to display) 的提示。

执行docker run 的命令的时候会生成的一串数字

查看cAdvisor信息

其实在上面我们执行docker run安装cAdvisor的时候,cAdvisor就已经完成了,我们访问http://host-ip:8080/containers/能看到下面的信息

【Docker】性能测试监控平台搭建:InfluxDB+Grafana+Jmeter+cAdvisor,docker,grafana,jmeter

 

granfana配置

我们在前面已经完成了grafana的部署启动,访问http://host-ip:3000使用admin/admin即可登录配置管理后台,如果不想修改密码可以选择跳过。

【Docker】性能测试监控平台搭建:InfluxDB+Grafana+Jmeter+cAdvisor,docker,grafana,jmeter

 

配置Granfana数据源

选择数据库类型为influxdb,host为http://influxsrv:8086,填写cadvisor的账户密码:

【Docker】性能测试监控平台搭建:InfluxDB+Grafana+Jmeter+cAdvisor,docker,grafana,jmeter

保存之后,点击保存并测试:

【Docker】性能测试监控平台搭建:InfluxDB+Grafana+Jmeter+cAdvisor,docker,grafana,jmeter

添加Dashboard

点击左侧的 + 号,选择Dashboard,选择graph

【Docker】性能测试监控平台搭建:InfluxDB+Grafana+Jmeter+cAdvisor,docker,grafana,jmeter

进入心界面后,选择title,选择编辑

【Docker】性能测试监控平台搭建:InfluxDB+Grafana+Jmeter+cAdvisor,docker,grafana,jmeter

在展示数据配置界面选择一个数据源,比如内存,点击保存,即可完成该数据的动态展示:

【Docker】性能测试监控平台搭建:InfluxDB+Grafana+Jmeter+cAdvisor,docker,grafana,jmeter

在配置界面Axes选项卡中配置相关的显示单位。可以根据实际的情况选择监控的单位。,因为我们监控的内存,所以选择的是相关的单位。

【Docker】性能测试监控平台搭建:InfluxDB+Grafana+Jmeter+cAdvisor,docker,grafana,jmeter

至此, 所有配置步骤完成,简单配置了两个图像:

【Docker】性能测试监控平台搭建:InfluxDB+Grafana+Jmeter+cAdvisor,docker,grafana,jmeter

配置Jmeter监控

是不是很奇怪怎么说了那么久还是没有说到怎么配置Jmeter的监控?其实做完前面的事情,我们的测试环境就已经搭建完了,在接入数据库之前我们可以使用前面的方法在influxdb建一张叫Jmeter的表,然后在启动测试之前选择添加一个后端监听器,并选择为 influxdb ,数据库连接配置修改为我们搭建的真实host就可以运行测试了,数据都会写入Jmeter这张表,剩下的就是如何配置第一张图那样的花里胡哨的东西把它展示出来:

【Docker】性能测试监控平台搭建:InfluxDB+Grafana+Jmeter+cAdvisor,docker,grafana,jmeter

下图是我简单选择的几个维度生成的监控图像,红框标出的是可以选择的各种指标,还有一部分没有罗列出来,可以根据实际情况进行选择:

【Docker】性能测试监控平台搭建:InfluxDB+Grafana+Jmeter+cAdvisor,docker,grafana,jmeter

总结

前面介绍的都是压力机的配置,实际上性能测试还需要搭建性能测试环境、进行代码埋点等。

代码埋点我们是通过写一些公共的类库,比如在操作redis、DB的方法的封装中添加;

压测环境部署我们使用的是helm(基于k8s)封装chart文件夹的方式完成的,可以快速的集成,再结合Jenkins快速的完成性能自动化的持续集成。


资料获取方法

【留言777】

【Docker】性能测试监控平台搭建:InfluxDB+Grafana+Jmeter+cAdvisor,docker,grafana,jmeter

【Docker】性能测试监控平台搭建:InfluxDB+Grafana+Jmeter+cAdvisor,docker,grafana,jmeter

各位想获取源码等教程资料的朋友请点赞 + 评论 + 收藏,三连!

三连之后我会在评论区挨个私信发给你们~文章来源地址https://www.toymoban.com/news/detail-634992.html

到了这里,关于【Docker】性能测试监控平台搭建:InfluxDB+Grafana+Jmeter+cAdvisor的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 轻松打造智能化性能测试监控平台:【JMeter+Grafana+Influxdb】的优化整合方案

    目录 【引言】 【背景说明】 【实现原理】 【平台搭建】 方法一:Windows或macOS环境下搭建 1.InfluxDB安装 2.grafana安装 3.jmeter配置 方法二:Linux环境下搭建 1.influxdb安装 2.grafana安装 3.jdk+jmeter安装 方法三:docker容器下安装 1.influxdb安装并运行(选择2.0以下版本) 2.grafana安装并运行

    2024年02月06日
    浏览(43)
  • 高效性能监测解决方案:Docker+Jmeter+InfluxDB+Grafana搭建强大性能监测平台,文末获取实用干货大礼包!

    为什么要搭建性能监控平台? 1.1 需求背景 在用 Jmeter 获取性能测试结果的时候, Jmeter 本身带有聚合报告如下图所示: 这个报告有几个很明显的缺点: 只能自己看,无法实时共享; 报告信息的展示比较简陋单一,不直观; 1.2 需求方案 为了解决上述问题,必须要请出了 I

    2024年02月02日
    浏览(34)
  • 性能技术分享|Jmeter+InfluxDB+Grafana搭建性能平台(四)

    四、Jmeter配置InfluxDB 4.1 后端监听器(BackendListener)介绍 1、什么是后端监听器(BackendListener)? 源码给出的解释是:BackendListener是一种异步监听并获取到测试结果的实现类。 也就是说发出的如http等响应请求的结果,都会被封装在SampleResult对象中并被其监听接收。 源码如下: /**

    2024年02月02日
    浏览(42)
  • Docker-Compose 轻松搭建 Grafana+InfluxDb 实用 Jmeter 监控面板

    目录 前言: 1、背景 2、Granfana+InfluxDB 配置 2.1 服务搭建 2.2 配置 Grafana 数据源 2.3 配置 Grafana 面板 3、Jmeter 配置 3.1 配置 InfluxDB 监听器 3.2 实际效果 Grafana 和 InfluxDB 是两个非常流行的监控工具,它们可以帮助开发者对系统的性能和可用性进行实时监控。 前几天刚做了一个在

    2024年02月16日
    浏览(47)
  • 性能监控平台 | Prometheus+InfluxDB + Grafana!

    在本文中,我将把几个常用的监控部分给梳理一下。前面我们提到过,在性能监控图谱中,有操作系统、应用服务器、中间件、队列、缓存、数据库、网络、前端、负载均衡、Web 服务器、存储、代码等很多需要监控的点。显然这些监控点不能在一个专栏中全部覆盖并一一细化

    2024年02月13日
    浏览(70)
  • 性能监控平台:基于 Prometheus+InfluxDB + Grafana|果断收藏

    在本文中,我将把几个常用的监控部分给梳理一下。前面我们提到过,在性能监控图谱中,有操作系统、应用服务器、中间件、队列、缓存、数据库、网络、前端、负载均衡、Web 服务器、存储、代码等很多需要监控的点。显然这些监控点不能在一个专栏中全部覆盖并一一细化

    2024年02月07日
    浏览(42)
  • Jmeter+Influxdb+Grafana搭建

    在无界面压测情况下,我们需要去额外搭建可视化观测平台。借助于Influxdb+Grafana,我们可以轻松让Jmeter的结果自动写入Influxdb,Influxdb实时存储运行结果,最后由Grafana作为展示 无界面运行需要修改配置(jmeter.properties) jmeter.save.saveservice.response_data=true jmeter.save.saveservice.outp

    2024年03月09日
    浏览(65)
  • 教你搭建一个Telegraf+Influxdb+Grafana 监控系统

    摘要: 本文利用华为HECS云服务器进行监控系统部署。 本文分享自华为云社区《使用华为HECS云服务器打造Telegraf+Influxdb+Grafana 监控系统【华为云至简致远】》,作者: kaliarch 。 在所有现有的现代监控工具中,TIG(Telegraf、InfluxDB和Grafana)可能是最受欢迎的工具之一。 该堆栈可

    2023年04月27日
    浏览(46)
  • docker容器监控:Cadvisor+InfluxDB+Grafana的安装部署

    目录 Cadvisor+InfluxDB+Grafan安装部署 1、安装docker-ce 2、阿里云镜像加速器 3、下载组件镜像 4、创建自定义网络 5、创建influxdb容器 6、创建Cadvisor 容器 7、查看Cadvisor 容器: (1)准备测试镜像 (2)通过http://192.168.100.132:8080端口访问测试 8、创建granafa容器 [root@huyang2 ~]# iptables -F

    2024年02月14日
    浏览(44)
  • 构建Docker容器监控系统(Cadvisor +InfluxDB+Grafana)

    目录 案例概述 Cadvisor +InfluxDB+Grafana 1.1、 Cadvisor  1.2、InfluxDB 1.3、Grafana 1.4、监控组件架构 1.5、开始部署 安装docker-ce 阿里云镜像加速器 创建自定义网络 创建influxdb容器         Docker作为目前十分出色的容器管理技术,得到大量企业的青睐,在生产环境中使用Docker容器部

    2024年02月14日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包