Cubic 是一个对应用透明,无侵入的java应用诊断工具,用于提升开发人员的诊断效率和能力。
Cubic 的目标是一站式java应用诊断解决方案,让开发人员无需登录机器或修改系统,就可以从日志、内存、线程、类信息、调试、机器和系统属性等各个方面对应用进行诊断,提升开发人员诊断问题的效率和能力。
Cubic 可调用内部自定义命令和动态加载arthas使用arthas 命令集。
因为很多公司使用监控需要进行定制化开发,Cubic 可作为一种技术参考,希望给大家带来些许启发。
技术体系:Spring Boot、Vue、Netty、Websocket、xterm等。
目录结构
agent-dist 存放打包的agent.jar(打包后出现)
agent-proxy-dist 存放打包的proxy.jar(打包后出现)
arthas-dist 用于支持arthas命令集
config agent配置文件
cubic-agent agent start
cubic-core agent核心
cubic-proxy 代理应用,目前集成了简单的页面
cubic-ui UI,持续开发中,欢迎大神来修bug,打包完 将dist目录数据拷贝到cubic-proxy resources/static下
docs 文档
scripts 包含打包脚本、启动脚本(用于测试)
使用说明
1、agent 加载如下,将agent-dist整体拷贝到一个目录进行加载,里面的结构请不要进行变动,不要单独拷贝一个jar java -jar -javaagent:/xxx/agent-dist/cubic-agent.jar yyy.jar
2、启动代理服务 ,用于连接agent 和web java -jar cubic-proxy.jar
3、访问web ui localhost:6080
正常启动后会有数据上报到服务端,可在首页进行查看,点击唯一标识跳转到命令模式--点击connect 进入可进行重新连接。
4、命令分为两部分,输入1 基础命令, 3位arthas 命令,输入1 然后输入help 可查看帮助。
5、也可以直接进入命令模式,使用search 命令来查询我们项目配置的agent, 比如在agent config 我们配置了参数 agent.service_name = cubic,则进行查询并获取到应用的agentId(如果使用quick_start启动的,因为增加了-Dcubic.agent.service_name=cubic-proxy ,所以我们可以使用cubic-proxy查询ID )。
6、然后将agentId 填入上面的输入框 点击connect 按钮重新加载,则进入当前应用的命令模式,输入3,切换到arthas 命令,就可以使用了。
Cubic java应用诊断工具 更新日志
v1.4.2
1、修复Arthas 的一些小bug
2、完善序列化协议的处理方式