背景
目前输入法服务端的例行性能测试主要使用开源的流量回放工具goreplay,这个工具本身是做流量回放使用的,也可以在回放流量的时候缩小或者放大倍数,以达到性能测试的目的,但是毕竟不是专业做性能测试的工具,就像这句名言说的“不是他的活他要干”,所以对于结果统计,goreplay不是很擅长,为了让他支持客户端统计,需要对他做个升级;
说他不支持结果统计,其实有些冤枉他,goreplay自带命令行也是支持结果统计的,参数是:--stats --output-http-stats
加了这个命令行之后,控制台输出是这样的:
其中倒数第二列等同于当前的QPS,但是这就是仅有的统计项了,并没有区分返回码、响应时间、TP90、TP99等指标;
官网解释:开源的监控解决方案
prometheus的监控数据源,详细解释可参考https://www.investopedia.com/terms/m/metrics.asp
让goreplay支持实时metrics统计,在goreplay执行流量回放与性能测试时,实时统计出作为压测客户端的goreplay当前的QPS和响应时间等各项指标;
-output-http-compatibility-mode true
以启动结果统计;
http://10.1xx.xx.xx:28081/metrics
https://github.com/lidedede/gor
其中gor_ldd
是centos7编译的二进制,可以直接使用;附完整命令行:./gor_ldd --input-file "xxx.gor|1500%" --output-http http://10.1xx.xx.xx:1xxx --stats --output-http-stats --input-file-loop -output-http-workers 10000 -output-http-workers-min 5000 -output-http-compatibility-mode true