在性能测试中,有同学问起GoReplay 这个监控工具。今天就给大家准备这方面的笔记。先收藏,再点赞,接着咱们一起看。
1.介绍
GoReplay是一个开源的网络监控工具,它可以记录你的实时流量,并用于跟踪、负载测试、监控和详细分析。GoReplay提供了一种unique approach for shadowing方式:GoReplay不是以代理形式,而是监听网络接口上的流量,不需要对生产基础设施进行任何更改,而是在与服务相同的机器上运行GoReplay守护进程。
2.安装
首先安装Golang及相关依赖环境
安装GoReplay
3.使用
命令行使用
捕捉流量并通过终端输出
上述命令将监控8083端口上所有的流量,并通过终端stdout输出。你可以通过浏览器或者curl访问8083端口,然后在终端查看gor输出所有的http请求。
捕捉流量并实时同步到另一台机器
上述命令将8000端口的流量实时同步访问http://example:8001服务器,你在访问第一台服务器时,将看到流量以相同的顺序请求到第二台。
将捕捉流量保存到文件中,然后释放到其他机器
-
首先通过–output-file 保存流量(有时候实时同步流量是很难做到的, 所以Goreplay提供了这种先保存后释放的模式:)
上述命令将8000端口的流量,保存到requests.gor文件中(必须是.gor后缀,其它后缀经测释放时有问题)。
2.释放保存的流量
上述命令将释放所有保存在requests.gor中的请求通过相同的时间顺序释放到服务器http://另个服务器ip:8001。
Goreplay的限速机制和请求过滤
限速机制
由于生产服务器配置一般远高于测试服务器配置,所以直接将生产服务器全部流量同步到测试服务器是不可行的,Goreplay提供了两种策略:
-
限制每秒的请求数
2.基于Header或URL的参数限制一些请求,为指定的Header或者URL的请求设定限制的百分比
请求过滤
当需要捕捉指定路径的请求流量时,可以使用该机制,如只同步/api路径下的请求
性能测试
性能测试,可以不考虑请求的顺序和速率,并且要求无限循环
表示放大2倍速度来回放
回放速率不超过10QPS(绝对值)
回放不超过原流量的10%(百分比,这里是总流量的占比)
以上就是关于GoReplay工具的详细操作笔记,有环境的同学可以跟着笔记操练起来。
联系我们领取最新就业资讯、简历模板、面试题、试学课程等资料