您的位置:网站首页 > Java工具 > 正文

去哪儿网 Java 应用诊断工具 Bistoury 开源啦!

类别:Java工具 日期:2019-10-14 2:10:49 人气: 来源:

  梦见和死去的亲人说话聂振宇,2013年加入去哪儿网技术团队,目前在基础架构部,对并发编程,构建高并发系统很感兴趣。

  Bistoury 的目标是一站式Java 应用诊断解决方案,让开发人员无需登录机器或修改系统,就可以从日志、内存、线程、类信息、调试、机器和系统属性等各个方面对应用进行诊断,提升开发人员诊断效率和诊断能力。

  当然不是,Bistoury 在使用上做了一些针对性的优化,并且提供了一些能极大增强开发人员诊断能力的功能,用过都知道(东北口音)。

  我们提供了一些强大的诊断功能,这里简单介绍一下其中的在线debug和线程级cpu,以及我们做的一些优化。

  曾经在微博上流传着这么一个程序员才懂的笑话:NASA要发射一个新型火箭,火箭发射升空后发现不行,NASA把火箭拖回来加了两行log,再次发射,发现又不行,又加了两行log发射,发现又不行......

  当然这只是一个笑话,但这样的场景在我们的实际开发中却屡见不鲜,多少次系统重启后问题复现失败,多少次我们解决故障的时间就在不断地加log,发布,加log,发布的过程中溜走......

  Arthas的watch命令让我们可以观察函数的入参、返回值、异常等等,然而似乎每次watch都需要看看文档里参数该如何设置,面对函数中的本地变量也是为力,特别是行数较多的方法,方法内部的情况还是难以明了,想象一下面对上百行的方法,你需要脑补出其中各个本地变量值的情形,这个时候,我们无比怀念ide的debug功能。

  不过这样的日子已经一去不复返了,Bistoury实现了在线Debug,它模拟了ide的调试体验,可以直接在代码上添加断点,甚至还支持条件断点。

  在线debug在使用,功能上和远程调试,或者说你在ide上debug本地代码几乎一致。你在代码某一行打一个断点,断点触发就能看到本地变量、变量、静态变量以及调用栈

  远程调试需要系统启动时就带上调试相关参数,线上应用启动时不可能默认打开调试功能,不说去加上参数然后重启系统的麻烦,重启后你想找的问题可能已经没法复现了;而在线debug不需要应用做任何操作

  远程调试的断点触发后整个系统会暂停,线上应用这么操作很可能会导致故障;在线debug触发断点后只打印快照信息,打印完后继续执行代码逻辑,不影响系统的运行

  在线 debug 的使用只需要简单的三步,首先选择应用和机器;然后搜索需要调试的类;最后在具体行上添加断点等待命中。

  在系统的日常运维中,我们有时会碰到 cpu 使用率突然飙高的情况。这个时候我们会登录机器,top 查看进程 id,top -h 查看消耗 cpu 的线程 id,然后 jstack 看看对应的线程是哪一个,最后再进行具体分析。

  暂且不考虑这一系列操作需要的时间,我们收到报警的时候可能正在公司外吃饭,或是正在睡觉,而等我们做好准备登录上机器时问题已经结束了,现场没了,我们还能做的就只是看着机器的 cpu 图一脸茫然......

  当遇到这些情况时,你会发现你需要的是线程级 cpu 帮你指出问题线程,而不是传统的机器 cpu 让你只能看着图一脸懵逼。

  Bistoury 就是你需要的那一个!我们提供了线程级的 cpu 使用率,它在本地保存了最近三天的线程级数据,你可以根据线程名查看每个线程每分钟的 cpu 使用率,我们还对每个线程每分钟提供一个瞬时的线程调用栈。

  Arthas 和 vjtools 通过命令行或类似的方式使用,不可否认命令行在很多时候具有比较高的效率;但图形化界面也有其自身的优点,特别是在参数复杂时使用起来更加简单,效率更高。Bistoury 在保留命令行界面的基础上,还对很多命令提供了图形化界面,方面用户使用。

  Arthas 和 vjtools 针对单台机器,从机器的维度对系统进行诊断,没有提供全局的视角;但在线应用往往部署在多台机器,Bistoury 可以和使用方应用中心整合,从应用的维度对系统进行诊断,提供了更多的可能。

  Arthas 和 vjtools 在使用上,要么登录机器,要么需要使用者提供相应的ip和端口;Bistoury 去掉各种设置,提供统一的 web 入口,从页面上选择应用和机器即可使用。

  也许你正面对一个难以捉摸的线上问题束手无策,不妨试试我们提供的 Bistoury 快捷部署脚本,在一分钟内启动 Bistoury 然后插入断点开始调试吧!

  

0
0
0
0
0
0
0
0
下一篇:没有资料

网友评论 ()条 查看

姓名: 验证码: 看不清楚,换一个

推荐文章更多

热门图文更多

最新文章更多

关于联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助

郑重声明:本站资源来源网络 如果侵犯了你的利益请联系站长删除

CopyRight 2010-2012 技术支持 FXT All Rights Reserved