Skip to content

arthas-all-4.1.5

Latest

Choose a tag to compare

@github-actions github-actions released this 10 Jan 11:18
· 1 commit to master since this release

Arthas 4.1.5 Release Notes

发布日期: 2026-01-10

本次版本包含 15 个提交,主要新增堆内存分析功能、MCP viewfile 工具、ClassLoader 精确增强等重要特性。

🚀 新特性 (Features)

1. vmtool 新增堆内存分析功能 (#1915, #3122)

感谢 @yuankong11

新增两个强大的堆内存分析 action:

heapAnalyze - 分析堆内存占用

vmtool --action heapAnalyze --classNum 5 --objectNum 3
  • 从 GC Root 可达对象出发,统计各个类的实例数量与占用字节数
  • 输出占用最大的若干对象与类
  • 支持 --classNum 指定展示的类数量,--objectNum 指定展示的对象数量

referenceAnalyze - 分析对象引用链

vmtool --action referenceAnalyze --className java.lang.String --objectNum 5 --backtraceNum 3
  • 分析某个类的实例对象,输出占用最大的若干对象及其引用回溯链(从对象回溯到 GC Root)
  • 支持 --backtraceNum 参数指定回溯层数(-1 表示一直回溯到 root,0 表示不输出引用链)

2. watch/trace/stack/tt/monitor 支持 ClassLoader Hash (#3120)

所有增强类命令新增 -c/--classloader 参数,支持指定 ClassLoader 精确增强:

sc -d com.example.Foo
watch -c 3d4eac69 com.example.Foo bar '{params,returnObj}'
trace -c 3d4eac69 com.example.Foo bar
stack -c 3d4eac69 com.example.Foo bar
  • 解决同名类被多个 classloader 加载时的增强歧义问题
  • 可先用 sc -d 查看 classloader hash,再用 -c 指定

3. MCP 新增 viewfile 工具 (#3121)

MCP Server 新增文件查看工具,支持分段读取大文件:

  • 支持 cursor/offset 分段读取,避免一次性返回大量内容
  • 支持目录白名单配置(环境变量 ARTHAS_MCP_VIEWFILE_ALLOWED_DIRS
  • 默认允许目录:arthas-output、~/logs/

4. AnsiLog 可配置输出流 (#3128)

  • AnsiLog 支持自定义输出流配置,不再硬编码使用 System.out
  • 便于日志输出的灵活控制和重定向

5. as-package.sh 支持 --fast 模式

打包脚本新增 --fast 参数,支持快速打包模式,提升开发效率。

🐛 Bug 修复 (Bug Fixes)

1. 修复 MCP 禁用时访问 arthas-output 的空指针异常 (#3127)

修复当 MCP 功能禁用时,访问 arthas-output 目录会抛出 NullPointerException 的问题。

📦 依赖更新 (Dependencies)

  • 升级 byte-buddy 依赖至 1.18.3 版本

🔧 工程改进 (Engineering)

1. 新增 Telnet 停止泄漏集成测试 (#3125)

  • 新增 telnet-stop-leak 测试目录
  • 包含自动化测试脚本和 expect 脚本
  • 新增 GitHub Actions 工作流支持

2. MCP 集成测试增强

  • 新增 profiler 和 viewfile 工具的集成测试
  • 新增 ViewFileToolTest 单元测试

3. EnhancerTest 修复与增强

  • 修复 EnhancerTest 测试用例
  • 新增 ClassLoader hash 增强相关测试

相关 Issue

  • #1915 - vmtool 堆内存分析功能
  • #3120 - watch/trace 支持 classloader hash
  • #3121 - MCP viewfile 工具
  • #3122 - vmtool heap analyzer 实现
  • #3125 - 集成测试
  • #3127 - 修复 NullPointerException
  • #3128 - AnsiLog 可配置输出流