arthas进阶版排查问题之idea插件工具操作

arthas前面的文章讲了怎么去使用命令排查线上问题,线上出了问题就需要我们去排查问题和处理程序异常,但是线上一般出问题不太好解决,总有一些奇怪的问题,当然很多场景是测试测试不到的,我们不能百分百保证线上不出问题,但是出了问题就需要排查问题。那么定位问题的核心在于分析业务场景,出现问题的根本在哪里,分析问题也很重要,当然定位不到问题我们可以借助第三方工具去排查和解决。

idea插件工具:arthas idea

arthas进阶版排查问题之idea插件工具操作_第1张图片

 为啥要使用插件因为在线上问题出现你可以快速使用命令去监听,因为arthas的命令比较多常用的trace,monitor,watch都是常用命令。当然我们在实际场景下去写命令显得有点麻烦,这个时候就用到我们的插件了。

右键属性值或者注入的配置都可以:

arthas进阶版排查问题之idea插件工具操作_第2张图片

arthas进阶版排查问题之idea插件工具操作_第3张图片

 这里面包含了全部使用命令,比如watch,trace,monitor,statck,还有springbean上下文,静态方法等。

 watch com.*.service.impl.WechatAuthEventServiceImpl *  '{params,returnObj,throwExp,target.wechatConfig}'  -n 5  -x 3 'method.initMethod(),method.constructor!=null || [email protected]@isStatic(method.method.getModifiers())'

trace -E com.*.provider.service.impl.WechatAuthEventServiceImpl \\* -n 5  --skipJDKMethod false '1==1'

monitor com.*.service.impl.WechatAuthEventServiceImpl *  -n 10  --cycle 10 

stack com.v*.service.impl.WechatAuthEventServiceImpl *  -n 5 

不是所有的熟悉都可以监听的,我们程序执行的结果我们也会命令监听不了,

arthas进阶版排查问题之idea插件工具操作_第4张图片

 这时候我们可以使用:vmtool 命令去打印我们对象属性值,通过

vmtool -x 3 --action getInstances --className org.springframework.core.env.ConfigurableEnvironment  --express '#standardServletEnvironment=instances[0],#allProperties={},#propertySourceIterator=#standardServletEnvironment.getPropertySources().iterator(),#propertySourceIterator.{#key=#this.getName(),#allProperties.add("                "),#allProperties.add("------------------------- name:"+#key),#this.getSource() instanceof java.util.Map ?#this.getSource().entrySet().iterator.{#key=#this.key,#allProperties.add(#key+"="+#standardServletEnvironment.getProperty(#key))}:#{}},#allProperties' 

JVM(TM) Tool Interface 1.2.3

这样可以快速的定位和追踪我们程序执行的一些参数和内存信息。学会了吗?

 ————没有与生俱来的天赋,都是后天的努力拼搏(我是小杨,谢谢你的关注和支持)

你可能感兴趣的:(java服务,intellij-idea,java,ide)