- 日志目录
- 获取ip错误
- agent attach时加载初始化类失败
- windows 环境暂时不支持
- 在线debug暂时不支持github仓库的源码调试
- jdk版本
- 端口问题
- 在线debug时,前端界面上对象值显示
object size greater than ***kb
- 在线debug时 前端界面右上角提示 *** 代码查看仅可通过反编译
模块 | 输出的具体文件夹 |
---|---|
1. agent | 解压缩目录/bistoury-agent-bin/logs |
2. proxy | 解压缩目录/bistoury-proxy-bin/logs |
3. ui | 解压缩目录/bistoury-ui-bin/logs |
4. attach到应用中的部分 | 应用进程所属用户的主目录/logs/ |
在使用快速脚本时出现的情况较多,往往表现为在ui上调用命令时
-
websocket连接失败
-
no proxy for agent
原因是本机可能存在多个ip,导致获取的ip不是当前正在使用的ip(获取到的ip可以在各个日志中查看,也可以在应用中心查看),从而出错,
可以通过quick_start.sh
脚本中的-i参数指定当前的ip。
例子 :
./quick_start.sh -i 127.0.0.1 -p 1024 start
往往表现为在ui上调用命令时报"can not init bistoury, start arthas error","Agent JAR loaded but agent failed to initialize",同时在agent的log中也会有一样的错误日志。
这时去“应用进程所属用户的主目录/logslogs/arthas/arthas.log”中查找日志,如果发现错误"can not find lib class",那么可以确定是这个问题。
原因是agent在初始化时需要加载一个初始化类,也就是快速启动脚本-c所指定的类。这个类应当是应用已加载的依赖的jar包中的类,默认是spring的org.springframework.web.servlet.DispatcherServlet,往往非spring应用没有特殊指定会报这个错。
解决办法就是指定一下相应的类名,因为不能是agent使用到的类,推荐使用用户自身中间件jar包或者spring中类(注意要是已加载的类),如果使用业务类,可能导致小部分功能不可用。
例子 :
./quick_start.sh -c org.springframework.web.servlet.DispatcherServlet(不要照抄) -p 1024 start
如果自身依赖中有相应的类,但是还是报"can not find lib class",这种情况应该是类没有加载。
"can not find lib class"下面一行从“begin print all loaded classes”开始,会打印所有已加载的类名,可以从这里进行确认。
暂时不包含windows下的一键启动脚本, 但是支持通过ide来启动.
在线debug默认对反编译后代码进行debug,可以通过关联代码仓库使用源码,目前仅支持gitlab,github暂不支持。
暂时只支持包括jdk7\jdk8在内的应用, 没有测试过低于jdk7的版本, jdk9以上改动比较大, 暂时不支持.
模块 | 最低jdk版本 |
---|---|
1. agent | jdk7 |
2. proxy | jdk8 |
3. ui | jdk8 |
如果是使用快速启动脚本,需使用JDK8
手动指定JDK目录(例如目录为
/bin/jdk
) :./quick_start.sh -j /bin/jdk -p 1024 start
端口 | 作用 |
---|---|
1. 9880 | agent和proxy通信默认使用9880端口 |
2. 9881 | ui和proxy通信默认使用9881端口 |
3. 9090 | proxy默认使用9090端口 |
4. 9091 | ui默认使用9091端口 |
5. 9092 | h2数据库默认使用9092端口 |
端口 | 端口定义的位置 |
---|---|
9880 | 解压缩目录/bistoury-proxy-bin/conf/global.properties 中的agent.newport 值 |
9881 | 解压缩目录/bistoury-proxy-bin/conf/global.properties 中的server.port 值和quick_start.sh 中PROXY_WEBSOCKET_PORT 的值 |
9090 | 解压缩目录/bistoury-proxy-bin/conf/server.properties 中的tomcat.port 值和quick_start.sh 中PROXY_TOMCAT_PORT 的值 |
9091 | 解压缩目录/bistoury-ui-bin/conf/server.properties 中的tomcat.port 值 |
9092 | 解压缩目录/h2/h2.sh 中的H2_PORT值 |
序列化有大小限制(默认10240kb),超过阈值的对象会停止序列化,在前端界面上对象值显示为object size greater than ***kb
解压缩目录/conf/agent_config.properties中debug.json.limit.kb属性可以配置其阈值
只是一个警告,代表不能查看应用对应的源码
-
没有配置private token,代码查看仅可通过反编译
代表没有配置gitlab仓库源码的私有token,不能通过gitlab仓库直接查看源码,只能通过反编译查看代码
-
release info 解析失败,*** ,代码查看仅可通过反编译
代表没有读取到releaseInfo.properties文件,不能根据此文件,找到应用对应的源码信息。