升级 | Java开源诊断工具 Arthas 发布v3.1.0

简介: Arthas 自2018年9月份上线以来「传送门」,已收获近万个star,感谢开发者们的认可。此次Arthas 3.1.0版本的发布,不仅带来大家投票出来的新LOGO,还带来强大的新功能和更好的易用性,下面一一介绍。

Arthas

Arthas 自2018年9月份上线以来「传送门」,已收获近万个star,感谢开发者们的认可。此次Arthas 3.1.0版本的发布,不仅带来大家投票出来的新LOGO,还带来强大的新功能和更好的易用性,下面一一介绍。

增加内存编译器支持,在线编辑热更新代码

3.1.0版本里新增命令mc,不是方块游戏mc,而是Memory Compiler。

在之前版本里,增加了redefine命令,可以热更新字节码。但是有个不方便的地方:需要把.class文件上传到服务器上。

3.1.0版本里,结合jad/mc/redefine 可以完美实现热更新代码。

  1. 使用jad反编译代码

    jad --source-only com.example.demo.arthas.user.UserController > /tmp/UserController.java
  2. 使用vim编译代码

    当 user id 小于1时,也正常返回,不抛出异常:

        @GetMapping("/user/{id}")
        public User findUserById(@PathVariable Integer id) {
            logger.info("id: {}" , id);
    
            if (id != null && id < 1) {
                return new User(id, "name" + id);
                // throw new IllegalArgumentException("id < 1");
            } else {
                return new User(id, "name" + id);
            }
        }
  3. 使用mc命令编译修改后的UserController.java

    $ mc /tmp/UserController.java -d /tmp
    Memory compiler output:
    /tmp/com/example/demo/arthas/user/UserController.class
    Affect(row-cnt:1) cost in 346 ms
  4. 使用redefine命令,因为可以热更新代码

    $ redefine /tmp/com/example/demo/arthas/user/UserController.class
    redefine success, size: 1

丝滑的自动补全

在新版本里,改进了很多命令的自动补全,比如 watch/trace/tt/monitor/stack等。

下面是watch命令的第一个Tab补全结果,用户可以很方便的一步步补全类名,函数名:

$ watch
com.   sun.   javax. ch.    io.    demo.  jdk.   org.   java.

另外,新增加了 jad/sc/sm/redefine 等命令的自动补全支持,多按Tab有惊喜。

新版本的Web console

新版本的Web Console切换到了xtermd.js,更好地支持现代浏览器。

  • 支持Ctrl + C复制
  • 支持全屏

web console

Docker镜像支持

Arthas支持Docker镜像了

  • 用户可以很方便地诊断Docker/k8s里的Java进程
  • 也可以很方便地把Arthas加到自己的基础镜像里

重定向重新设计

之前的版本里,Arthas的重定向是会放到一个~/logs/arthas-cache/目录里,违反直觉。

在新版本里,重定向和Linux下面的一致,>/>>的行为也和Linux下一致。

并且,增加了 cat/pwd命令,可以配置使用。

总结

总之,3.1.0版本的Arthas带了非常多的新功能,改进了很多的用户体验,欢迎大家使用反馈。

  • Arthas在线教程可以学到很多技巧
  • jad/mc/redefine 一条龙非常强大
  • 丝滑的自动补全值得尝试
  • 新版本的Web console有惊奇

Release Note: https://github.com/alibaba/arthas/releases/tag/3.1.0

本文作者:

断岭,社区ID hengyunabc,阿里巴巴技术专家,目前主要负责 Arthas 开源项目的开发和社区维护。

相关文章
|
8月前
|
人工智能 监控 Java
Java与AI智能体:构建自主决策与工具调用的智能系统
随着AI智能体技术的快速发展,构建能够自主理解任务、制定计划并执行复杂操作的智能系统已成为新的技术前沿。本文深入探讨如何在Java生态中构建具备工具调用、记忆管理和自主决策能力的AI智能体系统。我们将完整展示从智能体架构设计、工具生态系统、记忆机制到多智能体协作的全流程,为Java开发者提供构建下一代自主智能系统的完整技术方案。
1063 4
|
9月前
|
人工智能 Java API
Java AI智能体实战:使用LangChain4j构建能使用工具的AI助手
随着AI技术的发展,AI智能体(Agent)能够通过使用工具来执行复杂任务,从而大幅扩展其能力边界。本文介绍如何在Java中使用LangChain4j框架构建一个能够使用外部工具的AI智能体。我们将通过一个具体示例——一个能获取天气信息和执行数学计算的AI助手,详细讲解如何定义工具、创建智能体并处理执行流程。本文包含完整的代码示例和架构说明,帮助Java开发者快速上手AI智能体的开发。
3435 8
|
9月前
|
人工智能 缓存 监控
使用LangChain4j构建Java AI智能体:让大模型学会使用工具
AI智能体是大模型技术的重要演进方向,它使模型能够主动使用工具、与环境交互,以完成复杂任务。本文详细介绍如何在Java应用中,借助LangChain4j框架构建一个具备工具使用能力的AI智能体。我们将创建一个能够进行数学计算和实时信息查询的智能体,涵盖工具定义、智能体组装、记忆管理以及Spring Boot集成等关键步骤,并展示如何通过简单的对话界面与智能体交互。
3501 1
|
9月前
|
安全 架构师 Java
Java LTS版本进化秀:从8到21的欢乐升级之旅
困惑于Java版本选择?轻松幽默地穿越Java LTS版本时光隧道,掌握从Java 8到21的关键特性。通过一家初创公司的系统升级故事,直观了解每个版本如何解决代码冗余、性能瓶颈等开发痛点,助你在技术选型中做出明智决策。
530 7
|
9月前
|
消息中间件 人工智能 Java
抖音微信爆款小游戏大全:免费休闲/竞技/益智/PHP+Java全筏开源开发
本文基于2025年最新行业数据,深入解析抖音/微信爆款小游戏的开发逻辑,重点讲解PHP+Java双引擎架构实战,涵盖技术选型、架构设计、性能优化与开源生态,提供完整开源工具链,助力开发者从理论到落地打造高留存、高并发的小游戏产品。
|
9月前
|
人工智能 Java 开发者
阿里出手!Java 开发者狂喜!开源 AI Agent 框架 JManus 来了,初次见面就心动~
JManus是阿里开源的Java版OpenManus,基于Spring AI Alibaba框架,助力Java开发者便捷应用AI技术。支持多Agent框架、网页配置、MCP协议及PLAN-ACT模式,可集成多模型,适配阿里云百炼平台与本地ollama。提供Docker与源码部署方式,具备无限上下文处理能力,适用于复杂AI场景。当前仍在完善模型配置等功能,欢迎参与开源共建。
3255 58
阿里出手!Java 开发者狂喜!开源 AI Agent 框架 JManus 来了,初次见面就心动~
|
10月前
|
Java Linux Apache
Apache NetBeans 27 (macOS, Linux, Windows) - Java 等多语言开源跨平台 IDE
Apache NetBeans 27 (macOS, Linux, Windows) - Java 等多语言开源跨平台 IDE
600 5
Apache NetBeans 27 (macOS, Linux, Windows) - Java 等多语言开源跨平台 IDE
|
11月前
|
Java 数据安全/隐私保护
快手小红书抖音留痕工具,自动留痕插件工具,java代码开源
这个框架包含三个核心模块:主操作类处理点赞评论、配置管理类和代理管理类。使用时需要配合
|
文字识别 监控 Java
顺丰同城抢单辅助脚本,顺丰骑士抢单辅助免封号,自动抢单神器【java版开源】
这是一套OCR实时检测订单列表并自动右滑的完整代码方案,适用于学习研究。代码包含四个主要模块:OCR处理(文字识别)、价格分析

热门文章

最新文章