hengyunabc
hengyunabc
# CFR version 0.151 # Description 1. Create a demo spring boot application, add `Spring Reactive Web` dependency. https://start.spring.io/#!type=maven-project&language=java&platformVersion=2.5.2.RELEASE&packaging=jar&jvmVersion=1.8&groupId=com.example&artifactId=demo&name=demo&description=Demo%20project%20for%20Spring%20Boot&packageName=com.example.demo&dependencies=webflux 2. Start `mvn spring-boot:run -DskipTests` 3. Decompile using Arthas ``` curl...
https://asm.ow2.io/versions.html
比如: ``` $ watch java.lang.Exception * Press Q or Ctrl+C to abort. Affect(class count: 1 , method count: 1) cost in 13437 ms, listenerId: 1 ``` 实际上,很多类被过滤掉了,查看`~/logs/arthas/arthas.log`,可以 发现: ``` 2022-03-24...
## 2022 Alibaba Summer of Code Welcome to the open source world! If you haven't planned how to spend this summer, come to the Alibaba Summer of Code and code...
参考: ``` https://github.com/kubernetes/website/issues/33936 https://github.com/thanos-io/thanos/issues/5385 ``` 可以调研下这个平台: * https://killercoda.com/ * https://killercoda.com/creators * https://itnext.io/katacoda-to-killercoda-migration-guide-d21961fc0c9b
## "开源之夏" 简介 “开源之夏”(英文简称 OSPP)是中科院软件所“开源软件供应链点亮计划”指导下的系列暑期活动,由中国科学院软件研究所与 openEuler 社区共同主办,是一项主要面向高校学生的暑期开源活动,旨在鼓励在校学生积极参与开源软件的开发维护,促进优秀开源软件社区的蓬勃发展。 开源之夏如今已进入第三届,本届联合124家开源社区,针对重要开源软件的开发与维护提供项目,并向全球高校学生开放报名。学生可自主选择感兴趣的项目进行申请,并在中选后获得该软件资深维护者(社区导师)亲自指导的机会。根据项目的难易程度和完成情况,参与者还将获取开源之夏活动奖金和结项证书。 * “开源之夏” 官网: https://summer-ospp.ac.cn/ ## Arthas  随着微服务的流行,应用更加轻量和开发效率不断提升,但是带来的困境是线上问题排查越来越复杂困难。传统的Java排查问题,需要重启应用再进行调试,但是重启应用之后现场会丢失,问题难以复现。 因此自2018年9月,阿里巴巴开源了久经考验,深受开发者喜爱的应用诊断利器Arthas。在阿里巴巴内部Arthas每年诊断数百万次,服务10000+应用,总共节约9000人日。 Arthas通过创新的字节码织入技术,可以在应用无需重启时,查看调用上下文,高效排查问题;结合火焰图,可以直接定位热点,发现性能瓶颈;通过redefine技术,实现在线热更新代码;同时支持黑屏化和白屏化诊断,可以连接诊断大规模的集群。 目前Arthas在 GitHub 上星标数达到 29000+,多次登顶github趋势榜首,并收到150+公司的登记支持,连续获得开源中国GVP和最受欢迎软件奖,是目前最流行的Java应用诊断工具。 * Github: [https://github.com/alibaba/arthas](https://github.com/alibaba/arthas) * 文档:[https://arthas.aliyun.com/doc/](https://arthas.aliyun.com/doc/) ## 开源之夏 活动里程碑...
* 目前有webconsole,本质上还是一个terminal * 有一个简单的UI: http://127.0.0.1:8563/ui ,但这个只是展示了json结果 需要以现代web方式,构建一个全新的UI,所有的数据结构尽量以更友好的,图形化展示。 简而言之,学生需要先熟悉下arthas的命令,比如 * https://arthas.aliyun.com/doc/sysprop.html * https://arthas.aliyun.com/doc/watch 可以按命令里的 在线教程 跑一下。 然后看一下这个HTTP API: * https://arthas.aliyun.com/doc/http-api.html 利用上面的HTTP API,构建出类似下面的UI: * https://help.aliyun.com/document_detail/300078.html --- * 这个UI的的代码在: http://127.0.0.1:8563/ui https://github.com/alibaba/arthas/tree/master/core/src/main/resources/com/taobao/arthas/core/http/ui * web...
目前,Arthas只支持用 `arthas-spring-boot-starter`的方式,让应用引入arthas,然后在启动时attach自身,再连接到 tunnel server上。 这种方式有很多缺陷: * 应用启动时就需要attach自身,不能做到动态attach * 应用如果自身没有响应了,在tunnel server上也没办法查看了 因此,考虑一种真正支持大规模管控的方式。 * 在应用机器上,启动一个常驻的native agent * native agent可以考虑用rust/java GraalVM/go 等(java GraalVM有mavend可以参考 https://github.com/apache/maven-mvnd) * native agent负责连接远程管理平台,接收管理平台的 attach 命令,负责中转arthas的执行命令和结果 * native agent要充分考虑安全问题,比如要支持TLS连接 *...