Skip to content
yanjiang.liu edited this page Mar 23, 2023 · 28 revisions

QA

1、录制报错:Error: Unable to access jarfile xxx\tools.jar

具体描述: 本地启动是通过java -jar 方式拉起agent,如果用户jdk安装目录包含空格,这种方式会截断jdk目录导致找不到文件。例如下面用户安装目录 D:\Program Files\Java\jdk1.8\jdk1.8.0_192 Program Files目录就存在这个问题。

解决办法: 1、修改jdk安装路径,不要包括空格

2、任务启动控制台持续输出异常:transform method call failed at JPLISAgent.c line:844

具体描述: 个别人遇到本地启动持续输出异常:transform method call failed at JPLISAgent.c line:844,agent启动失败

解决办法: 反编译sandbox-stable-bin.tar这个文件,找到SandboxClassLoader这个类,去掉loadFromBizClassLoader这个方法,然后重新打个tar包。sandbox打包tar包执行sandbox-packages.sh就能输出。

3、启动jvm参数要包括应用标识这句话怎么理解?

问题描述: 在创建录制任务模板的时候需要填写应用名称,这个应用名称到底应该填写什么?

问题解答: 这个应用名称是你要录制的应用名(这里假设你的应用名是my_app),你在前端这里就要填写my_app。my_app应用启动进程jvm参数上面也同样要包括这个my_app标识,例如你执行jps -v可能得到这样的结果:14976 MoonBoxApplication -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:57350,suspend=y,server=n -Dapp.id=my_app。我们任务启动的时候首先会执行ps- aux | gerep java | grep my_app 获取到my_app进程14976,然后将agent attach到这个进程上面去。

4、执行远程任务脚本的时候,有很多机器没有安装dos2unix命令,启动任务报错

具体描述: 执行远程任务脚本的时候,有很多机器没有安装dos2unix命令 解决办法: 1、机器安装dos2unix命令。2、试试直接去掉dos2unix这个命令看看能不能启动 。

5、前端启动任务后agent状态一直是离线

具体描述: 前端启动任务后agent状态一直是离线,可能是下面几种可能 解决办法: 1、查看下上报的任务心跳行编码是否能对不,相关逻辑在MoonboxHeartbeatTask类里面,一个进程只能同时存在一个任务,先排查是否有其他任务在线关闭下。 2、在控制台日志里面查看下任务是否启动报错,如果有报错需要排查下。

6、agent启动成功但是录制不到数据

具体描述: agent启动成功但是录制不到数据 解决办法: 1、先确保agent是否启动成功,查看任务执行列表agent状态是否在线。 2、如果在线查看任务模板里面是否配置了要采集的接口,最直接点可以填写.*,录制所有流量。 3、自行debug。如果是HTTP接口,debug 下 HttpStandaloneListener sample这个方法,采样的逻辑在这里,看看流量是否被采样了。4、如果被采样debug HttpStandaloneListener on finish方法,这里最终将流量上报给服务端。查看这里是否有异常。

7、前端编译构建失败

具体描述: 前端编译构建失败,例如像出现checking for Python executable "Python2" in the PATH 解决办法: 1、先查看下自己的node版本,是否是官方指定的建议12.10.0,如果版本高依赖了一些组件可能编译不过去。2、如果本地没问题运行了npm run build这种命令控制台有报错但是dist目录生成了,这种不影响,这个报错是gulp低版本的问题,后面我们升级一下。

8、录制HTTP接口出现乱码

具体描述: 录制流量发现中文乱码 解决办法: 在业务项目的启动参数中增加:-Dfile.encoding=UTF-8即可。