- arthas相关地址:https://www.yuque.com/arthas-idea-plugin
- wathch(其他类似)的2个重要ognl表达式
wathch com.xxx.Yyy {1} -v -x 3 -n 3 {2}
- {1}:观察表达式,控制打印成什么样子
- {2}:条件表达式,控制{1}是否打印
- {1}处,如果是列表,那么可以进行投影操作,如: "params[0].{#this.id}";
- {1}处的作用,有时候参数嵌套太深,即使
-x 4
都不一定能看到具体值,那么这时候就有必要使用ognl表达式处理下参数,让参数层数少点
- ognl表达式如果是list,那么获取属性(投影)需要用花括号,如:
params[0].{#this.id}
,并且可以级联操作 params[0].{#this.id}.{#this}
,只要不是最后一步,似乎不要#this
也行
- ognl表达式如果不是list,那么获取属性不需要花括号,如:
params[0].userName
- 对于偶发性的bug,可以使用watch+异步任务,如:
watch *DeveloperController process "params[0].{#this.id}" -v -x 3 > /Users/wangdehai/logs/arthas/aa.log &
, 后台执行,一天只出现一次问题排查
- Arthas的一些特殊用法文档说明
- 关于ognl表达式,随便找两个帖子看一下就明白了
- 关于tennel配置如下:
arthas.app-name = ${spring.application.name}
server.port=8081
arthas.http-port = -1
arthas.telnet-port = -1
arthas.tunnel-server = ws://localhost:7777/ws
- 启动服务:java -jar arthas-tunnel-server-3.7.2-fatjar.jar --arthas.enableDetailPages=true
- tunnel的app列表地址:
localhost:8080/apps.html
- 关于tunnel有没有必要,如果服务每个节点只有1个,并且能够进入到容器,那么直接telnet进入操作即可,如果服务节点比较多,或者无法进入到容器,那么就有必要使用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律