简化Java故障诊断工具:基于Bistoury的小集群适配Demo

版权申诉
0 下载量 93 浏览量 更新于2024-12-12 收藏 41.86MB ZIP 举报
资源摘要信息:"基于开源项目bistoury的Java应用故障诊断工具预研demo源码" 1. 开源项目bistoury简介 bistoury是一个开源项目,主要用于Java应用的故障诊断。该项目的设计主要针对多节点大集群,因此在小集群中的配置和调试可能会显得较为复杂。为了解决这个问题,预研demo对bistoury进行了修改,目的是简化少量节点和服务时的开发和部署过程,并且增加了对kubernetes集群的支持。 2. 故障诊断工具的特点 - 故障诊断工具主要用于极端情况下,定位和解决应用问题。在常规情况下,不建议高频使用,而是通过优化代码和测试来避免问题的发生。 - 故障诊断工具能够全面展示实例信息,进行故障点的精确观察,并且能够实时修改和热加载故障代码。 - 预研测试的demo基本功能可用,若发现问题会及时更新。 3. bistoury的主要功能和架构设计 bistoury具备优秀的功能和架构设计,但源码较为复杂,组件依赖和配置项较多,这对于新手来说可能会有些门槛,尤其对于小集群少量服务的小团队来说,部署和维护可能较为困难。 4. 预研demo所做的改动 - 修改了启动类,使其变为springboot启动方式,并删除了配置文件,改为在map中配置或在yaml文件中配置。 - 整理了包目录层次结构,合并了UI和proxy,删除了zookeeper和gitlab的依赖。 - 增加了kubernetes支持,能够自动在对应的pod上执行命令启动agent,1-2秒后即可看到JVM信息。 - 修改了ClassPathLookUp配置,使useDefaultClassPath始终为true,并修改了bistoury-agent-env.sh,设置了BISTOURY_PROXY_HOST为service地址,增加了对sqlite的支持,避免了在某些环境中无法使用rocksdb的问题。 - 修改了LoginController,使用默认的admin/123456登录信息。 5. 启动方式 - 启动只需要运行ServersideApplication,并配置好masterUrl和token。 - 需要调整start_agent.sh脚本中的proxy地址为本地端口,并保证pod内能够访问到本地,这样会自动调用exec拉起agent(大概需要1-3秒)。 6. 使用条件 - jdk版本必须是java 8。 - 当前版本仅支持deployment类型的应用。 - 目标pod镜像内必须包含bash、wget、tar命令。 7. 使用场景与建议 - 该故障诊断工具适用于极端情况下的问题定位,而不是作为常规工具使用。 - 在日常开发中,建议编写高质量的代码和进行充分的测试,从而降低故障发生的概率。 - 该工具的主要使用手段包括全方位展示实例信息、精确观察故障点、故障代码的实时修改和热加载,提供了一种在线诊断的能力。 8. 社区贡献 如果开发者在使用过程中遇到问题或对改进有想法,可以联系作者获取交流和帮助,并鼓励一起参与简化或丰富该预研demo。源码的官方地址是qunarcorp/bistoury.git。 以上详细介绍了基于开源项目bistoury的Java应用故障诊断工具预研demo源码的主要内容和使用方法,以及作者为简化使用而做出的改动和改进,还包括了如何启动和运行该工具,以及对使用者的建议。