我想对 Influx 进行负载测试,如何重放最近执行的查询?我在 Google 上没有找到任何有意义的内容。
答案1
您可以通过以下方式获取查询:
docker logs $MYCONTAINER --since "10m" |& grep -o -P "query=\K.+" | sed 's/^.//;s/.$//' > out.txt
然后使用以下命令执行它们:
cat out.txt | xargs -I _ docker run -t --rm influxdb:1.8-alpine influx -host MYHOST -port 8086 -username USER -password PASS -database DB -execute _
要测量每个查询所花费的时间,您可以在流入框上运行
sudo strace -p $(pgrep influxd) -f -e write -t -s 512 |& grep "write(1,"
解释:
strace
监听系统调用。
-f
标志查找并挂接到任何子进程。-e
监听特定的系统调用-t
显示时间戳-s
设置要显示的数字字符
有了grep
,我们想避免网络系统调用,所以我们只查看文件描述符stdout
。