ドッカー+のJMeter + InfluxDB + Grafanaを開始するために容器内の圧力を測定しました

1、JMeterのミラーをカスタマイズする自由:

Dockerfileファイル:

Javaから:8 
#ベース画像

MAINTAINERのyangjianliang < [email protected] >
#著者

ENV http_proxyに""
ENV HTTPS_PROXY ""

RUNのMKDIR /テスト&& \
chmodの-R 777 /テスト
#を作成/ testディレクトリJMXスクリプトを格納するための、 JTL結果ファイル、HTMLファイルのテストレポート

ENV JMETER_VERSION = 5.1.1
ENV JMETER_HOME = は/ usr /ローカル/ 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 / /ローカル&& \
タールのApache-のJMeter -xzvf - $ { JMETER_VERSION}の.tgz
#解凍JMeterのの
解凍の必要性が、このステップCOPYではないとした後、それは、UbuntuのかCentOSのミラー上にある場合#

RUNセッド-i '$ 。sampleresult.default.encoding 8 UTF =' は/ usr /ローカル/ Apacheの-のJMeter - $ { JMETER_VERSION} /ビン/jmeter.properties && \ セッド-i '159S / 256/512 / G' は/ usr /ローカル/ Apacheの-のJMeter - $ { JMETER_VERSION}
/ binに/ JMeterの
#JMeterの変更設定ファイル

RUN LNは-snf は/ usr /報告このコンテンツ共有/ zoneinfoの/アジア/上海上の/ etc / localtimeの&& \
エコー"上海にアジア/" >の/ etc /タイムゾーン
#は、タイムゾーンを設定します

 

ドッキングウィンドウのビルド-t JMeterの。

#JMeterのミラーパッケージ

mkdirテスト

#現在のディレクトリパスでテストを作成します。

ドッキングウィンドウの実行-d -it --name jmeter5.1.1 -v $ PWD /テスト:/テストのJMeter

#スタート

ドッキングウィンドウのexec -it jmeter5.1.1 / binに/ bashの

コンテナの内部へ#

javaの-version

#ビューJavaのバージョン

JMeterの-v

#ビューJMeterのバージョン

出口

#終了

2、InfluxDB

ドッキングウィンドウプルinfluxdb

#プルinfluxdb公式画像

mkdir influxdb

#カレントディレクトリのホスト局の下influxdbのディレクトリを作成します。

ドッキングウィンドウの実行-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:

等待一会儿:

 

おすすめ

転載: www.cnblogs.com/yjlch1016/p/12232722.html