Closed jujunchen closed 2 years ago
代码共享一下如何?
代码共享一下如何?
代码都贴上来了
@jujunchen 是否兼容最新的spring boot admin 2?
@jujunchen 是否兼容最新的spring boot admin 2?
兼容
你好,源码有贴上来吗?没找到。。。
已经参考此文档实现了SBA 2.0的兼容,基于arthas3.4.5版本,生产运行几个月,多次解决生产问题。使用了JMX接口对目标进程附加的arthas客户端进行启动并在webconsole中关闭。剩余问题是希望新版本arthas客户端能开放关闭接口,现在通过srping-boot插件无法获取到arthas-agent的classloader以及bootstrap相关类实例句柄,没法关闭,只能在使用完成后在web console关闭目标进程的agent。
已经参考此文档实现了SBA 2.0的兼容,基于arthas3.4.5版本,生产运行几个月,多次解决生产问题。使用了JMX接口对目标进程附加的arthas客户端进行启动并在webconsole中关闭。剩余问题是希望新版本arthas客户端能开放关闭接口,现在通过srping-boot插件无法获取到arthas-agent的classloader以及bootstrap相关类实例句柄,没法关闭,只能在使用完成后在web console关闭目标进程的agent。
欢迎投稿分享实践经验: https://github.com/alibaba/arthas/issues/1079 。
另外,建议让arthas长驻运行,而不是多次启动。
有没有更详细的代码哇,前端这块按教程集成,没生效。sc admin 2.2.4
/**
各种404,感觉心态要蹦了: Refused to apply style from 'http://localhost:7000/extensions/core.css' because its MIME type ('application/json') is not a supported stylesheet MIME type, and strict MIME checking is enabled. index.html:1 Refused to apply style from 'http://localhost:7000/extensions/all-modules.css' because its MIME type ('application/json') is not a supported stylesheet MIME type, and strict MIME checking is enabled.
心态蹦了
已经参考此文档实现了SBA 2.0的兼容,基于arthas3.4.5版本,生产运行几个月,多次解决生产问题。使用了JMX接口对目标进程附加的arthas客户端进行启动并在webconsole中关闭。剩余问题是希望新版本arthas客户端能开放关闭接口,现在通过srping-boot插件无法获取到arthas-agent的classloader以及bootstrap相关类实例句柄,没法关闭,只能在使用完成后在web console关闭目标进程的agent。
这个额可以详细说一下吗? 通过JMX启动和关闭arthas
如果有问题,需要解答,可以@我,要源码包也行
@jujunchen 您好, 可以提供下源码包么
前言
Arthas 是 Alibaba开源的Java诊断工具,具有实时查看系统的运行状况;查看函数调用参数、返回值和异常;在线热更新代码;秒解决类冲突问题;定位类加载路径;生成热点;通过网页诊断线上应用。如今在各大厂都有广泛应用,也延伸出很多产品。
这里将介绍如何将Arthas集成进SpringBoot监控平台中。
SpringBoot Admin
为了方便SpringBoot Admin 简称为SBA
版本:1.5.x
1.5版本的SBA如果要开发插件比较麻烦,需要下载SBA的源码包,再按照spring-boot-admin-server-ui-hystrix的形式copy一份,由于JS使用的是Angular,本人尝试了很久,虽然掌握了如何开发插件,奈何不会Angular,遂放弃💀
版本:2.x 2.x版本的SBA插件开发,官网有介绍如何开发,JS使用Vue,方便很多,由于我们项目还在使用1.5,所以并没有使用该版本,请读者自行尝试
不能使用SBA的插件进行集成,那还有什么办法呢?😅
SBA 集成
鄙人的办法是将Arthas的相关文件直接copy到admin服务中,这些文件都来自arthas-all项目tunnel-server
arthas目录
该包下存放的是所有arthas的Java文件
其他文件直接copy过来就行
spring-boot-admin-server-ui
该文件建在resources.META-INF下,admin会在启动的时候加载该目录下的文件
resources目录
新建页面,用于显示arthas控制台页面。
这个文件中有两个隐藏文本域,这两个用于连接arthas服务端,在页面加载的时候会自动将admin的url赋值给ip
/**
/**
/**
/**
function reqSync(url, method) { var result = null; $.ajax({ url: url, type: method, async: false, //使用同步的方式,true为异步方式 headers: { 'Content-Type': 'application/json;charset=utf8;', }, success: function (data) { // console.log(data); result = data; }, error: function (data) { console.log("error"); } }); return result; }
其他文件
jquery-3.3.1.min.js 新加Js
copy过来的js
popper-1.14.6.min.js
web-console.js
xterm.css
xterm.js
bootstrap.yml
这样子,admin端的配置完成了
客户端配置
需要自动Attach的应用中引入arthas-spring-boot-starter 需要对starter进行部分修改,
要将注册arthas的部分移除
,下面是修改后的文件。我这里是将修改后的文件重新打包成jar包,上传到私服,但有些应用会有无法加载arthasConfigMap的情况,可以将这两个文件单独放到项目的公共包中
}
实现开关效果
为了实现开关效果,还需要一个文件用来监听配置文件的改变
我这里使用的是在SBA中改变环境变量,对应服务监听到变量改变,当监听
spring.arthas.enabled
为true的时候,注册arthas, 到下面是代码}