Arthas是Alibaba开源的Java诊断利器,深受开发者喜爱,目前在Github上已有29K+Star。它采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。
为了演示一个更加真实的线上环境,接下来我们将对Docker容器中的SpringBoot应用进行诊断。我们将使用ArthasTunnel来实现,ArthasTunnel相当于一个Web控制台,使用它我们无需进入应用容器即可对应用进行诊断,非常方便。
# 该镜像需要依赖的基础镜像
FROM java:8
# 将当前目录下的jar包复制到docker容器的/目录下
ADD arthas-tunnel-server.jar /arthas-tunnel-server.jar
# 声明服务运行的端口
EXPOSE 8080 7777
# 指定docker容器启动时运行jar包
ENTRYPOINT ["java", "-jar","/arthas-tunnel-server.jar"]
# 指定维护者的名字
MAINTAINER macro
#!/usr/bin/env bash
# 定义应用组名
group_name='mall-tiny'
# 定义应用名称
app_name='arthas-tunnel-server'
# 定义应用版本
app_version='1.0-SNAPSHOT'
echo '----copy jar----'
docker stop ${app_name}
echo '----stop container----'
docker rm ${app_name}
echo '----rm container----'
docker rmi ${group_name}/${app_name}:${app_version}
echo '----rm image----'
# 打包编译docker镜像
docker build -t ${group_name}/${app_name}:${app_version} .
echo '----build image----'
docker run -p 8080:8080 -p 7777:7777 --name ${app_name}
-e TZ="Asia/Shanghai"
-v /etc/localtime:/etc/localtime
-v /mydata/app/${app_name}/logs:/var/logs
-d ${group_name}/${app_name}:${app_version}
echo '----start container----'
在SpringBoot应用中直接集成Arthas并使用,无疑是最方便的,接下来我们将采用此种方法。
com.taobao.arthas
arthas-spring-boot-starter
3.6.1
management:
endpoints:
web:
exposure:
# 暴露端点`/actuator/arthas`
include: 'arthas'
arthas:
agent-id: mall-tiny-arthas
tunnel-server: ws://arthas-tunnel-server:7777/ws
由于Arthas的功能很强大,需要记住的命令很多,有时候实在记不住,于是有了这款IDEA插件,该插件主要用于帮助生成Arthas命令。
今天体验了一把新版的Arthas,搭配ArthasTunnel和IDEA插件使用,确实非常方便!并且它还能和SpringBoot无缝集成,确实非常给力
作者:MacroZheng
链接:https://juejin.cn/post/7103706246586302495
页面更新:2024-03-19
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号