欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 幼教 > Arthas在线诊断案例实战整理

Arthas在线诊断案例实战整理

2024/10/25 9:29:03 来源:https://blog.csdn.net/shupili141005/article/details/140693615  浏览:    关键词:Arthas在线诊断案例实战整理

会一直持续更新。。。

Arthas - Java 应用诊断利器
Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。

工欲善其事,必先利其器

arthas idea 插件 - 汪小哥

monitor/watch/trace 相关

https://arthas.aliyun.com/doc/commands.html#monitor-watch-trace-%E7%9B%B8%E5%85%B3

  • watch - 方法执行数据观测
  • stack - 输出当前方法被调用的调用路径
  • trace - 方法内部调用路径,并输出方法路径上的每个节点上耗时
  • tt - 方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测

SkyWalking链路追踪

观测CorrelationContext.put(key, value)操作后,关联上下文的状态变化过程

[arthas@1]$ watch org.apache.skywalking.apm.agent.core.context.CorrelationContext put '{params,target,returnObj}'  -n 5  -x 3 ts=2024-06-10 15:01:22; [cost=0.134165ms] result=@ArrayList[@Object[][@String[scene-label],@String[biz-route],],@CorrelationContext[data=@ConcurrentHashMap[@String[scene-label]:@String[biz-route],],AUTO_TAG_KEYS=@ArrayList[@String[cyborg-flow],@String[scene-label],@String[scene-tag],],],
]ts=2024-06-10 15:01:22; [cost=0.01605ms] result=@ArrayList[@Object[][@String[cyborg-flow],@String[true],],@CorrelationContext[data=@ConcurrentHashMap[@String[scene-label]:@String[biz-route],@String[cyborg-flow]:@String[true],],AUTO_TAG_KEYS=@ArrayList[@String[cyborg-flow],@String[scene-label],@String[scene-tag],],],
]ts=2024-06-10 15:01:22; [cost=0.007927ms] result=@ArrayList[@Object[][@String[scene-tag],@String[stress-test],],@CorrelationContext[data=@ConcurrentHashMap[@String[scene-label]:@String[biz-route],@String[cyborg-flow]:@String[true],@String[scene-tag]:@String[stress-test],],AUTO_TAG_KEYS=@ArrayList[@String[cyborg-flow],@String[scene-label],@String[scene-tag],],],
]

观测提供者上下文拦截器ContextFilter.invoke(invoker, invocation)的调用对象

[arthas@7]$ watch org.apache.dubbo.rpc.filter.ContextFilter invoke '{params[1].getAttachments(),returnObj}'  -n 5  -x 3 ts=2024-06-10 15:16:30; [cost=24.479313ms] result=@ArrayList[@ObjectToStringMap[@String[traceid]:@String[0a57ddf0732748208240f278a248de88.66.17181765903061237],@String[x-request-id]:@String[0fe97869-15d9-452f-9374-228f23e56f43],@String[x-forwarded-proto]:@String[http],@String[sw8-correlation]:@String[c2NlbmUtbGFiZWw=:Yml6LXJvdXRl,Y3lib3JnLWZsb3c=:dHJ1ZQ==,c2NlbmUtdGFn:c3RyZXNzLXRlc3Q=],@String[timeout]:@String[5000],@String[generic]:@String[gson],@String[x-envoy-attempt-count]:@String[1],@String[remote.application]:@String[xxx-reactor-gateway],@String[sw8-x]:@String[0- ],@String[sw8]:@String[1-MGE1N2RkZjA3MzI3NDgyMDgyNDBmMjc4YTI0OGRlODguNjYuMTcxODE3NjU5MDMwNjEyMzc=-MGE1N2RkZjA3MzI3NDgyMDgyNDBmMjc4YTI0OGRlODguNjYuMTcxODE3NjU5MDMwODEyMzg=-0-bGVmaXQtcmVhY3Rvci1nYXRld2F5fHxzaXQ=-ZjdjNjRjNjcwYjcyNDkxZGFmNGQ5YTIyOTc5ZGZjZjdAMTkyLjE2OC4xMTAuMjUx-bnVsbC5nZXRBZHZlcnRpc2VDb25maWdOZXcoKQ==-c2l0L2xlZml0LWNtcy5zaXQuc3ZjLmNsdXN0ZXIubG9jYWw6MA==],@String[x-forwarded-client-cert]:@String[By=spiffe://cluster.local/ns/sit/sa/default;Hash=7e7ef818f1a9cd3156d98010276ff6004b5439ce8548d1b5972066e4138a8e0f;Subject="";URI=spiffe://cluster.local/ns/sit/sa/default],@String[id]:@String[605975],],
]@String[sw8-correlation]:@String[c2NlbmUtbGFiZWw=:Yml6LXJvdXRl,Y3lib3JnLWZsb3c=:dHJ1ZQ==,c2NlbmUtdGFn:c3RyZXNzLXRlc3Q=],

jvm 相关

https://arthas.aliyun.com/doc/commands.html#jvm-%E7%9B%B8%E5%85%B3

  • getstatic - 查看类的静态属性
  • vmtool - 从 jvm 里查询对象,执行 forceGc

SkyWalking链路追踪

关联上下文的自动跨度标签的键集合未配置未生效

【原因】可能是当时改了application.yml文件中的searchableTracesTags: ${SW_SEARCHABLE_TAG_KEYS:配置项,OAP和UI未重启。OAP和UI都需要配置和重启,这样才能一起生效。

1.业务应用侧skywalking-agent.jar使用方

[arthas@1]$ getstatic org.apache.skywalking.apm.agent.core.context.CorrelationContext AUTO_TAG_KEYS -x 3 
field: AUTO_TAG_KEYS
@ArrayList[@String[sw8_userId],@String[scene.label],@String[scene],
][arthas@1]$ getstatic org.apache.skywalking.apm.agent.core.conf.Config$Correlation AUTO_TAG_KEYS -x 3 
field: AUTO_TAG_KEYS
@String[sw8_userId,scene.label,scene][arthas@1]$ getstatic org.apache.skywalking.apm.agent.core.conf.Config$Correlation ELEMENT_MAX_NUMBER -x 3 
field: ELEMENT_MAX_NUMBER
@Integer[8]

2.SkyWalking OAP/UI服务端

[arthas@1]$ vmtool -x 3 --action getInstances --className org.apache.skywalking.oap.server.core.CoreModuleConfig  --express 'instances[0].searchableTracesTags' 
@String[http.method,http.status_code,rpc.status_code,db.type,db.instance,mq.queue,mq.topic,mq.broker,sw8_userId,scene.label,scene][arthas@1]$ vmtool -x 3 --action getInstances --className org.apache.skywalking.oap.server.core.config.SearchableTracesTagsWatcher  --express 'instances[0].searchableTags' 
@HashSet[@String[db.instance],@String[mq.topic],@String[http.status_code],@String[db.type],@String[scene.label],@String[mq.queue],@String[sw8_userId],@String[http.method],@String[rpc.status_code],@String[mq.broker],@String[scene],
]

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com