用途:Arthas 是 Java 应用在线诊断工具,本 Skill 包含多个子场景的诊断指南。使用时根据用户描述的问题匹配对应场景,按指南步骤逐步排查。
通用原则:先用低风险、只读命令收集信息,再按需使用有侵入性的命令;所有 watch / trace / tt / stack 等命令必须设置 -n(执行次数限制),避免对线上应用造成压力;输出结论时附上关键证据(命令输出摘要),并给出明确的下一步建议。
子场景一:CPU 飙高排查(cpu-high/SKILL.md)。适用机器 CPU 飙高、应用响应变慢、负载异常升高。步骤:dashboard 查看 CPU/线程/GC 概况;thread(topN)定位最忙线程及堆栈;根据堆栈判断方向(CPU 密集计算/锁竞争/GC 等);按需用 stack / trace / watch 进一步确认热点方法调用路径;输出诊断结论(现象、证据、初步结论、下一步建议)。
子场景二:获取 EagleEye traceId(eagleeye-traceid/SKILL.md)。适用在不改代码情况下获取线上请求的 EagleEye traceId,用于关联日志/链路分析。步骤:sc -d com.taobao.eagleeye.EagleEye 确认类存在;选择合适观察点(Controller / RPC Provider / Filter 等入口方法);方案 A 用 watch + OGNL 表达式 @com.taobao.eagleeye.EagleEye@getTraceId() 直接打印 traceId;方案 B 用 trace 输出自动带出 traceId,同时可看调用链耗时;拿到 traceId 后去日志/链路系统查询对应请求。
子场景三:Spring Context / Bean 排查(spring-context/SKILL.md)。适用排查 Spring ApplicationContext / Bean / 配置注入等问题。步骤:vmtool --action getInstances 获取 AbstractApplicationContext 实例(注意通过 ClassLoader 区分正确的 Context);获取配置项的值与来源(getEnvironment().getProperty(...) / findConfigurationProperty(...));containsBean / containsLocalBean / containsBeanDefinition 验证 Bean 是否存在(不触发初始化);按关键词过滤搜索 Bean(getBeanDefinitionNames + OGNL 过滤);按类型查找 Bean(getBeanNamesForType / getBeansOfType);查看 BeanDefinition 确认 Bean 注册来源(@Bean 工厂方法 / XML / 自动扫描)。注意:先只读查询,避免直接 getBean() 触发 Bean 初始化产生副作用;若遇到 ClassNotFound,通常是类加载器不对,需先用 classloader 命令找到正确的 classLoaderHash。
限制:资料未提供安装命令、收费方式、支持平台与版本等细节,暂未提供。