关于阿里巴巴:一不小心它成为了-GitHub-Alibaba-Group-下-Star-最多的开源项目

118次阅读

共计 4014 个字符,预计需要花费 11 分钟才能阅读完成。

简介:随着微服务的风行,利用更加轻量和高效,然而带来的窘境是线上问题排查越来越简单艰难。传统的 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

  1. Arthas 注销公司数从 117 增长到 151 家
    过来一年,Arthas 在工商银行、中原银行、朴朴科技、贝壳找房、斗鱼等生产场景落地,欢送更多用户注销:https://github.com/alibaba/ar…

工商银行打造在线诊断平台的摸索与实际

  1. Arthas 在线教程学习人次:133,996,学习时长:51798 小时
    人均体验时长 23 分钟以上。

4.png

  1. Arthas zip 包月均下载 6.5w 次
    上线了 Arthas 新网站之后,咱们统计均匀每个月 arthas zip 包下载 6.5 万次。所以激进预计,Arthas 均匀每个月诊断 6W+ 台机器。
  2. 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/by…

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 命令能够一起合作

  1. HTTP API 反对
    https://arthas.aliyun.com/doc…
    Http API 提供相似 RESTful 的交互接口,申请和响应均为 JSON 格局的数据。绝对于 Telnet/WebConsole 的输入非结构化文本数据,Http API 能够提供结构化的数据,反对更简单的交互性能。
  2. 对立鉴权
    在明天,利用的平安越来越受到重视。因而,诊断工具在晋升诊断效率的同时,也要留神本身的安全性。
    因为 Arthas 减少了 auth 命令,并且对立了 Telnet/WebSocket/HTTP API 的鉴权,参考:

https://arthas.aliyun.com/doc…

  1. 全新的热更新命令 retransform
    https://arthas.aliyun.com/doc…
    之前,Arthas 里的 redefine 命令曾经反对热更新性能,然而容易和 jad 命令或者其它 java agent 抵触。因而,咱们开发了全新的 retransform 命令。

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

retransform 命令 -> watch 命令 -> trace 命令
能够看到,retransform 命令执行后,不会影响 watch/trace 命令。

  1. Tunnel Server 反对集群部署
    https://arthas.aliyun.com/doc…
    通过 Arthas Tunnel Server/Client 能够远程管理 / 连贯多个 Agent。Tunnel Server 新减少性能:

反对集群部署,反对 redis 存储
反对 http proxy,查看火焰图

  1. arthas-spring-boot-starter
    https://arthas.aliyun.com/doc…
    通过 arthas-spring-boot-starter,用户能够间接以编程形式引入 Arthas,联合 Tunnel Server,能够轻松实现集群化治理。
  2. 全新的网站 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.c…

Arthas 布局
去年,咱们布局了三个指标:

RESTful API 反对
全新的字节码框架 ByteKit
插件化反对
实际上实现了 2.5 个,其中插件化反对,咱们孵化出全新的 One Java Agent 我的项目来实现。

https://github.com/alibaba/on…
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/hand…

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

Arthas 试验预览
原文链接
本文为阿里云原创内容,未经容许不得转载。

正文完
 0