压测报告中没有请求流量明细?

问题现象:

压测结束后查看压测报告,发现请求流量明细中没有数据

压测报告中没有请求流量明细?

排查思路:

1.surge 任务未启动

  • 进入容器内部 docker exec -it ${containerId} bash
  • 检查surge任务进程是否启动
    ps -ef | grep surge
    如果看到以下内容则说明任务启动正常
  • 如任务未启动,需要执行启动脚本将surge任务拉起
    nohup java -jar surge-deploy-1.0-jar-with-dependencies.jar '{"172.17.0.2":"192.168.1.220(修改为自己机器的对应ip)"}' > surge.out 2>&1 &
  • 启动后再次使用ps命令检查进程是否正常
  • 如果正常则可以尝试重新发起压测查看请求流量明细

2.surge 任务已启动但仍看不到请求流量明细

这里要分为两种情况:

(1)clickhouse集群存在问题

  • 首先执行service clickhouse-server status查看clickhouse集群运行状态
  • 如果看到以下内容,则证明集群正常,排除此问题
  • 如果执行命令后显示clickhouse是stopped状态,则需执行service clickhouse-server restart将集群重新启动
  • 启动后再次使用检测命令查看clickhouse集群状态
  • 如果正常则可以尝试重新发起压测查看请求流量明细

(2)cickhouse中无数据

  • 进入容器后可使用clickhouse-client -h 0.0.0.0 --password='rU4zGjA/'连接clickhouse,可使用select count(1) from t_trace_all查询请求流量表中是否有数据
  • 如果查询结果为0,则说明clickhouse中无数据
  • 出现这种问题的原因通常是agent和surge通信失败导致,首先进入应用agent日志输出目录,该目录默认为/app/logs_pradar
  • 该日志目录保存了所有接入agent的应用的相关日志,以应用名称为目录名称,我们需要找到自己所压测应用的目录,进入目录查看日志
  • 进入目录后首先我们查看simulator.log以及simulator-agent.log两个文件,通过error关键字检索有无异常信息,可以使用vim simulator.log 查看文件,使用/关键字搜索文件内容;如果看到下面的报错,则说明agent日志推送失败,则需要进一步排查日志推送失败的原因
  • 一般出现日志推送失败,通常是网络不通导致的服务建立链接失败,在上面我们启动surge任务的地方,我们填入了两个ip,左边的ip是容器ip,右边则是容器所在宿主机机器ip(注意,如非跨公网部署,这里的ip无需填入公网出口ip,只填入机器内网ip即可)。通常,左边的容器ip我们无需做修改,只需对右边的宿主机ip进行修改即可。
  • 在上面我们看到,agent是往192.168.1.220上推送日志的,同时,我们检查启动脚本发现,启动脚本中也是配置的该ip作为容器宿主机ip
  • 而我们通过ifconfig 命令发现,实际宿主机的网卡ip为192.168.1.138
  • 此时我们需要将surge任务启动命令中192.168.1.220修改为192.168.1.138(修改为自己机器的对应ip),并将surge任务进行重启,通过ps -ef | grep surge查询surge任务的PID,通过kill -9 PID 停止surge任务,通过nohup java -jar surge-deploy-1.0-jar-with-dependencies.jar '{"172.17.0.2":"192.168.1.138(修改为自己机器的对应ip)"}' > surge.out 2>&1 &重启surge
  • 最后,重新启动应用并发起压测,并观察clickhouse中请求流量表有无数据写入
  • 如果数据不为0且持续增加,则说明数据写入正常
  • 此时可回到页面,请求流量明细应正常展示

3.clickhouse中有数据但是页面上不显示

  • 如clickhouse中已有数据,但页面上仍查询不到,通常是业务活动配置错误导致
  • 常见出错的几个地方分别是:
    • 应用名称选择错误,如/gateway/api/register请求,实际为easydemo-gateway应用,可能被选成了easydemo-usercenter应用
    • 请求URL输入错误
    • 请求方法采用了小写或者大小写混合输入,如xxxx#get,xxxx#Get
    • 纠正以上输入错误信息,即可再次查看压测报告,此时应可正常显示

发布者:shulieNews,转载请注明出处:数列科技

发表评论

登录后才能评论
全球首款生产环境全链路压测平台Takin开源啦!