Docker+JMeter+InfluxDB+Grafana从容器内部发起压测

1、自由定制JMeter镜像:

Dockerfile文件:

FROM java:8# 基础镜像

MAINTAINER yangjianliang <[email protected]># 作者

ENV http_proxy ""ENV https_proxy ""

RUN mkdir /test && \    chmod -R 777 /test# 创建/test目录,用于存放jmx脚本、jtl结果文件、html测试报告文件

ENV JMETER_VERSION=5.1.1ENV JMETER_HOME=/usr/local/apache-jmeter-${JMETER_VERSION}ENV JMETER_PATH=${JMETER_HOME}/bin:${PATH}ENV PATH=${JMETER_HOME}/bin:${PATH}# 设置JMeter环境变量

COPY apache-jmeter-${JMETER_VERSION}.tgz /usr/local# 复制JMeter压缩包

RUN cd /usr/local && \    tar -xzvf apache-jmeter-${JMETER_VERSION}.tgz# 解压JMeter# 如果是基于Ubuntu或者CentOS的镜像,COPY之后不需要解压要这一步

RUN sed -i ‘$a sampleresult.default.encoding=UTF-8‘ /usr/local/apache-jmeter-${JMETER_VERSION}/bin/jmeter.properties && \    sed -i ‘159s/256/512/g‘ /usr/local/apache-jmeter-${JMETER_VERSION}/bin/jmeter# 修改JMeter配置文件

RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \    echo "Asia/Shanghai" > /etc/timezone# 设置时区

docker build -t jmeter .

# 打包JMeter镜像

mkdir test

# 在当前路径创建test目录

docker run -d -it --name jmeter5.1.1 -v $PWD/test:/test jmeter

# 启动

docker exec -it jmeter5.1.1 /bin/bash

# 进入容器内部

java -version

# 查看java版本

jmeter -v

# 查看jmeter版本

exit

# 退出

2、InfluxDB

docker pull influxdb

# 拉取influxdb官方镜像

mkdir influxdb

# 在宿主局当前目录下创建influxdb目录

docker run -d --name influxdb1.7.9 -p 8086:8086 -v $PWD/influxdb:/var/lib/influxdb influxdb

# 启动

暴露的端口:
8086 HTTP API端口
2003 Graphite支持
从1.1.0版开始不推荐使用管理员界面,并且将从1.3.0版中删除。

docker run --rm influxdb influxd config > influxdb.conf

# 生成默认配置文件

docker runn --rm表示在容器退出时自动清理内部的文件系统

会在宿主机当前目录下同步生成influxdb.conf配置文件

vim influxdb.conf

# 修改配置文件

把第96行enabled = false改为

enabled = true

把第98行database = "graphite"改为

database = "jmeter"

docker kill influxdb1.7.9

# 杀掉容器进程

docker rm influxdb1.7.9

# 删除容器

docker run -d --name influxdb1.7.9 -p 8086:8086 -p 2003:2003 -v $PWD/influxdb:/var/lib/influxdb -v $PWD/influxdb.conf:/etc/influxdb/influxdb.conf:ro influxdb

# 重启容器

docker exec -it influxdb1.7.9 /bin/bash

# 进入容器内部

influx

# 进入influx命令行

create database jmeter

# 创建jmeter数据库

show databases

# 查看所有数据库

use jmeter

# 切换到jmeter库

select * from jmeter

# 查看jmeter库里面所有的数据

exit

# 退出influx命令行

exit

# 退出容器

docker restart influxdb1.7.9

# 重启容器

docker inspect influxdb1.7.9

# 查看容器IP地址

3、发起压测

JMeter Backend Listener后端监听器:

influxdbMetricsSender:org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender
influxdbUrl:http://host_to_change:8086/write?db=jmeter,例如:http://172.17.0.5:8086/write?db=jmeter
application:application name,被测试的应用名称,例如:测试应用,此值也作为名为“application”的标记存储在“events”中
measurement:jmeter,使用默认的”jmeter“就行
summaryOnly:false,为true的情况下,只输出所有请求的集合数据报告,为flase的情况下,输出每条数据的详情报告
samplersRegex:.*,正则表达式将与样本名称匹配并发送到后端,默认匹配所有
percentiles:90;95;99,要发送到后端的百分位数,多个值已;分割
testTitle:Test name,测试名称,默认的设置为Test name,该值作为名为“text”的字段存储在“transaction”度量中
eventTags:自定义标签,可以根据需要添加任意数量的自定义标签,对于它们中的每一个,只需创建一个新行并在其名称前加“TAG_”

docker restart jmeter5.1.1

# 先把baidu.jmx脚本放到宿主机的$PWD/test目录下,然后重启容器,这样容器的/test目录也会同步

docker exec -it jmeter5.1.1 /bin/bash

# 再次进入容器内部

jmeter -JN=20 -JT=60 -n -t /test/baidu.jmx -l /test/baidu.jtl -e -o /test/html

# 发起压测

cat jmeter.log

# 查看日志,理论上没报错的话数据应该已经写入了InfluxDB

exit

# 退出容器

压测停止后,宿主机$PWD/test目录下也会同步生成baidu.jtl结果文件与html测试报告目录

4、Grafana

docker pull grafana/grafana

# 拉取grafana官方镜像

docker run -d -p 3000:3000 --name=grafana6.5.3 grafana/grafana

# 启动

docker exec -it grafana6.5.3 /bin/bash

进入容器内部

cat VERSION

# 查看版本

exit

# 退出容器

访问:

http://127.0.0.1:3000/

账号:admin

密码:admin

首次登录会要求修改密码并二次确认

添加数据源,使用InfluxDB:

添加仪表盘:

去官网选择一个模板:

https://grafana.com/grafana/dashboards?dataSource=influxdb

例如JMeter模板:

https://grafana.com/grafana/dashboards/5496

填入5496:

等待一会儿:

原文地址:https://www.cnblogs.com/yjlch1016/p/12232722.html

时间: 2024-08-09 00:22:37

Docker+JMeter+InfluxDB+Grafana从容器内部发起压测的相关文章

jmeter+influxdb+grafana性能测试监控

背景: 话说Jmeter原生的监控确实太丑了,听大佬们在讨论Jmeter+InfluxDb+Grafana的监控,于是,为了有一个漂亮的测试报告,就手动开始进行部署. 安装步骤: 1.influxdb下载安装: [[email protected] ~]# wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.0.x86_64.rpm --no-check-certificate [[email protected] ~]#

性能测试五十:Jmeter+Influxdb+Grafana实时数据展示系统搭建

上Grafana官网下载Grafana,此产品只有64位的版本,没有32位的 Influxdb:InfluxDB是一个开源的时序数据库,使用GO语言开发,特别适合用于处理和分析资源监控数据这种时序相关数据.而InfluxDB自带的各种特殊函数如求标准差,随机取样数据,统计数据变化比等,使数据统计和实时分析变得十分方便.上官网下载 因为jmeter要往infuxdb里面写数据,所以最好把这两个放在一台机器上,grafana只做展示infuxdb里面的数据,可以另外部署 jmeter实时数据展示系统

jmeter关联、下载文件、简单压测

关联 一.什么是关联 关联是请求与请求之间存在数据依赖关系,需要从上一个请求获取下一个请求需要回传回去的数据. 简单地说就是在测试过程中有些数据的值会经常发生变化,要获取并使用这些数据,把这个动态的信息保存下来,我们就要进行关联. 例如:用户登录后,session信息都不同,有些操作要使用session,就需要将这个动态的信息保存下来. 还有经常遇到的场景,第二个请求提交的参数要从第一个请求的返回数据中获取. 二.关联的用法 常用的两种关联用法 1.json  Path Extractor提取参

[docker] 用influxDB &amp; Grafana &amp; Telegraf &amp; Jmeter搭建服务监控平台

原文地址:https://www.cnblogs.com/allbetter/p/11072813.html

性能工具之JMeter+InfluxDB+Grafana打造压测可视化实时监控

一.安装配置InfluxDB InfluxDB是GO语言开发的一个开源分布式时序数据库,非常适合存储指标.事件.分析等数据.有人做过mysql和influxDB对比,存储1000万条数据mysql要7分多钟,influxDB只需2分多钟,从1000万条数据读10000条所需数据mysql要6秒多,influxDB只需0.22秒多.下面介绍安装过程. 1.下载链接:https://portal.influxdata.com/downloads#influxdb 2.安装 InfluxDB是绿色版,

性能工具之JMeter+InfluxDB+Grafana打造压测可视化实时监控(centos7环境)

前提条件,已经安装jmeter并可以运行 1.安装influxdata wget et https://dl.influxdata.com/influxdb/releases/influxdb-1.7.7.x86_64.rpm sudo yum localinstall influxdb-1.7.7.x86_64.rpm 2.修改influxdb配置 vim /etc/influxdb/influxdb.conf #进入influxdb配置文件,ubuntu默认配置文件地址 在命令模式输入/gr

Docker+JMeter+Nginx

基于JMeter5.1.1+Nginx1.12.2JMeter发起压测  Nginx作为文件服务器 一.目录结构: Dockerfile文件: FROM ubuntu:18.04# 基础镜像 MAINTAINER yangjianliang <[email protected]># 作者 RUN sed -i [email protected]/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list# 设置apt源为阿里

Docker+JMeter+File Browser

基于JMeter5.1.1+File Browser2.1.0  JMeter发起压测  File Browser作为文件服务器 一.目录结构: Dockerfile文件: FROM ubuntu:18.04# 基础镜像 MAINTAINER yangjianliang <[email protected]># 作者 RUN sed -i [email protected]/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.

Docker+JMeter单机版+MinIO

基于JMeter5.1.1+MinIO JMeter发起压测  MinIO作为文件服务器 一.目录结构: Dockerfile文件: FROM ubuntu:18.04# 基础镜像 MAINTAINER yangjianliang <[email protected]># 作者 RUN sed -i [email protected]/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list# 设置apt源为阿里云源 RU