Arthas 工作原理
2024-10-18 13:59:47 3 举报
一张图看懂 Arthas 运行流程
作者其他创作
大纲/内容
as.sh
连接
ArthasConfiguration.class
CONNECT_ARTHAS
应用服务
注册 bean
ws://ip:port?method=connectArthas
注册 Agent
AGENT_REGISTER
termServer.listen()
将指令加载到解析器
CommandResolver.class
TunnelSocketFrameHandler.class
Arthas 控制台
pipeline.addlast()
arthas-agent-attach.jar
解压
TunnelServerConfiguration.class
arthas-spring-boot-starter.jar
arthas-client.jar
查找 AgentId
TunnelClusterStore.class
火焰图
TermServer.class
start()
Tunnel Server connectArthas 后通知 Tunnel Client 启动新连接
ShellServer.class
TunnelClientSocketClientHandler.class
arthas-agent.jar
生成 AgentId
classloader
START_TUNNEL
指定 AgentId 通知 TunnelServer 连接 TunelClient
TunnelServer.class
arthas-core.jar
启动客户端
TunnelSocketServerInitializer.class
listen()
OPEN_TUNNEL
Tunnel Server 向 Tunnel Client 请求中转http://ip:3658/arthas-output/xxx.html
保存 AgentId 和 Host
ArthasAgent.class
arthas-boot.jar
arthas-bin.zip
TunnelClient.class
userEventTriggered()
HTTP_PROXY
Arthas Tunnel Server
临时目录
Forward
agent id
init()
ArthasBootstrap.class
arthas-spy.jar
ws://ip:port?method=agentRegister
BuiltinCommandPack.class
arthas-packaging.jar
Proxy
启动 Shell
0 条评论
下一页