WangJi92 / arthas-idea-plugin

arthas idea plugin 更简单的使用arthas的IDEA 插件,方便的构建各种arthas 命令,复制到剪切板 然后到服务器上启动arthas 执行命令。
https://plugins.jetbrains.com/plugin/13581-arthas-idea
Apache License 2.0
605 stars 98 forks source link

使用arthas-idea-plugin,在IDEA内执行arthas命令,提高诊断效率 #154

Open imyzt opened 1 month ago

imyzt commented 1 month ago

前提

本方案适用于使用 arthas-tunnel-server 的团队,如果是登录到机器中执行 arthas-boot 的场景并不能提效。

背景

在一些团队里,应用是通过 arthas-spring-boot-starter 连接到 tunnel-server 的,且一个应用可能会部署多个实例。 因为网关负载均衡的存在,请求会被均分到多个实例上,这就导致在使用 arthas 诊断问题的时候,可能会出现需要打开多个窗口来同时执行我们所需的监听命令,且需要完成 IDE <=> Browser 的切换,较为麻烦。

所以诞生了想法(灵感作者)将 tunnel-server 的能力集成到 IDEA 里的想法,因为已经有了 arthas-idea-plugin 插件,如果直接在现有基础上扩展新功能,比重新开发一个插件使用起来更为便捷,只需要在拷贝完命令之后,弹窗选择要监听的应用即可完成之前需要4~5步的流程。

优势

对比

场景 原有方案 现有方案
监听单个实例 拷贝命令,打开浏览器选择应用和实例,执行命令 拷贝命令,直接监听
监听所有实例 拷贝命令,打开浏览器选择应用,多个实例打开多个窗口 拷贝命令,直接选择 all agents 监听所有实例
代码出现异常 watch时代码异常,寻找业务包名所在堆栈,拷贝类和行号 高亮业务类,点击一键打开对应行号

细节

  1. 可以在IDEA内直接监听,避免打开浏览器。
  2. 可以同时监听多个应用,避免流量分发到多个实例时,开多个浏览器窗口等请求到来。
  3. 代码高亮,可以快速定位代码位置。
  4. 可以搜索,tunnel-server-web-ui 的黑框框使用 Ctrl+F 并不方便搜索,像是用 jvmsc 等指令时,如果需要查找某个信息,需要一行行观察,在 IDEA 内,可以直接 Ctrl+F 搜索任意输出的内容。

使用示例

点击可展开查看 ![output9](https://github.com/user-attachments/assets/1b42bed8-1d4b-4c91-b671-3bfa229e4bbc) ![image](https://github.com/user-attachments/assets/6169fab8-3e7f-48d9-9e81-2f539d8c48b4)

详细教程和博客

在IDEA中管理和监听arthas应用

其它

没有银弹,该扩展可能只会方便1%的用户,如若是为匹配到场景的用户提高了10%的效率,也是一件幸事。

WangJi92 commented 1 month ago

92

WangJi92 commented 1 month ago

最新 2.48 版本 下载地址 https://plugins.jetbrains.com/plugin/download?rel=true&updateId=608427
idea 2022.2.5 以上版本