一不小心,它成为了 GitHub Alibaba Group 下 Star 最多的开源项目

本文涉及的产品
应用实时监控服务-应用监控,每月50GB免费额度
注册配置 MSE Nacos/ZooKeeper,182元/月
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
简介: 随着微服务的流行,应用更加轻量和高效,但是带来的困境是线上问题排查越来越复杂困难。传统的 Java 排查问题,需要重启应用再进行调试,但是重启应用之后现场会丢失,问题难以复现。

来源 | 阿里巴巴云原生公众号

Arthas Star 突破 2.5 万啦

1.png

随着微服务的流行,应用更加轻量和高效,但是带来的困境是线上问题排查越来越复杂困难。传统的 Java 排查问题,需要重启应用再进行调试,但是重启应用之后现场会丢失,问题难以复现。

因此自 2018 年 9 月,阿里巴巴开源了久经考验,深受开发者喜爱的应用诊断利器 Arthas。

Arthas 通过创新的字节码织入技术,可以在应用无需重启时,查看调用上下文,高效排查问题;结合火焰图,可以直接定位热点,发现性能瓶颈;通过字节码替换,实现在线热更新代码;同时支持黑屏化和白屏化诊断,可以连接诊断大规模的集群。

在 2020 年 5 月时,我们做了 Arthas Star 破 2 万的回顾:

  • 精益求精 | 开源应用诊断利器 Arthas GitHub Star 突破两万

冬去春又来,转眼间一年过去了,Arthas 的 Star 数突破 2.5 万了~

下面来回顾 Arthas 去年的一些数据和工作。

Arthas 过去一年的数据

1. Arthas Github Star 数突破 2.5W

2.png

2. Arthas Github Contributors 数

Arthas 的开源贡献者人数从 85 增长到 119,非常感谢他们的工作:

3.png

3. Arthas 登记公司数从 117 增长到 151 家

过去一年,Arthas 在工商银行、中原银行、朴朴科技、贝壳找房、斗鱼等生产场景落地,欢迎更多用户登记:https://github.com/alibaba/arthas/issues/111

  • 工商银行打造在线诊断平台的探索与实践

4. Arthas 在线教程学习人次:133,996,学习时长:51798小时

人均体验时长 23 分钟以上。

4.png

5. Arthas zip 包月均下载 6.5w 次

上线了 Arthas 新网站之后,我们统计平均每个月 arthas zip 包下载 6.5 万次。所以保守估计,Arthas 平均每个月诊断 6W+ 台机器。

6. Arthas 在 ATA 年度技术搜索排行第 6

阿里内部的技术论坛 ATA 发布年度热搜关键词 top 100,Arthas 作为 Java 诊断神器是唯一进入 top 10 的非集团指定产品。Arthas 在阿里内部的受欢迎程度可见一斑。

5..png

Arthas 过去一年的工作

在过去的一年里,Arthas 发布了 19 个 release 版本,做了大量的改进,下面列出一些重点:

  • 全新的 Bytekit 字节码增强框架
  • 完整支持 HTTP API,所有命令都完成适配
  • Tenlet/WebSocket/HTTP API 支持统一的鉴权方案
  • 全新的热更新命令 retransform
  • Tunnel Server 支持集群部署,支持查看火焰图,内部上线支持流计算应用
  • 增加 arthas-spring-boot-starter 模块,并支持 endpoint,用户可以用编程方式引入 Arthas
  • 上线 arthas.aliyun.com 网站,更好服务国内用户

1. 全新的 Bytekit 字节码增强框架

Github:https://github.com/alibaba/bytekit

Bytekit 框架可以通过简洁的注解来实现字节码增强,具体功能点:

  • 丰富的注入点支持
  • 动态的 Binding
  • 可编程的异常处理
  • 比如在函数入口做增强:
    public static class SampleInterceptor {
        @AtEnter(inline = true, suppress = RuntimeException.class, 
suppressHandler = PrintExceptionSuppressHandler.class)
        public static void atEnter(@Binding.This Object object, 
                @Binding.Class Object clazz,
                @Binding.Args Object[] args, 
                @Binding.MethodName String methodName,
                @Binding.MethodDesc String methodDesc) {
            System.out.println("atEnter, args[0]: " + args[0]);
        }
  • inline 支持
  • invokeOrigin 技术

比如在 Dubbo Filter 里插入 APM 代码:

@Instrument(Interface = "org.apache.dubbo.rpc.Filter")
public abstract class DubboFilter_APM {
    public Result invoke(Invoker<?> invoker, Invocation invocation) 
throws RpcException {
        System.err.println("invoker class: " + 
this.getClass().getName());
        Result result = InstrumentApi.invokeOrigin();
        return result;
    }
}

通过 Bytekit 框架,Arthas:

  • 解决了多个 watch/trace 命令会重复某个类的问题
  • 统一使用一个 Transformer,解决了多个增强命令冲突问题
  • 实现了动态增强功能,通过指定 ListenerId,watch/trace 命令可以一起协作

2. HTTP API 支持

Http API 提供类似 RESTful 的交互接口,请求和响应均为 JSON 格式的数据。相对于 Telnet/WebConsole 的输出非结构化文本数据,Http API 可以提供结构化的数据,支持更复杂的交互功能。

3. 统一鉴权

在今天,应用的安全越来越受到重视。因此,诊断工具在提升诊断效率的同时,也要注意自身的安全性。
因为 Arthas 增加了 auth 命令,并且统一了 Telnet/WebSocket/HTTP API 的鉴权,参考:

4. 全新的热更新命令 retransform

之前,Arthas 里的 redefine 命令已经支持热更新功能,但是容易和 jad 命令或者其它 java agent 冲突。因此,我们开发了全新的 retransform 命令。

retransform 命令和 watch/trace 命令等是同一机制下实现的。如果对同一个类执行多个命令,则会经过下面的处理:

retransform 命令 -> watch 命令 -> trace命令

可以看到,retransform 命令执行后,不会影响 watch/trace 命令。

5. Tunnel Server 支持集群部署

通过 Arthas Tunnel Server/Client 可以远程管理/连接多个 Agent。Tunnel Server 新增加功能:

  • 支持集群部署,支持 redis 存储
  • 支持 http proxy,查看火焰图

6. arthas-spring-boot-starter

通过 arthas-spring-boot-starter,用户可以直接以编程方式引入 Arthas,结合 Tunnel Server,可以轻松实现集群化管理。

7. 全新的网站 arthas.aliyun.com

之前,Arthas 的文档放在 github io 的域名下,经常访问失败。为了改进访问速度,因此,我们建设了全新网站,用户访问文档和下载 Arthas,都更加方便快捷。

Arthas 有奖征文活动

Arthas 征文活动一共办了七期,共收到投稿 30+ 篇,下面是一些优秀的文章:

有奖征文活动还在继续,欢迎大家分享~

投稿地址:http://alibabacloud.mikecrm.com/9khcRrs

Arthas 规划

去年,我们规划了三个目标:

  • RESTful API 支持
  • 全新的字节码框架 ByteKit
  • 插件化支持

实际上完成了 2.5 个,其中插件化支持,我们孵化出全新的 One Java Agent 项目来实现。

One Java Agent 项目的目标:

  • 提供插件化支持,统一管理众多的 Java Agent
  • 插件支持 install/unstall,需要插件方实现接口
  • 支持传统的 java agent,即已经开发好的 java agent

从开源到现在,Arthas 在 Github 上一共有 1200 多个 Issue,最近我们回收了第一个 Issue:

6.png

在不断增强功能的同时,我们一直在持续改进 Arthas 的易用性。

  • 不断改进帮助文档
  • 上线 arthas.aliyun.com ,改进国内用户访问速度
  • 为大部分命令准备交互式的在线教程

我们相信:赠人玫瑰之手,经久犹有余香,感谢广大用户的支持和喜爱。

欢迎登陆 start.aliyun.com 知行动手实验室体验 Arthas 57 个动手实验:
https://start.aliyun.com/handson-lab/#!category=arthas

1617788975354-c95a0286-f1af-4bba-b19b-7b2d5e44df6d.gif

Arthas 实验预览

相关文章
|
24天前
|
人工智能 安全 文件存储
炸裂!Github 6000+ star 开源免费易用,支持1000+格式转换,值得收藏!
ConvertX 是一款开源免费的在线文件转换工具,支持超过 1000 种格式转换,涵盖视频、文档、图像、3D 模型等。基于 FFmpeg、Pandoc 等强大组件,提供高效、私密的转换服务。支持 Docker、NAS 自托管部署,界面简洁,操作便捷,适合多场景使用,已在 GitHub 收获 6000+ Star,值得收藏和使用。
162 0
|
24天前
|
人工智能 编解码 JSON
不看后悔!GitHub 开源 MultiTalk .8k star 强大的人语音+图像绑定项目
MultiTalk 是 GitHub 上的开源项目,具备音频驱动、多人对话视频生成功能。支持多路音频与图像绑定,实现高同步唇动与角色互动,适用于教学、虚拟人及短视频创作,已获 8k 星标。
128 0
|
24天前
|
数据挖掘 调度 开发工具
Github 2.3k star 太牛x,京东(JoyAgent‑JDGenie)这个开源项目来得太及时啦,端到端多智能体神器!!!
JoyAgent-JDGenie是京东开源的端到端产品级多智能体系统,支持自然语言生成报告、PPT、网页等内容,准确率达75.15%。具备开箱即用、多智能体协同、高扩展性及跨任务记忆能力,支持多种文件格式输出,部署灵活,不依赖私有云平台。适合企业自动化报告生成、数据分析与行业定制化应用,是高效、实用的开源AI工具。
222 0
|
24天前
|
安全 数据可视化 项目管理
精品,Github 5000+ star,小型研发团队必备商业开源项目
DooTask 是一款开源在线项目任务管理工具,具备文档协作、流程图、任务分发、IM沟通等功能,支持私有部署与数据加密,已在 GitHub 获得 5000+ 星标,适合中小团队提升协作效率。
|
1月前
|
JSON Kubernetes 安全
找到啦,我们已上车,Github 27000+ star,研发团队必备开源工具项目,真丝滑!!!
Trivy 是一款高效灵活的开源安全扫描工具,支持容器镜像、文件系统、Kubernetes 等多目标扫描,具备快速、易用、集成性强等特点,适用于 DevSecOps 全流程安全检测。
|
24天前
|
人工智能 自然语言处理 JavaScript
Github又一AI黑科技项目,打造全栈架构,只需一个统一框架?
Motia 是一款现代化后端框架,融合 API 接口、后台任务、事件系统与 AI Agent,支持 JavaScript、TypeScript、Python 多语言协同开发。它提供可视化 Workbench、自动观测追踪、零配置部署等功能,帮助开发者高效构建事件驱动的工作流,显著降低部署与运维成本,提升 AI 项目落地效率。
127 0
|
7月前
|
开发工具 git C++
【够用就好002】外行第一次发布github项目仓库
#deepseek#自学 记录外行学习代码的历程 今天是上传自己的工具代码到github仓库,一直以来是伸手党克隆别人的项目,今天在deepseek的辅导下上传自己的内容。
|
1月前
|
数据采集 人工智能 搜索推荐
完蛋啦,爆火Github项目,用微信聊天记录打造专属AI数字分身,我都不敢相信!!
WeClone 是一个基于微信或 Telegram 聊天记录微调大语言模型的开源项目,可打造专属 AI 数字分身。支持文本、图片等多模态数据,具备语言风格迁移和语音克隆功能,实现“说话像你”的AI角色。项目提供完整训练流程,支持本地部署,保护隐私,适用于个人数字分身、纪念机器人、客服助手等场景。
200 0
|
1月前
|
存储 人工智能 自然语言处理
让你拥有一个AI大脑,这个32.1k Github项目是你不错的选择,支持PDF、Markdown、代码、视频成为你的知识内容
Quivr 是开源全栈 RAG 平台,助你打造“第二大脑”,支持多文档类型与多种 LLM,实现智能搜索与聊天。具备语义检索、本地部署、隐私保护等功能,适用于个人知识管理与企业知识库,界面简洁易用,是高效智能问答的理想选择。
|
1月前
|
人工智能 数据可视化 开发者
惊艳!GitHub 开发者一键接入!4.2k star 项目 Champ,用一张照片秒变动画
“Champ” 致力于从一张静态人物图生成流畅连续的人体动画,支撑精准姿态控制与形状一致性,其核心思路是将 3D 参数化人体模型(SMPL)引入扩散模型: