【Arthas】Arthas使用watch命令(生产上查看方法出入参和出参)

在这里插入图片描述

1.概述

watch可以监测一个方法的入参和返回值

有些问题线上会出现,本地重现不了,这时这个命令就有用了

参数名称参数说明
class-pattern类名表达式匹配
method-pattern方法名表达式匹配
express观察表达式
condition-express条件表达式
[b]「方法调用之前」 观察
[e]「方法异常之后」 观察
[s]「方法返回之后」 观察
[f]「方法结束之后」 (正常返回和异常返回)观察,「默认选项」
[E]开启正则表达式匹配,默认为通配符匹配
[x:]指定输出结果的属性遍历深度,默认为 1

观察getOrderInfo的出参和返回值,出参就是方法结束后的入参

watch cn.test.mobile.controller.order.OrderController getOrderInfo "{params,returnObj}" -x 2

Press Q or Ctrl+C to abort.
Affect(class-cnt:1 , method-cnt:1) cost in 456 ms.
ts=2019-11-13 15:30:18; [cost=18.48307ms] result=@ArrayList[
    @Object[][  # 这个就是出参,params
        @RequestFacade[org.apache.catalina.connector.RequestFacade@1d81dbd7],
        @LinkedHashMap[isEmpty=false;size=2], # 把遍历深度x改为3就可以查看map里的值了
    ],
    @ResponseVo[ # 这个就是返回值 returnObj
        log=@Logger[Logger[cn.test.db.common.vo.ResponseVo]],
        success=@Boolean[true],
        message=@String[Ok],
        count=@Integer[0],
        code=@Integer[1000],
        data=@HashMap[isEmpty=false;size=1],
    ],
]

观察getOrderInfo的入参和返回值

watch cn.test.mobile.controller.order.OrderController getOrderInfo "{params,returnObj}" -x 3 -b

Press Q or Ctrl+C to abort.
Affect(class-cnt:1 , method-cnt:1) cost in 93 ms.
ts=2019-11-13 15:37:38; [cost=0.012479ms] result=@ArrayList[
    @Object[][
        @RequestFacade[
            request=@Request[org.apache.catalina.connector.Request@d04e652],
            sm=@StringManager[org.apache.tomcat.util.res.StringManager@7ae7a97b],
        ],
        @LinkedHashMap[
            @String[payNo]:@String[190911173713755288],
            @String[catalogId]:@String[6],
        ],
    ],
    null,# -b是方法调用之前观察,所以还没有返回值
]

如果需要捕捉异常的话,使用throwExp,如{params,returnObj,throwExp}

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
生产环境中使用Arthas时,需要注意一些安全性和稳定性的考虑。下面是一些建议: 1. 预先规划:在使用Arthas之前,应该提前规划好其使用场景和目标,并确保只有授权的人员能够访问和使用Arthas。 2. 安全配置:为了保护Arthas的安全性,可以采取以下措施: - 限制Arthas的远程访问,只允许特定IP或特定用户进行远程连接。 - 设置Arthas的访问密码,以防止未授权的人员使用。 - 定期更新Arthas版本,以获取最新的安全修复和功能改进。 3. 功能限制:在生产环境中,建议限制Arthas使用功能,只开放必要的功能给运维人员使用。避免过多地修改和调试生产系统。 4. 调试风险:在生产环境中进行调试操作可能会带来一定的风险。因此,需要谨慎使用Arthas的调试功能,并确保在调试过程中不会对生产系统造成影响。 5. 日志记录:在使用Arthas时,建议记录相关操作和输出结果,以便后续审计和故障排查。 6. 定期审查:定期审查Arthas使用情况,包括访问日志、操作记录等,以确保其正常和安全使用。 此外,为了确保生产环境的稳定性和安全性,请在生产环境中使用Arthas之前先在非生产环境进行充分的测试和评估。并建议事先备份重要的数据和代码,以防止意外的问题发生。 总之,使用Arthas需要谨慎并遵循最佳实践,确保其在生产环境中的合理和安全的使用

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九师兄

你的鼓励是我做大写作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值