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

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

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

Arthas Star 突破 2.5 万啦

1.png

  • 开源地址:_h_ttps://github.com/alibaba/arthas
  • 文档:https://arthas.aliyun.com/doc/

随着微服务的流行,应用更加轻量和高效,但是带来的困境是线上问题排查越来越复杂困难。传统的 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 支持

  • https://arthas.aliyun.com/doc/http-api.html

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

3. 统一鉴权

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

  • https://arthas.aliyun.com/doc/auth.html

4. 全新的热更新命令 retransform

  • https://arthas.aliyun.com/doc/retransform.html

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

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

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

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

5. Tunnel Server 支持集群部署

  • https://arthas.aliyun.com/doc/tunnel.html

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

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

6. arthas-spring-boot-starter

  • https://arthas.aliyun.com/doc/spring-boot-starter.html

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

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

  • https://arthas.aliyun.com/

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

Arthas 有奖征文活动

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

  • 工商银行打造在线诊断平台的探索与实践
  • Spring Boot 微服务性能下降九成!使用 Arthas 定位根因
  • 是谁在调用我?使用 arthas+jprofiler 做复杂链路分析
  • Arthas 定位 Dubbo 手动注册 Eureka 异常
  • 用 Arthas 神器来诊断 HBase 异常进程

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

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

Arthas 规划

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

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

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

  • https://github.com/alibaba/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 实验预览

原文链接

本文为阿里云原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/513845.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

因云而生 全新视角看阿里云服务器硬件方升架构

简介&#xff1a; 方升架构作为新一代云服务器架构的典范&#xff0c;是阿里云云原生基础设施的最佳实践之一。阿里云结合云计算丰富业务场景需求&#xff0c;推出一系列自研服务器产品、部件及解决方案&#xff0c;包括高性能计算全栈解决方案、高性能存储和大容量存储解决方案…

华为鸿蒙电脑操作系统测试版,华为鸿蒙测试版下载 华为鸿蒙测试版电脑版下载...

软件介绍《华为鸿蒙测试版电脑版》是华为的鸿蒙os系统&#xff0c;能兼容全部安卓应用的所有Web应用。若安卓应用重新编译&#xff0c;在华为OS操作系统上&#xff0c;华为OS将打通手机、电脑、平板、电视、汽车、智能穿戴。游戏启动1、关于安卓模拟器&#xff0c;在下载的游戏…

项目版本管理的最佳实践:云效飞流Flow篇

简介&#xff1a; 飞流Flow的最佳实践&#xff08;使用阿里云云效&#xff09;为了更好地使用飞流Flow&#xff0c;接下来将结合阿里云云效来讲解飞流Flow的最佳实践 目录 一、分支规约 二、版本号规约 2.1 主版本号&#xff08;首位版本号&#xff09; 2.2 次版本号&#xff…

低碳数据中心,因何而来?一文读懂如何利用超融合降碳

作者 | 让科技向善的 来源 | SmartX“Global warming isn’t a prediction. It is happening.” 全球变暖并非预言&#xff0c;是正在发生的现实。联合国政府间气候变化专门委员会在今年 8 月发布的报告宣称&#xff0c;人类即将突破 1.5 摄氏度这一关键的气温上升极限。为…

Duang,您的钉钉应用已上线!云开发5分钟快速打造钉钉会议室预定系统

简介&#xff1a; 5分钟可以干什么&#xff1f;喝一杯咖啡&#xff0c;回一封邮件&#xff0c;还是开发上线一个钉钉应用。云开发平台联合钉钉开发平台推出0门槛打造你的第一个钉钉应用的活动&#xff0c;完成相应任务后&#xff0c;即可领取精美奖品。春暖花开&#xff0c;领个…

倒计时3天!携手开发者,一起精准打造数智未来!

把故事写进代码&#xff0c;用代码改变世界重塑或者改变这个世界的并不是超人而是开发者他们用技术自我成就因情怀练就工匠精神2021年&#xff0c;移动云开启了首届API应用创新开发大赛&#xff0c;以“创新云转型&#xff0c;智慧云服务”为主题&#xff0c;旨在激发开发者创新…

自建Kubernetes集群如何使用弹性容器实例ECI

简介&#xff1a; 虚拟节点&#xff08;Virtual Node&#xff09;实现了Kubernetes与弹性容器实例ECI的无缝连接&#xff0c;让Kubernetes集群轻松获得极大的弹性能力&#xff0c;而不必受限于集群的节点计算容量。您可以灵活动态的按需创建ECI Pod&#xff0c;免去集群容量规划…

一文读懂容器存储接口 CSI

简介&#xff1a; 在《一文读懂 K8s 持久化存储流程》一文我们重点介绍了 K8s 内部的存储流程&#xff0c;以及 PV、PVC、StorageClass、Kubelet 等之间的调用关系。接下来本文将将重点放在 CSI&#xff08;Container Storage Interface&#xff09;容器存储接口上&#xff0c;…

SpringBoot Admin2.0 集成 Java 诊断神器 Arthas 实践

简介&#xff1a; 项目最初使用 Arthas 主要有两个目的&#xff1a; 1. 通过 arthas 解决实现测试环境、性能测试环境以及生产环境性能问题分析工具的问题。 2. 通过使用 jad、mc、redefine 功能组合实现生产环境部分节点代码热更新的能力。 作者 | sparrow 来源 | 阿里巴巴云原…

python在办公上的应用_python自动化办公:玩转word之样式秘笈

上节对python如何定制word的页眉页脚做了详细介绍&#xff0c;当然&#xff0c;要作出一篇精彩的word文档&#xff0c;样式公布可没&#xff0c;本章继续介绍python如何玩转word的样式。 使用样式python如何玩转word的样式 此页面使用前一页中开发的概念而不作介绍。如果术语不…

Gartner发布2021年隐私技术成熟度曲线,数字伦理登上顶点

编辑 | 宋慧 供稿 | Gartner 随着人们日益意识到其个人信息的价值并对透明度的缺乏和持续的滥用感到失望&#xff0c;数字伦理登上了Gartner 2021年隐私技术成熟度曲线的顶点。 Gartner将数字伦理定义为人、企业机构和物之间开展电子交互所遵循的价值和伦理道德原则体系。随着…

微服务+异步工作流+ Serverless,Netflix 决定弃用稳定运行 7 年的旧平台

简介&#xff1a; 2021 年&#xff0c;Netflix 会将大部分的工作负载从 Reloaded 转移到 Cosmos 平台。Cosmos 是一个计算平台&#xff0c;它将微服务的最佳特性与异步工作流以及 Serverless 结合在一起。 作者 | Frank San Miguel 策划 | 田晓旭 2021 年&#xff0c;Netflix …

实时 OLAP, 从 0 到 1

简介&#xff1a; BTC.com 团队在实时 OLAP 方面的技术演进过程及生产优化实践。 作者&#xff5c;高正炎 本文主要介绍 BTC.com 团队在实时 OLAP 方面的技术演进过程及生产优化实践&#xff0c;内容如下&#xff1a; 业务背景机遇挑战架构演进架构优化未来展望一、业务背景 …

Gartner发布2021年数字商务技术成熟度曲线,重点关注四项技术

应用领导人应密切关注可视化配置、数字钱包、客户身份和访问管理以及虚拟客户助理这四项将在未来两年对数字商务产生重大影响的技术。 编辑 | 宋慧 供稿 | Gartner 根据Gartner 2021年数字商务技术成熟度曲线&#xff08;Hype Cycle for Digital Commerce&#xff09;&#x…

鸿蒙手机系统还没有开发,华为鸿蒙手机太难了!引发开发者大吐槽:为何没有自己独特风格?-互联网/电商-文章-小虾米...

【华为鸿蒙手机太难了&#xff01;引发开发者大吐槽&#xff1a;为何没有自己独特风格&#xff1f;】互联网/电商-文章-小虾米2020-12-27 11:32:02 小虾米帐号&#xff1a;军事科技(tabc) 关注我 举报 来源&#xff1a;qq新闻 浏览量(129)【12月28日讯】导语&#xff0c…

Fluid给数据弹性一双隐形的翅膀 (1) -- 自定义弹性伸缩

简介&#xff1a; 弹性伸缩作为Kubernetes的核心能力之一&#xff0c;但它一直是围绕这无状态的应用负载展开。而Fluid提供了分布式缓存的弹性伸缩能力&#xff0c;可以灵活扩充和收缩数据缓存。 它基于Runtime提供了缓存空间、现有缓存比例等性能指标, 结合自身对于Runtime资源…

利用 Python 实现多任务进程

来源&#xff1a;杰哥的IT之旅作者&#xff1a;阿拉斯加一、进程介绍 进程&#xff1a;正在执行的程序&#xff0c;由程序、数据和进程控制块组成&#xff0c;是正在执行的程序&#xff0c;程序的一次执行过程&#xff0c;是资源调度的基本单位。程序&#xff1a;没有执行的代码…

小白也能懂的 Nacos 服务模型介绍

简介&#xff1a; 理解了 Nacos 的服务模型&#xff0c;也有利于我们了解 Nacos 背后的工作原理&#xff0c;从而确保我们正确地使用 Nacos。 作者&#xff1a;岛风 前言 按照目前市场上的主流使用场景&#xff0c;Nacos 被分成了两块功能&#xff1a;服务注册发现&#xff0…

那些与 IE 相伴的日子

来源&#xff1a;零一作者&#xff1a;前端印象大家好&#xff0c;IE 大家都不陌生&#xff0c;毕竟出现在大家的视野中已经很久很久&#xff0c;久到有20多年&#xff0c;当然也因前端技术的快速更新&#xff0c;给需要兼容IE浏览器的前端程序员带来了不少的困扰。慢慢地&…

html代码style图片width,HTML Style columnWidth用法及代码示例

DOM中的columnWidth属性用于指定列的宽度。用法:返回columnWidth属性&#xff1a;object.style.columnWidth设置columnWidth属性&#xff1a;object.style.columnWidth "auto | length | initial | inherit"属性值&#xff1a;auto:缺省值。列宽将由浏览器确定lengt…